Thread: MYSQL select
-
14-07-2014, 20:26 #1
MYSQL select
Hello,
Ben een (local)website aan het maken waar je panini stickers kan zoeken.
Ik zit vast bij de filter functie waar ik een mysql query moet uitvoeren op de databank.
In de filter zitten een paar opties zoals 'positie','land','soort sticker', etc....
Het probleem zit hem dat de gebruiker eigenlijk alle filters MOET invullen. Maar dat is natuurlijk dwaas als je bijvoorbeeld alle stickers van de Belgische spelers wilt, is het de bedoeling dat de gebruiker gewoon 'land' selecteert en tis gebakken.
Mijn vraag is nu hoe ik een query schrijft die alles dat 'null' is negeert en alleen op de ingevulde parameters zoekt?
Bijvoorbeeld ik zoek alle Belgische spelers:
Daar zit het probleem dat hij dus alles zoek waar 'stickers.title' én 's.id' letterlijk 'null' is en ik wil gewoon dat hij alles wat null is negeert.Code:SELECT stickers.*, s.title AS sectitle, s.group, p.title AS postitle FROM stickers INNER JOIN sections AS s INNER JOIN positions AS p WHERE stickers.section_id=s.id AND stickers.position=p.id AND stickers.country='Belgium' AND stickers.title LIKE null AND s.id= null
Hopelijk is het wat goed uigelegd
no votes
-
-
14-07-2014, 21:57 #2Member
- Registered
- 08/09/02
- Location
- -
- Posts
- 2,044
- iTrader
- 9 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 3/6
Zoek eens op like '%'
no votes
-
14-07-2014, 22:03 #3
wat je zoekt is zoiets :
select * from table1
where (@param1 is null or col1 = @param1)
and (@param2 is null or col2 = @param2)X360 gamertag: Rhando
Currently playing: Streetfighter IV, Star Ocean 4:TLH, Mass Effectno votes
-
14-07-2014, 22:56 #4Member
- Registered
- 27/09/11
- Location
- Grimbergen
- Posts
- 563
- iTrader
- 40 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/7
is inderdaad wat audiofiel zegt
None are more hopelessly enslaved than those who falsely believe they are free.no votes
-
14-07-2014, 22:59 #5Member
- Registered
- 19/02/06
- Location
- -
- Posts
- 4,048
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/73
Die lijnen gewoon niet toevoegen aan je query als die waarden niet ingevuld zijn.
no votes
-
14-07-2014, 23:26 #6Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Wat audiofiel toont is idd the way to go voor optionele parameters. Maar als je je query string toch dynamisch kan opbouwen kan je best zoals YaMo aangeeft de where condities simpelweg niet toevoegen.
“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
-
14-07-2014, 23:32 #7
Dynamisch opbouwen gaat niet echt. Ik programmeer in Symfony2 en al mijn queries zijn statisch.
Ik probeer het eens zoals audiofiel zegt.
EDIT:
Thanks! Werkt perfect!Last edited by cosmo2; 14-07-2014 at 23:37.
no votes
