ORDER by con numeri decimali postato il 07/02/2009 15:33:09 nel forum programmazione, gdrcd e open source
Ciao a tutti,
ho una domanda sono giorni che mi rompo la testa perchè non riesco a capire il motivo che la query mi raccoglie in modo errato il dati contenuti in un campo "esperienza".
In esperienza ho dei umeri decimali come:
es.
4.56
89.40
ect ect ect
volevo creare una lista che mi metesse in ordine questi campi
<?
$MySql = "SELECT * FROM user WHERE esperienza > 0";
$MySql .= " ORDER BY carisma DESC LIMIT 0, 20";
$Result = mysql_query($MySql);
while ($rs = mysql_fetch_array($Result)) {
$nome_car=htmlspecialchars($rs['nome']);
$carisma=htmlspecialchars($rs['carisma']);
echo"<tr>";
echo"<td><strong>$nome_car</strong>";
echo"<td><strong>$carisma</strong>";
echo"</tr>";
}
$rs->close;
mysql_free_result($Result);
?>
Utilizzando questa query li ordina in modo errato..esempio
utente1 9.49
utente2 86.3
utente3 81.3
utente4 8.93
c'è un modo per ordinarli correttamente?
Vi ringrazio
Pagine → 1
07/02/2009 17:00:47
perchè fai un ordinamento per carisma e non per esperienza.
07/02/2009 18:56:24
no scusate ho sbagliato a ricopiare qui....
<?
$MySql = "SELECT * FROM user WHERE carisma > 0";
$MySql .= " ORDER BY carisma DESC LIMIT 0, 20";
$Result = mysql_query($MySql);
while ($rs = mysql_fetch_array($Result)) {
$nome_car=htmlspecialchars($rs['nome']);
$carisma=htmlspecialchars($rs['carisma']);
echo"<tr>";
echo"<td><strong>$nome_car</strong>";
echo"<td><strong>$carisma</strong>";
echo"</tr>";
}
$rs->close;
mysql_free_result($Result);
?>
ok ora è giusto...ma il problema resta....ti ringrazio per avermi risposto..
07/02/2009 19:02:42 e modificato da darkside of breakfast il 07/02/2009 19:03:21
Fai un po' di confusione eh :P
07/02/2009 19:37:44
Ciao,
rinrazio tutti per avermi risposto ma credo di essermi spiegato male io...XD...
Il mio problema è che il campo carisma ce l'ho in varchar e non in decimal, quindi quando lo vado ad ordinare per carisma, lo ordina come una striga...c'è un modo per risolvere questo...?...
07/02/2009 23:22:08
modifichi il campo carisma come decimal? XD
08/02/2009 12:01:58
se il campo è una stringa è corretto che te lo ordini così, se vuoi fare un allineamento corretto come vuoi devi usare un campo numerico. Ti va bene che usi PHP e probabilmente non si incazzerà nessuno. Se usavi un linguaggio più "professionale" dovevi andare a rifare tutte le pagine che lavoravano su quel campo perchè, poi, avrebbero avuto un confilitto di tipo dato :)
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
nick nightingale ha risposto alla discussione: Perché non avete più voglia di giocare?