+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problema paginazione

  1. #1
    mikyweb non è in linea Novello
    Post
    14
    Salve a tutti!! Io sono nuovo di questo forum e spero che qualcuno possa risolvere il mio problema...

    Salve... ho cercato di risolvere il problema della mia paginazione. Mi visualizza i rusultati ma non come vorrei. Ovvero i dati da visualizzare dovrebbero essere diversi a seconda della query ma invece mi visualizza sempre tutti i dati presenti nella mia tabella.

    Qualcuno potrebbe aiutarmi per capire dove sbaglio?

    Questo è il codice della mia pagina:

    code:

    // esecuzione prima query
    $count = mysql_query("SELECT COUNT(id) FROM ".$prefix."_dati");
    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];

    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 4;

    // 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;

    echo "<div align=\"center\">\n<table width=\"90%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n";

    // esecuzione seconda query con LIMIT
    $query_limit = mysql_query("SELECT regioni, provincie, Provincia, Nome, Descrizione FROM ".$prefix."_dati, ".$prefix."_regioni , ".$prefix."_provincie WHERE ".$prefix."_dati.Regione = ".$prefix."_regioni.r_id AND ".$prefix."_dati.Provincia = ".$prefix."_provincie.p_id AND Provincia = '$_GET[prov]' AND Regione = '$_GET[regione]' LIMIT $primo, $per_page");

    $i=1;
    while($results = mysql_fetch_array($query_limit)) {
    extract($row);
    if ($i==1) {
    echo "<center><b>"._Title." <br><br>$provincie</b> ($regioni) </center><br>";
    }
    $i++;

    echo " <tr>\n <td>";
    echo "<font class=\"dati\"><center>" . $results['Nome'] . "</center></font>";
    echo "<table width=\"90%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">"
    . " <tr>"
    . "<td bgcolor=\"#B0C6B8\" align=\"left\" width=\"20%\">Descrizione:</td>"
    . "<td width=\"80%\" class=\"content\">" . $results['Descrizione'] . "</td>"
    . " </tr>"
    . "</table><br>";
    echo "</td>\n </tr>\n";

    }

    // includiamo uno dei files contenenti la paginazione, commentate l'altro ovviamente
    include("paginazione_2.php");
    //include("paginazione_2.php");

    // in questa cella inseriamo la paginazione
    echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";

    echo " </tr>\n</table>\n</div>";

    ------------------------------------------------------------ --------------------


    Mentre il codice della paginazione è:


    code:

    $paginazione = "Pagine totali: <b>" . $tot_pages . "</b> [";
    for($i = 1; $i <= $tot_pages; $i++) {
    if($i == $current_page) {
    $paginazione .= $i . " ";
    } else {
    $paginazione .= "<a href=\"? regione=$Regione&prov=$Provincia&page=$i\" title=\"Vai alla pagina $i\">$i</a> ";
    }
    }
    $paginazione .= "]";

    ------------------------------------------------------------ --------------------


    Vorrei capire come mai non funziona. La pagina che ho creato senza la paginazione funziona perfettamente interrogando la mia tabella con questa stringa:

    www.miodominio.com/index.php?regione=1&prov=1

    mi restituisce solo i valori che ho chiesto, mentre nella pagina con la paginazione, mi risultano tutti i dati presenti nella mia tabella!!

    Dove sbaglio?

    Grazie a tutti!!!

    [img]smileys/smiley5.gif[/img]

  2. #2
    Post
    4,741
    Blogs
    12
    Ciao miky,
    Effettivamente il tuo codice presenta alcune imprecisioni, ad esempio, inserire queste righe e quindi effettuare il conteggio dei records per determinare il numero di pagina da visualizzare, e' completamente sbagliato... Perche' ?

    Semplicemente perche' devi effettuare il conteggio delle pagine relativamente all'interrogazione che effettuerai al DB. Aggiungendo i dovuti parametri di ricerca.

    codice:
    // esecuzione prima query 
    $count = mysql_query("SELECT COUNT(id) FROM ".$prefix."_dati"); 
    $res_count = mysql_fetch_row($count); 
    
    // numero totale di records 
    $tot_records = $res_count[0];
    Quindi questa porzione di codice puoi benissimo eliminarla, sostuendola con questa (la principale)

    codice:
    // esecuzione seconda query con LIMIT 
    $query_limit = "SELECT regioni, provincie, Provincia, Nome, Descrizione FROM ".$prefix."_dati, ".$prefix."_regioni , ".$prefix."_provincie WHERE ".$prefix."_dati.Regione = ".$prefix."_regioni.r_id AND ".$prefix."_dati.Provincia = ".$prefix."_provincie.p_id AND Provincia = '$_GET[prov]' AND Regione = '$_GET[regione]'";
    
    
    $result = mysql_query($query_limit);
    $tot_records = mysql_num_rows($result);
    mysql_free_result($result);
    ...
    Ok, in questo modo effettui il conteggio relativo alla query eseguita e successivamente aggiungi alla variabile $query_limit, il resto, quindi il LIMIT:

    codice:
    ...
    $query_limit .= " LIMIT $primo, $per_page ORDER BY campo DESC";
    A questo punto non ti resta che eseguire la query:

    codice:
    ...
    $result = mysql_query($query_limit);
    Tutto qui,
    Il resto del codice lo dovresti sapere gia' [img]smileys/smiley36.gif[/img]

    A presto,
    Giuseppe Leone

    Spero di essere stato chiaro

  3. #3
    mikyweb non è in linea Novello
    Post
    14
    Ciao master85, intanto ti ringrazio per avermi risposto!!

    Ho provato a fare ciò che mi hai detto ma appena eseguo la query non mi da alcun risultato!!

    Questa è la query che faccio passare nell'url per prelevare i dati a seconda dei valori:

    htt://www.miodominio.com/index.php?regione=$Regione&prov=$Pr ovincia

    Purtroppo non mi da nulla e non capisco come mai!!!

    Potresti aiutarmi a capire qual'è l'errore?

    Grazie ancora

    Ciao

    [img]smileys/smiley11.gif[/img]

  4. #4
    Post
    4,741
    Blogs
    12
    Ciao miky,
    Scusa se rispondo in ritardo...
    Comunque tornando al tuo problema, la mancata visualizzazione di dati potrebbe essere causato da diversi fattori.
    Solitamente per risolvere queste situazioni si cerca di semplificare il piu' possibile la query SQL da eseguire.

    Magari il problema sta proprio li'.

    Ti consiglio di effettuare delle prove e di aggiornarmi in merito.

    A presto,
    Giuseppe Leone

  5. #5
    mikyweb non è in linea Novello
    Post
    14
    grazie per avermi risposto...

    Ho trovato in internet una funzione che mi permette di paginare i miei dati e funziona!!

    Per oggi lascio perdere di capire come mai non funzionava questa paginazione ma domani provo a rimmetterci mano dato che voglio capire il problema.

    Intanto ti ringrazio...

    Ciao [img]smileys/smiley2.gif[/img]

+ Rispondi al Thread

Discussioni simili

  1. Problema installazione Shared add in
    Da GiulioCesare nel forum Microsoft Office, Access, VBA
    Risposte: 8
    Ultimo Post: 17-06-2006, 12:21
  2. problema della RAM... o no?
    Da positiveoutlook nel forum Microsoft Windows
    Risposte: 2
    Ultimo Post: 07-04-2006, 14:49
  3. Newsletter PHP - MySQL: problema!
    Da schizzechea nel forum PHP
    Risposte: 6
    Ultimo Post: 27-10-2005, 17:20

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi