søgefunktion driller
Hej Experter.Jeg har et stort problem med søgefunktionen i nedenstående kode. Nedenstående kode kan vise nogle annoncer, og hvis der er over 20 stk deler den dem op i flere sider, og det er her problemet opstår. Hvis jeg fx går over på side 3, og derefter indtaster et søgeord og trykker søg, virker søgefunktionen ikke. Den virker kun når man er på side 1.. meget mystisk :(
<div align="center">
<form action="#" method="post">
<div align="center">
<table width="560" border="0" cellspacing="0" cellpadding="0" background="../NewFiles/soegebaggrund.gif">
<tr height="37">
<td width="560" height="37">
<div align="center">
<input type="text" name="search"> <input type="submit" name="submit" value="Søg"></div>
</td>
</tr>
</table>
</div>
</form>
</div>
<table width="560" border="0" cellspacing="5" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<td width="360" valign="top"><span class="stor"><b><u>Annonce</u></b></span></td>
<td width="70" align="center" valign="top"><span class="stor"><b><u>Pris</u></b></span></td>
<td width="130" align="center" valign="top"><span class="stor"><b><u>Område</u></b></span></td>
</tr>
</table>
<?php
require_once("../members/common.php");
// Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", )
// str klip(str tekst, int længde, int tolerance)
function klip($tekst, $laengde = 200, $tolerance = 10) // $laengde og $tolerance kan udelades
{
$punktum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum
$mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum
$mere = "..."; // punktummer hvis mere tekst
if (strlen($tekst) <= $laengde + $tolerance) {
$slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance
$mere = ""; // ikke andet
} elseif ($punktum !== false) {
$slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum
} elseif ($mellemrum !== false) {
$slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum
} else {
$slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over)
}
return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}
echo "<table border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr><td>";
$pr_side = "20"; //Definerer antal resultater pr. side
if (!isset($s)) {
$s = "0"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}
$g_total = mysql_query("select count(id) as total from salgAfProdukt") or die(mysql_error());
$total = mysql_result($g_total,0);
if($total>$pr_side)
{
if ($total > $s+5){
##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
$previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
echo "<a href='?s=$previous_s'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}
##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
echo "<a href='?s=$start'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
} else { //Ellers, dvs. hvis linket vil pege på den side man er på..
echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
}
$page++; //Lægger en til $page til næste gang løkken køres
}
##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
$next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
echo "<a href='?s=$next_s'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
}
}
}
echo "</tr></td></table>";
echo " <table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
<tr>
<td><span class=\"mini\"> </span></td>
</tr>
</table>";
$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE produkt LIKE '%".$_POST['search']."%' order by id desc limit $s,$pr_side") or die(mysql_error());
while($row = mysql_fetch_array($query)){
echo "
<table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
<tr>
<td width=\"360\" valign=\"top\"><span class=\"mellem\"><a href=\"visSalgsannoncer.php?id=$row[Id]\" target=\"vs\">$row[produkt]</a></span> <br><span class=\"lille\">".klip($row['supplerendeTekst'])."</span></td>
<td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['pris']." Kr.</span></td>
<td width=\"130\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['bynavn']."</span></td></tr></table>
<table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
<tr>
<td><span class=\"mini\"> </span></td>
</tr>
</table>";
}
echo "<table border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr><td>";
$total = mysql_result($g_total,0);
if($total>$pr_side){
##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
$previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
echo "<a href='?s=$previous_s'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}
##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
echo "<a href='?s=$start'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
} else { //Ellers, dvs. hvis linket vil pege på den side man er på..
echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
}
$page++; //Lægger en til $page til næste gang løkken køres
}
##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
$next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
echo "<a href='?s=$next_s'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
}
}
echo "</tr></td></table>";
?>
