Newsgroup: it.comp.www.php
Titolo: problema query mysql

Ciao a tutti
Sono assolutamente alle prime armi con PHP e ho un problema con questa 
query.
I dati sono di un piccolo magazzino in conto terzi e dovrei ordinare i 
record secondo la data di entrata identificata con DATA_ENTR.
Se lascio la query così come qui sotto i dati mi vengono ordinati 
solamente per giorno del mese senza che venga tenuto conto del mese e 
dell'anno.Ho provato con apici dritti o inversi ma la situazione non cambia
Qualcuno mi può aiutare?
Grazie
Maurizio
$setab=mysql_query("SELECT ID, 
DATE_FORMAT(`DATA_ENTR`,'%d/%m/%Y')DATA_ENTR,DATE_FORMAT(`DATA_USC`,'%d/%m/%Y')DATA_USC,MITTENTE,DEST,COD,N_COLLI,PESO_KG,VOLUME,NOTE,MC_TAX,VAL 
FROM `MAGAZZINO` ORDER BY DATA_ENTR");
 

 dell'anno.
 > $setab=mysql_query("SELECT ID,
 > 
DATE_FORMAT(`DATA_ENTR`,'%d/%m/%Y')DATA_ENTR,DATE_FORMAT(`DATA_USC`,'%d/%m/%Y')DATA_USC,MITTENTE,DEST,COD,N_COLLI,PESO_KG,VOLUME,NOTE,MC_TAX,VAL 
 > FROM `MAGAZZINO` ORDER BY DATA_ENTR");
Certo, perche' la data la metti in formato gg/mm/aaaa, ovviamente te la 
ordina per gg, poi mese e poi anno.
Devi mettere la data nel formato aaaa/mm/gg
ciao
Mauro

 FROM `MAGAZZINO` ORDER BY DATA_ENTR");
Non conosco MySQL, ma a occhio e croce direi che visto che hai usato
come alias della data formattata lo stesso nome della colonna li ordina
per la data formattata, quindi come se fosse una stringa.
Prova a dare alla data formattata un nome diverso (es. DATA_ENTR_DISPLAY).
HTH
	Y.


però nella tabella risultante ho bisogno della data in un formato 
leggibile all'"italiana"....


non credo di aver capito la soluzione da te proposta...
puoi farmi un esempio?
tra l'altro l' ORDER BY prevede solamente il nome di un campo del db 
Mysql...

 leggibile all'"italiana"....
Memorizza le date come timestamp, eventualmente a 64bit, e formattale 
solo quando le stampi nella tabella.
Usalo, questo linguaggio server side! ;)
Bye.

 puoi farmi un esempio?
Esempio fatto al volo su un DB trovato qui in casa.
Così ha lo spiacevole effetto di cui parli tu:
mysql> select sessioni_id, DATE_FORMAT(data_inizio,'%d/%m/%Y')
data_inizio from vtiger_sessioni order by data_inizio;
+-------------+-------------+
| sessioni_id | data_inizio |
+-------------+-------------+
|      126346 | 00/00/0000  |
|       22648 | 01/11/2008  |
|       49815 | 04/08/2009  |
|       49814 | 04/08/2009  |
|       49813 | 04/08/2009  |
|        6221 | 06/03/2009  |
|        6222 | 06/03/2009  |
|        6224 | 06/03/2009  |
|        6220 | 06/03/2009  |
|        6225 | 06/03/2009  |
|        6219 | 09/03/2009  |
|        6227 | 10/03/2009  |
|      126333 | 10/12/2009  |
|       15138 | 11/03/2009  |
|       15136 | 11/03/2009  |
|       15137 | 11/03/2009  |
|       49705 | 13/07/2009  |
|       49707 | 13/07/2009  |
|       49748 | 14/07/2009  |
|       49747 | 14/07/2009  |
|       49810 | 16/07/2009  |
|       49808 | 16/07/2009  |
|       49793 | 16/07/2009  |
|       49816 | 16/07/2009  |
|       49811 | 16/07/2009  |
+-------------+-------------+
25 rows in set (0.00 sec)
Così invece funziona bene:
mysql> select sessioni_id, DATE_FORMAT(data_inizio,'%d/%m/%Y')
data_inizio_display from vtiger_sessioni order by data_inizio;
+-------------+---------------------+
| sessioni_id | data_inizio_display |
+-------------+---------------------+
|      126346 | 00/00/0000          |
|       22648 | 01/11/2008          |
|        6220 | 06/03/2009          |
|        6221 | 06/03/2009          |
|        6222 | 06/03/2009          |
|        6224 | 06/03/2009          |
|        6225 | 06/03/2009          |
|        6219 | 09/03/2009          |
|        6227 | 10/03/2009          |
|       15137 | 11/03/2009          |
|       15138 | 11/03/2009          |
|       15136 | 11/03/2009          |
|       49707 | 13/07/2009          |
|       49705 | 13/07/2009          |
|       49747 | 14/07/2009          |
|       49748 | 14/07/2009          |
|       49816 | 16/07/2009          |
|       49808 | 16/07/2009          |
|       49811 | 16/07/2009          |
|       49810 | 16/07/2009          |
|       49793 | 16/07/2009          |
|       49814 | 04/08/2009          |
|       49815 | 04/08/2009          |
|       49813 | 04/08/2009          |
|      126333 | 10/12/2009          |
+-------------+---------------------+
25 rows in set (0.00 sec)
Il trucco è usare nell'alias un nome diverso da quello "vero".
	Y.


GRAZZZZIIIEEEE