Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Esportare in ordine decrescente da Mysql

    Ciao a tutti!
    ho una pagina in PHP che mi mostra i record registrati nel database...l'unico piccolo problema è che me li mostra in ordine crescente mentre io li voglio dall'ultimo al primo...
    Il codice PHP è questo
    Codice PHP:
    <?
    // Creo una variabile dove imposto il numero di record 
    // da mostrare in ogni pagina
    $x_pag 10;

    // Recupero il numero di pagina corrente.
    // Generalmente si utilizza una querystring
    $pag $_GET['pag'];

    // Controllo se $pag è valorizzato...
    // ...in caso contrario gli assegno valore 1
    if (!$pag$pag 1

    // Mi connetto al database
    $conn mysql_connect("HOST","NOME DATABASE","PASSWORD");
    mysql_select_db("NOME"$conn);

    // Uso mysql_num_rows per contare le righe presenti
    // all'interno della tabella news
    $all_rows mysql_num_rows(mysql_query("SELECT id FROM news"));

    // Tramite un' operazione matematica definisco
    // il numero totale di pagine
    $all_pages ceil($all_rows $x_pag);

    // Calcolo da quale record iniziare
    $first = ($pag 1) * $x_pag;

    // Recupero i record per la pagina corrente...
    // utilizzando LIMIT per partire da $first e contare fino a $x_pag
    $rs mysql_query("SELECT * FROM news LIMIT $first$x_pag");
    $nr mysql_num_rows($rs);
    if (
    $nr != 0){
      for(
    $x 0$x $nr$x++){
        
    $row mysql_fetch_assoc($rs);
        echo 
    "<table><tr>";
        echo 
    "<tr><td><font color=white>[b]" $row['titolo'] . "[/b]</font></td></tr>

    "
    ;
        echo 
    "<tr><td><font size=1><font color=white>[b]" $row['data'] . "[/b]

    </font></font></td></tr>"
    ;
        echo 
    "<tr><td><div align=justify>" $row['contenuto'] . "</div></td></tr>";
        echo 
    "<font color=blue>-------------------------------------------------------------------------------------------</font>";
        echo 
    "</tr></table>";
      }
    }else{
      echo 
    "Nessun record trovato!";
    }

    // Se le pagine totali sono più di 1...
    // stampo i link per andare avanti e indietro tra le diverse pagine!
    if ($all_pages 1){
      if (
    $pag 1){
        echo 
    "<a href=\"" $_SERVER['PHP_SELF'] . "?pag=" $pag "\">";
        echo 
    "Pagina Indietro</a>";
      } 
      if (
    $all_pages $pag){
        echo 
    "<a href=\"" $_SERVER['PHP_SELF'] . "?pag=" $pag "\">";
        echo 
    "Pagina Avanti</a>";
      } 
    }



    // Chiudo la connessione ad DB
    mysql_close($conn);
    ?>

  2. #2
    Ciao devi specificare l'ordine con la clausola ORDER BY campo DESC. Ad esempio:

    Codice PHP:
    mysql_query("SELECT * FROM tua_tabella ORDER BY id DESC"); 

  3. #3
    Originariamente inviato da albx87
    Ciao devi specificare l'ordine con la clausola ORDER BY campo DESC. Ad esempio:

    Codice PHP:
    mysql_query("SELECT * FROM tua_tabella ORDER BY id DESC"); 
    grazie mille però non mi funziona cioè io l'ho messo subito prima di questa stringa
    Codice PHP:
    $first = ($pag 1) * $x_pag
    forse ho sbagliato la posizione? mi potresti dire dove va messo?

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Non devi aggiungere la riga suggerita, devi cambiare la tua query
    Codice PHP:
    $rs mysql_query("SELECT * FROM news LIMIT $first$x_pag"); 
    in

    Codice PHP:
    $rs mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT $first$x_pag"); 

  5. #5
    ora funziona!!!
    grazie mille!!!

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.