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 :

[Conception] Problème d'affichage des données


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut [Conception] Problème d'affichage des données
    Salut à tous, petit problème de mon côté donc j'explique :

    Dans un premier temps, j'effectue une requête SQL qui me récupère tous les noms de modules d'une table.
    Ensuite, j'aimerai afficher mes checkbox suivant si le module est présent dans la table, en clair voila le code :

    Code : 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
    <table>
          <tr>
    <?php
    include("requete_modules.php");//Insertion de la requete
    while($donnees = mysql_fetch_array($sql))
    {?>
    <td>
          <?php
          if($donnees['nom_module'] == 'Utilisateur')
          {
                echo '<input type="checkbox" checked/> Utilisateurs ';
          }
          else
          {
                echo '<input type="checkbox" /> Utilisateurs';
          }
          ?>
    </td>
    </tr>
    <tr>
    <td>
    <?php
    if($donnees['nom_module'] == 'Produit')
    {
          echo '<input type="checkbox" checked/> Produits';
    }
    else
    {
          echo '<input type="checkbox" /> Produits';
    }
    ?>
    </td>
    </tr>
    </table>
    Mon problème, c'est qu'à cause du While, les valeurs sont affichées en doublon donc mauvause conception, si quelqu'un aurait une solution concernant ce problème !!!

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je ne vois pas la fin de ton while déjà, et ensuite je ne vois pas ce qui est affiché "en double"

    donne un exemple concret du résultat que ca produit et de ce que tu aimerais à la place, parce la je peux pas faire grand chose meme si c'est ultra important

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Je vais donner un exemple simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php $sql = mysql_query("SELECT * FROM article");
    while($affiche = mysql_fetch_array($sql))
    {
          if ($affiche['nom_article'] == "zer")
          {
                echo 'if...';
          }
          else
          {
                echo 'else...';
          }
    }?>
    En gros vu que j'ai 10 données dans la table article et que l'article "zer" est le 4ème il va m'afficher :

    else...else...else...if...else...else...else...else...else...else...else...

    moi j'aimerai qu'il me parcours la table une fois et que s'il tombe sur l'article zer il m'affiche ce qu'il y a dans la condition if.

    En gros que ca donne ca : if..., et s'il ne le trouve pas qu'il donne ca : else...


    Voila, j'espère que vous pourrez m'aider

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Ben désolé mais c'est pas plus clair pour moi la ... hormis ne pas mettre le echo "if..." dans le if pour pas qu'il s'affiche justement

    EDIT: sinon, tu commences d'abord par récupérer les éléments de ta requete dans un tableau, et ensuite tu regardes si ton produit est dans le tableau ou pas, et ce pour chaque produit.

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    sinon, tu commences d'abord par récupérer les éléments de ta requete dans un tableau, et ensuite tu regardes si ton produit est dans le tableau ou pas, et ce pour chaque produit.
    Je pense que la est la solution à mon problème !!!

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Mais maintenant la question est comment remplir un tableau avec les données d'une table SQL puis de le parcourir pour voir si le champ existe.....

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Comme ca:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $ResultArray = array();
    while($result = mysql_fetch_array($sql))
    {
    $ResultArray[] = $Result;
    }

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 164
    Points
    164
    Par défaut
    Et pas la peine de parcourir le tableau pour savoir si une donnée existe, utilises plutôt la fonction in_array() qui te fera gagner du temps.

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Yep, désolé de t'enbêter encore mais j'ai testé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $sql = mysql_query("SELECT * FROM article");
    $ResultArray = array();
    while($result = mysql_fetch_array($sql))
    {
    	$ResultArray[] = $result;
    }	
     
    echo "Donnée : ".$ResultArray[1];
    ?>
    il me retourne ca : Donnée : Array

    J'ai du mal le faire !!!

  10. #10
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Non c'est normal, chaque ligne résultat de ta requete est récupérée par mysql_fetch_array() dans un tableau. donc chaque élément de $ResultArray est lui aussi un tableau. Si tu veux voir tout le contenu remplace echo (qui ne marche que pour les variables simples) par print_r() tu verras que tu as tous tes résultats.

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Oki, mais pourrez tu me montrer comment inserrer les données dans le tableau puis afficher par exemple la deuxième donnée du tableau.

    Je galère trop, les tableaux c'est pas mon fort

    Reprends le code que j'ai mis juste au dessus !!!
    Merci

  12. #12
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Hum, comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $sql = mysql_query("SELECT * FROM article");
    $ResultArray = array();
    while($result = mysql_fetch_assoc($sql))
    {
    	$ResultArray[] = $result;
    }	
    
    // en admettant que dans article tu aies un champ nom_article
    // affiche le nom du deuxieme article des résultats
    echo "Donnée : ".$ResultArray[1]['nom_article'];
    ?>

  13. #13
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Un grand merci à toi koopajah. Ca marche !!!!!


  14. #14
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Yep, je me permet de vous réembéter , j'ai réussi à classer les élément dans le tableau et j'aurai aimé savoir s'il y a un équivalent de in_array qui existerait :

    Voila mon code :

    Code : 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    $ResultArray = array();
    $sql = mysql_query("SELECT nom_module FROM module WHERE fk_utilisateur='3'");
    while($result = mysql_fetch_assoc($sql))
    {
    	$ResultArray[] = $result;
    }	
     
    if($ResultArray[0]['nom_module'] == 'Utilisateur')
    {
    	print 'Utilisateurs <br/>';
    }
    else
    {
    	echo 'pas Utilisateurs <br/>';
    }
    ?>
    </td>
    </tr>
    <tr>
    <td>
    <?php
    if($ResultArray[1]['nom_module'] == 'Produit')
    {
    	echo '<input type="checkbox" checked/> Produits';
    }
    else
    {
    	echo '<input type="checkbox" /> Produits';
    }
    ?>
    </td>
    </tr>
    <tr>
    <td>
    <?php
    if($ResultArray[3]['nom_module'] == 'Article')
    {
    	echo '<input type="checkbox" checked/> Articles';
    }
    else
    {
    	echo '<input type="checkbox" /> Articles';
    }
    ?>
    </td>
    </tr>
    <tr>
    <td>
    <?php
    if($ResultArray[4]['nom_module'] == "Fabricant")
    {
    	echo '<input type="checkbox" checked/> Fabricants';
    }
    else
    {
    	echo '<input type="checkbox" /> Fabricants';
    }
    ?>
    </td>
    Voila le problème dans ce cas la, c'est que je récupère les module de l'utilisateur 3 (la requete marche bien!!), disons que l'utilisateur 3 a droit aux modules suivant :
    Utilisateur
    Article

    Le problème est que ces modules vont se placer dans le tableau de la sorte :
    $ResultArray[0]['nom_module'] ---> Utilisateur
    $ResultArray[1]['nom_module']----> Article

    Et mes if ne marcheront plus vu qu'il y aura un décallage.

    Help please, je sais pas si vous avez tout compris, je m'y perd moi même lol

Discussions similaires

  1. Réponses: 25
    Dernier message: 27/07/2007, 15h46
  2. [JXTreeTable] Problème d'affichage des données
    Par grabriel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 01/03/2007, 20h37
  3. [MySQL] Problème avec affichage des données d'une base MySQL
    Par leclone dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/12/2006, 13h40
  4. [MySQL] Problème d'affichage des données!
    Par ghyosmik dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/09/2006, 16h43
  5. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 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