11. juli 2003 - 17:20Der er
11 kommentarer og 1 løsning
Hjælp vedr. søge funk.
Hej !
Jeg har lavet en søge funktion som skal lede efter huse som er placeret i forskellige områder og har forskellige funktioner, som f.eks. strøm, warme, badeværelse, køkken o.s.v. I databasen har jeg lavet det sådan at om der er "strøm, så står Y og hvis ikke står N" o.s.v. Men problemet er at, hvis en søger efter et hus med varme og badeværelse - så kommer bare de hus som passer lige med søgelsen, men jeg vil gerne have at der skal f.eks. komme hus som har det søgte og mere.
Jeg ved ikke hvordan jeg bygger sådan søgefunktion op da man skal søge i flere kolonner... ! Jeg ved selvføgelig at man kan lave det med && , || , like - men det går ikke helt!!!
Ved godt at det ikke er serligt godt forklaret, men håber at nogen kan forstå ligt af det??
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.
Så skal du bruge or i din søgestreng. Forøvrigt hvis du skal bruge alle oplysningerne fra tabellen er det lettere at skrive *. Fx: $sql = mysql_query("Select * from locations where power='$power' or shower='$shower' or phone='$phone'");
Du er nødt til at sammensætte SQL strengen FØR du kører den på databasen. Altså: SQL = "Select * From locations Where" If shower = "yes" Then 'Bruger har valgt ja til bruser fra fra formen SQL = SQL + "AND shower = 'y'" End IF if bath = "yes" SQL = SQL + "AND bath = 'y'" End if osv....
Du må lige fuske omkring at der ikke kommer 2 AND's eller der mangler 1 AND mellem 2 søge kriterier.. vil måske forekomme hvis kun et søgevalg fremkommer.
Kunne evt. løses med en if onlyoneseachcritea 'et eller andet hjemmelavet kontrolcheck Replace(SQL,"AND","") End if
Ellers hvis der bare ALTID er mindst ET søge tjek UDEN et "AND", burde der slet ikke forekomme problemer med ovenstående forslag.
cpmonster-> Ja, det kan du selvfølgelig have ret i, alt efter hvordan formen ser ud. Den kunne jo være opbygget med selectboxe, men det fremgår jo ikke af spørgsmålet.
cpmonster-> Selvfølgelig kan der det, du har fuldstændig ret. Jeg havde bare en formodning om at man kunne lave formen ved hjælp af selectboxe og så har værdierne fx enten "y" eller ingenting og så kunne man bare bruge or i søgestrengen.
Nu er jeg MEGET sen til at svare på svarene, jeg er lige kommet tilbage fra en ferietur, så....! . "cpmonster" - dit svar ser intersant ud, hvad mener du med Relpace ?
Jeg tror ikke helt jeg forstår spørgsmålet. Hvad mener du med: "hus som har det søgte og mere"? Anyway, hvis du kan bruge cpmonsters forslag, skal du ændre på syntaxen her: SQL = SQL + "AND shower = 'y'" til: $sql .= "AND shower = 'y'"; Mht. REPLACE er syntaxen: $newstr = str_replace("AND", "", $oldstr);
Jeg skrev den om Replace, da det måske ville være et problem, hvis der kun var ét søgekriterie. MEN hvis du ikke sætter et 'AND' på det første kriterie(et obligatorisk kriterie), skal det så påsættes et 'AND' EFTER hvert extra søgekriterie (den under IF then)
Derefter et evt. check på at erstatte (AND AND) med (AND)
Kom ikke så langt med dette spørgsmål... nu er altså lukketid;) efter 2 år!
Synes godt om
Ny brugerNybegynder
Din løsning...
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.