Avatar billede nielsgron Nybegynder
24. marts 2001 - 22:37 Der er 3 kommentarer og
1 løsning

Søgning i MySQL

Jeg har lavet en lille telefonliste i MySQL, med navnet \"liste\", og nu vi jeg lave en søgefunktion. Så jeg lavede følgende:

<html>
<body bgcolor=\"#FFFFFF\">
<form method=\"post\" action=\"soeg.php3\">
Søg efter person:
<input type=\"text\" name=\"person\">
<input type=\"submit\" name=\"søg\" value=\"søg\">
</form>
<?php
$connection = mysql_connect(\"localhost\",
\"mit_brugernavn\",
\"mit_password\");
mysql_select_db(\"mit_brugernavn\", $connection);

$result = mysql_query(\"select Tlf
from liste where Navn = \'$person\"\');
$row = mysql_fetch_array($result);
print \"Hans telefonnummer er $row[Tlf]\";
?>
</body>
</html>

Men når jeg søger på en person, viser den bare tallet 0 , i stedet for telefonnummeret.
Jeg er ikke helt sikker på, hvad der skal stå i action-feltet, så jeg har bare skrevet navnet på siden, nemlig sog.php3, hvad skal der stå der?
Avatar billede nielsgron Nybegynder
24. marts 2001 - 22:39 #1
Ups,
jeg glemte spørgsmålet:D
altså, Hvad skal jeg ændre, for at den viser telefonnummeret?
Avatar billede limemedia Nybegynder
25. marts 2001 - 11:04 #2
Jeg har rykket lidt rundt på dit script... Det jeg mener er at du bør lave din connection i en anden php fil som du include\'r ind i denne fil.

Dernæst har jeg lavet en lille check funktion der ser om du overhovedet finder noget i databasen eller ikke. Hvis du finder noget skrives det ud, ellers kommer der en \"desværre\" sætning.

<?php
    $connection = mysql_connect(\"localhost\", \"mit_brugernavn\", \"mit_password\");
    mysql_select_db(\"mit_brugernavn\", $connection);
?>
<html>
<body bgcolor=\"#FFFFFF\">
<form method=\"post\" action=\"soeg.php3\">
Søg efter person: <input type=\"text\" name=\"person\">
<input type=\"submit\" name=\"søg\" value=\"søg\">
</form>

<?php
    $result = mysql_query(\"
        SELECT Tlf
        FROM liste
        WHERE Navn=\'$person\'
    \");

    if (mysql_num_rows($result)) {
        $row = mysql_fetch_array($result);
        print \"Hans telefonnummer er \" . $row[\"Tlf\"];
    } else {
    print \"Desværre, jeg fandt ikke $person i databasen.\";
    }
?>
</body>
</html>


Har du overvejet at lave en fritekst søgning ? således du kan søge på \"jensen\" og finde alle jensen\'er i basen ??? eller at søge på jens, og finde alle der hedder \"jens eller jensen\" ?
Avatar billede nielsgron Nybegynder
25. marts 2001 - 13:01 #3
Jeg fandt selv ud af det. Jeg skulle bare tilføje denne kodestump i toppen:if($HTTP_POST_VARS){
foreach($HTTP_POST_VARS as $Key=>$Value)
{
$$Key = $Value;
}
}

if($HTTP_COOKIE_VARS){
foreach($HTTP_COOKIE_VARS as $Key=>$Value)
{
$$Key = $Value;
}
}

if($HTTP_GET_VARS){
foreach($HTTP_GET_VARS as $Key=>$Value)
{
$$Key = $Value;
}
}

if($HTTP_SERVER_VARS){
foreach($HTTP_SERVER_VARS as $Key=>$Value)
{
$$Key = $Value;
}
}

if($HTTP_ENV_VARS){
foreach($HTTP_ENV_VARS as $Key=>$Value)
{
$$Key = $Value;
}
}

Nu virker det:D

>ljweb
Du får alligevel nogle point, for det var nogle gode forslag:D
Avatar billede limemedia Nybegynder
25. marts 2001 - 13:07 #4
:o)
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
Computerworld tilbyder specialiserede kurser i database-management

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