Avatar billede php_programmoer Nybegynder
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 ?
Avatar billede gil-galad Nybegynder
18. november 2005 - 16:00 #1
du kan finde et givent ord i din tekst ved at sige?

WHERE tekst LIKE '%$ord%'
Avatar billede gil-galad Nybegynder
18. november 2005 - 16:03 #2
(det skulle ikke have været et ? men et :)
Avatar billede php_programmoer Nybegynder
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 ?
Avatar billede gil-galad Nybegynder
18. november 2005 - 16:07 #4
det er den række i din tabel du gerne vil søge i
Avatar billede php_programmoer Nybegynder
18. november 2005 - 16:10 #5
Ok, jeg prøver lige, vender tilbage med info om det virker, blive hængende!
Avatar billede php_programmoer Nybegynder
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>";
}
?>
Avatar billede gil-galad Nybegynder
18. november 2005 - 16:24 #7
bikser lige noget mere færdigt sammen til dig... 2 min
Avatar billede gil-galad Nybegynder
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>
Avatar billede php_programmoer Nybegynder
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 ?
Avatar billede php_programmoer Nybegynder
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 :)
Avatar billede gil-galad Nybegynder
18. november 2005 - 16:38 #11
5 min.
Avatar billede gil-galad Nybegynder
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";
}

?>
Avatar billede php_programmoer Nybegynder
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
Avatar billede gil-galad Nybegynder
18. november 2005 - 16:54 #14
ok, ser på det..
Avatar billede gil-galad Nybegynder
18. november 2005 - 16:56 #15
skriv
if ($ord){

istedet for
if ($send){


Så skulle den være der! :-)
Avatar billede gil-galad Nybegynder
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";
    }
}

?>
Avatar billede php_programmoer Nybegynder
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 !
Avatar billede gil-galad Nybegynder
18. november 2005 - 17:03 #18
selv takker... Hvad var fejlen?
Avatar billede php_programmoer Nybegynder
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 :)
Avatar billede gil-galad Nybegynder
18. november 2005 - 17:08 #20
ok
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