Aller au contenu

Comment faire une requête multiple avec un array ?


fredrick

Sujets conseillés

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 ?

$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

Lien vers le commentaire
Partager sur d’autres sites

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 :

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

select * from table where papa in ($liste_papas)

Lien vers le commentaire
Partager sur d’autres sites

Pour compléter au cas où ce sont des "varchar" :

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

Peut être ajouter un addslahes au début :) puis :

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

Les deux fonctionneront :)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...