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

Discussione: paginazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216

    paginazione

    ciao a tutti
    ho dei problemi a fare una sorte di paginazione
    Codice PHP:
    <?php $maxRow=5;$page=$_GET['page'];
    if(!
    $page$page=1;
    $totalRow=mysql_num_rows(mysql_query("SELECT * FROM news"))
    ;
    $totalPage=ceil($totalRow/$maxRow);
    $first=($page 1) * $maxRow;
    $rs=mysql_query("SELECT * FORM news ORDER BY id DESC LIMIT $first$maxRow");
    $nr=mysql_num_rows($rs);
    if (
    $nr == 0)
    {  
    for(
    $x 0$x $nr$x++)
    {    
    $row mysql_fetch_assoc($rs);    
    echo 
    "<table><tr>";    
    echo 
    "<td>" $row['id'] . "</td>";    
    echo 
    "<td>" $row['titolo'] . "</td>";    
    echo 
    "<td>" $row['sottotitolo'] . "</td>";    
    echo 
    "<td>" $row['descrizione'] . "</td>";    
    echo 
    "</tr></table>";  
    }
    }
    else{  echo 
    "Nessun record trovato!";}
    if (
    $totalPage 1)
    {  
    if (
    $page 1)
    {    
    echo 
    "<a href=\"" $_SERVER['PHP_SELF'] . "?pag=" . ($page 1) . "\">";    
    echo 
    "Pagina Indietro</a>&nbsp;";  }  
    if (
    $totalPage $page)
    {    echo 
    "<a href=\"" $_SERVER['PHP_SELF'] . "?pag=" . ($page 1) . "\">";    
    echo 
    "Pagina Avanti</a>";  

    }
    ?>
    purtroppo non va non estrae nulla dal db
    mi fa vedere solo il link "pagina avanti" il quale modifica il link in modo corretto

    cosa potrà essere???
    Server utilizzato: MySQL


    (cit.)
    Un misto tra pazzia ed intelligenza

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    $nr=mysql_num_rows($rs);
    if (
    $nr == 0)
    {

    Forse volevi scrivere $nr > 0 ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    se metto >0
    mi dice "Nessun record trovato!"
    Server utilizzato: MySQL


    (cit.)
    Un misto tra pazzia ed intelligenza

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, hai provato con un while?
    Codice PHP:
    if ($nr 0)
    {   
    while(
    $row mysql_fetch_assoc($rs) ){   
    echo 
    "<table><tr>";    
    echo 
    "<td>" $row['id'] . "</td>";    
    echo 
    "<td>" $row['titolo'] . "</td>";    
    echo 
    "<td>" $row['sottotitolo'] . "</td>";    
    echo 
    "<td>" $row['descrizione'] . "</td>";    
    echo 
    "</tr></table>";  


    La query di per se estre correttamente i dati?

    $rs cosa contiene se lo metti in un var_dump()?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    var_dump($nr) = NULL
    var_dump($rs) = FALSE

    cavolo!!! come posso risolvere???
    Server utilizzato: MySQL


    (cit.)
    Un misto tra pazzia ed intelligenza

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    correggi questo nella query $rs
    "SELECT * FORM ..." con "SELECT * FROM ..."

    e magari mettici un or die(mysql_error()) quando esegui una query


  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    facendo delle modifiche ho migliorato la situazione...

    ora stampa i primi record ma cliccando su avanti non cambiano, ma cambia il link (avanti -> indietro)

    questo è il codice com è ora

    Codice PHP:
    <?php
    $count
    =mysql_query("SELECT COUNT(id) FROM news") or die (mysql_error());
    $count=mysql_fetch_row($count);


    $totRec=$count[0];
    $maxRows=8;
    $totPage=ceil($totRec/$maxRows);


    $currentPage=(!$_GET['page']) ? : (int)$_GET['page'];
    $startRec=($currentPage 1) * $maxRows;


    $query=mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT $startRec,$maxRows") or die (mysql_error());
    $ns=mysql_fetch_row($query);
    ?>
    <table style="padding-top:15px; width:700px;" align="center">
    <tr align="center" style="font-weight:bolder;">
        <td>Title</td>
        <td>Subtitle</td>
        <td>Descriprion</td>
    </tr>


    <?php 
    if($ns>=0){
    while(
    $row=mysql_fetch_assoc($query)){ ?>    
        <tr valign="top" class="cele">
            <td style="padding:5px;" width="150"><?php echo TagliaStringa($row['titolo'], 30); ?></td>
            <td style="padding:5px;" width="100"><?php echo TagliaStringa($row['sottotitolo'], 20); ?></td>
            <td style="padding:5px;" width="300"><?php echo TagliaStringa($row['descrizione'], 40); ?></td>
        </tr>
    <?php } }else{echo "Nessun record trovato!";}?>  
    <tr>
        <td>
            <?php 
            $page
    =$_GET['pag'];
            if (
    $totPage 1){
      if (
    $page 1){
        echo 
    "<a href=\"" $_SERVER['PHP_SELF'] . "?pag=" . ($page 1) . "\">";
        echo 
    "Pagina Indietro</a>&nbsp;";
      } 
      if (
    $totPage $page){
        echo 
    "<a href=\"" $_SERVER['PHP_SELF'] . "?pag=" . ($page 1) . "\">";
        echo 
    "Pagina Avanti</a>";
      } 
    ?>
        </td>
    </tr>
    </table>
    grazie clasku non mi ero accorto dell'errore...

    comunque sia non va aventi con i record...
    che ne dite???
    Server utilizzato: MySQL


    (cit.)
    Un misto tra pazzia ed intelligenza

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    $ns=mysql_fetch_row($query); potrebbe essere inutile visto che cicli con un while.
    E if($ns>=0){ .... se maggiore o uguale a zero non ha senso. O fai qualcosa se maggiore di zero o nulla.
    Nei link paginazione usi ?pag mentre nel controllo usi 'page'. Per forza di cose hai i riusltati della prima pagina perchè di default è settato come LIMIT 0,....


  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    $ns=mysql_fetch_row($query);
    serve solamente a fare un controllo niente di più...
    infatti se lo commento mi stampa "nessun record trovato"

    comunque ok la paginazione funge ma perde il primo record per ogni pagina, quindi se maxRows=8 e i records in tutto sono 12 ne stampa 7 in page1 e 3 in page2...
    ???
    Server utilizzato: MySQL


    (cit.)
    Un misto tra pazzia ed intelligenza

  10. #10
    Domanda stupida: Dov'è che fai la connessione al database prima di eseguire le query? Non trovo mysql_connect e mysql_select_db nel tuo codice

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 © 2026 vBulletin Solutions, Inc. All rights reserved.