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 :

Disposition de données dans un tableau ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 37
    Par défaut Disposition de données dans un tableau ?
    Bonjour,

    Dans une table j'ai ceci :

    un champ numero
    un champ rep
    un champ groupe


    J'aimerais afficher un tableau qui se présenterait comme ceci :

    (ligne d'entête) : numero numero numero numero numero .....

    groupe rep rep rep rep rep .....
    groupe rep rep rep rep rep ......

    Donc la ligne d'entête reprendrait les valeurs enregistrées dans 'numero'
    La colonne de gauche reprendrait tout ce qui est enregistré dans 'groupe'
    Et le tableau se remplirait avec ce qui est dans 'rep' et correspondant chaque fois à groupe et à numero

    j'espere exprimer clairement ce que je pense ^^




    avec ce code :

    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <table border="2" cellpadding="2" cellspacing="2">
      <tr>
        <td>numero</td>
        <td>rep</td>
        <td>groupe</td>
      </tr>
      <?php do { ?>
        <tr>
          <td><?php echo $row_RSreponses['numero']; ?></td>
          <td><?php echo $row_RSreponses['rep']; ?></td>
          <td><?php echo $row_RSreponses['groupe']; ?></td>
        </tr>
         <?php } while ($row_RSreponses = mysql_fetch_assoc($RSreponses)); ?>
     
    </table>


    J'obtiens cet affichage :

    numero rep groupe
    numero rep groupe
    numero rep groupe
    numero rep groupe


    Comment dois-je faire ?

    Car pour le moment tout se mélange dans ma petite tête.

    Merci pour votre aide ^^

    Dreamover

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si tu t'expliquais mieux sur :
    un champ numero
    un champ rep
    un champ groupe
    ?
    Un exemple peut-etre ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 37
    Par défaut
    WAw MErci pour la rapidité ^^

    Je m'explique :

    Un champ 'numéro' contenant des numéros de questions
    Un champ 'rep' contenant les réponses à ces questions
    un champ 'groupe' contenant un groupe de personne qui répond à ces questions


    J'aimerais afficher un tableau :

    Intitulé du tableau (première ligne= titre des colonnes) : ce qui est enregistré dans 'numero'

    1ère colonne (intitulé de chaque ligne) : ce qui est enregistré dans 'groupe'


    Cellules du tableau = les réponses (rep) de chaque groupe par numero.


    Ca va là ? (r. = numero) (h,d,i = groupe) (les valeurs 10,15,... = rep)
    Images attachées Images attachées  

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tu vas avoir besoin de plusieurs requêtes, et plusieurs boucles.
    Je regarde ca, et je reviens ...

    Tu peux déjà jeter un oeil par ici :
    http://j-reaux.developpez.com/tutori...au-html/#LII-C

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bon. Pour commencer :
    => définir le nombre de colonnes "numero" nécessaires :
    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
    <?php
    // -------------------------------------------------------
    // Nombre de colonnes "numero" :
    $query_num = "SELECT DISTINCT numero FROM latable";
    $result_num = mysql_query($query_num);
    $NbrCol = mysql_num_rows($result_num);
    // creation d'un array avec le contenu des champs "numero"
    // ce qui permettra d alimenter la premiere ligne
    $k=0;
    while ($val_num = mysql_fetch_array($result_num)) {
       $numero[$k] = $val_num['numero'];
       $k++;
    }
    // -------------------------------------------------------
    ?>

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 37
    Par défaut
    Jusque là je te suis ...


  7. #7
    Invité
    Invité(e)
    Par défaut
    C'est après que ca se complique ...

    surtout à cause des multiples lignes (même groupe hhh - ddd - iiii)
    Comment "distinguer" chaque ligne ???

    Si tu avais mis h1 h2 h3 d1 d2 d3 i1 i2 i3 i4 (tous différents), ca ne posait pas de problème...


    h a donc répondu 3 fois aux 4 questions, c'est ca ?
    d 3 fois,
    i 4 fois.

    Les 4 questions sont-elles posées dans le même formulaire ?
    (et donc les réponses envoyées et enregistrées en même temps ?)

    => Il me manque une info pour distinguer les lignes ...
    (enregistrement de l'heure de la réponse dans un champ timestamp, par exemple)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 37
    Par défaut
    je t'explique :

    en fait, il s'agit d'un questionnaire.

    il y a en tout 100 questions (le nombre peut augmenter ou diminuer suivant ce qu'on met dans la base de donnée grace à un éditeur de question).


    des utilisateurs doivent entrer des réponses à ces questions.

    Ces utilisateurs appartiennent à des groupes.

    exemple :
    l'utilisateur 1 appartient au groupe h
    l'utilisateur 2 appartient aussi au groupe h
    l'utilisateur 3 appartient au gorupe i
    l'utilisateur 4 appartient au droupe e
    l'utilisateur 5 appartient aussi au groupe e
    etc


    plusieurs utilisateurs peuvent appartenir à un même groupe.

    et chaque utilisateur répond 1 fois à chaque question suivant le groupe auquel il appartient

    car de plus suivant le groupe les questions ne sont pas forcément les même.

    Exemple le groupe h doit répondre aux questions de 1 à 15 et de 40 à 100
    le groupe e doit répondre à presque toutes etc ....

    tout ça est déjà fait

    donc je me retrouve avec une table reprenant toutes les réponses

    il ne reste plus que l'affichage dans un tableau


    ça t'aide ?

    un peu casse tête n'est-ce pas ^^

  9. #9
    Invité
    Invité(e)
    Par défaut
    1- quel est le nom de la table ??

    2- cette table est-elle liée d'une manière ou d'une autre à la table "utilisateurs" ?

  10. #10
    Invité
    Invité(e)
    Par défaut
    J'ai réussi à obtenir le bon résultat, mais en ajoutant un champ id_user (pour différencier les différentes lignes).

    D'après ce que tu expliques, tu pourrais mettre un champ id_user permettant de relier UN seul utilisateur pas ligne.

    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
    <?php
    // -------------------------------------------------------
    echo '<table border="1" width="400">'."\n";
    // -------------------------------------------------------
    // Première ligne :
    // -------------------------------------------------------
    // Nombre de colonnes "numero" :
    $query_num = "SELECT DISTINCT numero FROM test";
    $result_num = mysql_query($query_num);
    $NbrCol = mysql_num_rows($result_num);
    // creation d'un array avec le contenu des champs "numero"
    // ce qui permettra d alimenter la premiere ligne
    $j=0;
    while ($val_num = mysql_fetch_array($result_num)) {
       $numero[$j] = $val_num['numero'];
       $j++;
    }
    // ---------------------------
    echo '	<tr>'."\n";
    echo '		<td>&nbsp;</td>'."\n";
    for ($j=0; $j<$NbrCol; $j++)
    {
    	echo '		<td>'.$numero[$j].'</td>'."\n";
    }
    echo '	</tr>'."\n";
    // -------------------------------------------------------
    // lignes suivantes :
    // -------------------------------------------------------
    // Nombre de lignes "groupe" :
    $query_group = "SELECT DISTINCT id_user, groupe FROM test";
    $result_group = mysql_query($query_group);
    $NbrLigne = mysql_num_rows($result_group);
    // creation d'un array avec le contenu des champs "groupe"
    // ce qui permettra d alimenter la premiere colonne
    $k=0;
    while ($val_group = mysql_fetch_array($result_group)) {
       $groupe[$k] = $val_group['groupe'];
       $id_user[$k] = $val_group['id_user'];
    	// ---------------------------
    	echo '	<tr>'."\n";
    	echo '		<td>'.$groupe[$k].'</td>'."\n";
     
    	for ($j=0; $j<$NbrCol; $j++)
    	{
    		$query_rep = "SELECT rep FROM test WHERE id_user='".$id_user[$k]."' AND groupe='".$groupe[$k]."' AND numero='".$numero[$j]."'";
    		$result_rep = mysql_query($query_rep);
    		$val_rep = mysql_fetch_array($result_rep);
    		echo '		<td>'.@$val_rep['rep'].'</td>'."\n";
    	}
    	echo '	</tr>'."\n";
    	// ---------------------------
       $k++;
    }
    echo '</table>'."\n";
    ?>
    Ps : (."\n"; pour passer a la ligne dans le code source)

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 37
    Par défaut
    Un tout grand merci super ça fonctionne

    Nickel ^^




    Maintenant je vais essayer de comprendre la démarche


    Un tout grand merci ^^

    suis super content

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

Discussions similaires

  1. [MySQL] Stocker des données dans un tableau
    Par LadyArwen dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/02/2006, 11h40
  2. Réponses: 3
    Dernier message: 11/01/2006, 18h44
  3. Réponses: 3
    Dernier message: 05/12/2005, 03h30
  4. Trier les données dans 1 tableau par ordre décroissant
    Par Blunet dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 23/11/2005, 10h56
  5. [XML-XSLT] Données dans un tableau
    Par Hoegaarden dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 10/12/2004, 16h51

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