Visualizzazione dei risultati da 1 a 8 su 8

Discussione: paginazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518

    paginazione

    Buonasera, ho un problema con uno script per impaginare i dati:

    info_prodotti.php
    Codice PHP:
    <?php include("pag.php");?>                                                                  <?php
     
    if ($all_pages 1){   if ($pag 1)   {     echo "[b]<span class=\"menurosso12\"><a href=\"pag_prodotto.php?pag=" $pag1 "&id_affiliato=$id_affiliato\">";     echo "<img src =\"../images/indietro.jpg\" border=\"0\"></a></span>[/b]";   }    if ($all_pages $pag)   {     echo "[b]<span class=\"menurosso12\"><a href=\"pag_prodotto.php?pag=" $pag2 "&id_affiliato=$id_affiliato\">";     echo "<img src =\"../images/avanti.jpg\" border=\"0\"></a></span>[/b]

    "
    ;   }  } ?>
    pag.php
    Codice PHP:
    <?php include_once("../inclusioni/conf.php");    // Creo una variabile dove imposto il numero di record  // da mostrare in ogni pagina 
    $x_pag 1;  // Recupero il numero di pagina corrente. // Generalmente si utilizza una querystring 
    $pag $_GET['pag'];  // Controllo se $pag è valorizzato... // ...in caso contrario gli assegno valore 1
     
    if (!$pag$pag 1;   // Mi connetto al database 
    $conn mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db($db$conn);  // Uso mysql_num_rows per contare le righe presenti // all'interno della tabella agenda $all_rows = mysql_num_rows(mysql_query("SELECT id FROM allegato WHERE id_affiliato='$id_affiliato' AND Size>0 AND abilitato='si'"));  // Tramite una semplice operazione matematica definisco // il numero totale di pagine $all_pages = ceil($all_rows / $x_pag);  // Calcolo da quale record iniziare $first = ($pag - 1) * $x_pag;  // Recupero i record per la pagina corrente... // utilizzando LIMIT per partire da $first e contare fino a $x_pag $rs = mysql_query("SELECT * FROM allegato WHERE id_affiliato='$id_affiliato' AND id_prodotto='$id_prodotto' LIMIT $first, $x_pag"); $nr = mysql_num_rows($rs);    $pag1= ($pag - 1);   $pag2= ($pag + 1); // Se le pagine totali sono più di 1... // stampo i link per andare avanti e indietro tra le diverse pagine!   if ($nr != 0){   for($x = 0; $x < $nr; $x++){     $row = mysql_fetch_assoc($rs);     $articolo = $row['articolo'];     $dim = $row['dim'];     $materiale = $row['materiale'];     $prezzo = $row['prezzo'];     $pr_online = $row['pr_online'];     $id = $row['id'];     $descrizione = $row['descrizione'];     echo "<table width='100%'><tr>";     echo "<td align='left' class='fontnero'>$descrizione

    </td></tr>";     echo"<tr>";     echo "<td align='center'><img src =\"mostra_prodotti_big.php?id=" $row['id'] ."\"> </td>";     echo "</tr></table>";   } }else{   echo "Nessun record trovato!"; }  // Chiudo la connessione ad DB mysql_close($conn); ?>
    id_affiliato.php e id_prodotto.php, li recupero tramite $_GET, la paginazione funziona in parte, perchè se ad esempio ho 10 prodotti, e id_prodotto=5, il primo record è il numero 5, mentre se clicco sul pulsante avanti, mi fa vedere il numero 2, invece io vorrei vedere il numero 6.

  2. #2
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Non reinventare la ruota: la paginazione è già stata fatta 1000 volte, alcune di queste anche bene.
    Io ti suggerisco questo insieme di classi: https://github.com/KnpLabs/knp-components

    Se invece sei uno di quelli che pensa che php sia ancora rimasto alla preistoria, puoi anche usare questa, che ai suoi tempi era buona: http://pear.php.net/manual/en/packag...ager.intro.php

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    Grazie per i link, ma purtroppo non ho molto tempo a disposizione, per rimettere mano al codice, vorrei solamente integrare in quella che utilizzo, la possibilità di ripartire da in id che gli passo io.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    Codice PHP:
    <?php   
    include("../inclusioni/conf.php");      
    $database mysql_connect($dbhost,$dbuser,$dbpass);      mysql_select_db($db,$database);      
    $rslt_login mysql_query("SELECT count(id) AS num_rec FROM allegato WHERE id_affiliato='1234' AND id_prodotto='233' ORDER BY id ASC") or die("Errore di query verifica."); $record mysql_fetch_array($rslt_login); 
    echo 
    "record trovati: ".$record['num_rec'];      
    ?>
    Con questo codice mi restituisce logicamente 1, ma se io volessi sapere, ordinando in modo crescente, a quale posizione corrisponde nel db id_prodotto=233, per id_affiliato=1234, come dovrei modificare lo script?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    up

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Originariamente inviato da desila
    Grazie per i link, ma purtroppo non ho molto tempo a disposizione, per rimettere mano al codice, vorrei solamente integrare in quella che utilizzo, la possibilità di ripartire da in id che gli passo io.
    Non stai perdendo più tempo cercando una soluzione al problema sul codice che già hai invece di integrarne uno sicuramente funzionante?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    Hai sicuramente ragione, ma con questa ultima parte di codice, se riesco ad individuare la posizione ho risolto.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    non so + dove cercare, proprio non riesco a paginare una serie di record partendo da un id stabilito, qualcuno mi può aiutare?

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.