Ragazzi salve...
Ho un problema con un sito che ho consegnato e dovrei risolvere questo problema al più presto ma proprio non ci riesco.
Ho seguito questa guida presa su HTML.it per fare la paginazione dei risultati estratti dal db.
ecco il link del tutorial
potete vedere il sito che ho realizzato a questa pagina.
http://www.companypage.it/annunci.php
come vedete in queta pagina la paginazione funziona correttamente e si naviga tranquillamente.
Adesso se vedete in alto ci sono delle combo box per scegliere regione provincia comune e categoria. per fare una ricerca in db.
Se provate a selezionare
regione=Campania
provincia=Benevento
Comune=benevento
Categoria=none
e premete su cerca vi porterà in una nuova pagina php di nome "annuncisel.php"dove seleziona gli annunci di quel comune e di quella categoria.
tutto funziona perfettamente solo che in questo caso quando navigo con la paginazione cioè dalla pagina 2 vado alla pagina 1 non mi visualizza il resto degli annunci. Perchè?
ho fatto solo delle piccole modifiche al codice preso da esempio.
Vi posto il codice della pagina annuncisel.php per farvi vedere come è strutturata.
Codice PHP:
<?php
ob_start();
$combo_txt = $_POST['cap']; //qui recupero la variabile che mi viene passata del nome del comune
$categories = $_POST['categories'];//qui recupero la variabile che mi viene passata del tipo di categoria
$scelta2=$combo_txt; //assegno alla variabile scelata 2 il valore del comune per la ricerca nel db
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Company Page</title>
<link rel="stylesheet" type="text/css" href="css/generale.css" />
</head>
<body><div id="wrapper">
<div id="header">
[img]graficasito/testatina.jpg[/img]
</div>
<div id="content">
[img]graficasito/testata.jpg[/img]
</br></br>
//qui ci sono le combobox del mella ricerca che sono presenti anche nella pagina annunci
[img]graficasito/selezione.jpg[/img]
<form name=sel action='annuncisel.php' method='post' >
<?php
echo '<table>';
echo '<tr><td><font id=provincia><select name="provincia" class="scelta" style="width:140px">';
echo '<option value="0">============</option>' ;
echo '</select></font></td>';
echo '<td><font id=comune><select name="comune" class="scelta" style="width:140px">';
echo '<option value="0">=== none ===</option>' ;
echo '</select></font></td>';
echo '<td><font id=cap><select name="cap" class="scelta" style="width:140px">';
echo '<option value="0">=== none ===</option>' ;
echo '</select></font></td>';
//combo relativa alla tipologia----------------------------------------------------------------
include("config.inc.php");
echo'<td><select name="categories" style="width:140px">';
$res=mysql_query("select categoria from categoria ORDER BY categoria");
if(mysql_num_rows($res)==0) echo "there is no data in table..";
else
for($i=0;$i<mysql_num_rows($res);$i++) {
$row=mysql_fetch_assoc($res);
echo"<option>$row[categoria]</option>";
}
echo'</select></td>';
//-------------------------------------------------------------------------------------------------
?>
<td><input type="submit" value="Cerca Annunci"></td>
</tr>
<?php
echo "</form>";
echo "</table>";
?>
<div class="pezzo">
<?php
function substrwords($text,$maxchar,$end='...'){
if(strlen($text)>$maxchar){
$words=explode(" ",$text);
$output = '';
$i=0;
while(1){
$length = (strlen($output)+strlen($words[$i]));
if($length>$maxchar){
break;
}else{
$output = $output." ".$words[$i];
++$i;
};
};
}else{
$output = $text;
}
return $output.$end;
}
?>
<?php
//IN QUESTO PUNTO HO LA PAGINAZIONE VERA E PROPRIA CON QUESTE DIFFERENZE CHE ORA DESCRIVO
include("config.inc.php");
// esecuzione prima query
//QUESTO IF CONTROLLA SE LA CATEGORIA E' VUOTA OPPURE NO PER FARE IL COUNT DEI RECORD
if($categories=='-none-'){
$count = mysql_query("SELECT COUNT(id) FROM annunci WHERE indice= '$scelta2'");
}else{
$count = mysql_query("SELECT COUNT(id) FROM annunci WHERE indice= '$scelta2' AND categoria='$categories'");
}
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[0];
// risultati per pagina(secondo parametro di LIMIT)
$per_page = 3;
// 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=\"left\">\n<table>\n";
// esecuzione seconda query con LIMIT
//QUESTA è UN'ALTRA DIFFERENZA PERCHè NELLA QUERY PASSO IL VALORE SCELTA E DELLA CATEGORIA PER FARE LA SELEZIONE DEI RECORD DEL COMUNE DESIDERATO
//$query_limit = mysql_query("SELECT id,img,annuncio,autore FROM annunci WHERE indice= '$scelta2' LIMIT $primo, $per_page");
if($categories=='-none-'){
$query_limit = mysql_query("SELECT id,img,annuncio,autore,img2,img3,img4,img5 FROM annunci LIMIT $primo, $per_page");
}else{
$query_limit = mysql_query("SELECT id,img,annuncio,autore,img2,img3,img4,img5 FROM annunci WHERE indice= '$scelta2' AND categoria='$categories' LIMIT $primo, $per_page");
}
//VISUALIZZO I RISULTATI
while($row = mysql_fetch_array($query_limit)) {
//echo "<a href=\"annunci.php?id=" . $results['id'] . "\">" . $results['nome'] . "</a>";
$campo = "$row[annuncio]";
$output = nl2br($campo);
echo "<div class=\"news\">";
echo "<div class=\"autore\">$row[autore]
</div>";
echo "<img src=graficasito/sepa.png>";
echo "<center>";
echo "<div class=\"immagine\">
<a href=\"public/$row[img]\" onmouseup=\"MM_openBrWindow('public/$row[img]','popup','top=100,left=100')\">
[img]public/$row[img][/img]]\"></a> </br></br></div>";
echo "</center>";
$output_interot=$output;
$output = substrwords($output,150);
echo "<div class=\"annuncio\">$output</div>";
echo "<a href=\"annuncigrande.php?autore=$row[autore]&immagine=public/$row[img]&immagine2=public/$row[img2]&immagine3=public/$row[img3]&immagine4=public/$row[img4]&immagine5=public/$row[img5]&testo=$output_interot\"><img border=\"0\" src=graficasito/visualizza.png></a>";
echo "<img src=graficasito/sepa.png>";
echo "</div>";
//echo "<div class=\"immagine\"><a href=\"img/$row[img]\" onmouseup=\"MM_openBrWindow('img/$row[img]',//'popup','top=100,left=100')\
}
// includiamo uno dei files contenenti la paginazione, commentate l'altro ovviamente
//includo la paginazione php
include("paginazione_1.php");
//include("paginazione_2.php");
// in questa cella inseriamo la paginazione
echo " <tr> <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>";
echo " </tr>\n</table>\n</div>";
mysql_close();
?>
</div>
mentre il codice della paginazione1.php che includo è il seguente
Codice PHP:
<?php
$paginazione = "Pagine totali: " . $tot_pages . "
[";
for($i = 1; $i <= $tot_pages; $i++) {
if($i == $current_page) {
$paginazione .= $i . " ";
} else {
$paginazione .= "<a href=\"?page=$i\" title=\"Vai alla pagina $i\">$i</a> ";
}
}
$paginazione .= "]";
?>
ragazzi ho cercato di essere quanto più chiaro e preciso possibile ..
io credo che il problema sia nel fatto che quando clicco sulla pagina 2 forse quò php in altro che recupera le variabili ha valore nullo questa volta perchè le combo non sono selezionate in questa pagina e pertanto da problemi.
cosa ne pensate?
spero in un vostro aiuto al più presto.
Saluti Mirco