Version complète: sur le forum Webmaster Hub : Comment faire une requête multiple avec un array ?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
fredrick
Bonjour,

Voici mon problème, j'ai fait une recherche dans une bdd et j'ai tout inséré dans une variable array ($papa=('jean','paul','pierre'); par exemple).

J'aimerais maintenant savoir comment je peux faire une requête à MYSQL en disant je voudrais sélectionner tous les enfants dont le papa s'appelle jean ou bien paul ou bien pierre (donc à savoir la variable array de tout à l'heure $papa).

Est-ce que ceci est correcte ?

CODE
$donnees=mysql_query('select * from table where papa=$papa');


Je ne pense pas que ça marchera mais je ne sais pas comment demander ce genre de requête à mysql. Donc demander de rechercher tous les enfants dont papa s'appelle $papa[0] ou bien papa[1] ou bien papa[2] etc... jusqu'à la fin des valeurs contenues dans $papa. Valeurs que je ne connais pas car elle provient d'une base de donnée en perpétuelle mouvement.

Merci beaucoup pour votre aide,

Fred
Zodd
Salut,

peux-tu coller la structure exacte de ta/tes tables mysql ?

Car c'est un peu flou là smile.gif

A+
Portekoi
salut,

Tu peux faire ainsi :

SQL
select * from table where papa in ('".$papa[0] ."', '".$papa[1]."', '".$papa[2]."')


Bon courage


Portekoi
captain_torche
J'imagine que tu ne connais pas forcément la longueur de ton array (Ca serait trop simple).
Je te conseille dont de "transformer" ton array en chaîne de caractères, avec la fonction implode(), puis de passer ces résultats dans la requête SQL.
Ce qui donnerait :
CODE
<?php
$liste_papas = implode(',',$papa);
?>

SQL
select * from table where papa in ($liste_papas)
Portekoi
Pour compléter au cas où ce sont des "varchar" :

CODE
<?php
$liste_papas = implode(',',$papa);
$liste_papas = str_replace(",","','",$papa);
?>


Peut être ajouter un addslahes au début smile.gif puis :

SQL
select * from table where papa in ('".$liste_papas."')


Les deux fonctionneront smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.