Reqûete MySQL dynamique qui s'incrémente en fonction des choix d'un menu... [Résolu]

Signaler
Messages postés
90
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
22 septembre 2009
-
Messages postés
90
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
22 septembre 2009
-
Bonjour à tous,

Je bloque sur la construction dynamique d'une query MySQL.

En fait, en fonction des choix choix sélectionnés dans un menu à sélection multiple, je cherche à construire une requête MySQL.

Voici mon bout de code :

<?php

// Si un ou plusieurs choix a été selectionné dans le menu

if(isset($_POST['KnownProblems']) && !empty($_POST['KnownProblems']))
{

// On fait un array et grâce à un foreach j'insère les résultats
// dans une variable qui s'incrémente

$KnownProblems_Array = $_POST['KnownProblems'];
foreach($KnownProblems_Array as $selectValue)
{

$KnownProblems += 1;
${'KnownProblems'.$KnownProblems} = $selectValue;

}
}

// Ensuite, c'est la partie où je bloque
// Je voudrais que tant que la variable existe
// la query s'incrémente d'un AND bout de requête

$QueryKnownProblems for($i 0; $i < $KnownProblems+1; $i++)
{
" AND TestDataKeyID in (
SELECT TestDataKeyID FROM testknownproblems WHERE KnownProblemID = '${'KnownProblems'.$i}')";
};

Je me doute que ce n'est pas possible dans l'état, et ne trouve pas de solution... Est ce que quelqu'un pourrait m'aider ?

Merci à tous,

2 réponses

Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Hello,

1. Pourquoi ne fabrique tu pas dans ton premier foreach la requete ?
2. Le .= sert à faire concatener une variable avec sa propre valeur :
<?php
$variable = "Hello";
// Si je fais :
$variable .= " world !";
echo $variable;
// J'obtiens 
// Hello world !
?>

Du coup :
<?php
// La tu as ta query de base (Vide ou pas)
$QueryKnownProblems = "";
if(isset($_POST['KnownProblems']) && !empty($_POST['KnownProblems']))
{
$KnownProblems_Array = $_POST['KnownProblems'];
foreach($KnownProblems_Array as $selectValue)
{
// La tu ajoute a ta query de base les sous select
$QueryKnownProblems .= " AND TestDataKeyID in (
SELECT TestDataKeyID
FROM testknownproblems
WHERE KnownProblemID = '".$selectValue."')";
}
}
?>


_________________________________
Min iPomme
Messages postés
90
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
22 septembre 2009

Super merci beaucoup !!! Ca me servira énormément à l'avenir ! Comment est ce que j'avais pu passer à côté de ça !!! ;-)