Ik heb onderstaande code waarmee ik een kleine zoekfunctie heb. Wat er nu gebeurt is dat ik een minimum waarde (getal1) en een maximum waarde (getal2) invoer en met onderstaande code wordt dan alles in de database dat tussen deze waarde ligt meegenomen. Werkt allemaal perfect tot zover. Alleen wat ik nu wil is dat hij naast de minimum en maximum waarde die word meegegeven ten alle tijden ook een 'snelheid' van '0' meeneemt in de resultaten. Als bijvoorbeeld word gekozen voor een getal tussen de 100 en de 200 dan moet hij als output alle waarde tussen de 100 en de 200 laten zien EN een waarde van 0. Hoe kan ik dit doen in deze code?



$sql="SELECT * FROM aanbieders WHERE snelheid >= '$getal1' AND snelheid <= '$getal2'";

SELECT * FROM aanbieders WHERE ( snelheid >= 100 AND snelheid <= 200 ) OR snelheid=0


je hoeft numerieke waardes niet tussen quotes ( ' ) te plaatsen.
Wellicht is BETWEEN beter in dit geval? Sowieso minder typegevoelig (=, >, >= of =>) en je hebt geen haakjes nodig.

SELECT *
FROM aanbieders
WHERE snelheid BETWEEN 100 AND 200
OR snelheid = 0
OR snelheid IS NULL
ORDER BY snelheid DESC
==>> Wellicht is BETWEEN beter in dit geval
Staat wel wat netter en is makkelijker uitschrijven maar 'beter' is het niet echt.
De parser maakt er intern toch weer >= AND <= van. In feite maakt het dus niet uit.
Soms zijn meerdere methodes gewoon goed :-)
Toch is de aanvulling van Eddy wel welkom omdat de Topicstarter zodoende kan kiezen uit meerdere methoden en zelf zijn voorkeur kan bepalen.
Zo simpel was het dus :) Thanks voor de hulp!!

Reageren