Ich habe eine SQL-Abfrage. Ich benutze eine PHP-Funktion, um es auszuführen und es gibt zwei PHP-Variablen drin. Manchmal ist eine der PHP-Variablen Null, was zu keinen Ergebnissen führt. Es gibt eine Möglichkeit, es anzupassen, so dass, wenn diese Variable Null ist, es alle Datensätze basierend auf der anderen Bedingung zurückgibt?Geben Sie in SQL auf Null zurück. Wählen Sie
SELECT
`author`.name,
`author`.id,
`category`.name as cat_name
FROM
`post`
INNER JOIN `author` ON (`author`.id = `post`.author)
INNER JOIN `category` ON (`category`.id = `post`.category_id)
WHERE `author`.site_id='".$site_id."' AND `post`.category_id='".$category_id."'
AND `category`.id <> 0
GROUP BY `post`.author
Was ich will, ist alle Datensätze zurück, wo author.site_id zu site_id $ gleich ist, wenn $ category_id gleich Null ist.
Erstellen Sie einfach die Bedingung in Ihrem PHP-Code, indem Sie 'AND post.category_id = '". $ Category_id. "'' Nur wenn '$ category_id' nicht 0 ist. – roberto06
Ersetzen Sie 'AND post.category_id ='". $ category_id. "'' mit '($ category_id! = 0?" UND post.category_id =' ". $ category_id." ': "") ' – apokryfos
Die SQL-Anweisung ist eine Variable $ sql =" STATEMENT " Ändern Sie den Code, den ich Apokryfos ersetzen muss? –