webForumDet fria alternativet

fel i kod sökfunktion

PHP

2 svar · 421 visningar · startad av Eddan

Medlem sedan sep. 20081 inlägg
Frågan#1

Kan nån säga vad det är fel och hjälpa mig att rätta till detta

if (preg_match("/^07[0-9]+$/",$sok)){
$SQL1 = " WHERE mms.status='Aktiv' AND mnr = '$sok' AND (typ = 'image' OR typ = 'video')   GROUP BY mms.id ORDER BY `mms` . `tilllagd_tid` DESC";
$SQL2 = " FROM mms WHERE mms.status='Aktiv' AND mnr = '$sok' GROUP BY mms.id";
}else if ($sok  != ""){
$SQL1 = " WHERE mms.status='Aktiv' AND mms.id = '$sok' AND (typ = 'image' OR typ = 'video')   GROUP BY mms.id ORDER BY `mms` . `tilllagd_tid` DESC";
$SQL2 = " FROM mms WHERE mms.status='Aktiv' AND mms.id = '$sok' GROUP BY mms.id";
}else if ($sok  = ""){
$SQL1 = " WHERE mms.status='Aktiv' AND mms.subject = '$sok' AND (typ = 'image' OR typ = 'video')   GROUP BY mms.id ORDER BY `mms` . `tilllagd_tid` DESC";
$SQL2 = " FROM mms WHERE mms.status='Aktiv' AND mms.subject = '$sok' GROUP BY mms.id";
}else{
$SQL1 = " WHERE mms.status='Aktiv' AND (typ = 'image' OR typ = 'video') GROUP BY mms.id ORDER BY `mms` . `tilllagd_tid` DESC";
$SQL2 = " FROM mms WHERE mms.status='Aktiv' GROUP BY mms.id";
}

Detta ska göra att jag kan söka på mnr, subject eller id.... just nu kan jag bara söka på id och mnr och få träffar från db, men när jag söker efter subject så får jag ingen träff, fast jag vet att subject texten finns i databasen...

jag hajjar inte felet, till råga på allt så är jag nOOb på PHP:x

PROBLEMET LÖST

Medlem sedan juni 20031 837 inlägg
#2
}else if ($sok  = ""){

du har bara ett likhetstecken i den else if, du måste ha två.

har du bara ett likhetstecken så tilldelar du $sok det som står efter likhetstecknet.

Sen kollar du om söksträngen är tom och vill då hitta alla subject som är lika med $sok, verkar underligt.

Medlem sedan mars 20034 471 inlägg
#3

Du borde dessutom kolla om $sok överhuvudtaget är satt. Så en bättre variant vore att börja if-satsen med vad som ska hända om ingen alls skrev något i fältet:

if (!isSet($sok)) {....}
//Övriga alternativ
elseif (  ) { }
... 
else{ }
260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)