Avatar billede webweaver Praktikant
20. maj 2005 - 23:50 Der er 3 kommentarer og
1 løsning

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
Avatar billede webweaver Praktikant
22. maj 2005 - 01:10 #1
Ingen der kan hjælpe? :(
Avatar billede oonofearoo Nybegynder
22. maj 2005 - 19:29 #2
http://iamcal.com/publish/articles/php/search/

den side hjalp mig med at lave noget lignende det du søger.
Avatar billede webweaver Praktikant
22. maj 2005 - 21:06 #3
Ok jeg kigger lige på det. Tak.
Avatar billede webweaver Praktikant
29. maj 2005 - 15:28 #4
Jeg har nu selv løst problemerne. Jeg fik ordnet koden, og nu virker det super :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester