8800 sujets

Développement web côté serveur, CMS

Bonjour à tous.

J'ai vu (je ne sais plus où) qu'il existe un moyen simple en php d'utiliser un tableau resultat d'une requete dans le where d'une nouvelle requette

(je précise dans ce cas que les requêtes combinées ne marchent pas, jointure et autre.)

exemple

imaginons que le resultat de la première requete soit

$val=array('a','b','c'....,'z');

la deuxième requête serai:
$select='SELECT champ1 FROM table2 WHERE champ1='a' OR champ1='b' OR champ1='c' OR ..... champ1='z';

$result= mysql_query(..)


la fonction que je recherche permet de faire un truc du genre:
(admettons que cette fonction s'appelle fonctionPerdue()

$select="SELECT champ1 FROM table2 WHERE fonctionPerdue($val) ;";


j'entend bien que cette fonction est une fonction intégrée àa Php ou Mysql ... je ne sais plus
Modifié par alexiase (09 Oct 2008 - 10:58)
Hello

Je vais peu être dire une bêtise mais

$val=array('a','b','c'....,'z');

$select='SELECT champ1 FROM table2 WHERE champ1='.$val[0].' OR champ1='.$val[1].' OR champ1='.$val[2].' OR ..... ';


Ne fonctionnerai pas ?
Modifié par TEALC82 (08 Oct 2008 - 12:51)
Peut-être du cote de IN (mysql) et implode() (php) ?

SELECT * FROM table WHERE id IN (1,2,3,4,5,6);


Soit avec un peu de php
$firstResult = array(1,2,3,4,5,6);
$secondRequest = "SELECT * FROM table WHERE id IN (".implode(',',$firstResult).")";

A modifier en fonction de ton cas de figure bien sur.

A noter qu'il ne faut pas utiliser IN si le nombre d'éléments est trop important (approchant la centaine ou le millier je ne sais plus), sinon ça plante ^^
Et la possibilité aussi de mettre la requête 1 dans le IN de la requête 2
SELECT * FROM table WHERE id IN (SELECt id FROM tble_2 WHERE ...)
Modérateur
Salut,

Peut être que je m'égare en faisant cela ?

$tab=array("a","b","c");

for($i=0;$i<count($tab);$i++){
  $select="SELECT champ1 FROM table2 WHERE champ1='".$tab[$i]."'";
  $mysql_query($select,$connect);
  //etc.
}



<<<EDIT
Peut être que tu cherches tout simplement à faire une union ?
$sql="SELECT champ1 FROM ma_table1 UNION ";
$sql.="SELECT champ1 FROM ma_table2";

EDIT;
++
Modifié par Nolem (08 Oct 2008 - 18:12)