- Home
- Categorie
- Coding e Sistemistica
- PHP
- Divisione in pagine dei risultati: perchè la 2a pagina è vuota??
-
CODICE PAGINA "CERCA.PHP" (ricerca per marca) Modificato da me
<br> <div id="white90"> <p class="red"><strong>Affina la Ricerca...</strong></p> <p class="blu"><strong>Marca:</strong> <?php print $marca2; ?></p> <form action="cerca2.php" name="ric" method="post"> <p class="blu"> Seleziona il modello che ti interessa: <select name="modello" class="textbox"> <?php // Determino la variabile Marca $marca2 = $_POST["marcax"]; if ($marca2 ==""){ $marca2=$_GET["marca"]; } $marca2 = str_replace ("'","",$marca2); //preparo la query al database per selezionare gli annunci che mi interessano $select="DISTINCT MODELLO"; $from="annunci"; $where="MARCA ='".$marca2."' and ADI = 0"; $orderby ="MODELLO"; include('../functions/selectorder.php'); while ($rec = mysql_fetch_assoc ($queryselectorder)){ $modello = $rec["MODELLO"]; ?> <option><?php print $modello; ?></option> <?php } ?> <?php //faccio il calcolo di quanti annunci ricavo in base ai parametri della query $select2="COUNT(*) as Quante"; $from2="annunci"; //la var. where2 è uguale a where, cioè "tutti gli annunci di quella marca che hanno //il valore ADI = 0 $where2=$where; include('../functions/select2.php'); $rec2 = mysql_fetch_assoc ($queryselect2); $output = $rec2["Quante"]; //Ricavo il numero della pagina in cui mi trovo $pagina = ($_GET["pag"] != "") ? (int)$_GET["pag"] : 1; // Specifico quanti record per pagina $recpagina = 10; // Specifico da che record inizio a prelevare i dati $inizio = ($pagina-1)*$recpagina; // Conto le pagine totali $totalepagine=ceil($output/$recpagina); ?> </select> <input name="marca2" type="hidden" value="<?php print $marca2; ?>"> <input name="c" type="submit" value="Cerca" class="textbox"/> </form> </p> </div> <?php if ($output > $recpagina){ ?> <div class="centro"> <p class="blu"> Pagina Attuale: <?php print $pagina; ?><br><br>Pagine Totali: <?php print $totalepagine; ?><br><br> </p> <?php $pagname="cerca.php?"; include('../include/paginazione.php'); ?> </div> <?php } ?> <?php $select="ID, MARCA, MODELLO, STATO, ANNO, MESE, PREZZO, TIPO"; $from="annunci"; $where=$where2; $orderby ="TIPO, ID desc"; $limit="$inizio, $recpagina"; include('../functions/selectlimit.php'); while ($rec = mysql_fetch_assoc ($queryselectlimit)){ $idann = $rec["ID"]; $marca = $rec["MARCA"]; $modello = $rec["MODELLO"]; $anno = $rec["ANNO"]; $mese = $rec["MESE"]; $stato = $rec["STATO"]; $prezzo = $rec["PREZZO"]; $tipo = $rec["TIPO"]; ?> <div id="annunci"> <div id="blank60"> <p class="blu"> <br /> <?php print $marca; ?><br /><br /> <?php print $modello; ?><br /><br /> <?php print $anno; ?><br /><br /> <?php print $mese; ?><br /><br /> <?php print $stato; ?><br /><br /> <?php print $prezzo; ?><br /><br /> >> <strong><?php print $tipo; ?></strong><br /><br /> </p> </div> <?php // Seleziono le foto pubblicate dall'utente $selectl="FOTO"; $froml="fotoann"; $wherel="IDANN=".$idann; $orderbyl="rand()"; $limitl="1"; include('../functions/selectlimit2.php'); $fpubb = mysql_fetch_assoc ($queryselectlimitl); $foto = $fpubb ["FOTO"]; ?> <div id="blank40"> <?php if ($foto !=""){ ?> <br /><br /> <div class="centro"> <a href="../annunci/singolo.php?id=<?php print $idann; ?>"><img src="../include/tnp.php?image=../fotoann/<?php print $foto; ?>&tnsize=150" alt="Clicca qui per esaminare l'annuncio completo..." class="img"></a> </div> <?php } else{ ?> <br /> <a href="../annunci/singolo.php?id=<?php print $idann; ?>"><img src="../skin/senzafoto.jpg" class="img"/></a> <?php } ?> </div> </div> <?php if ($titolouser =="Admin"){?> <div class="centro"> <form action="admdel.php" method="post" name="d"> <input name="id" type="hidden" value="<?php print $idann; ?>"> <input name="canc" type="submit" value="Cancella Annuncio" class="textbox"> </form> </div> <?php } ?> <?php } ?>
-
FILE "CERCA.PHP" ORIGINALE
<?php $marca2 = $_POST["marcax"]; if ($marca2 ==""){ $marca2=$_GET["marca"]; } $marca2 = str_replace ("'","",$marca2); ?> <html> <head> <title><?php print $ws; ?> - Ricerca Annuncio</title> <?php // Includo i meta tags include('../include/meta.php'); // Includo il css include('../include/css.php'); ?> </head> <body> <div id="box"> <div id="top"> <?php // Includo la testa include('../include/top.php'); ?> </div> <div class="clearer"></div> <div id="contenuto"> <?php // Login/Benvenuto include('../include/log.php'); ?><br> <img src="../skin/ricerca.jpg"> <div id="white90"> <p class="red"><strong>Affina la Ricerca...</strong></p> <p class="blu"><strong>Marca:</strong> <?php print $marca2; ?></p> <form action="cerca2.php" name="ric" method="post"> <p class="blu"> Seleziona il modello che ti interessa: <select name="modello" class="textbox"> <?php $select="DISTINCT MODELLO"; $from="annunci"; $where="MARCA ='".$marca2."' and ADI = 0"; $orderby ="MODELLO"; include('../functions/selectorder.php'); while ($rec = mysql_fetch_assoc ($queryselectorder)){ $modello = $rec["MODELLO"]; ?> <option><?php print $modello; ?></option> <?php } ?> </select> <input name="marca2" type="hidden" value="<?php print $marca2; ?>"> <input name="c" type="submit" value="Cerca" class="textbox"/> </form> </p> </div> <div id="white90"> <p class="red"><strong>Risultati Parziali...</strong><br> per visualizzare l'annuncio completo clicca sulla freccia corrispondente... </p> <?php $select="ID, MODELLO, STATO, PREZZO, TIPO"; $from="annunci"; $where="MARCA ='".$marca2."' and ADI = 0"; $orderby ="TIPO, MARCA, MODELLO, PREZZO"; include('../functions/selectorder.php'); while ($rec = mysql_fetch_assoc ($queryselectorder)){ $idann = $rec["ID"]; $modello = $rec["MODELLO"]; $stato = $rec["STATO"]; $prezzo = $rec["PREZZO"]; $tipo = $rec["TIPO"]; ?> <?php // Seleziono le foto pubblicate dall'utente $selectl="FOTO"; $froml="fotoann"; $wherel="IDANN=".$idann; $orderbyl="rand()"; $limitl="1"; include('../functions/selectlimit2.php'); $fpubb = mysql_fetch_assoc ($queryselectlimitl); $foto = $fpubb ["FOTO"]; ?> <div id="blank20"> <?php if ($foto !=""){ ?><br> <div id="centro"><a href="../annunci/singolo.php?id=<?php print $idann; ?>"><img src="../include/tnp.php?image=../fotoann/<?php print $foto; ?>&tnsize=50" alt="Clicca qui per esaminare l'annuncio completo..." class="img"></a> </div> <?php } else{ ?> <br /> <div id ="centro"><a href="../annunci/singolo.php?id=<?php print $idann; ?>"><img src="../skin/freccia.jpg" class="img" alt="Clicca qui per esaminare l'annuncio completo..." /></a></div> <?php } ?> </div> <?php if ($tipo =="Concessionaria"){ ?> <div id="blank80c"> <?php } else { ?> <div id="blank80"> <?php } ?> <p class="blu"> <strong>Auto: </strong><?php print $marca2." ".$modello; ?><br> <strong>Stato:</strong> <?php print $stato; ?><br> <strong>Prezzo:</strong> <?php print $prezzo; ?>, 00 ?<br> <strong>Venditore:</strong> <?php print $tipo; ?><br><br> </p> </div> <img src="../skin/separatore.jpg"><br><br> <?php } ?> </div> </div> <div id="menu"> <?php // Includo il menu include('../include/menu.php'); ?>
-
puoi postare il file paginazione.php?
-
Eccolo... ma il problema non credo sia lì
<p class="red"> <?php // Caso pagina 1 if ($pagina == 1){ for ($i = 1; $i <= 5; $i++){ if ($i == $pagina){ ?> <?php } else { ?> <?php } if ($i <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $i; ?>"><strong><?php print $i; ?></strong></a> <?php } } ?> <?php $next = $pagina + 5; if ($next <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina + 5; ?>"><strong>...</strong></a> <?php } ?> <?php } // Caso pagina 2 elseif ($pagina == 2){ for ($i = 1; $i <= 5; $i++){ if ($i == $pagina){ ?> <?php } else { ?> <?php } if ($i <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $i; ?>"><strong><?php print $i; ?></strong></a> <?php } } ?> <?php $next = $pagina + 4; if ($next <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina + 4; ?>"><strong>...</strong></a> <?php } ?> <?php } // Caso pagina >= 3 else{ ?> <?php if ($pagina >= 4){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina - 3; ?>"><strong>...</strong></a> <?php } ?> <?php for ($i = 2; $i > 0; $i-- ){ if ($pagina - $i > 0){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina - $i; ?>"><strong><?php print $pagina - $i; ?></strong></a> <?php } } ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina; ?>"><strong><?php print $pagina; ?></strong></a> <?php for ($i = 1; $i < 3; $i++ ){ if ($pagina + $i <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina + $i; ?>"><strong><?php print $pagina + $i; ?></strong></a> <?php }} ?> <?php $next = $pagina + 3; if ($next <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina + 3; ?>"><strong>...</strong></a> <?php } ?> <?php } ?> </p>
Grazie mille della collaborazione!
-
Eccolo... ma il problema non credo sia lì
<p class="red"> <?php // Caso pagina 1 if ($pagina == 1){ for ($i = 1; $i <= 5; $i++){ if ($i == $pagina){ ?> <?php } else { ?> <?php } if ($i <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $i; ?>"><strong><?php print $i; ?></strong></a> <?php } } ?> <?php $next = $pagina + 5; if ($next <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina + 5; ?>"><strong>...</strong></a> <?php } ?> <?php } // Caso pagina 2 elseif ($pagina == 2){ for ($i = 1; $i <= 5; $i++){ if ($i == $pagina){ ?> <?php } else { ?> <?php } if ($i <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $i; ?>"><strong><?php print $i; ?></strong></a> <?php } } ?> <?php $next = $pagina + 4; if ($next <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina + 4; ?>"><strong>...</strong></a> <?php } ?> <?php } // Caso pagina >= 3 else{ ?> <?php if ($pagina >= 4){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina - 3; ?>"><strong>...</strong></a> <?php } ?> <?php for ($i = 2; $i > 0; $i-- ){ if ($pagina - $i > 0){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina - $i; ?>"><strong><?php print $pagina - $i; ?></strong></a> <?php } } ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina; ?>"><strong><?php print $pagina; ?></strong></a> <?php for ($i = 1; $i < 3; $i++ ){ if ($pagina + $i <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina + $i; ?>"><strong><?php print $pagina + $i; ?></strong></a> <?php }} ?> <?php $next = $pagina + 3; if ($next <= $totalepagine){ ?> <a href="<?php print $pagname; ?>pag=<?php print $pagina + 3; ?>"><strong>...</strong></a> <?php } ?> <?php } ?> </p>
Grazie mille della collaborazione!
-
Scusami, ma il problema sta proprio qui.
Facciamo una piccola analisi.
Compilo il form
Clicco su "CERCA"
Lo script analizza i dati inviati dal form tramite POST e scrive la query
Vengono visualizzati i risultati
Clicco su pagina due
Lo script che fa? Non ha dati passati ne da POST ne da GET[php]$marca2 = $_POST["marcax"];
if ($marca2 ==""){ $marca2=$_GET["marca"]; }[/php]
$marca sarà sempre uguale a ''
-
...quindi come dovrei modificarlo?? Mi intreccio con quelle virgolette e quegli apici
-
Ci sono diversi modi
uno è questo:
passa tramite url i valori<a href="<?php print $pagname; ?>pag=<?php print $i; ?>**&marca=$marca&secondo_valore=$secondo_valore**"><strong><?php print $i; ?></strong></a>
-
Allora.. facciamo un esempio concreto: se ho ben capito io dovrei sostituire questa parte
<?php if ($output > $recpagina){ ?> <div class="centro"> <p class="blu"> Pagina Attuale: <?php print $pagina; ?><br><br>Pagine Totali: <?php print $totalepagine; ?><br><br> </p> <?php $pagname="cerca.php?"; include('../include/paginazione.php'); ?> </div> <?php } ?>
O meglio, questa riga
Pagina Attuale: <?php print $pagina; ?><br><br>Pagine Totali: <?php print $totalepagine; ?>
Con il codice che hai scritto tu.
Dove- $pagname sarebbe l'equivalente del mio $pagina (quindi devo modificarlo con $pagina)
- $i non ho capito cosa sia
- $marca ok va bene
- $secondo_valore devo mettere l'altro valore che la pagina dovrebbe "portarsi dietro" ma non capisco se dev'essere il numero dei risultati che restano...:?
abbi pazienza!!! mi sto impegnando!
-
@Eddieangel said:
- $pagname sarebbe l'equivalente del mio $pagina (quindi devo modificarlo con $pagina)
Nel tuo codice vi è : $pagname="cerca.php?";
ossia il file di riferimento
@Eddieangel said: - $i non ho capito cosa sia
Nel tuo codice vi è: for ($i = 1; $i <= 5; $i++){
ossia un contatore per visualizzare le pagina da 1 a 5
@Eddieangel said: - $marca ok va bene
Ok
@Eddieangel said: - $secondo_valore devo mettere l'altro valore che la pagina dovrebbe "portarsi dietro" ma non capisco se dev'essere il numero dei risultati che restano...:?
Tutti i valori presenti nel modulo di ricerca.
Il link deve essere di questo tipo
<a href="cerca.php?pag=<?php echo $i; ?>&primo_valore=<?php echo $primo_valore; ?>&secondo_valore=<?php echo $secondo_valore; ?>>"><?php echo $i; ?></a>
- $pagname sarebbe l'equivalente del mio $pagina (quindi devo modificarlo con $pagina)