Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 11h17   #1
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Par défaut affichage d'un tableau à partir de requetes sql

je voudrais afficher un tableau de cette forme:

------------------------------------------------------------
Cours : XX
------------------------------------------------------------
Groupe X1 Groupe X2 etc.
user 1 user 1
user 2 user 2
------------------------------------------------------------


hors actuellement je n'arrive qu'à afficher cela:


le membre 127 du groupe 3 est associé au cours 56
le membre 458 du groupe 3 est associé au cours 56
le membre 764 du groupe 4 est associé au cours 56
le membre 321 du groupe 4 est associé au cours 56
sebou07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 11h37   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Quelle est ta question ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 15h59   #3
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Par défaut question

ma question est qu'a partir d'une base de donnée sql,
j'arrive à dupliquer avec auto incrémentation dans cette base
une donnée sélectionnée à partir d'une page formulaire html
qu'en suite une page php contenant la requête fait le este du travail
et modifie enfin mysql, et m'affiche dans une page php le résultat

hors je souhaite que ce résultat s'affiche sous forme d'un tableau
avec une entête de la sélection principale
et en dessous les sous champs avec leur contenu au dessous
sebou07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 16h33   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Ok si j'ai bien compris, il s'agit d'afficher des données normalement disposées "en lignes" sous forme d'un affichage "en colonne".

Pour faire ça, tu dois garder à l'esprit qu'un tableau HTML se construit toujours ligne par ligne donc tu va devoir réorganiser les données avant de les mettre en forme pour l'affichage.

D'après les éléments fournis, ta requête SQL te renvoie, pour chaque ligne de résultat, un numéro de membre, un numéro de groupe et un numéro de cours.

Il faut donc que tu arrives à regrouper ces informations sous forme d'arbre:
Cours > Groupe > Membre.

Pour construire cet arbre, tu vas devoir itérer sur l'intégralité du jeu de résultat, un peu de cette façon:
Code :
1
2
3
4
5
6
7
8
9
10
11
$tree = array();
while ($row = mysql_fetch_assoc($results)) {
  if (!isset($tree[$row['id_class']])
    $tree[$row['id_class']] = array();
 
  if (!isset($tree[$row['id_class']][$row['id_group']]))
    $tree[$row['id_class']][$row['id_group']] = array();
 
  $tree[$row['id_class']][$row['id_group']][] = $row['id_member'];
}
var_dump($tree);
Pour l'affichage, tu t'en sortira mieux avec une double boucle et des listes qu'avec des tableaux à mon avis. Ce qui pourrait ressembler à:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div class="classes">
  <?php foreach ($tree as $id_class => $groups): ?>
  <h2>Classe <?=$id_class?></h2>
  <?php foreach ($groups as $id_group => $members): ?>
  <div class="group">
     <h3>Groupe <?=$id_group?></h3>
     <ul class="members">
        <?php foreach ($members as $id_member): ?>
        <li>Membre <?=$id_member?></li>
        <?php endforeach ?>
     </ul>
  </div>
  <?php endforeach ?>
  <?php endforeach ?>
</div>
ensuite tu peux jouer sur les CSS pour afficher les groupes en colonne plutôt qu'en ligne. Sinon tu peux construire un tableau avec des cases vides éventuellement. Mais les tableaux sont peu propices à accueillir des arbes d'informations, on travaille avec du HTML et pas avec Excel
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2012, 17h21   #5
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
ok; je viens de lire ta réponse merci.

voici le code actuel que j'ai et qui fonctionne certes, mais dont oui comme tu l'a bien compris l'affichage que je veux doit se faire sous forme de colonne (et ce à partir de 2 tables sql):

Code :
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
<?php
 
//connection au serveur
$connect = mysql_connect("localhost","root","");
 
//sélection de la base de donnée
mysql_select_db("duplicator", $connect) or die ('ARGH!');
 
// Sélectionner les groupes du Cours A (dans mdl_groups)
$req_build1 = "SELECT * FROM mdl_groups WHERE courseid = ".$_POST['course_A'];
$req1 = mysql_query($req_build1) or die ('query1');
 
 
while($resultat1 = mysql_fetch_array($req1)){ // BOUCLE des GROUPES
 
// Sélectionner les membres des groupes du Cours A (dans mdl_groups_members)
	$req_build2 = "SELECT * FROM mdl_groups_members WHERE groupid = ".$resultat1['id'];
	$req2 = mysql_query($req_build2) or die ('query2');
 
	while($resultat2 = mysql_fetch_array($req2)){ // BOUCLE des MEMBERS
 
		echo "le membre ".$resultat2['userid']." du groupe ".$resultat1['id']." est associé au cours ".$_POST['course_A']."<br>";
 
	}
}
 
 
mysql_close();
?>
sebou07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 11h19   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Y a t'il quelque chose que tu ne comprends pas dans l'exemple que j'ai posté plus haut ?

Très drôle
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 14h39   #7
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Par défaut suite

si je comprends plus ou moins ton code; je suis parti sur quelque chose qui me parait plus simple, en tableau html:

Code :
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
//connection au serveur
$connect = mysql_connect("localhost","root","");
 
//sélection de la base de donnée
mysql_select_db("duplicator", $connect) or die ('ARGH!');
 
//=======================================================================================
// Sélectionner les groupes du Cours A (dans mdl_groups)
$req_build1 = "SELECT * FROM mdl_groups WHERE courseid = ".$_POST['course_A'];
$req1 = mysql_query($req_build1) or die ('query1');
$req1b = mysql_query($req_build1) or die ('query1b');
 
$resultat1b = mysql_fetch_array($req1b);
echo 'Groupes du cours '.$resultat1b['courseid'];
 
while($resultat1 = mysql_fetch_array($req1)){ // BOUCLE des GROUPES
 
// Sélectionner les membres des groupes du Cours A (dans mdl_groups_members)
	$req_build2 = "SELECT * FROM mdl_groups_members WHERE groupid = ".$resultat1['id'];
	$req2 = mysql_query($req_build2) or die ('query2');
 
	echo '<table border=1><caption>Groupe '.$resultat1['id'].'</caption>';
	echo '<tr><td>&nbsp;</td><td>Membres</td></tr>';
	$compteur = 1;
	while($resultat2 = mysql_fetch_array($req2)){ // BOUCLE des MEMBERS
 
		echo '<tr><td>'.$compteur.'</td><td>'.$resultat2['userid'].'</td></tr>';
		$compteur ++;
	}
 
	echo '</table>';
 
}
 
 
mysql_close();
?>
dont le résultat est:
Code :
1
2
3
4
5
6
7
8
9
10
 
Groupes du cours 55
Groupe 1 
      Membres
1	127
2	458
Groupe 2
      Membres
1	764
2	321

mais je voudrai quelque chose de la forme:
Code :
1
2
3
4
5
 
Groupe 1               Groupe 2
      Membres             Membres
1	127            1      764
2	458            2      321
si tu sais comment modifier le dernier code que j'ai envoyé pour avoir cela juste au dessus?
sebou07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h29.


 
 
 
 
Partenaires

Hébergement Web