Associer 2 requetes sql / php
mika
-
feyesh -
feyesh -
Bonjour,
Je suis en train d'apprendre php-mysql tout seul, avec des bouquins et tutos.
J'essaye de réaliser ma premiere appli en PHP qui permet de mémoriser dans quel annuaire j'ai référencé mes sites.
J'ai 4 tables :
- site (idsite, nomsite)
- annuaire (idannuaire, nomannuaire)
- statut (idstatut, etat [refus, validé, en cours])
- soumission (id, idsite, idannuaire,idstatut, date)
J'arrive à lister l'intégralité de la table soumission avec les valeurs correspondantes à chaque table grâce à une jointure dans l'instruction suivante:
J'ai mis un champs déroulant pour sélectionner le site dont il est question, celui ci importe correctement les sites présents dans la table "soumission"
Le champs déroulant envoi correctement la valeur _POST["nomsite"] (j'ai vérifié avec une fonction mail form action="mail.php")
Par contre, je ne comprends pas comment on peut demander
d'executer la requete faisant ressortir le nom des champs ET celle qui contient le nom du site concerné, cf mon code qui ne fonctionne pas.
Le but est de lire la table soumission en selectionnant le site souhaité dans le champs déroulant de la page précédente.
Voyez vous ce qui bug ?
Comment "associer" mes 2 requetes ?
Je suis en train d'apprendre php-mysql tout seul, avec des bouquins et tutos.
J'essaye de réaliser ma premiere appli en PHP qui permet de mémoriser dans quel annuaire j'ai référencé mes sites.
J'ai 4 tables :
- site (idsite, nomsite)
- annuaire (idannuaire, nomannuaire)
- statut (idstatut, etat [refus, validé, en cours])
- soumission (id, idsite, idannuaire,idstatut, date)
J'arrive à lister l'intégralité de la table soumission avec les valeurs correspondantes à chaque table grâce à une jointure dans l'instruction suivante:
$requete="SELECT * FROM site AS w, soumission AS s, annuaire AS a, statut AS e WHERE w.idsite = s.idsite AND a.idannuaire = s.idannuaire AND e.idstatut = s.idstatut";
J'ai mis un champs déroulant pour sélectionner le site dont il est question, celui ci importe correctement les sites présents dans la table "soumission"
Le champs déroulant envoi correctement la valeur _POST["nomsite"] (j'ai vérifié avec une fonction mail form action="mail.php")
Par contre, je ne comprends pas comment on peut demander
d'executer la requete faisant ressortir le nom des champs ET celle qui contient le nom du site concerné, cf mon code qui ne fonctionne pas.
Le but est de lire la table soumission en selectionnant le site souhaité dans le champs déroulant de la page précédente.
?php include("inc/header.php"); ?> <?php include("connexion.php"); //select $bd=connect_bd(); if($bd<>0) { $_POST['nomsite']; $sql = 'SELECT * FROM soumission WHERE idsite="' .$_POST['nomsite']. '"'; $requete = 'SELECT * FROM site AS w, soumission AS s, annuaire AS a, statut AS e WHERE w.idsite = s.idsite AND a.idannuaire = s.idannuaire AND e.idstatut = s.idstatut'; $resultat1 = mysql_query($sql,$bd) or die ("requete 1 hs"); $resultat2 = mysql_query($requete,$bd) or die ("requete 2 hs"); ?> <h2><?php echo "$nomsite"; ?></h2> <?php if($resultat1<>FALSE) { echo "<table border=\"1\">"; //entête du tableau echo "<tr>"; echo "<th>Annuaire</th>"; echo "<th>Statut</th>"; echo "<th>date</th>"; echo "</tr>"; //fin de l'entête while ($row=mysql_fetch_array($resultat1,$resultat2)) { echo "<tr>"; echo "<td>".$row['nomannuaire']."</td>"; echo "<td>".$row['etat']."</td>"; echo "<td>".$row['date']."</td>"; echo '</tr>'; } echo "</table>"; } else { echo "Echec de l'enregistrement, désolé"; } deconnect_bd($bd); } ?>
Voyez vous ce qui bug ?
Comment "associer" mes 2 requetes ?
A voir également:
- Associer 2 requetes sql / php
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Expert php pinterest - Télécharger - Langages
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
2 réponses
concrètement, quelles infos veux tu extraire de tes tables ?
dans ta premiere requete, tu as un "WHERE idsite = "'.$_POST['nomsite'].'"';, ton $_POST['nomsite'] te renvoie bien l'id du site (et pas le nom) ?
Je suppose aussi que dans ta deuxieme requete, tu veux récupérer les résultats correspondant à ton idsite posté, il faut donc rajouter une condition dans ta requete :
AND w.idsite = "'.$_POST['nomsite'].'"
voila, si ça n'apporte pas de réponses à tes questions, essaye d'être clair sur le but global de ta manip (j'arrive pas a voir ce que tu cherches a faire en fait :p)
dans ta premiere requete, tu as un "WHERE idsite = "'.$_POST['nomsite'].'"';, ton $_POST['nomsite'] te renvoie bien l'id du site (et pas le nom) ?
Je suppose aussi que dans ta deuxieme requete, tu veux récupérer les résultats correspondant à ton idsite posté, il faut donc rajouter une condition dans ta requete :
AND w.idsite = "'.$_POST['nomsite'].'"
voila, si ça n'apporte pas de réponses à tes questions, essaye d'être clair sur le but global de ta manip (j'arrive pas a voir ce que tu cherches a faire en fait :p)