Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Link di paginazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    67

    Link di paginazione

    Ciao a ttti,

    stamattina mi sono imbattuto nel seguente problema:
    non riesco navigare nei record estratti da db, in quanto quando clicco su uno dei numeri (12345..), che indicano le pagine in cui compaiono i records, la pagina non si aggiorna.
    Attualmente sono in alto mare...ma di grosso.
    Qualcuno può aiutarmi?
    grazie
    neke

  2. #2
    Puoi postare il codice della paginazione???

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    67
    ecco il codice che mi fà grattare il capo

    $paginazione = "Pagine totali: ".$tot_pages ."[";
    for($i = 1; $i <= $tot_pages; $i++) {
    if($i == $current_page) {
    $paginazione .= $i . " ";
    } else {

    $paginazione .= "<a href=\"tutto2.php?page=$i\" title=\" vai alla pagina $i\">$i</a> ";

    }
    }
    $paginazione .= "]";
    echo "<table >";
    echo "<tr >";
    echo "<td align= \"center\" valign= \"top\">";
    echo $paginazione;
    echo "</td >";
    echo "</tr>";
    echo "</table>";

  4. #4
    Intanto se ne vuoi uno funzionante di giro il mio:
    "paginazione.inc.php"
    Codice PHP:
    <?php

    function pagination_3($total_pages,$page,$webpage){ //imposto la mia $webpage come parametro formale
            
    $pagination ""
        if(
    $total_pages!=1){ 
            if(
    $page>'1'
                { 
              
    $pagination.="[url=".$webpage."][size="1"]Prima[/size][/url] 
                                     [url="
    .$webpage."]Precedente[/url]"
                } 

            
    //Impostiamo il massimo numero di links di partenza da visualizzare nella pagina. 
                 
    $maximum_links 10

              
    //Se sono necessarie meno pagine rispetto al numero massimo 
               
    if($total_pages<=$maximum_links
                { 
                   
    //Il numero massimo di links che occorreranno saranno pari al numero totale di pagine + 1 
                    
    $maximum_links $total_pages+1
                } 
                
    //Se ne sono necessarie di piu, allora: 
               
    else{ 
                      
    //$maximum_links +1 
                      
    $maximum_links=$maximum_links+1
                       if(
    $page>=$maximum_links){ 
                           
    $maximum_links=$page+1
                        } 
                  } 

            for (
    $i=1;$i<$maximum_links;$i++) 
                   { 

                       if(
    $i==$page){ 
                    
    $pagination.="<a>".$i."</a>"
                } 

                else{ 
                    
    $pagination.= "[url=".$webpage."]".$i."[/url]"
                            } 
            } 

                
    //next e ultima pagina; 

            
    if(($page >="1")&&($page!=$total_pages)){ 
                
    $pagination.= "[url=".$webpage."]Successiva[/url] 
                                            [url="
    .$webpage."][size="1"]Ultima[/size][/url]"
            } 

        } 
        else{ 
            
    $pagination.=""
        } 
        return(
    $pagination); 



    //il risultato di questa paginazione è il seguente :
    //prima PREV 1 2 3 4 5 6 7 8 9 10 Next ultima 

    ?>
    Poi nella pagina dove voglio che compaia la paginazione metto queste cose:

    Codice PHP:
    <?php
            
    require "include/paginazione.inc.php";
            
    $webpage basename($_SERVER['PHP_SELF']);
            
    $page = (!isset($_GET['page']))? $_GET['page'];
            
    $queryprima=oci_parse($con,"select count(*) from cons_esami_assegnare where sede='$sede_utente'");
            
    oci_execute($queryprima);
            while ((
    $ris=oci_fetch_array($queryprimaOCI_ASSOC))){
        foreach (
    $ris as $pippo){
                 }
               }
        
    $max_results 10;//numero di elementi da visualizzare per pagina.
        
    $total_results $pippo;
        
    $total_pages ceil($total_results $max_results);
        
    $from = (($page $max_results) - $max_results);
        
    $a= ($max_results $page);
                 
    $query_tab1=oci_parse($con"select r, c1, c2, c3, c4, c5, c6, c7 from (select rownum r, ..... from cons_esami_assegnare where sede='$sede_utente' and rownum <= $a)
    where r > 
    $from");    
    oci_execute($query_tab1);
    while ((
    $riga=oci_fetch_array($query_tab1OCI_NUM OCI_RETURN_NULLS))){
    echo (
    "<tr><td align='center'>".$riga[1]."</td><td align='center'>".$riga[2]."</td><td align='center'>".$riga[3]."</td><td align='center'>".$riga[4]."</td><td align='center'>".$riga[5]."</td><td align='center'>".$riga[6]."</td><td align='center'>".$riga[7]."</td></tr>\n");
    }    
    echo(
    "</tbody>");
    echo(
    "<tfoot><tr><td colspan='7'></td></tr>");
    echo (
    "<tr><td align='center' colspan='7'>".pagination_3($total_pages$page$webpage)."</td></tr>");
    ?>
    Il mio db è oracle...ma puoi adattarlo tranquillamente a mysql (se usi qst).
    Cmq le grosse differenze tra i due sono nel conto dei record che restituisce la query. Io ho dovuto fare una query con la count mentre tu potresti usare tranquillamente mysql_num_row. Altro cosa diversa è che io ho dovuto usare rownum nella query ma tu puoi usare tranquillmamente limit
    Spero di esserti stata utile...
    Se non ti funge, non lo capisci o semplicemente vuoi sistemare il tuo posta il codice
    Ciao ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    67
    Grazie Saretta883 sei molto gentile.
    Mi metto a lavoro e ti faccio sapere.
    neke

  6. #6
    Niente, attendo tue notizie...
    Ho guardato il codice che avevi postato tu e...boh...non c'ho capito molto...
    Dove lo metti quello??? Se lo metti nella pagina nella quale devi fare la paginazione bhè...è un pò noioso ripeterlo sempre x ogni pagina quindi ti consiglio di provare quello che ti ho postato io!!!


    Ah...dirò una ovvietà, ma non si sa mai quindi la dico...il file "paginazione.inc.php" deve essere messo in una cartella di nome include se vuoi utilizzare il codice così come l'ho scritto io

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    67
    Stò provando ad adeguare il codice che mi hai postato, ma le mie conoscenze di php non mi supportano abbastanza e non riesco ad andare avanti.
    Provo a postare il codice che ho usato per vedere se è possibile venirne a capo in qualche modo:

    Il codice di seguito è inserito in 1 pagina .php


    <?php
    session_start();
    if (isset($_REQUEST['discipline'])) $_SESSION['discipline']=$_REQUEST['discipline'];
    if (isset($_REQUEST['provincia'])) $_SESSION['provincia']=$_REQUEST['provincia'];
    include("conndatabase.php");
    $link = mysql_connect($host,$user,$pass);
    if (!$link) {
    die ('Non riesco a connettermi: ' . mysql_error());
    }

    $db_selected = mysql_select_db($database, $link);
    if (!$db_selected) {
    die ("Errore nella selezione del database: " . mysql_error());
    }
    $count = mysql_query("SELECT COUNT(id) FROM ".$_SESSION['discipline']." WHERE provincia='".$_SESSION['provincia']."'");
    $res_count = mysql_fetch_row($count);
    // numero totale di records
    $tot_records = $res_count[0];
    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 2;
    // numero totale di pagine
    $tot_pages = ceil($tot_records / $per_page);
    // pagina corrente

    $current_page = (!isset($_GET['PHP_SELF'])) ? 1 : (int)$_GET['PHP_SELF'];
    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;
    ?>
    <table valign= "3px" ><tr>
    <td align="left" valign="top"><font color="rgb(15,161,255)" size "13">Professione <?echo "$_SESSION[discipline]";?></font></td>
    <td align="left" valign="top"><font color="rgb(15,161,255)" size "3">&nbsp Provincia <?echo "$_SESSION[provincia]";?></font></td></tr></table>

    <?
    // esecuzione seconda query con LIMIT
    $querylimit= "SELECT * FROM ".$_SESSION['discipline']." WHERE provincia= '".$_SESSION['provincia']."' ORDER BY descrizione DESC LIMIT $primo, $per_page ";
    // echo $querylimit;
    $result = mysql_query ($querylimit);
    if (!$result) {
    die("Errore nella query : " . mysql_error());
    }
    while ($row = mysql_fetch_array($result)) {
    echo "<div class= \"rox72\">";
    echo "<div class= \"rox71\">";
    echo "<div class= \"rox73\">";
    echo "[img].$row['directory'].'/'.$row['immagine'].[/img]";
    echo "</div>";
    echo "<div class= \"rox74\">";
    echo "<table >";
    echo "<tr >";
    echo "<td align= \"left\" valign= \"top\">[b] <font color=\"#143EFF\" size=\"3\">".$row['titolo']." ".$row['nome'] = ucwords(strtolower(stripslashes($row['nome'])))." ".$row['cognome'] = ucwords(strtolower(stripslashes($row['cognome'])))." </font>
    <font color=\" #143EFF\" size=\"2\">Descrizione: </font> ".$row['descrizione'] = strtolower(stripslashes($row['descrizione']))."
    Riceve in ".$row['via'] = ucwords(strtolower(stripslashes($row['via'])))." ".$row['strada'] = ucwords(strtolower(stripslashes($row['strada'])))." ".$row['civico'] = ucwords(strtolower(stripslashes($row['civico'])))."
    Loc.".$row['comune'] = ucwords(strtolower(stripslashes($row['comune'])))." &nbsp Tel. ".$row['telefono']."
    ";
    if($row["link"] != "")
    {
    echo " <a href=index.php?page=".$row['link'].">Pagina personale</a></td>";
    }else{
    echo "pagina personale non disponibile";
    }
    echo "</tr>";
    echo "</table>";
    echo "</div>";
    echo "</div>";
    echo "</div>";
    }
    $paginazione = "Pagine totali: ".$tot_pages ."[";
    for($i = 1; $i <= $tot_pages; $i++) {
    if($i == $current_page) {
    $paginazione .= $i . " ";
    } else {
    $paginazione .= "<a href=\"tutto2.php?page=$i\" title=\" vai alla pagina $i\">$i</a> ";

    }
    }
    $paginazione .= "]";
    // in questa cella inseriamo la paginazione
    echo "<table >";
    echo "<tr >";
    echo "<td align= \"center\" valign= \"top\">";
    echo $paginazione;
    echo "</td >";
    echo "</tr>";
    echo "</table>";
    mysql_close($link);
    ?>


    ma dove sbaglio

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    67
    Sono riuscito a risolverlo correggendo il link della paginazione e specificando il nome della current_page.

    Grazie ancora a Saretta 883 per avermi aiutato, stuzzicandomi sempre di più l'interesse per questo linguaggio di programmazione.

    neke

  9. #9
    Sono contenta che ci sei riuscito

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.