Requétes MySQL
Résolu
Willem33710
-
Willem33710 -
Willem33710 -
Bonjour tout le monde
Bon je vais essayer d'expliqué mon problème de la façon la plus claire possible :p . C'est partie :
Voila je travaille sur un projet somme toute assé simple , il s'agit d'ajouté des clients (ici ils seront appelé "partner") dans un basse de données et de les afficher par la suite dans un tableau avec les divers infos et de pouvoir filtrer les différentes entré dans ce tableau , pour l'instant tout est simple et tout fonctionne , mais c'est dans les filtres que ça ce corse .
Je m'explique , chaque "partner" peut avoir plusieurs matières première à son actif j'ai donc crée un table "partner" avec toutes les infos sur le "partner" puis une table "commodities" ou sont stocké les matières premieres et une table "outputs" pour faire le lien entre les "partners" et les "commodities" . (j'esper que je perd personne :/ ).
Vous l'aurez compris mon probléme survient quand je fait un filtre avec les "commodities" . Pour l'instant j'essaye avec la méthode suivante :
Ma première requête est de sélectionner tout les "Partner_id" dans la table "outputs" ou "Commodity_name" = selection d'un filtre .
La je récupère bien tout mes id . super :p (pour verifier j'affiche le resultat de ma requéte et je voit bien tout les id )
Ensuite je fait donc une boucle ou je selectionne tout les champs dans la table "partners" ou "ID_Partner" est égale aux id renvoyé par la première requêtes , sauf que la c'est le drame il ne prend que le dernier id en compte :/ donc il ne compte qu'une entré et m'affiche qu'un partner ...
Pour info voila la syntaxe de tout ceci .
Puis ensuite j'affiche résultats dans un tableau . Sauf qu'il me renvoi le dernier résultat à chaque fois a lieu de me renvoyer tout les resultats :/
Ha et les varibables :
$name
$credit
$stage
$region
$commodities
$contacted
$comp
sont celle du formulaire de recherche . Voila j'espere avoir été claire .
Merci d'avance à ceux qui vont m'aider . je suis vraiment perdu
Bon je vais essayer d'expliqué mon problème de la façon la plus claire possible :p . C'est partie :
Voila je travaille sur un projet somme toute assé simple , il s'agit d'ajouté des clients (ici ils seront appelé "partner") dans un basse de données et de les afficher par la suite dans un tableau avec les divers infos et de pouvoir filtrer les différentes entré dans ce tableau , pour l'instant tout est simple et tout fonctionne , mais c'est dans les filtres que ça ce corse .
Je m'explique , chaque "partner" peut avoir plusieurs matières première à son actif j'ai donc crée un table "partner" avec toutes les infos sur le "partner" puis une table "commodities" ou sont stocké les matières premieres et une table "outputs" pour faire le lien entre les "partners" et les "commodities" . (j'esper que je perd personne :/ ).
Vous l'aurez compris mon probléme survient quand je fait un filtre avec les "commodities" . Pour l'instant j'essaye avec la méthode suivante :
Ma première requête est de sélectionner tout les "Partner_id" dans la table "outputs" ou "Commodity_name" = selection d'un filtre .
La je récupère bien tout mes id . super :p (pour verifier j'affiche le resultat de ma requéte et je voit bien tout les id )
Ensuite je fait donc une boucle ou je selectionne tout les champs dans la table "partners" ou "ID_Partner" est égale aux id renvoyé par la première requêtes , sauf que la c'est le drame il ne prend que le dernier id en compte :/ donc il ne compte qu'une entré et m'affiche qu'un partner ...
Pour info voila la syntaxe de tout ceci .
Code : $ReqIdPartner=mysql_query("SELECT * FROM outputs WHERE Commodity_name LIKE '%".$commodities."%'"); while ($ResIdPartner = mysql_fetch_array($ReqIdPartner) ) { $IdPartner=$ResIdPart['Partner_id']; $requete = "SELECT * FROM partners WHERE ID_Partner = ".$Idpartner." and Contacted LIKE '%".$contacted."%' and Competitor_Involvement LIKE '%".$comp."%' and Name LIKE '%".$name."%' and CreditScore LIKE '%".$credit."%' and Stage LIKE '%".$stage."%' and Region LIKE '%".$region."%' and Development_ranking LIKE '%".$dev."%' ORDER BY name"; $resultat = mysql_query($requete); }
Puis ensuite j'affiche résultats dans un tableau . Sauf qu'il me renvoi le dernier résultat à chaque fois a lieu de me renvoyer tout les resultats :/
Ha et les varibables :
$name
$credit
$stage
$region
$commodities
$contacted
$comp
sont celle du formulaire de recherche . Voila j'espere avoir été claire .
Merci d'avance à ceux qui vont m'aider . je suis vraiment perdu
A voir également:
- Requétes MySQL
- Mysql community server - Télécharger - Bases de données
- Mysql gratuit ou payant - Forum MySQL
- Could not connect to mysql! please check your database settings! - Forum Redhat
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Ce réseau est bloqué en raison de plaintes d'abus non traitées concernant un comportement malveillant. cette page vérifie si c'est bien un humain qui envoie les requêtes et non un robot venant de ce réseau ✓ - Forum Réseaux sociaux
6 réponses
$requete = "SELECT * FROM partners WHERE ID_Partner = ".$Idpartner." and Contacted LIKE '%".$contacted."%' and Competitor_Involvement LIKE '%".$comp."%' and Name LIKE '%".$name."%' and CreditScore LIKE '%".$credit."%' and Stage LIKE '%".$stage."%' and Region LIKE '%".$region."%' and Development_ranking LIKE '%".$dev."%' ORDER BY name"; while ($resultat = mysql_query($requete)){ echo implode(' | ', $resultat).'<br/>'; }
Si j'ai bien compris tu fais:
- pour chaque ligne, $resultat = mysql_query($requete)
Si tu affiches $resultat une fois sorti de la boucle,... C'est normal que tu n'affiches que la dernière entrée!
- pour chaque ligne, $resultat = mysql_query($requete)
Si tu affiches $resultat une fois sorti de la boucle,... C'est normal que tu n'affiches que la dernière entrée!
@pjaaar : Ça je m'en suis bien rendu compte , je cherche du coup la feinte pour que la requête fonctionne avec chaque ID trouvé .
@Siluni pas compris ce que tu à voulu faire
@Siluni pas compris ce que tu à voulu faire
salut
ton $ResIdPart['Partner_id']; n'est pas récupérer car ta variable "$ResIdPart" ne correspond à rien du tout d'après ton code
ton $ResIdPart['Partner_id']; n'est pas récupérer car ta variable "$ResIdPart" ne correspond à rien du tout d'après ton code
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La solution était pourtant bien simple :
$requete = "SELECT * FROM partners,outputs WHERE
outputs.Partner_id = partners.ID_Partner and
outputs.Commodity_name LIKE '%".$commodities."' and
partners.Contacted LIKE '%".$contacted."%' and
partners.Competitor_Involvement LIKE '%".$comp."%' and
partners.Name LIKE '%".$name."%' and
partners.CreditScore LIKE '%".$credit."%' and
partners.Stage LIKE '%".$stage."%' and
partners.Region LIKE '%".$region."%' and
partners.Development_ranking LIKE '%".$dev."%'
ORDER BY name";
$resultat = mysql_query($requete);
Voila
$requete = "SELECT * FROM partners,outputs WHERE
outputs.Partner_id = partners.ID_Partner and
outputs.Commodity_name LIKE '%".$commodities."' and
partners.Contacted LIKE '%".$contacted."%' and
partners.Competitor_Involvement LIKE '%".$comp."%' and
partners.Name LIKE '%".$name."%' and
partners.CreditScore LIKE '%".$credit."%' and
partners.Stage LIKE '%".$stage."%' and
partners.Region LIKE '%".$region."%' and
partners.Development_ranking LIKE '%".$dev."%'
ORDER BY name";
$resultat = mysql_query($requete);
Voila