Faire une condition PHP dans un SELECT sql
Posté : 31 janv. 2018, 01:54
Bonjour, afin d'effectuer l'affichage de mes articles triés par couleur, par matière ou autre j'aurais besoin de faire des conditions en PHP directement dans une requête sql.
En effet je voudrais pouvoir afficher tous les articles lorsque ma session vaut 'all' et sinon afficher la couleur contenu dans ma session. Pareil avec le choix de la matière.
Mais impossible de faire une cancaténation dans ma requête. Pouvez-vous m'aider svp ? Ou me dire s'il n'y a pas un autre moyen plus simple de faire cette opération.
En effet je voudrais pouvoir afficher tous les articles lorsque ma session vaut 'all' et sinon afficher la couleur contenu dans ma session. Pareil avec le choix de la matière.
Mais impossible de faire une cancaténation dans ma requête. Pouvez-vous m'aider svp ? Ou me dire s'il n'y a pas un autre moyen plus simple de faire cette opération.
$sql_articles = $bdd->prepare('
SELECT titre, url, prix, photo
FROM articles
WHERE afficher = :afficher';
if ($_SESSION['trier']['couleur'] != 'all') { echo 'AND couleur= :couleur'; }
if ($_SESSION['trier']['matiere'] != 'all') { echo 'AND matiere= :matiere'; }
echo ' ORDER BY ordre
');
$sql_articles->execute(array(
'couleur' => $_SESSION['trier']['couleur'],
'matiere' => $_SESSION['trier']['matiere'],
'afficher' => 1
));
$sql_articles->setFetchMode(PDO::FETCH_ASSOC);