Page 1 sur 1

Insérer une condition php dans une requête SQL

Posté : 06 mars 2013, 15:39
par Sardinoux
Bonjour,

Est-il possible d'obtenir une requête SQL dynamique? Je poste une bout de code qui ne marche pas mais qui donne un peu l'idée:

mysql_query("SELECT DISTINCT heure FROM cours
WHERE (id_promo='$idPromotion'"
.if (isset($cpDuGroupe2)){echo ."OR cours.id_promo=$cpDuGroupe2";.}."//Ici je voudrais exécuter le bout de requête que si $cpDuGroupe2 existe
OR cours.id_promo='$cpDuGroupe3' OR cours.id_promo='$cpDuGroupe4' OR cours.id_promo='$cpDuGroupe5'
OR cours.id_promo='$dedoublementAafficher1' OR cours.id_promo='$dedoublementAafficher2' OR cours.id_promo='$dedoublementAafficher3' OR cours.id_promo='$dedoublementAafficher4')
AND (heure>$DebutSemaine AND heure<$FinSemaine)");

Je sais que ça paraît tordu mais ça me serait super pratique ou si vous connaissez une solution efficace pour le faire, je suis preneur.

En vous souhaitant une bonne journée.

Merci.

Re: Insérer une condition php dans une requête SQL

Posté : 06 mars 2013, 15:53
par yann18
bonjour,
j'arrive à peine à comprendre ce que veux faire.néanmoins si tu veux faire une requête suivant qu'une variable existe ou non tu peux t'en inspirer:
$query="SELECT DISTINCT heure FROM cours  WHERE id_promo='".$idPromotion."'  ";
if (isset($cpDuGroupe2) ){
$query.="AND  col1='". $val1."' ";
mysql_query($query)
}

Re: Insérer une condition php dans une requête SQL

Posté : 06 mars 2013, 15:56
par BGMaxime
bonjour,

le plus simple est de traiter ta requête avant l'appel de mysql_query:

if (ta condition est vraie)
$condition = " AND B=1 ";
else $condition=''";

$requete = "SELECT toto FROM titi WHERE A=1 ".$condition." AND C=1;"


mysql-query($requete);

A+

Re: Insérer une condition php dans une requête SQL

Posté : 06 mars 2013, 17:06
par Sardinoux
Re!

Merci pour vos réponses, j'ai réussi à régler le problème en traitant, en effet, la requête avant en tant que variable de type string comme cela:
$req1 = "SELECT DISTINCT heure FROM cours WHERE  (id_promo=$idPromotion";
                                                        if (isset($cpDuGroupe3))
                                                            $req1 .="  OR cours.id_promo=$cpDuGroupe3";
                                                        if (isset($cpDuGroupe4))
                                                            $req1 .="  OR cours.id_promo=$cpDuGroupe4";
                                                        if (isset($cpDuGroupe5))
                                                            $req1 .="  OR cours.id_promo=$cpDuGroupe5";
                                                        if (isset($dedoublementAafficher1))
                                                            $req1 .="  OR cours.id_promo=$dedoublementAafficher1";
                                                        if (isset($dedoublementAafficher2))
                                                            $req1 .="  OR cours.id_promo=$dedoublementAafficher2";
                                                        if (isset($dedoublementAafficher3))
                                                            $req1 .="  OR cours.id_promo=$dedoublementAafficher3";
                                                        if (isset($dedoublementAafficher4))
                                                            $req1 .="  OR cours.id_promo=$dedoublementAafficher4";
                                                        $req1 .=") AND (heure>$DebutSemaine AND heure<$FinSemaine)";
                                                                                                                                            
                                                        $requeteNombredheureHebdo = mysql_query($req1);
Je ne sais pas ci c'est clair vu que c'est chargé mais le principe est là =D