ORDER BY data (dove il mese deve essere numerico)

Salve a tutti :)

Devo interagire con un db in cui i campi sono data, mese e anno.

Il mese è alfabetico ma io devo ordinare la select cronologicamente, quindi il campo mese deve avere necessariamente i mesi (Gennaio, Febbraio..) in formato numerico (01,02..)

Ho provato a fare un array per trasformarli in numeri e funziona ma poi non so come collegare le due cose!

Questa è la select per i mesi che trasforma i mesi in numero:

$trova_mesi= "SELECT * FROM Modulo_DataDyn_Entita_2";

$result = mysql_query($trova_mesi);

$num_righe = mysql_num_rows($result);

if ($num_righe<1){     echo "<i>no info</i><br />";     }

else{ 

while ($riga = mysql_fetch_assoc($result)) { 

$mese=$riga["Field30"];  

$data=$riga["Field31"];  

$anno=$riga["Field32"];   

$arr_mesi = array('Gennaio' => '01',  'Febbraio' => '02',  

'Marzo' => '03',  'Aprile' => '04',  

'Maggio' => '05',  'Giugno' => '06',  

'Luglio' => '07',  'Agosto' => '08',  

'Settembre' => '09',  'Ottobre' => '10',  

'Novembre' => '11',  'Dicembre' => '12'); 

$num_mese = $arr_mesi[$mese];  

     

echo "$giorno $data $num_mese<br />";

...ma io devo ordinare per data la query che mi scrive le aperture (si tratta di aperture di un locale)

$aperture_straordinarie= "SELECT * FROM Modulo_DataDyn_Entita_2     

WHERE Field29 = 'Domenica'";    

$result = mysql_query( $aperture_straordinarie);     

$num_righe = mysql_num_rows($result);      

if ($num_righe<1){     echo "<i>aperture straordinarie non previste</i><br />";     }

else{ 

while ($riga = mysql_fetch_assoc($result)) { 

$giorno=$riga["Field29"];  

$mese=$riga["Field30"];  

$data=$riga["Field31"];   //data intesa come numero del giorno

$anno=$riga["Field32"];  

$dalle=$riga["Field33"];  

$alle=$riga["Field34"];  

echo "<div class=\"data\">$giorno $data $mese</div> 

<div class=\"ora\">dalle ore $dalle:00 alle ore $alle:00</div>

<br style=\"clear:both\" />";    

} //while     

} // else

Come posso fare per ordinare la select $aperture_straordinarie per data (creata da anno, mese, data)?

So di dover inserire un ORDER BY ma non riesco a capire come legare insieme il numero del mese alla selezione ordinata..

Grazie :)

inviato 7 anni fa
BordeauxPrugna
modificato 7 anni fa
X 0 X

..per i posteri...ho risolto in un altro modo, mettendo i mesi in numero e poi associando il numero al nome del mese tramite array:

$arr_mesi = array( '1' => 'Gennaio', '2' => 'Febbraio', '3' => 'Marzo',

'4' => 'Aprile', '5' => 'Maggio', '6' => 'Giugno', '7' => 'Luglio',

'8' => 'Agosto', '9' => 'Settembre', '10' => 'Ottobre',

'11' => 'Novembre', '12' => 'Dicembre');

$aperture_straordinarie= "SELECT * FROM Modulo_DataDyn_Entita_2

WHERE Field29 = 'Domenica' ORDER BY Field32,Field30,Field31"; //aaaa - mm - gg

poi impostando: $mese=$riga["Field30"];

e .. $mm = $arr_mesi[$mese];

Grazie

risposto 7 anni fa
BordeauxPrugna
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda