[kamui]
Hallo,
ich habe einen Liveticker fürs WBB2 erstellt, doch der macht mir beim Auslesen der Kommentare Probleme.
Das Feld "
minute" enthält die Minute, in der der geschr. Kommentar im Spiel passiert ist (also zw. 1 und 90), deshalb heißt es in meinem Query auch: "
ORDER BY minute DESC".
Allerdings sieht es beim Auslesen so aus:
code: |
1:
2:
3:
4:
5:
|
90. Minute ...
47. Minute ...
3. Minute ...
14. Minute ...
1. Minute ... |
|
Rogerhuber
Wenn du im Feld minute nur Zahlen hast, versuch es mal, indem du es als INT machst, dann sortiert er die Zahlen richtig herum.
[kamui]
Das ganze ist schon ein integer-Feld. Und es geht mir auch nicht um DESC oder ASC. Sondern, dass in der Sortierung es falsch sortiert wird:
90
47
3
14
1
lycoos
Werden die Minuten mit Punk oder einfach als Zahl gespeichert?
[kamui]
Beim reinspeichern wird die 0 irgendwie nicht mitgespeichert ...
lycoos
Der Sortiert aber nur nach Zahlen und nicht nach Zahlenfolge....
also is 14 vor 3
Must halt mit number format bearbeiten
xundy
Also wenn du asl Datentyp für das Feld INT gewählt hast, sollte mysql das auch korrekt sortieren.
Und wenn du ein Integer Feld hast oder beim speichern intval(WERT) verwendest wird die 0 automatisch abgeschnitten denn der Wert von 04 ist nunmal 4.
Aber wie gesagt das muß funktionieren, ansonsten könnte man ja bei autoincrements die ID nicht als Sortierkriterium verwenden
Leider hast du uns deinen Code nicht gezeigt, vielleicht ist dort ein Fehler drin.
mfg
[kamui]
Also die Datenbankstruktur ist wie folgt:
Zitat: |
id int(11) UNSIGNED auto_increment
gameid int(11)
minute varchar(255) latin1_swedish_ci
nachzeit int(11)
inhalt text latin1_swedish_ci |
Und der PHP-Code: ($gameid ist die ID des Spiels und $domainendungen sind sie Domains, die umgewandelt werden sollen)
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
$result_terms = $db->unbuffered_query('SELECT * FROM bb'.$n.'_mr_liveticker_terms WHERE gameid="'.$gameid.'" ORDER BY minute DESC');
while ($row_terms = $db->fetch_array($result_terms)) {
$rowclass = getone($count++, 'tablea', 'tableb');
$nachzeit = $row_terms['nachzeit'];
$row_terms['inhalt'] = htmlconverter($row_terms['inhalt']);
$count = 0;
while ($domainendungen[$count]) {
$row_terms['inhalt'] = preg_replace('!www.(.*).'.$domainendungen[$count].'!i', "<a href=\"http://www.$1.".$domainendungen[$count]."\" target=\"_blank\">www.$1.".$domainendungen[$count]."</a>", $row_terms['inhalt']);
++$count;
}
$row_terms['inhalt'] = preg_replace('!\[b\](.*)\[\/b\]!i', "<b>$1</b>", $row_terms['inhalt']);
eval('$mr_liveticker_game_all_gamebit .= "'.$tpl->get('mr_liveticker_game_all_gamebit').'";');
unset($nachzeit);
} |
|
xundy
ist doch klar, hast du meine Ausführung nicht gelesen?
Da im Feld Minuten sicher nur ganze Zahlen stehen solltest du den Feldtyp in INT ändern und schon ist dein Problem gelöst
mfg
sturdy
Warum sortierst du nicht einfach nach der ID ?
[kamui]
Hi,
also - was ich vergessen hatte zu sagen - danke x&y, es funktioniert mit INT
@stury: Es kann ja sein, dass man später vLt. einen Kommentar von einer früheren Minute schreiben will.