8791 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un petit souci qui me bloque depuis pas mal de temps.
J'ai une première table dans laquelle j'ai un champs qui correspond à une liste d'id (sous la forme "12,84,56,157"). Ces id sont ceux d'une seconde table.
Je souhaiterais récupérer chaque ligne de la seconde table à partir de ces listes d'id.
J'ai tenté :


$sql = "SELECT liste_id FROM table1 WHERE id_table1 = 10";
$req = mysql_query($sql); 
$data = mysql_fetch_array($req);

$expl = explode(",", $data[liste_id]);


foreach ($expl as $cle=>$liste_decomposee)
{
$sel = "select * from table2 WHERE id = $liste_decomposee";
$res= mysql_query($sel);
}


ça ne fonctionne pas...
Merci de votre aide ! Smiley smile
hum,

$expl = explode(",", $data[liste_id]);

manque des quote autour de liste_id.

as_tu bien appelé l'id de id_table1 ainsi et pas id comme la seconde table? ou vise-versa
id ne s'appelle t'il pas id_table2 dans la seconde.


ensuite mauvaise optimisation des choses. tu peux utiliser le selecteur IN.

$sql = "SELECT liste_id FROM table1 WHERE id_table1 = 10";
$req = mysql_query($sql); 
$data = mysql_fetch_array($req);

$sel = "select * from table2 WHERE id IN (".$data['liste_id'].")";
$res= mysql_query($sel);


ensuite il faut exploiter $res et qu'il y est quelquechose de valable dans les id.
Modifié par CPascal (14 Mar 2008 - 13:07)