Avatar billede -kenner- Nybegynder
19. november 2005 - 19:06 Der er 14 kommentarer og
1 løsning

strlower() paa SQL?

Hej eksperter,

Jeg sidder og arbejder paa en soegefunktion, og stoedte lige paa et problem. Hvordan kan jeg omforme mit database indhold naar jeg sammenligner soegeteksten med database teksten saa hvis jeg soeger paa TEKST, saa er tekst et kvalificeret svar? Jeg forestiller mig at bruge strlower() men jeg ved ikke lige hvordan jeg kan bruge det i min SQL.

Min SQL ser ud som foelger:

    <?php
if(isset($_POST['search']))
{
    include("db.php");
    $search = mysql_escape_string($_POST['sSearch']);
    $query = mysql_query("SELECT * FROM driver WHERE type LIKE '%".$search."%' OR navn LIKE '%".$search."%' OR tekst LIKE '%".$search."%' OR link LIKE '%".$search."%'");

    {
        //Vi fandt noget...
        while($row = mysql_fetch_array($query))
        {
                echo $row['type'] . "<br>";
        echo $row['navn'] . "<br>";
        echo $row['tekst'] . "<br>";
        echo "<a href=\"" . $row['link'] . "\">". $row['link'] ."</a><br>";

        }
    }
    else
    {
        //Vi fandt ikke noget...
        echo "Vi fandt desværre ikke: " . $search . " i vores database, prøv igen!";
    }
}

echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
echo "<input type=\"text\" name=\"sSearch\">\n";
echo "<input type=\"submit\" name=\"search\" value=\"Søg\">\n";
echo "</form>\n";

?>
Avatar billede jaw Nybegynder
19. november 2005 - 19:08 #1
LIKE '%".strtolower($search)."%'

?
Avatar billede -kenner- Nybegynder
19. november 2005 - 19:11 #2
men hvad nu hvis database indholdet har teksten TEKST and soege ordet er tekst, saa holder den jo ikke.
Avatar billede steven_ Nybegynder
19. november 2005 - 19:14 #3
-kenner-: kan det være; "where lcase(`felt`) like '%" . strtolower($string) . "%'"?
Avatar billede jaw Nybegynder
19. november 2005 - 19:14 #4
WHERE LOWER(type) LIKE '%".$search."%'
?
Avatar billede -kenner- Nybegynder
19. november 2005 - 19:18 #5
jaw & steven_ >
ja, hvis det virker, har i testet det?
Avatar billede jaw Nybegynder
19. november 2005 - 19:19 #6
Det er vel dig der skal teste? Men begge variabler vil blive til småt og så sammenlignet bagefter. Så den burde være der...
Avatar billede steven_ Nybegynder
19. november 2005 - 19:25 #7
Min virker i ihvertfald 100% sikkert. Men jeg er overbevist om at jaw's er mindst lige så god.

Ydermere kan du vidst også bruge BINARY.

where binary `felt` like '%" . $search . "%'

Men jeg er ikke sikker på, at det gøres således.^
Avatar billede -kenner- Nybegynder
19. november 2005 - 19:28 #8
OKay, jeg vil teste det, og vende tilbage :)
Avatar billede jaw Nybegynder
19. november 2005 - 19:28 #9
LCASE og LOWER er synonymer for hinanden, så de burde virke lige godt ja :)
Avatar billede -kenner- Nybegynder
19. november 2005 - 22:50 #10
Min SQL ser ud som foelger, men det virker ikke :/

$query = mysql_query("SELECT * FROM test WHERE LOWER(Titel) LIKE '%".strtolower($search)."%' OR LOWER(Beskrivelse) LIKE '%".strtolower($search)."%' OR LOWER(Kode) LIKE '%".strtolower($search)."%'") or die(mysql_error());
Avatar billede steven_ Nybegynder
19. november 2005 - 23:24 #11
Så forsøg med min. Den virker :)
Avatar billede jaw Nybegynder
20. november 2005 - 00:31 #12
Og du er sikker på, at du benytter de rigtige feltnavne, at "Titel" ikke er "titel" i tabellen?
Avatar billede -kenner- Nybegynder
20. november 2005 - 14:56 #13
JA, men jeg fandt dog fejlen, saa nu virker det :D
Avatar billede -kenner- Nybegynder
20. november 2005 - 23:17 #14
Saa send i bare svar.
Avatar billede jaw Nybegynder
20. november 2005 - 23:48 #15
Svar :)
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