← Back to team overview

sslug-teknik team mailing list archive

Re: MySQL spørgsmål

 



Birger Langkjer wrote:
Jeg har noget kode, der ser sådan ud:

if($tekst_soeg){

$tekst_soeg_h = htmlentities($tekst_soeg);

$db = mysql_connect("localhost", "root");

mysql_select_db("database",$db);

$foresp = mysql_query("SELECT ArtikelID,Overskrift,Forfatter FROM Artikel WHERE Tekst LIKE '%$tekst_soeg_h%' ORDER BY Overskrift ",$db);

echo mysql_num_rows($foresp) . " artikler fundet, hvor teksten \"" . $tekst_soeg_h . "\" forekommer.</p>";

Problemet er, at jeg gerne vil have Mysql til at søge på både $tekst_soeg og $tekst_soeg_h.
Jeg har problemet at skrive LIKE '%$tekst_soeg_h%' AND LIKE '%$tekst_soeg%' men det virker ikke. Skal jeg lave en UNION istedet?
du skal nok bruge
"WHERE Tekst LIKE '%$tekst_soeg_h%' AND Tekst LIKE '%$tekst_soeg%'"
- syntaxen tillader ikke automatisk henføring til feltet "Tekst" fra flere betingelser. MySQL burde give dig en advarsel om syntaxbrud.

Jeg har prøvet det af i mysql (konsolinterfacet) på en kundeliste jeg havde med flg. resultat:

select * from kundfil where kundenavn like "%a%" and kundenavn like "%er%";

finder f.eks. "Acer" og "ABB Lindberg" mens

select * from kundfil where kundenavn like "%a%" and like "%er%"; (feltnavn mangler i 2. betingelse) giver

ERROR 1064: You have an error in your SQL syntax near 'like "%er%"' at line 1

MVH
--
====================================================================
Jon Svejgaard                  | ACE - UNIX/Linux Consultancy
                               | Hjorthoejvej 2 / DK-4291 Ruds Vedby
mail: jon@xxxxxx               | DENMARK
http://www.ace.dk              | +45 5826 1799 / +45 4052 0799
====================================================================



References