18. november 2005 - 15:39
Der er
19 kommentarer og 1 løsning
Lave en søgemaskine i php ?
Ja hvordan er det nu lige man laver en søgemaskine i php ? ved godt det er noget med at man tjekker for det skrevne ord i mysql databasen men hvordan kan den query sættes sammen ?
Annonceindlæg fra Computerworld
18. november 2005 - 16:00
#1
du kan finde et givent ord i din tekst ved at sige? WHERE tekst LIKE '%$ord%'
18. november 2005 - 16:03
#2
(det skulle ikke have været et ? men et :)
18. november 2005 - 16:05
#3
Så det vil sige: <form action="" method="POST"> <input type="text" name="ord"> <input type="submit" name="submit" value="Søg"> </form> <? if ($_POST[submit]) { mysql_query("Select * from forum WHERE tekst LIKE '%$ord%' ORDER BY ASC tekst")or die(mysql_error()); } ?> og hvad står tekst for ?
18. november 2005 - 16:07
#4
det er den række i din tabel du gerne vil søge i
18. november 2005 - 16:10
#5
Ok, jeg prøver lige, vender tilbage med info om det virker, blive hængende!
18. november 2005 - 16:17
#6
Har prøvet med følgene men for fejl i fetch linien: <form action="" method="POST"> <input type="text" name="ord"> <input type="submit" name="submit" value="Søg"> </form> <? include "mysql.php"; if ($_POST[submit]) { $query = mysql_query("Select * from overskrift WHERE overskrift LIKE '%$ord%' ORDER BY overskrift ASC")or die(mysql_error()); } while ($resultat=mysql_fetch_array($query)){ extract($resultat); echo "$overskrift"; echo "<br>"; } ?>
18. november 2005 - 16:24
#7
bikser lige noget mere færdigt sammen til dig... 2 min
18. november 2005 - 16:30
#8
Du kan lege lidt med dette: <html> <head> </head> <body> <form action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="POST"> <input type="text" name="ord"> <input type="submit" name="submit" value="Søg"> </form> <? $send = $_POST['submit']; $ord = $_POST['ord']; require("XXXconnect.phpXXXXX"); if ($send) { $query = mysql_query("Select * from XXXX_DIN_TABEL_XXXXX WHERE XXXX_RÆKKEN_XXXX LIKE '%$ord%'")or die(mysql_error()); if (mysql_num_rows($query)>0){ while($row = mysql_fetch_array($query)){ echo $row['overskrift']."<br>"; } }else{ echo "Ingenting fundet på søgningen <b>".$ord."</b>"; } } mysql_close(); ?> </body> </html>
18. november 2005 - 16:34
#9
Tusinde tak, men kan man gøre sådan at man ikke kan trykke på mellemrum nogle gange og så bare klikke søg ? For så finder den den sidst skrevet overskrift ?
18. november 2005 - 16:38
#10
og hvis du kan gøre sådan så den skriver hvor mange resultater den fandt vil jeg forhøje med 20 point :)
18. november 2005 - 16:38
#11
5 min.
18. november 2005 - 16:47
#12
<html> <head> </head> <body> <form action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="GET"> <input type="text" name="ord" value=""> <input type="submit" name="submit" value="Søg"> </form> <? $send = $_GET['submit']; $ord = $_GET['ord']; if ($send){ require("connect.php"); $query = mysql_query("Select * from !TABEL! WHERE !RÆKKE! LIKE '%$ord%'")or die(mysql_error()); if (mysql_num_rows($query)>0){ $number = mysql_num_rows($query); echo "Der blev funde <b>".$number."</b> resultat(er) på søgningen <b>".$ord."</b><br><br><ul>"; while($row = mysql_fetch_array($query)){ echo "<li>".$row['overskrift']."</li>"; } echo "</ul>"; }else{ echo "Ingenting fundet på søgningen <b>".$ord."</b>"; } mysql_close(); }else{ echo "Indtast et søgeord"; } ?>
18. november 2005 - 16:53
#13
Den gør det stadig :) hvis man kun skriver et mellemrum så skriver den den sidst oprettet overskrift når det er ordnet for du dine velfortjente point :) ... de er forhøjet til 50 ps tak for de fede features med <ul> opstillingen
18. november 2005 - 16:54
#14
ok, ser på det..
18. november 2005 - 16:56
#15
skriv if ($ord){ istedet for if ($send){ Så skulle den være der! :-)
18. november 2005 - 16:59
#16
og hvis den ikke skal skrive "indtast et søgeord" før man har trykket send(uden at have skrevet noget), skal du bruge denne version: <html> <head> </head> <body> <form action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="GET"> <input type="text" name="ord" value=""> <input type="submit" name="submit" value="Søg"> </form> <? $send = $_GET['submit']; $ord = $_GET['ord']; if ($send){ if ($ord){ require("connect.php"); $query = mysql_query("Select * from TABEL WHERE RÆKKE LIKE '%$ord%'")or die(mysql_error()); if (mysql_num_rows($query)>0){ $number = mysql_num_rows($query); echo "Der blev funde <b>".$number."</b> resultat(er) på søgningen <b>".$ord."</b><br><br><ul>"; while($row = mysql_fetch_array($query)){ echo "<li>".$row['overskrift']."</li>"; } echo "</ul>"; }else{ echo "Ingenting fundet på søgningen <b>".$ord."</b>"; } mysql_close(); }else{ echo "Indtast et søgeord"; } } ?>
18. november 2005 - 17:01
#17
det virker ikke, men jeg fandt ud af hvorfor.. jeg takker mange gange for hjælpen og det dejlige script, helt sikkert noget jeg kan bruge, tak for hjælpen, dit svar er accepteret !
18. november 2005 - 17:03
#18
selv takker... Hvad var fejlen?
18. november 2005 - 17:06
#19
fejlen var at det ikke var en fejl, det var jo fordi at den fandt en mellerum i nogle af overskrifterne :)
18. november 2005 - 17:08
#20
ok
Vi tilbyder markedets bedste kurser inden for webudvikling