Avatar billede Frederik Nybegynder
13. juli 2011 - 22:35 Der er 11 kommentarer og
1 løsning

Spørgsmål angående søgekriterier.

Hej.

Jeg ønsker at kunne søge på fx

navn, efternavn og alder mellem alder1 og alder2.

Jeg kunne forestille mig, at det er noget med koden:


$query = mysql_query("SELECT * FROM brugergruppe WHERE (fornavn = '$fornavn' OR efternavn = '$efternavn' AND alder BETWEEN '$alder1' AND '$alder2') ORDER BY id") or die(mysql_error());


Men jeg kan ikke rigtig få den til at retunere det jeg gerne vil. Det er som om, den ikke kigger på aldersintervallet.


Håber I kan hjælpe!
Avatar billede jakobdo Ekspert
13. juli 2011 - 22:44 #1
Skal den søge som i:

Hvor fornavn = $fornavn OG efternavn = $efternavn OG alder BETWEEN $alder1 OG $alder2 ?

Eller ?

Jeg ville jo mene det skulle være noget ala:

$query = mysql_query("SELECT * FROM brugergruppe WHERE fornavn = '$fornavn' AND efternavn = '$efternavn' AND alder BETWEEN '$alder1' AND '$alder2' ORDER BY id") or die(mysql_error());
Avatar billede arne_v Ekspert
14. juli 2011 - 01:29 #2
Enten ren AND eller parentes for haandtere hvad der er AND og hvad der er OR.
Avatar billede Frederik Nybegynder
14. juli 2011 - 16:13 #3
Søgningen skal blot indeholde fornavn ELLER efternavn, MEN opfylde aldersintervallet. Er det en løsning på det?
Avatar billede jakobdo Ekspert
14. juli 2011 - 16:15 #4
$query = mysql_query("SELECT * FROM brugergruppe WHERE (fornavn = '$fornavn' OR efternavn = '$efternavn') AND alder BETWEEN '$alder1' AND '$alder2' ORDER BY id") or die(mysql_error());
Avatar billede Frederik Nybegynder
14. juli 2011 - 16:44 #5
Super :) det virker ;) Smid svar :)
Avatar billede jakobdo Ekspert
14. juli 2011 - 16:46 #6
Svar!

Forstår du forskellen på min query og din?
Avatar billede Frederik Nybegynder
14. juli 2011 - 16:55 #7
Tror jeg har ideen med det..

(kriterie opfyldt ELLER kriterie opfyldt) OG (kriterie opfyldt)
Avatar billede jakobdo Ekspert
14. juli 2011 - 20:11 #8
Netop.
Og ved du laver en ( noget eller noget) AND..
Så betyder det at en af tingene minimum skal være opfyldt i din ELLER, før den melder sandt.
Avatar billede jakobdo Ekspert
14. juli 2011 - 20:13 #9
Kunne lige tilføje:

OR
FALSE OR FALSE = FALSE
FALSE OR TRUE = TRUE
TRUE OR TRUE = TRUE
TRUE OR FALSE = TRUE

Hvor AND virker på følgende måde:

FALSE AND FALSE = FALSE
FALSE AND TRUE = FALSE
TRUE AND TRUE = TRUE
TRUE AND FALSE = FALSE
Avatar billede jakobdo Ekspert
14. juli 2011 - 20:13 #10
Og takker for point.
Avatar billede Frederik Nybegynder
14. juli 2011 - 22:11 #11
Jeg takker for den gode hjælp! :)
Avatar billede arne_v Ekspert
15. juli 2011 - 04:02 #12
Den magiske term her er nok:
  operator precedence
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester