Avatar billede _what_ Nybegynder
18. oktober 2006 - 11:34 Der er 19 kommentarer og
1 løsning

Søge funktion

Jeg har gang i en lille søgefunktion som skal søge i min sql database. Jeg har nogle forskellige katagorier der skal være mulighed for at søge i, de vælges via en dropdown.

Jeg har følgende kode nu men jeg for bare en hvid side når jeg går ind på den.... hilfe...


___________________________________

<?
if($_POST[send]){
include ("mysql_connect.php");
mysql_connect($host,$user,$pass);
mysql_select_db($db);

    $search = mysql_query("SELECT * FROM kilde WHERE '".$_POST["katagori"]."' LIKE '%".$_POST["ord"]."%'");
    if(mysql_num_rows($search) > 0)
    {
        //Wee vi fandt noget
        while ($row = mysql_fetch_array($search))
        {
            echo $row['k_navn'] . "<br>";
            echo $row['k_stilling'] . "<br>";
            echo $row['k_brugthos'] . "<br>";
            echo $row['k_brugttil'] . "<br>";
        }
   
    else
    {
        //Ikke fundet noget
        echo "Vi fandt desværre ikke: " . '"$POST_["ord"]"' . " i vores database, prøv igen!";
    }
}
}
?>
Avatar billede b_ Nybegynder
18. oktober 2006 - 11:48 #1
Hvordan ser formularen ud hvor ordet bliver indtastet?
Avatar billede _what_ Nybegynder
18. oktober 2006 - 11:58 #2
<table width="500" border="0" align="center" cellpadding="2" cellspacing="2">
<form method="post" name="post">
  <tr>
    <td width="71">&nbsp;</td>
    <td width="415">&nbsp;</td>
  </tr>
  <tr>
    <td>S&oslash;ge ord: </td>
    <td><input type="text" name="ord" tabindex="1" /></td>
  </tr>
  <tr>
    <td>S&oslash;g efter: </td>
    <td><select name="katagori" tabindex="2">
      <option value="navn">Navn</option>
      <option value="stilling">Stilling</option>
      <option value="firma">Firma</option>
      <option value="tlf_priv">Tlf. priv</option>
      <option value="tlf_firma">Tlf. firma</option>
      <option value="mobil">Mobil</option>
      <option value="adresse">Adresse</option>
      <option value="postnr">Post nr.</option>
      <option value="by">By</option>
      <option value="email">E-Mail</option>
      <option value="hjemmeside">Hjemmeside</option>
      <option value="brugt_dato">Brugt dato</option>
      <option value="brugt_til">Brugt til</option>
      <option value="brugt_hos">Brugt hos</option>
      <option value="kommentar">Kommentar</option>
    </select>    </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="send" type="submit" value="S&oslash;g" tabindex="3" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><div align="right"><a href="admin_menu.php">admin menu</a> </div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Resultat</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
    </form>
</table>
Avatar billede b_ Nybegynder
18. oktober 2006 - 11:58 #3
<offtopic>

Er du fra Herning og hedder noget med J?

</offtopic>
Avatar billede b_ Nybegynder
18. oktober 2006 - 12:03 #4
Hvor er din action?

Prøv at ændre if($_POST[send]) til if(isset($_POST['ord']))
Avatar billede _what_ Nybegynder
18. oktober 2006 - 12:11 #5
Har lige prøvet og ændre den til if(isset nu men det hjælper desværre ikke :( og til offtopic nope.

Jeg kører ikke over i en ny fil så der er ikke sat en action på...
Avatar billede b_ Nybegynder
18. oktober 2006 - 12:22 #6
Har du prøvet med hvor du sætter en action til at køre i sig selv:
                <form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">

forstår ikke helt pointen med denne søgning! Man søger på et ord som skal være lig med den kategori med vælge????
Avatar billede _what_ Nybegynder
18. oktober 2006 - 12:25 #7
Katagori er jo hvad du søger på. Om du søger på navn, adresse eller hva du nu søger på. Altså hvilket field den kigger i, i databasen.
Avatar billede _what_ Nybegynder
18. oktober 2006 - 12:26 #8
Jeg tror egentlig bare det er en eller anden dum ting. Siden går i hvid allerede inden jeg udfylder noget. Når siden åbnes er den bare hvis der kommer ikke form felter eller noget som helst frem.
Avatar billede b_ Nybegynder
18. oktober 2006 - 12:32 #9
Brug kun enkelt ' i POST frem for "
Avatar billede b_ Nybegynder
18. oktober 2006 - 12:34 #10
Ok, så den er hvid fra start... Kan du ikke poste hele sidekoden
Avatar billede _what_ Nybegynder
18. oktober 2006 - 13:02 #11
Hele koden som den ser ud lige nu.

_______________________________________________

<?
if($_POST[send]){
include ("mysql_connect.php");
mysql_connect($host,$user,$pass);
mysql_select_db($db);

    $search = mysql_query("SELECT * FROM kilde WHERE '".$_POST["katagori"]."' LIKE '%".$_POST["ord"]."%'");
    if(mysql_num_rows($search) > 0)
    {
        //Wee vi fandt noget
        while ($row = mysql_fetch_array($search))
        {
            echo $row['k_navn'] . "<br>";
            echo $row['k_stilling'] . "<br>";
            echo $row['k_brugthos'] . "<br>";
            echo $row['k_brugttil'] . "<br>";
        }
   
    else
    {
        //Ikke fundet noget
        echo "Vi fandt desværre ikke: " . '"$POST_["ord"]"' . " i vores database, prøv igen!";
    }
}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>..:: S&oslash;g kilde ::..</title>
</head>

<body>
<table width="500" border="0" align="center" cellpadding="2" cellspacing="2">
<form method="post" name="post">
  <tr>
    <td width="71">&nbsp;</td>
    <td width="415">&nbsp;</td>
  </tr>
  <tr>
    <td>S&oslash;ge ord: </td>
    <td><input type="text" name="ord" tabindex="1" /></td>
  </tr>
  <tr>
    <td>S&oslash;g efter: </td>
    <td><select name="katagori" tabindex="2">
      <option value="navn">Navn</option>
      <option value="stilling">Stilling</option>
      <option value="firma">Firma</option>
      <option value="tlf_priv">Tlf. priv</option>
      <option value="tlf_firma">Tlf. firma</option>
      <option value="mobil">Mobil</option>
      <option value="adresse">Adresse</option>
      <option value="postnr">Post nr.</option>
      <option value="by">By</option>
      <option value="email">E-Mail</option>
      <option value="hjemmeside">Hjemmeside</option>
      <option value="brugt_dato">Brugt dato</option>
      <option value="brugt_til">Brugt til</option>
      <option value="brugt_hos">Brugt hos</option>
      <option value="kommentar">Kommentar</option>
    </select>    </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="send" type="submit" value="S&oslash;g" tabindex="3" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><div align="right"><a href="admin_menu.php">admin menu</a> </div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Resultat</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
    </form>
</table>
</body>
</html>
Avatar billede b_ Nybegynder
18. oktober 2006 - 13:21 #12
Du har sat en tuborg forkert, her er den rigtige version:

<?
if($_POST[send]){
include ("mysql_connect.php");
mysql_connect($host,$user,$pass);
mysql_select_db($db);

    $search = mysql_query("SELECT * FROM kilde WHERE '".$_POST["katagori"]."' LIKE '%".$_POST["ord"]."%'");
    if(mysql_num_rows($search) > 0)
    {
        //Wee vi fandt noget
        while ($row = mysql_fetch_array($search))
        {
            echo $row['k_navn'] . "<br>";
            echo $row['k_stilling'] . "<br>";
            echo $row['k_brugthos'] . "<br>";
            echo $row['k_brugttil'] . "<br>";
        }
    }
    else
    {
        //Ikke fundet noget
        echo "Vi fandt desværre ikke: " . '"$POST_["ord"]"' . " i vores database, prøv igen!";
    }
}
?>

Og så vil jeg klart anbefale at du bruger min isset i stedet for post eller ihvertfald undertrykker den (@).
Avatar billede _what_ Nybegynder
18. oktober 2006 - 13:25 #13
Nu ser det sådan herud men jeg for stadig bare en hvid side. Hvad er fordelen ved at bruge isset fremfor post ??

<?
if(isset($_POST['ord'])){
include ("mysql_connect.php");
mysql_connect($host,$user,$pass);
mysql_select_db($db);

    $search = mysql_query("SELECT * FROM kilde WHERE '".$_POST["katagori"]."' LIKE '%".$_POST["ord"]."%'");
    if(mysql_num_rows($search) > 0)
    {
        //Wee vi fandt noget
        while ($row = mysql_fetch_array($search))
        {
            echo $row['k_navn'] . "<br>";
            echo $row['k_stilling'] . "<br>";
            echo $row['k_brugthos'] . "<br>";
            echo $row['k_brugttil'] . "<br>";
        }
    }
    else
    {
        //Ikke fundet noget
        echo "Vi fandt desværre ikke: " . '"$POST_["ord"]"' . " i vores database, prøv igen!";
   
}
}
?>
Avatar billede b_ Nybegynder
18. oktober 2006 - 13:34 #14
Så udfører den det kun når det pågældende er opfyldt, og man får derved i dit eksempel ingen "undefined constant send"...

Denne viser formen hos mig:

<?
if(@$_POST[send]){
include ("mysql_connect.php");
mysql_connect($host,$user,$pass);
mysql_select_db($db);

    $search = mysql_query("SELECT * FROM kilde WHERE '".$_POST["katagori"]."' LIKE '%".$_POST["ord"]."%'");
    if(mysql_num_rows($search) > 0)
    {
        //Wee vi fandt noget
        while ($row = mysql_fetch_array($search))
        {
            echo $row['k_navn'] . "<br>";
            echo $row['k_stilling'] . "<br>";
            echo $row['k_brugthos'] . "<br>";
            echo $row['k_brugttil'] . "<br>";
        }
    }
    else
    {
        //Ikke fundet noget
        echo "Vi fandt desværre ikke: " . '"$POST_["ord"]"' . " i vores database, prøv igen!";
    }
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>..:: S&oslash;g kilde ::..</title>
</head>

<body>
<table width="500" border="0" align="center" cellpadding="2" cellspacing="2">
<form method="post" name="post">
  <tr>
    <td width="71">&nbsp;</td>
    <td width="415">&nbsp;</td>
  </tr>
  <tr>
    <td>S&oslash;ge ord: </td>
    <td><input type="text" name="ord" tabindex="1" /></td>
  </tr>
  <tr>
    <td>S&oslash;g efter: </td>
    <td><select name="katagori" tabindex="2">
      <option value="navn">Navn</option>
      <option value="stilling">Stilling</option>
      <option value="firma">Firma</option>
      <option value="tlf_priv">Tlf. priv</option>
      <option value="tlf_firma">Tlf. firma</option>
      <option value="mobil">Mobil</option>
      <option value="adresse">Adresse</option>
      <option value="postnr">Post nr.</option>
      <option value="by">By</option>
      <option value="email">E-Mail</option>
      <option value="hjemmeside">Hjemmeside</option>
      <option value="brugt_dato">Brugt dato</option>
      <option value="brugt_til">Brugt til</option>
      <option value="brugt_hos">Brugt hos</option>
      <option value="kommentar">Kommentar</option>
    </select>    </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="send" type="submit" value="S&oslash;g" tabindex="3" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><div align="right"><a href="admin_menu.php">admin menu</a> </div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Resultat</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
    </form>
</table>
</body>
</html>

Kunne tyde på at der var noget galt med dit localhost eller hvod du kører det
Avatar billede _what_ Nybegynder
18. oktober 2006 - 13:57 #15
Lavede lige et nyt dokument og smed det over i og nu kom den sgu mystisk.
Avatar billede b_ Nybegynder
18. oktober 2006 - 14:29 #16
Så søgefunktionen virker?
Avatar billede _what_ Nybegynder
26. oktober 2006 - 07:56 #17
Den melder ikke fejl men den finder ikke de rigtige resultater :(

Sry for den lange vente tid.
Avatar billede _what_ Nybegynder
26. oktober 2006 - 07:59 #18
har oprettet 3 rækker i db en med kun "a" en med kun "b" og en med kun "c"

Hvis jeg søger på "a" finder den dem alle sammen, hvis jeg søger på b eller c finder den ikke noget selvom de er der.
Avatar billede _what_ Nybegynder
26. oktober 2006 - 08:05 #19
Det virker lidt som om den kigger på katagori navnet og hvis det inderholder bogstavet der søges på sparker den resultater ud.

Det må være selve sql strengen den er gal med.
Avatar billede _what_ Nybegynder
16. november 2006 - 12:04 #20
fixet
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