imart Inviato 18 Settembre 2009 Segnala Condividi Inviato 18 Settembre 2009 Ciao ragazzi, ho cercato d'appertutto, ma nonostante ho trovato le soluzioni, non sono riuscito ad adattare la soluzione al mio codice... ho un catalogo libri, e voglio che vengono mostrati 50 libri per pagina... il mio codice attuale e' il seguente, se potete adattarlo vi do un bacio in bocca <div id="mezzo_libri"> <h2>Catalogo libri</h2> <p> <?php $intro = mysql_query("SELECT * FROM catalogo_libri"); $mostra = mysql_fetch_array($intro); echo "$mostra[contenuto]"; ?><br /><br /> <br /> <?php $config['rows_for_line'] = '2'; $r_h = mysql_query('SELECT * FROM libri order by titolo'); echo '<table width="100%">'; $r = 1; for($c=1;;$c++) { $row = mysql_fetch_array($r_h); if($r == 1) echo '<tr>'."\n"; $titolo = str_replace("_"," ",$row['titolo']); $titolo2 = str_replace("%20","_",$row['titolo']); $titolo2 = str_replace(" ","_",$row['titolo']); if ($row['titolo'] == NULL) { echo '<td style="background-image:url(immagini/catalogo.gif);" width="50%"><img style="margin-right: 10px;" src="http://*******immagini/covers/fine.gif" alt="" width="80" height="110" align="left" />'."\n"; echo "<br /><br />Catalogo terminato!"; } else { echo '<td style="background-image:url(immagini/catalogo.gif);" width="50%"><img style="margin-right: 10px;" src="http://***********immagini/covers/'.($row['copertina']).'" alt="'.($row['titolo']).'" width="80" height="110" align="left" />'."\n"; echo "$titolo<br />"; if ($row['autore'] != NULL) { echo "<b>autore</b>: $row[autore]<br />"; } if ($row['editore'] != NULL) { echo "<b>editore</b>: $row[editore]<br />"; } if ($row['pagine'] != NULL) { echo "<b>pagine</b>: $row[pagine]<br />"; } if ($row['prezzo'] != NULL) { echo "<b>prezzo</b>: $row[prezzo] euro<br />"; } echo "<a href=\"dettagli-libro/$titolo2.html\"><div id=\"raquo\">»</div><b><font color=\"red\">visualizza dettagli</font></b></a><br />"; } if ($row['prezzo'] != 0) { include('pagine/bottone-carrello.php'); } if($r == $config['rows_for_line']) {echo '</tr>'."\n";$r = 0;} $r++; if ($c >= mysql_num_rows($r_h) && is_int(($c / $config['rows_for_line']))) break; } echo '</table>'; ?> <br /> <?php echo "<center>Ci sono " .mysql_num_rows($r_h). ' libri nel catalogo'; ?> </p> </div> Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 18 Settembre 2009 Autore Segnala Condividi Inviato 18 Settembre 2009 up per favore e' abbastanza urgente ... Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Cicciokr Inviato 18 Settembre 2009 Segnala Condividi Inviato 18 Settembre 2009 ponendo che chiami la pagina: catalogo.php il codice sarà il seguente: <div id="mezzo_libri"><h2>Catalogo libri</h2> <p> <?php //indichi quanti libri far visualizzare $pag = $_GET['pag']; $limit = 10; //se vuoi far visualizzare più libri aumenta i libri qui sotto $inizio = $_GET['inizio']*$pag; if($inizio == '') { $inizio = 0; } $fine = $_GET['fine']*$pag; if($fine == '') { $fine = $limit - 1; } $intro = mysql_query("SELECT * FROM catalogo_libri LIMIT $inizio, $fine"); $mostra = mysql_fetch_array($intro); echo "$mostra[contenuto]"; ?><br /><br /> <br /> <?php $config['rows_for_line'] = '2'; $r_h = mysql_query('SELECT * FROM libri order by titolo'); echo '<table width="100%">'; $r = 1; for($c=1;;$c++) { $row = mysql_fetch_array($r_h); if($r == 1) echo '<tr>'."\n"; $titolo = str_replace("_"," ",$row['titolo']); $titolo2 = str_replace("%20","_",$row['titolo']); $titolo2 = str_replace(" ","_",$row['titolo']); if ($row['titolo'] == NULL) { echo '<td style="background-image:url(immagini/catalogo.gif);" width="50%"><img style="margin-right: 10px;" src="http://*******immagini/covers/fine.gif" alt="" width="80" height="110" align="left" />'."\n"; echo "<br /><br />Catalogo terminato!"; } else { echo '<td style="background-image:url(immagini/catalogo.gif);" width="50%"><img style="margin-right: 10px;" src="http://***********immagini/covers/'.($row['copertina']).'" alt="'.($row['titolo']).'" width="80" height="110" align="left" />'."\n"; echo "$titolo<br />"; if ($row['autore'] != NULL) { echo "<b>autore</b>: $row[autore]<br />"; } if ($row['editore'] != NULL) { echo "<b>editore</b>: $row[editore]<br />"; } if ($row['pagine'] != NULL) { echo "<b>pagine</b>: $row[pagine]<br />"; } if ($row['prezzo'] != NULL) { echo "<b>prezzo</b>: $row[prezzo] euro<br />"; } echo "<a href=\"dettagli-libro/$titolo2.html\"><div id=\"raquo\">»</div><b><font color=\"red\">visualizza dettagli</font></b></a><br />"; } if ($row['prezzo'] != 0) { include('pagine/bottone-carrello.php'); } if($r == $config['rows_for_line']) {echo '</tr>'."\n";$r = 0;} $r++; if ($c >= mysql_num_rows($r_h) && is_int(($c / $config['rows_for_line']))) break; } echo '</table>'; ?> <br /> <?php echo "<center>Ci sono " .mysql_num_rows($r_h). ' libri nel catalogo'; ?> <? $count = mysql_query("SELECT * FROM catalogo_libri"); $num = mysql_num_rows($count); $nu_pag = $num/$limit; $num_pag = floor($num/$limit); if($num_pag < $nu_pag) { $num_pag = $num_pag + 1; } for($num_pag!=0; $num_pag<=$num_pag; $num_pag++) { echo "<a href=\"catalogo.php?pag=$num_pag\">".$num_pag."</a>"; } ?> </p> </div> dovrebbe andare ^^ Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 18 Settembre 2009 Autore Segnala Condividi Inviato 18 Settembre 2009 nada...non va... Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Cicciokr Inviato 18 Settembre 2009 Segnala Condividi Inviato 18 Settembre 2009 in fondo compaiono i numeri delel varie pagine? comapiono solo 10 risultati? o quanto imposti nel limit? ah ecco un errore è: in alto dopo $pag = $_GET['pag'] metti if($pag == '') { $pag = 1; } Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 18 Settembre 2009 Autore Segnala Condividi Inviato 18 Settembre 2009 mi parte un ciclo infinito che mi mostra numeri infiniti al posto del numero delle pagine... l'errore e' sicuramente qui nel ciclo for: $count = mysql_query("SELECT * FROM catalogo_libri"); $num = mysql_num_rows($count); $nu_pag = $num/$limit; $num_pag = floor($num/$limit); if($num_pag < $nu_pag) { $num_pag = $num_pag + 1; } for($num_pag!=0; $num_pag<=$num_pag; $num_pag++) { echo "<a href=\"catalogo.php?pag=$num_pag\">".$num_pag."</a>"; } Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gianluck Inviato 19 Settembre 2009 Segnala Condividi Inviato 19 Settembre 2009 Puoi spiegare un po' meglio il problema? Macbook White 13" 2,0GHz || iMac 20" 2,4 GHz || iPhone 3G 8Gb Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 19 Settembre 2009 Autore Segnala Condividi Inviato 19 Settembre 2009 utilizzando il codice qui sotto ottengo il risultato dell'immagine... il risultato e' questo... ovvero, i risultati sono tutti i record presenti nella tabella libri...e in fondo, invece che suddividere i risultati e paginare mi escono numeri infiniti causando la non caricatura del CSS e il flood del browser che si impalla... Il codice utilizzato (quello di Cicciokr) e' qui sotto: <div id="mezzo_libri"> <h2>Catalogo libri</h2> <p> <?php //indichi quanti libri far visualizzare $pag = $_GET['pag']; if($pag == '') { $pag = 1; } $limit = 10; //se vuoi far visualizzare più libri aumenta i libri qui sotto $inizio = $_GET['inizio']*$pag; if($inizio == '') { $inizio = 0; } $fine = $_GET['fine']*$pag; if($fine == '') { $fine = $limit - 1; } $intro = mysql_query("SELECT * FROM catalogo_libri LIMIT $inizio, $fine"); $mostra = mysql_fetch_array($intro); echo "$mostra[contenuto]"; ?><br /><br /> <br /> <?php $config['rows_for_line'] = '2'; $r_h = mysql_query('SELECT * FROM libri order by titolo'); echo '<table width="100%">'; $r = 1; for($c=1;;$c++) { $row = mysql_fetch_array($r_h); if($r == 1) echo '<tr>'."\n"; $titolo = str_replace("_"," ",$row['titolo']); $titolo2 = str_replace("%20","_",$row['titolo']); $titolo2 = str_replace(" ","_",$row['titolo']); if ($row['titolo'] == NULL) { echo '<td style="background-image:url(immagini/catalogo.gif);" width="50%"><img style="margin-right: 10px;" src="http://*******immagini/covers/fine.gif" alt="" width="80" height="110" align="left" />'."\n"; echo "<br /><br />Catalogo terminato!"; } else { echo '<td style="background-image:url(immagini/catalogo.gif);" width="50%"><img style="margin-right: 10px;" src="http://***********immagini/covers/'.($row['copertina']).'" alt="'.($row['titolo']).'" width="80" height="110" align="left" />'."\n"; echo "$titolo<br />"; if ($row['autore'] != NULL) { echo "<b>autore</b>: $row[autore]<br />"; } if ($row['editore'] != NULL) { echo "<b>editore</b>: $row[editore]<br />"; } if ($row['pagine'] != NULL) { echo "<b>pagine</b>: $row[pagine]<br />"; } if ($row['prezzo'] != NULL) { echo "<b>prezzo</b>: $row[prezzo] euro<br />"; } echo "<a href=\"dettagli-libro/$titolo2.html\"><div id=\"raquo\">»</div><b><font color=\"red\">visualizza dettagli</font></b></a><br />"; } if ($row['prezzo'] != 0) { include('pagine/bottone-carrello.php'); } if($r == $config['rows_for_line']) {echo '</tr>'."\n";$r = 0;} $r++; if ($c >= mysql_num_rows($r_h) && is_int(($c / $config['rows_for_line']))) break; } echo '</table>'; ?> <br /> <?php echo "<center>Ci sono " .mysql_num_rows($r_h). ' libri nel catalogo'; ?> <? $count = mysql_query("SELECT * FROM catalogo_libri"); $num = mysql_num_rows($count); $nu_pag = $num/$limit; $num_pag = floor($num/$limit); if($num_pag < $nu_pag) { $num_pag = $num_pag + 1; } for($num_pag!=0; $num_pag<=$num_pag; $num_pag++) { echo "<a href=\"catalogo.php?pag=$num_pag\">".$num_pag."</a>"; } ?> </p> </div> Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Cicciokr Inviato 19 Settembre 2009 Segnala Condividi Inviato 19 Settembre 2009 prova a mettere il for cosi for($num_pag=0; $num_pag==$num_pag; $num_pag++) Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gianluck Inviato 19 Settembre 2009 Segnala Condividi Inviato 19 Settembre 2009 ma scusa for($num_pag=0; $num_pag==$num_pag; $num_pag++) è infinito perchè $num_pag==$num_pag è sempre vero... devi mettere $PAG_MAX = $elementiTot/$elementiPerPagina; for($num_pag=0; $num_pag<$PAG_MAX; $num_pag++) Macbook White 13" 2,0GHz || iMac 20" 2,4 GHz || iPhone 3G 8Gb Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 19 Settembre 2009 Autore Segnala Condividi Inviato 19 Settembre 2009 grazie ad entrambi, con il metodo di Gianluk non da nessun errore, ma se io ho definito di mostrare 2 libri per pagina, me li mostra tutti i 17 presenti... Tenete presente che i libri vengono selezionati dalla tabella "libri" e non catalogo_libri... comunque, anche correggendo questo piccolo errore, non seleziona correttamente... Ecco qui il codice semi-funzionante con l'ultima modifica di Gianluk: <div id="mezzo_libri"> <h2>Catalogo libri</h2> <p> <?php // LASCIATE PERDERE STA QUERY $intro = mysql_query("SELECT * FROM catalogo_libri"); $mostra = mysql_fetch_array($intro); echo "$mostra[contenuto]"; ?><br /><br /> <br /> <?php //indichi quanti libri far visualizzare $pag = $_GET['pag']; if($pag == '') { $pag = 1; } $limit = 2; //se vuoi far visualizzare più libri aumenta i libri qui sotto $inizio = $_GET['inizio']*$pag; if($inizio == '') { $inizio = 0; } $fine = $_GET['fine']*$pag; if($fine == '') { $fine = $limit - 1; } $config['rows_for_line'] = '2'; $r_h = mysql_query('SELECT * FROM libri order by titolo limit $inizio, $fine'); echo '<table width="100%">'; $r = 1; for($c=1;;$c++) { $row = mysql_fetch_array($r_h); if($r == 1) echo '<tr>'."\n"; $titolo = str_replace("_"," ",$row['titolo']); $titolo2 = str_replace("%20","_",$row['titolo']); $titolo2 = str_replace(" ","_",$row['titolo']); if ($row['titolo'] == NULL) { echo '<td style="background-image:url(immagini/catalogo.gif);" width="50%"><img style="margin-right: 10px;" src="http://*******immagini/covers/fine.gif" alt="" width="80" height="110" align="left" />'."\n"; echo "<br /><br />Catalogo terminato!"; } else { echo '<td style="background-image:url(immagini/catalogo.gif);" width="50%"><img style="margin-right: 10px;" src="http://***********immagini/covers/'.($row['copertina']).'" alt="'.($row['titolo']).'" width="80" height="110" align="left" />'."\n"; echo "$titolo<br />"; if ($row['autore'] != NULL) { echo "<b>autore</b>: $row[autore]<br />"; } if ($row['editore'] != NULL) { echo "<b>editore</b>: $row[editore]<br />"; } if ($row['pagine'] != NULL) { echo "<b>pagine</b>: $row[pagine]<br />"; } if ($row['prezzo'] != NULL) { echo "<b>prezzo</b>: $row[prezzo] euro<br />"; } echo "<a href=\"dettagli-libro/$titolo2.html\"><div id=\"raquo\">»</div><b><font color=\"red\">visualizza dettagli</font></b></a><br />"; } if ($row['prezzo'] != 0) { include('pagine/bottone-carrello.php'); } if($r == $config['rows_for_line']) {echo '</tr>'."\n";$r = 0;} $r++; if ($c >= mysql_num_rows($r_h) && is_int(($c / $config['rows_for_line']))) break; } echo '</table>'; ?> <br /> <?php echo "<center>Ci sono " .mysql_num_rows($r_h). ' libri nel catalogo'; ?> <? $count = mysql_query("SELECT * FROM libri"); $num = mysql_num_rows($count); $nu_pag = $num/$limit; $num_pag = floor($num/$limit); if($num_pag < $nu_pag) { $num_pag = $num_pag + 1; } $PAG_MAX = $elementiTot/$elementiPerPagina; for($num_pag=0; $num_pag<$PAG_MAX; $num_pag++) { echo "<a href=\"catalogo.php?pag=$num_pag\">".$num_pag."</a>"; } ?> </p> </div> Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gianluck Inviato 19 Settembre 2009 Segnala Condividi Inviato 19 Settembre 2009 beh questo metodo è solo per mostrare le pagine sotto con i relativi link e dovrebbe funzionare... se vuoi mostrare i libri dovresti fare un algoritmo del tipo for($c=1;;$c++) { diventa $pagine = $libriTotale/$elementiPerPagina; $fine = (($libriTotale/$pagine)*$pagina); $partenza = $fine-$elementiPerPagina; for($c=$partenza;$c<$arrivo;$c++){ e mostri il libro all'indice $c Macbook White 13" 2,0GHz || iMac 20" 2,4 GHz || iPhone 3G 8Gb Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 19 Settembre 2009 Autore Segnala Condividi Inviato 19 Settembre 2009 niente ragazzi non mostra niente adesso... A me il codice che ho fatto io sembra un po' troppo incasinato... da principiante. L'effetto che vorrei ottenere e' questo e fin'ora funziona perfettamente...: - Mostra i libri dalla tabella libri - Mostra 2 libri per riga e vai a capo - Mostra 20 libri per pagina, e suddividile per il totale dei libri. L'ultimo punto non sono riuscito, mentre per le news, faq e il resto funziona perfettamente... Penso ci sia qualcosa nel codice di sbagliato, riguardante qualche pezzo annidato... Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gianluck Inviato 19 Settembre 2009 Segnala Condividi Inviato 19 Settembre 2009 - Mostra 20 libri per pagina, e suddividile per il totale dei libri. hai provato l'algoritmo che ti ho scritto? Macbook White 13" 2,0GHz || iMac 20" 2,4 GHz || iPhone 3G 8Gb Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 19 Settembre 2009 Autore Segnala Condividi Inviato 19 Settembre 2009 si non mostra niente... mi dice solo che ci sono 17 libri nel catalogo... Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 22 Settembre 2009 Autore Segnala Condividi Inviato 22 Settembre 2009 up per favore Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Cicciokr Inviato 23 Settembre 2009 Segnala Condividi Inviato 23 Settembre 2009 imartr io ho riguardato il tuo codice.. ed ho visto che stai facendo un copia incolla.. senza esplicitare variabili o altro.. cioè l'altro utente ti ha scritto $pag_max = $elementiTot/$elementiperpagina; lui ti ha scritto le variabili che dovevano andarci li.. ma ovviamente nel tuo codice sono altre due le variabili.. e comunque avevo già scritto quel codice.. guardare variabile nu_pag per il resto stessa cosa.. rivedi le varibaili!!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
imart Inviato 23 Settembre 2009 Autore Segnala Condividi Inviato 23 Settembre 2009 ok ora stavo provando con il codice presente qui http://php.html.it/articoli/leggi/857/paginazione-di-dati/3/ ma non ce' verso che funziona... Belli come la vita, neri come la morte. FOLGORE!!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Cicciokr Inviato 23 Settembre 2009 Segnala Condividi Inviato 23 Settembre 2009 ma guarda che quel codice è esatto.. sei tu che devi modificare i nomi delel variabili.. non puoi fare copia incolla.. dai su.. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gianluck Inviato 23 Settembre 2009 Segnala Condividi Inviato 23 Settembre 2009 Io non l'ho testato il mio codice, l'ho scritto "di getto" ma ha una logica che dovrebbe funzionare, quindi controlla le variabili come ha detto Cicciokr, io i nomi li ho messi per farti capire i valori! Macbook White 13" 2,0GHz || iMac 20" 2,4 GHz || iPhone 3G 8Gb Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.