ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / PHP / MySQL Probleme / bestimmte Buchstaben zählen?


Seite 1 von 1

MrNase schrieb am 01.06.2003 um 12:27 Uhr

Hoi!

Kann ich bestimmen wie oft z.B. das "e" in einer Zeichenkette steht?
Sowas wie strlen() halt nur das er mir ausgibt wie oft ein "e" in der Zeichenkette steht...


danke für eure mühe,
nase


*/ nochmal was: Wenn ich bei einem Rechendurchgang die Zahlen 2 und 6 hab, das die 6 in die Datenbank gespeichert wird aber das die 6 überschrieben wird wenn ich beim nächsten Durchgang eine Zahl hab die größer als 6 ist...
Also:
2 Zahlen, einmal 2 und 6
größere Zahl in die db speichern
wenn beim nächsten durchgang neue Zahlen 4 und 9
dann 9 (weil > 6) in die db speichern und
6 löschen
also immer die höchst ereichte Zahl in die db speichern und alte überschreiben.

MrNase schrieb am 01.06.2003 um 14:02 Uhr

Ich hab jetzt 65 Datensätze, wie bekomme ich es hin das nur ein neuer Datensatz gespeichert wird wenn der neue Datensatz größer/höher ist als die die schon in der Datenbank sind?


Wollte was testen und hab mir ne einfache Schleife gebaut...
Nur ein Problem:

$r_highscore = mysql_query("SELECT points FROM highscore ORDER BY points DESC");
while( $highscore = mysql_fetch_array($r_highscore) )
{
$punkte = $highscore['points'];
echo "$punkte<br>";
}

gibt die 9.2323213 vor der 17.2321321 aus... will ich aber nicht, ist logisch aber ich will es so nicht ;)
Ich will die 17.2321321 vor der 9 haben weil 17 ja größer als 9 ist :D
Wie kann ich das ändern?


Nochmal was... Ich hab oben sowas wie

makebattle.php?herausforderer=test&gegner=t%F6st

stehen, wenn jetzt einer F5 drückt dann wird alles wieder durchlaufen, wie soll ich das verhindern? IP-Sperre? Hat da einer ein Tutorial?


Ich sortiere es jetzt mit "ASC", aber jetzt kommt (von oben nach unten) erst die 166 (gut :)), dann die 205 (auch gut ;)) und dann die 2060 (schlecht :() und dann die 225 (sehr gut :))...

MrNase schrieb am 01.06.2003 um 18:11 Uhr

hm, wie kann ich verhindern das 2 mal das gleiche gespeichert wird?!

master_mario schrieb am 01.06.2003 um 21:27 Uhr

Also, 1. Frage: $anzahl = substr_count ( "deine Zeichenkette", "e")

2. Frage: UPDATE (table) SET (was du willst) WHERE neueZahl>gespeicherte alte Zahl.

Naja beim zweiten Post verstehe ich nur Bahnhof. Wie KAnn denn bei der Abfrage so'n Durcheinander raus kommen? Also ASC is scon klar, aber dann muß irgendwas falsch laufen.

Zu 3. INSERT INTO (table) SET (DATEN) WHERE neueEingabe!=Vergleichsspalte aus der Tabelle

MrNase schrieb am 01.06.2003 um 21:41 Uhr

erstmal dankeschön, mein Script wird immer schöner ;)

Zum "Bahnhof"...

Ich denke es liegt daran:
er sortiert nur nach den ersten Zeichen...
Man merkt es hierbei ganz deutlich:
166
205
2060
225

da beachtet er von der 2060 die letzte 0 nicht :(


mist, schon wieder...
3x 10.2
1020
3x 106.66666666667
1200
2x 1224

und die 16.666666666667 (jetziges Ergebnis) wird nicht mitgezählt...

master_mario schrieb am 01.06.2003 um 22:32 Uhr

Jetz versteh, ist wohl'n String? Kann man das bei der Abfrage nich irgendwie mit intval oder doubleval umwandeln?

Aber eigendlich

Vergleichsoperationen ergeben einen Wert von 1 (TRUE), 0 (FALSE) oder NULL. Diese Funktionen funktionieren sowohl bei Zahlen als auch bei Zeichenketten. Zeichenketten werden bei Bedarf automatisch in Zahlen und Zahlen in Zeichenketten umgewandelt (wie in Perl oder PHP).

...kann das nicht sein

Versuch mal die Spalte als Decimal zu definieren (17 ist dann eben 17.000000000000) aber das is ja wurst, kannst ja hinterher mit intval umwandeln

Mario

KhanRKerensky schrieb am 24.06.2003 um 14:53 Uhr

MAX(expr)
Returns the minimum or maximum value of expr. MIN() and MAX() may take a string argument; in such cases they return the minimum or maximum string value. See section 5.4.3 How MySQL Uses Indexes.
mysql> SELECT student_name, MIN(test_score), MAX(test_score)
-> FROM student
-> GROUP BY student_name;

In MIN(), MAX() and other aggregate functions, MySQL currently compares ENUM and SET columns by their string value rather than by the string's relative position in the set. This will be rectified.

Sollte glaubich helfen bei deinem Zahlenproblem.

Seite 1 von 1