28. juli 2005 - 13:48Der er
33 kommentarer og 1 løsning
mysql query rod i sætning
Når jeg kører følgende sætning: $rs = mysql_query("SELECT * FROM artikler WHERE titel LIKE '%".$_POST['titel']."%' or kategori LIKE '%".$_POST['kategori']."%' or mærker LIKE '%".$_POST['mærker']."%' or antal LIKE '%".$_POST['search']."%' LIMIT 0, 150") or die(mysql_error());
så finder den alle mine poster frem i min DB og det er ikke meningen. Det er jo meningen at brugeren skal kunne indsnævre søgningen, og det sker altså ikke.
"Titel" og "mærke" er et tomt tekstfelt, hvor det er det brugeren skriver, der skal søges på. "Kategori" og "antal": her har brugeren mulighed for at vælge ud fra en drop down menu forskellige kategorier - det er det brugeren vælger at klikke af, som query sætningen skal søge i DB efter.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du mener, at hvis brugeren efterlader feltet tomt, så ignorerer query sætningen den???
Det skal jo være sådan, at man ikke nødvendigvis skal gøre brug af alle fire søgefelter, men blot kan nøjes med at bruge den ene, eller kombinere 2 - og dermed åbne søgemulighederne eller snævre dem ind.
Hvad er ideen med at bruge if og else i dit eksempel? I den nederste sætning du har skrevet, har du skrevet ...where $sql limit... osv... hvad henviser $sql til i denne forbindelse?
Men det undrer mig bare rigtigt meget, at query sætningen skal være så lang for at kunne det jeg ønsker?!?!?!?!
Men lige for en god ordens skyld: I det eksempel du gav med if og else - er der et mønster i de ting du sætter sammen - jeg kan jo se at du har kædet titel sammen med kategori - hvorfor?
Du skriver også "osv."... hvad vil du skrive efterfølgende for at gøre den del af query færdig?
jeg har lavet en else if.. du sagde jeg at man skulle have mulighed for mere end 2 :)
osv. menes titel LIKE '%".$_POST['titel']."%' or kategori LIKE '%".$_POST['kategori']."%' or mærker LIKE '%".$_POST['mærker']."%' or antal LIKE '%".$_POST['search']."%'
skal laves om til if sætninger..
det er sikkert ikke den bedste måede men det virker.. :)
jeg får stadig den samme fejlmelding: 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 'antal LIKE '%%' LIMIT 0, 150' at line 1
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 'or mærker LIKE '%%%' or or antal LIKE '%%' LIMIT 0, 15
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.