Momenteel ben ik bezig aan een klein bansysteem voor mijn site, nu heb ik een tabel met de velden `verloopt` int(11) > de unix timestamp van de datum waarop de ban verloopt en een veld `unbanned` tinyint(1) > Het veld waarin wordt bijgehouden of het ip handmatig door een admin is geunbanned ('t veld krijgt de waarde 1
). Ik heb nog meerdere velden, maar die doen niet echt ter zake.
Als de ban voor onbeperkte duur is zet ik het veld `verloopt` op 0.
Nu wil ik alle ips ophalen die gebanned zijn EN later wil ik alle ips ophalen die niet gebanned zijn. Nu wil ik hiervoor dus 2 queries opstellen.
Voor de gebanned:
En voor de geunbanned:
Maar nu krijg ik bij allebei de query's 1 resultaat terug, terwijl dat resultaat alleen bij de geunbanned moet komen, want het veld verloopt is minder dan de tijd nu en unbanned staat op 0.
Wat moet ik aanpassen aan mijn queries om de goede resultaten te krijgen?
Als de ban voor onbeperkte duur is zet ik het veld `verloopt` op 0.
Nu wil ik alle ips ophalen die gebanned zijn EN later wil ik alle ips ophalen die niet gebanned zijn. Nu wil ik hiervoor dus 2 queries opstellen.
Voor de gebanned:
code:
1
2
3
4
| $sql = 'SELECT `id`, `ip` FROM `bans WHERE `verloopt` > ' . time () . ' OR `unbanned` = 0 ORDER BY `banned_op` DESC'; |
En voor de geunbanned:
code:
1
2
3
4
| $sql = 'SELECT `id`, `ip FROM `bans WHERE `unbanned` = 1 OR ( `verloopt` < ' . time () . ' AND `verloopt` != 0 ) ORDER BY `banned_op` DESC'; |
Maar nu krijg ik bij allebei de query's 1 resultaat terug, terwijl dat resultaat alleen bij de geunbanned moet komen, want het veld verloopt is minder dan de tijd nu en unbanned staat op 0.
Wat moet ik aanpassen aan mijn queries om de goede resultaten te krijgen?
[ Voor 5% gewijzigd door Tommetje op 17-11-2004 18:59 ]
Hoi!