13. juni 2005 - 21:33Der er
14 kommentarer og 1 løsning
Ged i sql søgning
Hey Når jeg bruger denne slq:
$query = mysql_query("SELECT * FROM details WHERE 'titel' LIKE '%".$_POST['titel']."%' OR 'kategori' LIKE '%".$_POST['kategori']."%' OR 'adresse' LIKE '%".$_POST['adresse']."%' OR 'stk' LIKE '%".$_POST['stk']."%' LIMIT 0, 50");
... så får jeg alle resultater frem i min DB - og det er ikke meningen!
Hvad skal jeg skrive, for at man kun ender op med et resultat efter en søgning?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Desuden skal du være opmærksom på at hvis bare en af dine $_POST['xxx'] er tomme, ja så matcher den tilsvarende LIKE del alle poster (som ikek er NULL) i det der så stÅr:
hæ hæ :-D Jeg tror lige jeg uddyber lidt - har nemlig svært ved selv at fatte hvad jeg laver :)
Jeg har en lille skabelon, hvor i man kan indtaste oplysninger, hvorefter man trykker på "søg" knappen og der bliver søgt i DB - det er vist ret lige til?
Jeg vil gerne have det således, at brugeren af min side, kan nøjes med fx kun at søge på kategori og lade de andre felter være åbne... Og samtidigt skal en bruger af siden kunne nøjdes med fx kun at benytte 2 ud af ialt 4 søgefelter...
I den søgeskabelon jeg har lavet, har brugeren kun mulighed for i feltet "kategori" at vælge mellem 10 "kategorier" jeg på forhånd har defineret - derfor har jeg skrevet:
........... OR 'kategori' LIKE '%".$_POST['kategori']."%' OR.......... men jeg ved ikke om det er rigtigt.... under kategori kan brugeren vælge mellem "internt", "venner", "breve" osv... hvad skal man skrive og hvor, så at scriptet fungerer uanset hvad brugeren vælger at punkter i feltet "kategori"???
"Kategori" er altid udfyldt. Og hvis en af de andre også er udfyldt, skal der også søges på dem - ellers ikke. Jeg bruger AND i det det nok er det brugeren forventer.
den må jeg lige afprøve... men i det eksempel du har givet mig, bliver hele søgningen så ikke foretaget udfra feltet "kategori" eftersom det er den der står først? eller er det lige meget i hvilke rækkefølge de kommer?
Rækkefølgen har ikke noget med resultatet at gøre - det er helt op til databasen selv at bestemme den slags. Normalt bruger man en ORDER BY hvis man vil have tingene i en bestemt rækkefølge.
aha... Nu skete der noget... eller rettere der skete intet når jeg bruger den foreslående... men det får mig til at spørge...
Jeg har - som sagt - allerede defineret nogle "punkter" under feltet "kategori", som brugeren kan vælge mellem... men hvordan "koder" jeg min DB i henhold til dette felt...
altså: i min DB har jeg under mit feltnavn "kategori" blot skrevet "internt", "venner", "breve" osv...
ved min skabelon godt, at når jeg vælger "venner" i "kategori" så skal den søge efter de indtastninger der ligger i "kategorien" "venner" ? - det virker næsten for simpelt til at være rigtigt.
Spg 2) Prøv at udskrive SQL'en til skærmen. Hvis du nu udfylder alle dine felter og trykker på submit-knappen - hvordan ser den resulterende SQL sætning så ud? Du gør dette ved at tilføje en echo umiddelbart før at du udføre SQL'en:
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.