[RESOLU] Insérer une condition php dans une requête SQL

Petit nouveau ! | 4 Messages

06 mars 2013, 15:39

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.

Mammouth du PHP | 571 Messages

06 mars 2013, 15:53

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)
}

Eléphanteau du PHP | 20 Messages

06 mars 2013, 15:56

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+
Quelques pages sur le php et mysql => http://blueguitarmaxime.blogspot.fr/

Petit nouveau ! | 4 Messages

06 mars 2013, 17:06

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