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

Résolu
Sniark Messages postés 90 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 22 septembre 2009 - 22 sept. 2009 à 09:31
Sniark Messages postés 90 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 22 septembre 2009 - 22 sept. 2009 à 13:59
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,
A voir également:

2 réponses

Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
22 sept. 2009 à 13:39
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
3
Sniark Messages postés 90 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 22 septembre 2009
22 sept. 2009 à 13:59
Super merci beaucoup !!! Ca me servira énormément à l'avenir ! Comment est ce que j'avais pu passer à côté de ça !!! ;-)
0
Rejoignez-nous