Mysql_fetch_array()

Résolu
Signaler
Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009
-
Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009
-
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
        }
}
A voir également:

4 réponses

Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009

C'est vrai que c'est plus propre ! Merci pour l'info mon problème est résolu, j'avais oublié un " !
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009

Comment faut-il que je fasse alors?
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
//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