IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème d'affichage dans un boucle while [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut Problème d'affichage dans un boucle while
    Je souhaite afficher la liste des employé d'un service dans un tableau
    Voici le code :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <p><strong><i> Service :  </strong></i><?php echo $service; ?></p>
    <p><strong><i> Libelle :  </strong></i><?php echo $libelle; ?> </strong></p>
    <table>
    	<tr>
    	<td><strong> Identifiant | </strong></td>    
    	<td><strong> Nom | </strong></td>
    	<td><strong> Prénom | </strong></td>
    	<td><strong> Emploi | </strong></td>
    	<td><strong> Type Contrat | </strong></td>
    	<td><strong> Section | </strong></td>
    	<td><strong> Salaire | </strong> </td>
    	</tr>
     
    <?php while($data2 = mysql_fetch_array($query2))
    {
    ?>
     
    	<tr>
    	<td><i><?php echo $data2['Id_Perso'];?></i></td>
    	<td><a href="MAJ_Perso.php"><?php echo $data2['Nom_Perso'];?></a></td>
    	<td><?php echo $data2['Prenom_Perso'];?></td>
    	<td><?php echo $data2['Emploi'];?></td>
    	<td><?php echo $data2['Type_contrat'];?></td>
    	<td><?php echo $data2['Id_Section'];?></td>
    	<td><?php echo $data2['Salaire_Perso'];?></td>
    	</tr>
    <?php } //fin du while 
    ?>
    </table>


    Cependant il ne m'affiche pas tous les employés! Il en affiche quelque uns c'est tout! Un problème dans le while ? Ou autre chose? je sais pas du tout

    EDIT: Apres ma requete il y a 5 employés mais il ne m'affiche jamais les 2 premiers

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    On est repartis pour un tour

    A première vue, ton while a l'air correct. Si tu peux afficher complètement plusieurs employés, le problème ne doit être dans l'affichage ou dans le while.
    Si tu ne récupères qu'une partie des résultats, ça vient peut-être de la requête... Donc, il faudrait donner la requête aussi
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    Fait voir ta requete.....

    Tu fais un SELECT * ?
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  4. #4
    Membre du Club Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Celira
    On est repartis pour un tour
    Ca fait plaisir tout ca !!

    Voici ma requete :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql2 = "SELECT * FROM `personnel` WHERE Id_Section='$service'";
    $query2 = mysql_query($sql2) or die($sql2 . ' : '  . mysql_error());
    $data2 = mysql_fetch_assoc($query2);

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut

    un conseil : ne récupère rien avant le while. pas de mysql_fetch_..., sinon tu risques de perdre des tuples, ce qui d'ailleurs est exactement le problème

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    $sql2 = "SELECT * FROM `personnel` WHERE Id_Section='$service'";
    $query2 = mysql_query($sql2) or die($sql2 . ' : '  . mysql_error());
    // pas de récupération ...
     
    ?>
    <p><strong><i> Service :  </strong></i><?php echo $service; ?></p>
    <p><strong><i> Libelle :  </strong></i><?php echo $libelle; ?> </strong></p>
    <table>
    	<tr>
    	<td><strong> Identifiant | </strong></td>    
    	<td><strong> Nom | </strong></td>
    	<td><strong> Prénom | </strong></td>
    	<td><strong> Emploi | </strong></td>
    	<td><strong> Type Contrat | </strong></td>
    	<td><strong> Section | </strong></td>
    	<td><strong> Salaire | </strong> </td>
    	</tr>
     
    //... avant celle-ci
    <?php while($data2 = mysql_fetch_array($query2))
    {
    ?>
     
    	<tr>
    	<td><i><?php echo $data2['Id_Perso'];?></i></td>
    	<td><a href="MAJ_Perso.php"><?php echo $data2['Nom_Perso'];?></a></td>
    	<td><?php echo $data2['Prenom_Perso'];?></td>
    	<td><?php echo $data2['Emploi'];?></td>
    	<td><?php echo $data2['Type_contrat'];?></td>
    	<td><?php echo $data2['Id_Section'];?></td>
    	<td><?php echo $data2['Salaire_Perso'];?></td>
    	</tr>
    <?php } //fin du while 
    ?>
    </table>
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre du Club Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Au fait avant je faisai un test :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (mysql_fetch_array($query2)==NULL) 
    {// aucun employé dans ce service
    ?>
    Il n'y a aucun employé dans votre service.
    Si vous souhaitez insérer un nouvel employer <a href="Ajout_Perso.php" /> cliquez ici. </a>
    <?php
    }
    else
    {// il y a un minimun un employé dans ce service
    ?>

    J'ai donc enlevé tout mysql_fetch_array($query2) et ca marche mais comment afficher un message si il n'y a aucun personnel dans le service sans utiliser le mysql_fetch_array ??

    Merci beaucoup

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En utilisant mysql_num_rows ! ça va te compter les résultats de ta requête sans y toucher...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $sql2 = "SELECT * FROM `personnel` WHERE Id_Section='$service'";
    $query2 = mysql_query($sql2) or die($sql2 . ' : '  . mysql_error());
     
    //on compte les résultats
    $nb_ligne = mysql_num_rows($query2);
     
    if ($nb_ligne==0){
    //alors tu dis qu'il n'y a pas d'employés
     
    }else{
    //il ya des employés tu peux les afficher
      while($data2 = mysql_fetch_array($query2)){
        //blablablabla
      }
    ]
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre du Club Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Désoloe de repondre que maitenant, mais hier j'ai fini un peu plus tôt
    J'avais pas pensé au comptage des lignes! Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de IF dans une boucle WHILE
    Par Medoou dans le forum MATLAB
    Réponses: 14
    Dernier message: 19/07/2009, 11h25
  2. probléme d'incrémentation dans la boucle while
    Par cmoi_doudi dans le forum Langage
    Réponses: 3
    Dernier message: 28/05/2008, 10h19
  3. problème de recordset dans une boucle while
    Par sebac dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/06/2007, 11h47
  4. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 17h42
  5. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo