30. august 2004 - 12:21Der er
26 kommentarer og 2 løsninger
Søgning i mysql
Jeg har en medlemsdatabase i mysql som jeg gerne vil lave en søge funktion til. Det har jeg ikke prøvet før, så jeg har brug for lidt hjælp og veåjledning til hvodan jeg laver det mest hensigtsmæssigt.
Jeg havde forestillet mig at lave en formular i php/html, med de felter det er muligt at søge i, den del har jeg styr på - men hvordan søge udtrykket skal bygges op er jeg i tvivl om.
Kan man lave det sådan at den også kan finde poster der ligner det som man søger efter - f.eks. at en søgning på brit også fandt britta?
God råd er velkommne, lige som et link til en artikel om emnet kunne være fint.
Manuelle og semi-automatiske strategier for identitetsstyring virker - lige indtil nogen beder om dokumentation. For at undgå denne fare har DKTV taget kontrol over sin identitets- og adgangsstrategi.
Hvis du har søgeordet i $search og det felt der skal søges i i $what, kan du f.eks lave noget med SELECT * FROM table WHERE $what LIKE '%$search%' Hvis du så søger efter 'noget', returnerer den alle de poster hvor det felt du søger i indeholder *noget*
Jeg er nu ved at forsøge mig med nedestående $resultat = mysql_query("SELECT * FROM medlemmer WHERE medlem_fornavn LIKE %$medlem_fornavn% OR medlem_efternavn LIKE %$medlem_efternavn%") or die(mysql_error());
Men det giver denne fejl:
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 '%søren% OR medlem_efternavn LIKE %s%' at line 1
Hvis jeg bruger: $resultat = mysql_query("SELECT * FROM medlemmer WHERE medlem_fornavn LIKE %$medlem_fornavn% OR medlem_efternavn LIKE %$medlem_efternavn%") or die(mysql_error());
Og brugeren i søge formularen kun har udfyldt 'medlem_fornavn', ja så bliver alle poster i databasen fundet, og det er jo ikke hensigtsmæssigt.
Hvis jeg f.eks. søger efter palle er fejlmeddelelsen denne:
errorYou 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 '%Palle%'' at line 1
Det ser ud til at virke, men ved du om det er muligt at justere tolerance i LIKE? - en søgning på peter i fornavn og f i efternavn, finder peter frandsen og peter kofoed.....
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.