PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 16-10-2012 17:01:42

mika86
Membre
Inscription : 16-10-2012
Messages : 1

associer 2 requetes : je bloque

Bonjour,


Je débute en php / mysql à l'aide de tuto, bouquins et un cas pratique, une appli permettant de suivre le référencement de mes sites dans les annuaires web.

J'ai donc 4 tables :
- site (idsite, nomsite)
- annuaire (idannuaire, nomannuaire)
- statut (idstatut, etat)
- soumission (id, idsite, idannuaire, etat, date)

J'ai fais une page , rapport.php, qui liste toutes les soumissions réalisées mais provoque des doublons. Voici la requete :

$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"
;

Cette requete me permet d'associer  les noms correspondants aux ID des tables.

> J'aimerai maintenant sélectionner un site à l'aide d'un menu déroulant et lire toutes les infos contenues dans la ligne sql.
Mon menu affiche bien les noms des sites contenu dans la table "soumission", pas de pb.

Donc normalement, si je fais un select contenant la variable :

$sql     = 'SELECT * FROM soumission WHERE idsite="' .$_POST['nomsite']. '"';

je devrais pouvoir avoir les infos du sites précédemment sélectionné.

Mais ca ne fonctionne pas.

Je ne comprends pas comment je peux associer ma premiere requete permettant de recuperer les noms des tables et ma deuxième, la selection d'un site.

J'ai fais le code suivant mais il ne donne rien :

<?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); 
}
?>

J'ai bien le nom du site en H2, un tableau contenant les titre mais il reste vide.

Dois je envoyer "idsite" au lieu de "nomsite" dans le champs déroulant ?
Comment garder en mémoire la requete indiquant les noms de table pour effectuer la 2 eme ?


Je pense que ce que je cherche à faire est simple mais j'ai du louper un passage ;-)
Merci d'avance de votre aide !

Hors ligne

Pied de page des forums