Hallo,
In onderstaande wordt een rij wel of niet getoond met show = Ja/Nee

als ik echter een plaats kies worden ook de rijen met show = Nee getoond,
kan ik een soort van prioriteit (priority?) geven aan WHERE `show` = 'Ja'


$query = $mysqli->query("
SELECT * 
  FROM $db
 WHERE  (`show` =   'Ja'  )
 AND YEAR(`datum`) = '".addslashes($year)."'
  OR `plaats` = '".addslashes($plaats)."'
  ORDER BY id DESC 
"); 
Plaats haakjes om de AND en OR.

WHERE (... AND ...) OR ...
is wat anders dan
WHERE ... AND (... OR ...)
Bedankt voor jullie hulp.

Dit lijkt te werken

 WHERE  (`show` =   'Ja'  )
 AND (YEAR(`datum`) = '".addslashes($year)."'
  OR `plaats` = '".addslashes($plaats)."')
Nog wel even de addslashes vervangen door een echte escaping functie, zoals mysqli_escape_string. Addslashes is triviaal om te omzeilen.
Beste bert,

Moet die veiligheid nog eens nalopen , overal lijkt het anders te zijn.
en backtics weghalen `show` `datum` `plaats` etc gewoon: show datum plaats.
kan alleen maar tot fouten en verwaaring leiden. De backtics zijn meegekopieerd uit een ranzige tool??
backtics , schijnen meningen ook verdeeld over te verschillen.
Maar kan goed zijn dat ze hier niet nodig zijn.

Is ergens een goede tut te vinden hierover ,, veiligheid enz..
ik zou in de database kiezen voor 1/0 ipv Ja en Nee.

Dat voorkomt verwarring met JA of ja en maakt ook dat je programma begrijpelijk is voor een anderstatalige persoon.
Ivo P op 29/05/2017 14:58:01

ik zou in de database kiezen voor 1/0 ipv Ja en Nee.

Dat voorkomt verwarring met JA of ja en maakt ook dat je programma begrijpelijk is voor een anderstatalige persoon.


Klopt, had ik zelf ook aan aan zitten denken

Programmeertechnisch is het ook handiger vanwege de booleans (true/ false).
Ik gebruik in zulke gevallen vaak een E_NUM met 0 en 1.

Reageren