Ciao a tutti, ho 2 pagine PHP per effettuare una ricerca in php e mysql.
nella prima ho un campo di ricerca che tramite metogo GET in teoria dovrei passarle all' altra pagina per effettuare la query e poi stamparle con impaginazione.
Ecco i codici:
home.php
Codice PHP:
<?
$string=mysql_real_escape_string($_GET['string']);
?>
<form action="home.php?page=search&string=<? echo $string;?>&lim1=<?echo $lim1;?>&lim2=5" method="get">
<table cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<input type="text" name="string" id="string" value="<?echo $string;?>" style="height: 34px; width: 400px; font-size: 30px;-webkit-border-top-left-radius: 7px;-webkit-border-bottom-left-radius: 7px;-moz-border-radius-topleft: 7px;-moz-border-radius-bottomleft: 7px;border-top-left-radius: 7px;border-bottom-left-radius: 7px;" autocomplete="on">
</td>
<td valign="bottom">
<input type="image" src="image/src.gif" height="40" width="40" id="cerca" autocomplete="off">
</td>
</tr>
</table>
</form>
<?
if($_GET['page']=="search"){
echo "Stai cercando ".$string.".";
include 'search.php';
}
?>
search.php
Codice PHP:
<?
$query="SELECT * FROM articolo WHERE titolo LIKE '%".$string."%' ORDER BY data DESC LIMIT ".$_GET['lim1'].",5";
$risultati=mysql_query($query);
$num=mysql_num_rows($risultati);
if ($num==0){
echo 'Nessun risultato per: "';
echo $string;
echo '".';
}else{
?>
<div align="center">
<?
$i=0;
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=article&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++;
}
if ($_GET['lim1']!=0){
?>
<a href="<?php print("home.php?page=search&string=".$string."&lim1=".($_GET['lim1']-5)."&lim2=5");?>">
[img]image/pagina-precedente.png[/img]
</a>
<?
}
$cerca_altre="SELECT * FROM articolo WHERE titolo LIKE '%$string%' LIMIT ".($_GET['lim1']+5).",5";
$controllo_successivi=mysql_query($cerca_altre);
if (mysql_fetch_row($controllo_successivi)){
?>
<a href="<?php print("home.php?page=search&string=".$string."&lim1=".($_GET['lim1']+5)."&lim2=5");?>">
[img]image/prossima-pagina.png[/img]
</a>
<?php
}
?>
</div>
<?
}
?>
Bene, quello che mi succede se digito qualcosa ad esempio "r":
premo il tasto "cerca" e in teoria dovrebbe portarmi alla pagina "home.php?page=search&string=r&lim1=0&lim2=5"
Invece al momento del click mi porta a "home.php?string=r&x=10&y=12"
In pratica salta per prima cosa "page=search" e poi mi mette le coordinate dell' <input type="image" a seconda dove clicco.
Devo dire però che c'è qualcosa che mi ha stranizzato, in teoria non essendoci nel link "page=search" la pagina search.php non viene inclusa. Ma a me poi mi stampa a video questa parte di codice
Codice PHP:
$query="SELECT * FROM articolo WHERE titolo LIKE '%".$string."%' ORDER BY data DESC LIMIT ".$_GET['lim1'].",5";
$risultati=mysql_query($query);
$num=mysql_num_rows($risultati);
if ($num==0){
echo 'Nessun risultato per: "';
echo $string;
echo '".';
}
al che mi viene un dubbio!
Nella mia pagina "home.php" ho uno script che funziona alla stessa maniera di questo ma non tramite campo ricerca ma per "ultime inserite" e utilizzo i nomi delle query uguali in entrambe le pagine, quindi mi sono chiesto "ma può fare conflitto?".