query sql e script php per ordinamento dati tabella

  • Creatore Discussione Creatore Discussione Zorthan
  • Data di inizio Data di inizio

Zorthan

Utente Attivo
24 Feb 2007
85
0
0
iao a tutti :fonzie:

Ho un sito (se volete lo posto) dove devo richiamare dei dati inseriti dall'utente
Praticamente, il primo campo è la data.

Giorno, mese, anno fanno la data, e sono variabili a parte, inseribile da menu a tendina. a cui sono collegati i rispettivi campi della tabella che recupera i dati
faccio esmepi x chiarire meglio

Nel FIle Di inserimento dati

<form action='form1.php' method='POST'>

<select name='giorno'>
<option value='01'>1</option>
<option value='02'>2</option>
<option value='03'>3</option>
<option value='04'>4</option>
<option value='05'>5</option>

</select>";

echo "Giorno
<select name='mese'>
<option value='10'>ottobre</option>
<option value='11'>novembre</option>
<option value='12'>dicembre</option>
<option value='1'>gennaio</option>
<option value='2'>febbraio</option>
</select>";

echo "Mese
<select name='anno'>
<option value='2008'>2008</option>

</select>";

echo "Anno <br /><br />

FILE DI RECUPER DATI DELLE VARIBIALI


$giorno = $_POST['giorno'];
$mese = $_POST['mese'];
$anno = $_POST['anno'];

(POI OVVIAMENTE CI SARANNO TUTTE LE QUERY CHE INSERIRANNO NELLA TABELLA I DATI ECC...)


NEL FILE DI RICHIAMO DEI RISULTATI HO MESSO QUESTA


$sql = "SELECT * FROM treni_ritardo ORDER BY giorno,mese,anno,orario,direzione";
$result = mysql_query ($sql);


IL RISULTATO PERO' LASCIA A DESIDERARE. mI ORDINA IN BASE AL GIORNO, SENZA RICONOSCERE IL MESE..
E QUIINDI SI CREA CONFUSIONE ECCO QUA:



05 10 2008 1614 Varese si 1
05 12 2008 1544 Varese no 1
07 10 2008 1314 Varese no 1
08 10 2008 1914 Varese si 2
09 10 2008 0614 Pioltello si 1
20 10 2008 0844 Varese si 1 :confused:

LA DATA DEL 5 DICEMBRE è ORDINATA DOPO IL 5 OTTOBRE MA PRIMA DEL 7 OTTOBRE
COME CAPITE, QUALCOSA NON VA.
QUALCHE IDEA PER ORDINARE LA DATA IN RELAZIONE ALLA SUA GIUSTAPOSIZIONE?

GRAZIEA TUTTI IN ANTICIPO
PAOLO:byebye:
 
ciao
il problema sta in questo
prima ordina per data di giorno e a parità di giorno per mese
quindi ordinera per es prima tutti i record con data giorno 05 ed i recorda con data giorno 05 verranno ordinato per data mese

inoltre se le date sono in formato stringa

la data 11 12 2009 viene ordinata prima di 7 1 2009 in quanto il primo carattere 11 stringa è minore di 7 stinga
non so se sono stato chiaro
 
ciao
dimenticavo
<option value='10'>ottobre</option>
<option value='11'>novembre</option>
<option value='12'>dicembre</option>
<option value='1'>gennaio</option>
<option value='2'>febbraio</option>

metti

<option value='01'>gennaio</option>
<option value='02'>febbraio</option> ecc.. sino a 09
poi nella query

ORDER BY anno,mese,giorno,orario,direzione";

dovrebbe andare a posto
 

Discussioni simili