17. juni 2005 - 12:31Der er
13 kommentarer og 1 løsning
søgning på _
Hej jeg har et program der søger på nogle navne. Når jeg i søgefeltet skriver _ så kommer alle navnene i databasen op, og ikke kun de navne der indeholder _
Hvordan får jeg den til kun at vise de navne der indeholder _
jeg bruger lige nu følgende :
$query = mysql_query("SELECT * FROM medlem WHERE brugernavn LIKE '%$_POST[userid]%' ");
I en LIKE søgning er % jo en specialkarakter og betyder 0 eller flere vilkårlige tegn. Men _ er også en specialkarakter, der betyder 1 vilkårligt tegn. Altså vil 'k_d' matche både 'kåd', 'kød' og meget andet. Hvis du vil have en _ til at betyde netop dette tegn, skal du sætte en \ foran:
$query = mysql_query("SELECT * FROM medlem WHERE brugernavn LIKE '%".preg_replace("/[_%]/","\\\\1",$_POST['userid'])."%' ");
Så kan man både søge på brugernavne med _ og % i :)
Okay måske jeg har fundet fejlen : Skal 1 ikke udskiftes med _ i LIKE sætningen så det bliver : $query = mysql_query("SELECT * FROM medlem WHERE brugernavn LIKE '%".preg_replace("/[_%]/","\\\\_",$_POST['userid'])."%' ");
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.