Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29

Discussione: Problema con ORDER BY

  1. #1

    Problema con ORDER BY

    Ciao a tutti.
    Scusate se rompo ma sono nuovo del php/sql e vorrei un aiutino Ho creato in php/sql la gestione di notizie. Sulla homepage devo ottenere un massimo di 7/8 notizie. Qui è tutto ok anche nella gestione del massimo di caratteri visualizzabili per non spaccare il layout. Il problema è che decidendo di ordinare le notizie sia per data che per id con ORDER BY, mi restituisce 5 titoli su 7 cronologicamente ordinati mentre gli ultimi due non rispondono ai criteri nel senso che sono vecchi e non mantengono l'ordine.
    Ora posto il codice sicuramente il codice sarà + chiaro di me:
    --------------------------------------------------------------
    include("dbconnect.php");

    $query = "select id, titolo, testo, foto, data, approvazione, visite, autore, DATE_FORMAT(data, '%d.%m.%Y') as data FROM $table ORDER BY id DESC LIMIT 8";
    $risultato = mysql_query($query,$db) or die ("Impossibile mostrare la news!". mysql_error());




    while ($valori = mysql_fetch_array($risultato)) {
    $id = $valori["id"];
    $data = $valori["data"];
    $titolo= $valori["titolo"];
    $titolo = substr("$titolo", 0, 22);
    $rig_titolo="<font size=\"1px\"><a href=\"../leggi.php?id_leggi=$id\">$data - $titolo</a> ...</font>";
    ?>
    ---------------------------------------------------------------
    Praticamente la parte
    ORDER BY id DESC LIMIT 8
    non restituisce correttemente i valori sia se li ordino per DATA sia per ID.
    Chi può aiutarmi? Grazie in anticipo!!!

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Nel senso che non te li ordina come prevedi?

  3. #3
    Grazie per la risposta celere.
    Nel senso che se li ordino per data ottengo:

    24.3.2005 - notizia uno
    23.3.2005 - notizia due
    22.3.2005 - notizia tre
    21.3.2005 - notizia quattro
    20.3.2005 - notizia cinque
    17.5.2005 - notizia sei
    01.6.2005 - notizia sette

    --------------------------------------------

    177 - notizia uno
    176 - notizia due
    175 - notizia tre
    174 - notizia quattro
    173 - notizia cinque
    172 - notizia sei
    166 - notizia sette
    178 - notizia otto

    L'esempio è la copia esatta della risposta:
    da 177 a 172 è perfetta poi mi restituisce un id 166 e un 178 che non saprei dire cosa ci fanno lì. Stessa cosa con le date.
    "La verità sarà sempre una bugia."

  4. #4
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Rinomina la data formattata:

    DATE_FORMAT(data, '%d.%m.%Y') as data2

    altrimenti te la ordina come stringa.

  5. #5
    Quindi diverrebbe:

    $query = "select id, titolo, testo, foto, data, approvazione, visite, autore, DATE_FORMAT(data, '%d.%m.%Y') as data2 FROM $table ORDER BY id DESC LIMIT 8";

    ...

    while ($valori = mysql_fetch_array($risultato)) {
    $id = $valori["id"];
    $data = $valori["data2 "];
    $titolo= $valori["titolo"];
    $titolo = substr("$titolo", 0, 22);
    $rig_titolo="<font size=\"1px\"><a href=\"../leggi.php?id_leggi=$id\">$data2 - $titolo</a> ...</font>";
    ?>
    "La verità sarà sempre una bugia."

  6. #6
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Si

  7. #7
    Niente da fare, anzi la data è scomparsa come se non avesse valore.
    "La verità sarà sempre una bugia."

  8. #8
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    $data = $valori["data2 "];

    Hai messo lo spazio dopo data2.

  9. #9
    Non cambia nulla...
    "La verità sarà sempre una bugia."

  10. #10
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    $data2 = $valori["data2"];

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.