Søgefunktion samt opdeling
Hej proffer.Jeg er støt på et problem. Jeg er ved at kode et søgesystem til mit nyhedssystem. Men nu er jeg pludselig rendt ind i problemer, og det lader til at jeg desværre ikke har nok viden til at løse det selv. Jeg ved ikke lige hvordan jeg skal komme videre, men mit script virker ikke ordentlig. Det er meningen at man skal kunne søge, og så skal den vise 20 poster pr. side, og så skal den vise forrige og næste som man så kan trykke på afhænhgig af hvor mange sider den finder. Og imellem forrige og næste, skal der stå 1 2 3 4 og så videre.. Det er også nemt nok at lave selve søgefunktionen. Det er gjort, og det virker. Jeg ved også hvordan jeg skal lave det der med at dele det op, men problemet er at jeg ikke kan få de 2 ting kombineret. Jeg kan kun hvis jeg har opdelingsscriptet med, få den til at tælle de første 20 poster.. Så skriver den næste, men resten på næste side er der ikke. Den er bare tom.
I kan evt. se her, http://www.webweaver.dk/search.php .. I kan prøve at søge på "e".. Så kan I se et eksempel.
Jeg håber på I kan fortælle eller vise mig hvordan jeg skal kombinere de 2 ting? Her er scriptet hvor jeg har sat det sammen sådan som jeg mener det skal være:
<?
$start_text = "Søg i nyheder";
?>
<form method="post" action="<? echo $PHP_SELF; ?>">
<input type="text" name="search" value="<? if ($search == "") { echo "$start_text"; } else { echo "$search"; } ?>"><br>
<input type="submit" value="søg">
</form>
<table class="nyheds_border" width="100%" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td class="menu-overskrift" colspan="2" align="center"><img src="http://www.webweaver.dk/billeder/midter_indhold_header/header_nyheder.jpg" alt=""></td>
</tr>
<?php
$db = mysql_connect("**********", "********", "*********");
mysql_select_db("webster_nyheder", $db);
$e = isset($_GET['e'])?$_GET['e']:"";
$a = 20 * $e;
$b = $a + 20 - $e * 20;
$c = $e - 1;
$d = $e + 1;
$foresp = mysql_query("SELECT * FROM Nyheder WHERE tekst LIKE '%$search%'");
$total = mysql_num_rows($foresp);
$pages = $total / 20;
if($e + 1 < $pages){
$next = " - <a class=\"nyheds_oversigt\" href=\"http://www.webweaver.dk/search.php?e=$d\">Næste</a>";
}
if($e - 1 < $pages AND $e){
$prev = "<a class=\"nyheds_oversigt\" href=\"http://www.webweaver.dk/search.php?e=$c\">Forrige</a> - ";
} else {
$prev = "Forrige - ";
}
if($d > $pages OR $d=="$pages"){
$next = " - Næste";
}
if(isset($_POST["search"])){
if(get_magic_quotes_gpc())
$search = $_POST["search"];
else
$search = addslashes($_POST["search"]);
$result = mysql_query("SELECT id, dato, overskrift, tekst FROM Nyheder WHERE overskrift LIKE '%$search%' ORDER BY id DESC LIMIT $a,$b") or die(mysql_error());
$antal = mysql_num_rows($result);
if($antal == 0){
echo "<tr>";
echo "<td align=\"center\"><p class=\"nyheds_oversigt\">Din søgning gav intet resultat...</p></td>";
echo "</tr>";
} else {
$antal2 = mysql_num_rows($result);
if ($antal2 == 1) {
echo "<p class=\"nyheds_oversigt\">Du søgte på <b>$search</b>, og <b>$antal2</b> forekomst blev fundet.</p>";
} else {
echo "<p class=\"nyheds_oversigt\">Du søgte på <b>$search</b>, og <b>$antal2</b> forekomster blev fundet.</p>";
}
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td style=\"padding:5px\" bgcolor=\"#ffffff\" onmouseover=\"this.style.backgroundColor='#9BB3C9';\" onmouseout=\"this.style.backgroundColor='#ffffff';\">";
echo "<a class=\"nyheds_oversigt\" href='http://www.webweaver.dk/nyheder/vis_nyhed.php?artnr=$row[id]'>$row[overskrift]</a>";
echo "</td>";
echo "<td style=\"padding:5px\">";
echo "<p class=\"nyheds_oversigt\" align=\"right\">$row[dato]</p>";
echo "</td>";
echo "</tr>";
}
?>
<div align="center">
<?
echo "<p class=\"nyheds_oversigt\">\n$prev";
$pages1 = ceil($pages);
$tal = 0;
$tal1 = 1;
while($pages1 >= $tal1) {
if($tal == $e) {
echo "<b>$tal1</b>";
} else {
echo " <a class=\"nyheds_oversigt\" href=\"http://www.webweaver.dk/nyheder/nyheder.php?e=$tal \">$tal1</a> ";
}
$tal++;
$tal1++;
}
echo "$next\n</p>";
?>
</div>
<?
}
}
?>
</table>
Mange mange mange tak for hjælpen!!! :D :o)
Med venlig hilsen Lasse Jensen