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

    strano errore in paginazione

    Salve, ho un sito in linea che ha dei problemi con la paginazione dei risultati di una ricerca. La cosa strana è che invece in locale va tutto bene.
    Comunque ecco cosa succede: imposto la chiave di ricerca, mi si visualizza correttamente la pagina, poi clicco in basso per spostarmi nella pagina successiva, anche qui tutto bene, ma quando torno alla prima non vengono visualizzati i dati che c'erano ma un solo record. Ora mi chiedo perché succede questa cosa e perché in locale no, vi posto il codice della paginazione:

    codice:
    <?
    include("config.php");
    include("errore.php");
    require("connessione.php");
    session_start();
    if ($_SESSION['nome'] == "")
    {
    $nome_ric = $_POST['nome'];
    }
    else
    {
    $nome_ric = $_SESSION['nome'];
    }
    if ($_SESSION['titolo'] == "")
    {
    $titolo_ric = $_POST['titolo'];
    }
    else
    {
    $titolo_ric = $_SESSION['titolo'];
    }
    if ($_SESSION['genere'] == "")
    {
    $genere_ric = $_POST['genere'];
    }
    else
    {
    $genere_ric = $_SESSION['genere'];
    }
    
    
    if ($nome_ric == "")
    {
    $nome_ric = "%";
    }
    if ($titolo_ric == "")
    {
    $titolo_ric = "%";
    }
    if ($genere_ric == "")
    {
    $genere_ric = "%";
    }
    $query = "select count(*) from scritti where genere like '$genere_ric' and nome like '$nome_ric'
    and titolo like '$titolo_ric'";
    
    
    
    
    
    $result = mysql_query($query, $db);
    $row = mysql_fetch_array($result);
    //tot record
    $tot_records = $row[0];
    
    
    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 10;
    
    // numero totale di pagine
    $tot_pages = ceil($tot_records / $per_page);
    
    
    // pagina corrente
    $current_page = (!$_GET['page']) ? 1 : (int)($_GET['page']);
    
    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;
    //salva criteri in sessione
    $_SESSION['nome'] = $nome_ric;
    $_SESSION['titolo']= $titolo_ric;
    $_SESSION['genere'] = $genere_ric;
    
    
    
    $query = "select * from scritti where genere like '$genere_ric' and nome like '$nome_ric'
    and titolo like '$titolo_ric' LIMIT $primo, $per_page";
    
    
    
    $result = mysql_query($query, $db);
    
    if (mysql_num_rows($result) == 0)
    {
    ?>
    <tr>
    <td>
    <? echo "non ci sono testi che soddisfano i parametri";?></div>
    </td>
    </tr>
    <?
    }
    else
    {
    $pos_top = 280;
    
    while ($row = mysql_fetch_array($result))
    {
    $nome   = $row['nome'];
    $titolo = $row['titolo'];
    $data = $row['data'];
    $genere = $row['genere'];
    $title2 = urlencode($row['titolo']);
    
    
    ?>
    <tr>
    <td >
    
    
    <? echo ""?><? echo $titolo . " (" . $genere . ")"; ?>
    
    
    <div class="autore"> di <? echo $nome . " ," . $data;
    ?>
    </div>
    
    
    </td>
    </tr>
    <?
    }
    
    include("paginazione.php");
    }
    ?>
    
    </table>
    <div style="font-size:15px; font-weight:bold">
    <?echo $paginazione;
    ?>
    </div>
    </div>
    A me sembra tutto corretto, ma come faccio adesso a vedere perché non funziona?

    nicola

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    ma per tornare alla prima premi "indietro" del browser?

    ciao

  3. #3
    No premo il link della paginazione che è una semplice freccia a cui è associato questo codice:

    codice:
    <?php
    
    if($current_page == 1) { // se siamo nella prima pagina
    $precedente = "";
    } else { // altrimenti
    $previous_page = ($current_page - 1);
    $precedente = "<a href=\"?page=$previous_page\" title=\"Vai alla pagina precedente\"><< pag prec</a>";
    }
    
    
    
    if($current_page == $tot_pages) { // se siamo nell'ultima pagina
    $successiva = "";
    } else { // altrimenti
    $next_page = ($current_page + 1);
    $successiva = "<a href=\"?page=$next_page\" title=\"Vai alla pagina successiva\">pag succ></a>";
    }
    $paginazione = "$precedente   $successiva";
    
    ?>
    holden

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.