/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mysql og like ???
Fra : gc


Dato : 16-01-09 08:54

Hej

Jeg har et problem med at søge i min mysql.
Hvis jeg skriver f.eks slangenippel i min søgeform så skulle den gerne finde
alt hvor gruppeteksten er det.
Og det virker også fint, men den skulle også gerne finde dem hvis man kun
skriver f.eks slange eller nippel.
Jeg har fundet frem til at man skal bruge LIKE og %, men jeg kan ikke få det
til at virke.

Min kode:

$text = $_POST['soegtext']; // Fra form
//$srch = $text; //virker kun hvis ordet er helt korrekt.
$srch = "%".$text."%"; // Virker ikke, der kommer bare ingenting.
$sql = mysql_query("select * FROM gruppetabel WHERE gruppetabel.gruppetekst=
'$srch' ORDER BY gruppenr");

på forhånd tak


 
 
Dan Storm (16-01-2009)
Kommentar
Fra : Dan Storm


Dato : 16-01-09 09:11

gc skrev:
> $text = $_POST['soegtext']; // Fra form
> //$srch = $text; //virker kun hvis ordet er helt korrekt.
> $srch = "%".$text."%"; // Virker ikke, der kommer bare ingenting.
> $sql = mysql_query("select * FROM gruppetabel WHERE
> gruppetabel.gruppetekst= '$srch' ORDER BY gruppenr");

Prøv det her (med lidt oprydning):

<?php

// Felt fra form
$text = $_POST["soegtext"];

//SQL forespørgsel med LIKE
$sql = "SELECT * FROM gruppetabel WHERE gruppetekst LIKE '%".$text."%'
ORDER BY gruppenr";

//Udfør forespørgsel
$result = mysql_query($sql);

?>

Istedet for at bruge variabelnavnet $sql til at udføre forespørgslen med
har jeg bare kaldt den $result da det virker mere logisk at det er
resultatet fra forespørgslen der kommer deri.



--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

gc (16-01-2009)
Kommentar
Fra : gc


Dato : 16-01-09 09:18

> // Felt fra form
> $text = $_POST["soegtext"];
>
> //SQL forespørgsel med LIKE
> $sql = "SELECT * FROM gruppetabel WHERE gruppetekst LIKE '%".$text."%'
> ORDER BY gruppenr";
>
> //Udfør forespørgsel
> $result = mysql_query($sql);
>
Super, det virker perfekt, jeg formoder det var '%".$text."%' den var gal
med.
Tak for det hurtige svar.


Dan Storm (16-01-2009)
Kommentar
Fra : Dan Storm


Dato : 16-01-09 09:28

gc skrev:
> Super, det virker perfekt, jeg formoder det var '%".$text."%' den var
> gal med.

Nej, du havde skrevet:
gruppetekst = '$srch'

Men når du skal søge på den måde skal du bruge LIKE istedet for =


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

gc (16-01-2009)
Kommentar
Fra : gc


Dato : 16-01-09 09:57

>
> Men når du skal søge på den måde skal du bruge LIKE istedet for =
>
Doooh (siger jeg mens jeg slår mig selv på panden)
Så tror da faen....Jeg må jo have stirret mig blind på %
Men tak og god weekend.


Martin (16-01-2009)
Kommentar
Fra : Martin


Dato : 16-01-09 21:47

gc wrote:
>>
>> Men når du skal søge på den måde skal du bruge LIKE istedet for =
>>
> Doooh (siger jeg mens jeg slår mig selv på panden)
> Så tror da faen....Jeg må jo have stirret mig blind på %
> Men tak og god weekend.

og det havde du faktisk fundet ud af helt selv, hvis du havde brugt
mysql_error()

fx.

mysql_query('SELECT....') OR DIE (mysql_error());

Carsten (17-01-2009)
Kommentar
Fra : Carsten


Dato : 17-01-09 10:53

"Martin" <martin@aarhof.invalid> skrev i en meddelelse
news:4970f23a$0$90264$14726298@news.sunsite.dk...
> gc wrote:
>>>
>>> Men når du skal søge på den måde skal du bruge LIKE istedet for =
>>>
>> Doooh (siger jeg mens jeg slår mig selv på panden)
>> Så tror da faen....Jeg må jo have stirret mig blind på %
>> Men tak og god weekend.
>
> og det havde du faktisk fundet ud af helt selv, hvis du havde brugt
> mysql_error()
>
> mysql_query('SELECT....') OR DIE (mysql_error());

Hmmm, er det sandt ? hvad ville mysql_error() vise i det tilfælde som "gc"
skitserede ? ( bemærk at der jo ikke er noget syntaktisk galt med gc's
statement)

Carsten



Martin (18-01-2009)
Kommentar
Fra : Martin


Dato : 18-01-09 19:32

Carsten wrote:
> "Martin" <martin@aarhof.invalid> skrev i en meddelelse
> news:4970f23a$0$90264$14726298@news.sunsite.dk...
>> gc wrote:
>>>> Men når du skal søge på den måde skal du bruge LIKE istedet for =
>>>>
>>> Doooh (siger jeg mens jeg slår mig selv på panden)
>>> Så tror da faen....Jeg må jo have stirret mig blind på %
>>> Men tak og god weekend.
>> og det havde du faktisk fundet ud af helt selv, hvis du havde brugt
>> mysql_error()
>>
>> mysql_query('SELECT....') OR DIE (mysql_error());
>
> Hmmm, er det sandt ? hvad ville mysql_error() vise i det tilfælde som "gc"
> skitserede ? ( bemærk at der jo ikke er noget syntaktisk galt med gc's
> statement)
>
> Carsten

#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'LIKE 'test' ORDER BY test at line 1

dvs. fejlen ligger lige før 'LIKE...

Thomas Vang (18-01-2009)
Kommentar
Fra : Thomas Vang


Dato : 18-01-09 20:18

gc har faktisk ikke skrevet "LIKE" noget sted i sin sql sætning, hvis du ser
på oprindelige post :)

/Thomsa

--
/Thomas
"Martin" <martin@aarhof.invalid> wrote in message
news:497375a6$0$90265$14726298@news.sunsite.dk...
> Carsten wrote:
>> "Martin" <martin@aarhof.invalid> skrev i en meddelelse
>> news:4970f23a$0$90264$14726298@news.sunsite.dk...
>>> gc wrote:
>>>>> Men når du skal søge på den måde skal du bruge LIKE istedet for =
>>>>>
>>>> Doooh (siger jeg mens jeg slår mig selv på panden)
>>>> Så tror da faen....Jeg må jo have stirret mig blind på %
>>>> Men tak og god weekend.
>>> og det havde du faktisk fundet ud af helt selv, hvis du havde brugt
>>> mysql_error()
>>>
>>> mysql_query('SELECT....') OR DIE (mysql_error());
>>
>> Hmmm, er det sandt ? hvad ville mysql_error() vise i det tilfælde som
>> "gc"
>> skitserede ? ( bemærk at der jo ikke er noget syntaktisk galt med gc's
>> statement)
>>
>> Carsten
>
> #1064 - You have an error in your SQL syntax; check the manual that
> corresponds to your MySQL server version for the right syntax to use
> near 'LIKE 'test' ORDER BY test at line 1
>
> dvs. fejlen ligger lige før 'LIKE...


Carsten (19-01-2009)
Kommentar
Fra : Carsten


Dato : 19-01-09 08:48

"Thomas Vang" <sitzz.dk@gmail.com> skrev i en meddelelse
news:49738065$0$90269$14726298@news.sunsite.dk...
> gc har faktisk ikke skrevet "LIKE" noget sted i sin sql sætning, hvis du
> ser på oprindelige post :)

Nej, lige præcis. "gc" havde blot brugt lighedstegn istedet for LIKE og det
viser sig desværre ikke på en mysql_error() - for det er ikke en fejl.

Carsten



Martin (20-01-2009)
Kommentar
Fra : Martin


Dato : 20-01-09 08:00

Carsten wrote:
> "Thomas Vang" <sitzz.dk@gmail.com> skrev i en meddelelse
> news:49738065$0$90269$14726298@news.sunsite.dk...
>> gc har faktisk ikke skrevet "LIKE" noget sted i sin sql sætning, hvis du
>> ser på oprindelige post :)
>
> Nej, lige præcis. "gc" havde blot brugt lighedstegn istedet for LIKE og det
> viser sig desværre ikke på en mysql_error() - for det er ikke en fejl.

Wups.. den havde jeg lige misset :D

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408916
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste