Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Order By "complesso"

  1. #1

    Order By "complesso"

    Salve a tutti

    sto tentando di ordinare un archivio ma senza successo, forse sbaglio io, forse non si puo fare.

    Ho i miei articoli che sono ordinati sia per DATA di inserimento che per CLICK RICEVUTI.

    Ora vorrei mixare questo ordinamento e fare in modo che vengano visualizzati per DATA e CLICK, suddivisi per anno:

    es:

    - Fazio si dimette / 2005 / 100click
    - Ho mal di testa / 2005 / 60 click
    - Pippo è morto / 2004 / 250 click

    E' possibile fare questo?

    Io ho provato con ORDER BY data DESC, click DESC
    ma senza successo!

    Grazie mille
    Perchè uso Maxthon? | Mi piace questa chat

  2. #2
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    i tre campi sono nella stessa tabella?
    il campo data ha solo l'anno?
    Il numero di click ha anche la scritta click?
    come sono dichiarati?

  3. #3
    Hai ragione.

    I 3 campi sono nella stessa tabella, il campo DATA è un campo DATE, quello click è un INT(10).

    Come son dichiarati che significa?
    Scusa l'ignoranza.
    Perchè uso Maxthon? | Mi piace questa chat

  4. #4
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    La dichiarazione del campo è Date, INT, ecc..

    comunque prova così

    order by DATE_FORMAT(data,'%Y') desc, click desc


  5. #5
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 15' at line 1

    Purtroppo uso le query di Dreamweaver:

    $query_listato = sprintf("SELECT * FROM articoli ORDER BY DATE_FORMAT(data,'%Y') desc, click desc", $colname_listato,$reg_listato);
    $query_limit_listato = sprintf("%s LIMIT %d, %d", $query_listato, $startRow_listato, $maxRows_listato);
    $listato = mysql_query($query_limit_listato, $dbconn) or die(mysql_error());


    Dov'è per lui l'errore?

    Grazie
    Perchè uso Maxthon? | Mi piace questa chat

  6. #6
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    probabilmente questione di spazi, io l'ho eseguita in mysql e funziona, fatti una echo della query che mandi sul db, in questo modo potrai vederla e capire l'errore
    echo $query_limit_listato;
    anzi, ora che guardo meglio mi sembra che il limit vada dopo l'order by, non prima


  7. #7
    Allora, la query da sola anche a me funziona, ma perdo la paginazione di Dreamweaver e sono quindi costretto a implementare il DATE_FORMAT in mezzo a quella zozzeria.

    Sembra che DW non lo accetti perchè facendo uno sprintf non vede di buon grado le parentesi tonde.
    Perchè uso Maxthon? | Mi piace questa chat

  8. #8
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    purtroppo (per fortuna) non uso Dreamweaver e non so come funzioni
    comunque puoi settarti in una variabile magari globale o a inizio pagina il valore (data,'%Y') e poi lo richiami nella costruzione della query, lo so, non è molto fine ma forse riesci ad aggirare il problema.

  9. #9
    guarda sono riuscito semplicemente cambiando il DATE_FORMAT con: YEAR(data) desc ..ecc ecc

    e vaffanbene al secchio

    Purtroppo uso DW per la paginazione che è una cosa che proprio non so fare

    Grazie per la tua disponibilità
    Perchè uso Maxthon? | Mi piace questa chat

  10. #10
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    Meno male, hai superato l'ostacolo.
    Ma se usi DM per l'impaginazione puoi, nel punto che ti serve, richiamare un file esterno con le istruzioni php, fatti un po' di prove, ti potrebbero servire per il futuro!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.