Ciao a tutti,
stavo lavorando un po con php e mysql e devo far apparire dei record con i limiti per fare l'impaginazione.
la logica è questa:
un campo ricerca chiamato appunto "ricerca", dove
Codice PHP:
$ricerca=$_POST['ricerca'];
che si trova nella pagina "home.php"
procediamo con la spampa dei record partendo dalla pagina "home.php?page=search&lim1=0&lim2=5"
Codice PHP:
<?
$query="SELECT * FROM articolo WHERE titolo LIKE '%$ricerca%' ORDER BY data DESC LIMIT ".$_GET['lim1'].",5";
$risultati=mysql_query($query);
$num=mysql_numrows($risultati);
if ($num==0){
echo 'Nessun risultato per: "';
echo $ricerca;
echo '".';
}else{
?>
<div align="center">
<?
$i=0;
//ciclo di stampa
while ($i<$num){
$id=mysql_result($risultati,$i,"id");
$t=mysql_result($risultati,$i,"titolo");
$a=mysql_result($risultati,$i,"autore");
$d=mysql_result($risultati,$i,"data");
$w=mysql_result($risultati,$i,"wiev");
$c=mysql_result($risultati,$i,"categoria");
$r=mysql_result($risultati,$i,"difficolta");
$ok=mysql_result($risultati,$i,"certificato");
?>
<a href="home.php?page=articolo&act=wiev&id=<? echo $id; ?>">
<table width="100%" bgcolor="#e9e9e9" style="border: 1px solid #c0c0c0;" class="clickgui">
<tr>
<td align="left" width="33%" valign="middle">
<font size="4">
<? echo $t; ?>
</font>
Visualizzazioni: <? echo $w; ?>
Difficoltà: <?
$stella= '[img]image/stella.png[/img]';
if($r==0){ echo $stella; echo ": Molto facile."; }
else if($r==1){ echo $stella,$stella; echo ": Facile."; }
else if($r==2){ echo $stella,$stella,$stella; echo ": Medio."; }
else if($r==3){ echo $stella,$stella,$stella,$stella; echo ": Difficile."; }
else if($r==4){ echo $stella,$stella,$stella,$stella,$stella; echo ": Molto difficile."; }
?>
</td>
<td width="33%" valign="middle">
<?
if($ok==1){
?>
[img]image/certif.png[/img]
<?
}
?>
</td>
<td align="right" valign="middle" width="33%">
Data: <? echo $d; ?>
Autore: <? echo $a; ?>
Categoria: <? echo $c; ?>
</td>
</tr>
</table>
</a>
<?
$i++;
} //fine ciclo di stampa
if ($_GET['lim1']!=0){// se non sei in prima pagina appare il tasto pagina precedente
?>
<a href="<?php print("home.php?page=search&lim1=".($_GET['lim1']-5)."&lim2=5");?>">
[img]image/pagina-precedente.png[/img]
</a>
<?
}// controllo se ci sono altri articoli dove nel titolo è presente $ricerca
$cerca_altre="SELECT * FROM articolo WHERE titolo LIKE '%$ricerca%' LIMIT ".($_GET['lim1']+5).",5";
$controllo_successivi=mysql_query($cerca_altre);
if (mysql_fetch_row($controllo_successivi)){
//se ce ne sono altre
?>
<a href="<?php print("home.php?page=search&lim1=".($_GET['lim1']+5)."&lim2=5");?>">
[img]image/prossima-pagina.png[/img]
</a>
<?php
}
?>
</div>
<?
}
?>
A me sembra corretto il codice ma ovviamente ho un problema...
In pratica quando clicco sul link per visualizzare i record ovvero "home.php?page=search&lim1=0&lim2=5" visualizzo 5 record dove effettivamente è presente ciò che digito nel campo ricerca (e fin quì tutto ok).
Quando premo sul tasto prossima pagina che quindi mi porterà al link "home.php?page=search&lim1=5&lim2=5" non mi fa vedere gli altri che contengono ricerca ma tutti indipendentemente dalla query "WHERE titolo LIKE $ricerca.
Il mio pensiero è che perdo la variabile $ricerca, ma ho anche provato a farla diventare variabile si sessione, ma nessun risultato...
Cosa può essere?