• User Attivo

    Paginazione

    Innanzitutto ciao a tutti dato che sono nuovo,
    mi sto avvicinando alla programmazione da pochissimo tempo, ho qualche anno di esperienza in altri ambiti del web ma la programmazione è sempre stata un tabù per me. Ho seguito di recente un corso base di PHP ed ora sto provando grazie anche alle guide sul web di capirci qualcosa di più. Attualmente ho un problema con la paginazione. Nel senso che il codice che ho trovato e adeguatamente risettato di per sè funziona, tuttavia nel momento in cui vado ad includerlo nella pagina (con grafica e 1 ciclo switch) si mangia via i records. Cioè mi appaiono i primi dieci, poi se clicco su pagina successiva e/o precedente mi appaiono delle belle schermate bianche.

    Ora vi incollo le 2 pagine (clienti.php e paginazione1.php)... se riuscite anche a spiegarmi cosa non va oltre a correggermi il codice mi fareste un favorone 😉 (chiedo scusa per la lunghezza del codice) ovviamente ho tranciato la parte della form e tutti i vari casi dello switch...

    clienti.php
    [php]$txt=$_POST['search']; $src=$_POST['cerca2'];
    $count = mysql_query("SELECT COUNT(id) FROM clienti");
    $res_count = mysql_fetch_row($count); $tot_records = $res_count[0];
    $per_page = 10;
    $tot_pages = ceil($tot_records / $per_page);
    $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
    $primo = ($current_page - 1) * $per_page;

    switch ($src) {
    case vuoto:
    echo("<span class='txt'>Seleziona un'opzione di ricerca</span>");
    break;

    case nome:
    $leggi=mysql_query("SELECT * FROM clienti WHERE nome LIKE '$txt%' LIMIT $primo, $per_page");
    echo ("<table width='auto' border='1' cellpadding='2'>");
    echo("<tr><td width='auto'><b>NOME</b></td>
    <td width='auto'><b>INDIRIZZO</b></td>
    <td width='auto'><b>TELEFONO</b></td>
    <td width='auto'><b>FAX</b></td>
    <td width='auto' align='center'><b>SCHEDA</b></td>
    </tr>");
    while($leggi2=mysql_fetch_array($leggi))
    {echo("<form action='pg_cliente.php' method='GET'>
    <tr><input type='hidden' name='id' value='$id'/>
    <td width='auto'>$leggi2[nome]</td>
    <td width='auto'>$leggi2[indirizzo]</td>
    <td width='auto'>$leggi2[tel]</td>
    <td width='auto'>$leggi2[fax]</td>
    <td align='center'><input type='submit' value='Vedi' /></td></tr></form>");}
    echo("</table>");
    include("paginazione1.php");
    echo ("<table><tr><td height='50 valign='bottom' align='center'>$paginazione</td></tr></table>");
    break;

    case indirizzo: ecc... [/php]paginazione1.php
    [php]
    if($current_page == 1) {
    $precedente = "<< precedente";
    } else {
    $previous_page = ($current_page - 1);
    $precedente = "<a href="?page=$previous_page" title="Vai alla pagina precedente"><< precedente</a>";
    }

    if($current_page == $tot_pages) {
    $successiva = "successiva >>";
    } else {
    $next_page = ($current_page + 1);
    $successiva = "<a href="?page=$next_page" title="Vai alla pagina successiva">successiva >></a>";
    }
    $paginazione = "$precedente $successiva";
    [/php]