Mysql_fetch_array()

Résolu
didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009 - 13 janv. 2009 à 10:01
didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009 - 13 janv. 2009 à 13:55
Bonjour,

J'ai une petit soucis, je fais une requête sur ma table qui
contient 4 lignes , je fais un SELECT * FROM OFFRE; Mon mysql_num_rows
est bien égal à 4, mais lorsque je fais l'affichage avec
mysql_fetch_array je n'ai que 2 enregistrements qui s'affichent. En fait, dans ma table , j'ai un champ idProfessionnel qui est une clé étrangère quand les idProfessionel sont les mêmes à la suite, l'enregistrement n'est pas afiiché. Voilà mon
code si quelqu'un trouves une réponse à mon problème :

$resultat=mysql_query($sql) or die ("Erreur SELECT : ".mysql_error());
echo mysql_num_rows($resultat);
while($offre=mysql_fetch_array($resultat))
{
    $titre=$offre['titre'];
    $region=$offre['region'];
    $secteur=$offre['secteur'];
    $contrat=$offre['contrat'];
    $description=$offre['description'];
    $idProfessionnel=$offre['idProfessionnel'];
        //++++++++++++++++++++++REQUETE POUR LES INFOS DE L'ENTREPRISE++++++++++++++++
        $sql2="SELECT *
        FROM PROFESSIONNEL
        WHERE idProfessionnel='".$idProfessionnel."'";
        $result=mysql_query($sql2) or die ("Erreur SELECT 2 : ".mysql_error());
        while($pro=mysql_fetch_array($result))
        {
            $nom=$pro['nom'];
            $ville=$pro['ville'];
            $regionpro=$pro['region'];
            $secteurpro=$pro['secteur'];
            $descriptionpro=$pro['description'];
            $mail=$pro['mail'];
           
            echo "L'offre de ".$nom. " :
";
            echo "Titre : ".$titre."
";
            echo "Région : ".$region."
";
            echo "Secteur : ".$secteur."
";
            echo "Contrat : ".$contrat."
";
            echo "Description : ".$description."
";
            echo "L'entreprise :
";
            echo "Nom : ".$nom."
";
            echo "Ville : ".$ville."
";
            echo "Région : ".$regionpro."
";
            echo "Secteur : ".$secteurpro."
";
            echo "Description : ".$descriptionpro."
";
            ?>
            ><?php echo $mail; ?>
        <?php
        }
}

4 réponses

didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009
13 janv. 2009 à 13:55
C'est vrai que c'est plus propre ! Merci pour l'info mon problème est résolu, j'avais oublié un " !
3
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
13 janv. 2009 à 10:57
Déjà, c'est très peu élégant comme code. On évite les imbrications de boucles du genre...
En plus ça facilite l'affichage et le debug...

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009
13 janv. 2009 à 11:21
Comment faut-il que je fasse alors?
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
13 janv. 2009 à 11:39
//parcourt du premier while
while($offre=mysql_fetch_array($resultat))
{
    $titre=$offre['titre'];
    $region=$offre['region'];
}
//parcourt du 2eme while
while($pro=mysql_fetch_array($result))
{
            $nom=$pro['nom'];
            $ville=$pro['ville'];
}

En fait Tes requetes se font en 1 requête. ça doit ressembler à ça...

SELECT * FROM OFFRE,PROFESSIONNEL WHERE PROFESSIONNEL.idProfessionnel=OFFRE.idProfessionnel;

Et ca te donnera tes 4 zigotos ^_^

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
Rejoignez-nous