Tableau dynamique en php
Fermé
lettywan
-
26 juil. 2010 à 13:05
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 27 juil. 2010 à 09:14
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 27 juil. 2010 à 09:14
A voir également:
- Tableau dynamique en php
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Liste déroulante dynamique excel - Guide
- Trier tableau excel - Guide
7 réponses
DasSium95
Messages postés
673
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
134
26 juil. 2010 à 13:13
26 juil. 2010 à 13:13
tu dois mettre ton résultat de requête sous forme de tableau et ensuite faire un for dans lequel tu écris le code qui permet de créer une de ton tableau. un l'intérieur a l'intérieur de tes echo"<th>" echo"</td>" tu met la valeur i de ton tableau contenant le résultat de ta requête.
j'ai pas précisé mais le for parcours le tableau contenant le résultat
j'ai pas précisé mais le for parcours le tableau contenant le résultat
Bonjour DasSium95 .
Merci pour ta réponse rapide.
Faut il que je fasse 3 boucles For ? (une par requete ?).
Merci pour ta réponse rapide.
Faut il que je fasse 3 boucles For ? (une par requete ?).
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 juil. 2010 à 14:12
26 juil. 2010 à 14:12
quand il parle de tableau c'est d'un array (a plusieurs dimensions)
à chaque requette tu fais une boucle while pour empiler les valeurs dans l'array
et ensuite tu fais une boucle foreach sur le premier niveau de l'array (les jours) et dans tes td affiches ensuite le deuxième niveau de l'array (agent, valeur)
à chaque requette tu fais une boucle while pour empiler les valeurs dans l'array
et ensuite tu fais une boucle foreach sur le premier niveau de l'array (les jours) et dans tes td affiches ensuite le deuxième niveau de l'array (agent, valeur)
Bonjour Alain_42.
Merci pour ta réponse.
Voila ce que j'ai commencé à faire.
Est ce que je suis sur la bonne piste ?
Merci
Merci pour ta réponse.
Voila ce que j'ai commencé à faire.
Est ce que je suis sur la bonne piste ?
Merci
LE CODE:
<?php
//JOURS
mysql_select_db($database_aquinet, $aquinet);
$query_jours = "SELECT * FROM jour_semaine";
$jours = mysql_query($query_jours, $aquinet) or die(mysql_error());
$row_jours = mysql_fetch_assoc($jours);
$totalRows_jours = mysql_num_rows($jours);
$resultatJours=mysql_query($query_jours);
for($j=0;$j<$totalRows_jours;$j++)
{
$listeJours[$j]['num_jour_semaine']=$row_jours['num_jour_semaine'];
$listeJours[$j]['jour']=$row_jours['jour'];
$listeJours[$j]['semaine']=$row_jours['semaine'];
$row_jours = mysql_fetch_assoc($jours);
}
//AGENTS
mysql_select_db($database_aquinet, $aquinet);
$query_agent = "SELECT num_agent,nom_agent,prenom_agent FROM agent";
$agent = mysql_query($query_agent, $aquinet) or die(mysql_error());
$row_agent = mysql_fetch_assoc($agent);
$totalRows_agent = mysql_num_rows($agent);
$resultat=mysql_query($query_agent);
for($a=0;$a<$totalRows_agent;$a++)
{
$listeAgent[$a]['num_agent']=$row_agent['num_agent'];
$listeAgent[$a]['nom_agent']=$row_agent['nom_agent'];
$listeAgent[$a]['prenom_agent']=$row_agent['prenom_agent'];
$row_agent = mysql_fetch_assoc($agent);
}
mysql_select_db($database_aquinet, $aquinet);
$query_donnees = "SELECT num_jour_semaine, num_agent, saisie FROM donnees";
$donnees = mysql_query($query_donnees, $aquinet) or die(mysql_error());
$row_donnees = mysql_fetch_assoc($donnees);
$totalRows_donnees = mysql_num_rows($donnees);
$resultatDonnees=mysql_query($query_donnees);
for($d=0;$d<$totalRows_donnees;$d++)
{
$listeDonnees[$d]['num_saisiedonnees']=$row_donnees['num_saisiedonnees'];
$listeDonnees[$d]['num_jour_semaine']=$row_donnees['num_jour_semaine'];
$listeDonnees[$d]['num_agent']=$row_donnees['num_agent'];
$listeDonnees[$d]['saisie']=$row_donnees['saisie'];
$row_donnees = mysql_fetch_assoc($donnees);
}
?>
<?php
//JOURS
mysql_select_db($database_aquinet, $aquinet);
$query_jours = "SELECT * FROM jour_semaine";
$jours = mysql_query($query_jours, $aquinet) or die(mysql_error());
$row_jours = mysql_fetch_assoc($jours);
$totalRows_jours = mysql_num_rows($jours);
$resultatJours=mysql_query($query_jours);
for($j=0;$j<$totalRows_jours;$j++)
{
$listeJours[$j]['num_jour_semaine']=$row_jours['num_jour_semaine'];
$listeJours[$j]['jour']=$row_jours['jour'];
$listeJours[$j]['semaine']=$row_jours['semaine'];
$row_jours = mysql_fetch_assoc($jours);
}
//AGENTS
mysql_select_db($database_aquinet, $aquinet);
$query_agent = "SELECT num_agent,nom_agent,prenom_agent FROM agent";
$agent = mysql_query($query_agent, $aquinet) or die(mysql_error());
$row_agent = mysql_fetch_assoc($agent);
$totalRows_agent = mysql_num_rows($agent);
$resultat=mysql_query($query_agent);
for($a=0;$a<$totalRows_agent;$a++)
{
$listeAgent[$a]['num_agent']=$row_agent['num_agent'];
$listeAgent[$a]['nom_agent']=$row_agent['nom_agent'];
$listeAgent[$a]['prenom_agent']=$row_agent['prenom_agent'];
$row_agent = mysql_fetch_assoc($agent);
}
mysql_select_db($database_aquinet, $aquinet);
$query_donnees = "SELECT num_jour_semaine, num_agent, saisie FROM donnees";
$donnees = mysql_query($query_donnees, $aquinet) or die(mysql_error());
$row_donnees = mysql_fetch_assoc($donnees);
$totalRows_donnees = mysql_num_rows($donnees);
$resultatDonnees=mysql_query($query_donnees);
for($d=0;$d<$totalRows_donnees;$d++)
{
$listeDonnees[$d]['num_saisiedonnees']=$row_donnees['num_saisiedonnees'];
$listeDonnees[$d]['num_jour_semaine']=$row_donnees['num_jour_semaine'];
$listeDonnees[$d]['num_agent']=$row_donnees['num_agent'];
$listeDonnees[$d]['saisie']=$row_donnees['saisie'];
$row_donnees = mysql_fetch_assoc($donnees);
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 26/07/2010 à 18:36
Modifié par Alain_42 le 26/07/2010 à 18:36
qqs erreurs, ne pas faire plusieurs fois la selection base, plusieurs fois mysql_fetch_assoc sur l m^me query
essayes comme ça:
essayes comme ça:
<?php //connexion serveur puis.. mysql_select_db($database_aquinet, $aquinet); //il suffit de le faire une seule fois //init de l'array $listeJours=array(); //JOURS $query_jours = "SELECT * FROM jour_semaine"; $jours = mysql_query($query_jours, $aquinet) or die(mysql_error()); //boucle while pour lire tous les enre trouvés, qui remplace tous les num_rows etc.. que tu avais mis while($row_jours = mysql_fetch_assoc($jours)){ //l'index 1 ier niveau sera le num du jour de la semaine $listeJours[$row_jours['num_jour_semaine']]['jour']=$row_jours['jour']; $listeJours[$row_jours['num_jour_semaine']]['semaine']=$row_jours['semaine']; } //AGENTS //correspondance entre num jour semaine et num_agent $query_donnees = "SELECT num_jour_semaine, num_agent, saisie FROM donnees"; $donnees = mysql_query($query_donnees, $aquinet) or die(mysql_error()); while( = mysql_fetch_assoc($donnees)){ $listeJours[$row_donnees['num_jour_semaine']]['num_agent']=$row_donnees['num_agent']; $listeJours[$row_donnees['num_jour_semaine']]['num_agent']['saisie']=$row_donnees['saisie']; } //on complete l'array avec les détails agent foreach($listeJours as $num_jour_semaine=>$s_array){ $query_agent = "SELECT num_agent,nom_agent,prenom_agent FROM agent WHERE num_agent='".$s_array['num_agent']."'"; $agent = mysql_query($query_agent, $aquinet) or die(mysql_error()); $row_agent=mysql_fetch_assoc($agent); //pas de boucle car un seul agent pour ce num_agent $listeJours[$num_jour_semaine][$s_array['num_agent']]['nom_agent']=$row_agent['nom_agent']; $listeJours[$num_jour_semaine][$s_array['num_agent']]['prenom_agent']=$row_agent['prenom_agent']; } //TEST //visualisation du contenu de l'array echo '<pre>'; print_r($listeJours); echo '</pre>'; mysql_close(); ?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
27 juil. 2010 à 09:14
27 juil. 2010 à 09:14
a la réflexion il y a une autre solution purement sql avec le surnomage des tables et une requette sur les 3 tables a la fois
<?php mysql_select_db($database_aquinet, $aquinet); $query="SELECT d.num_jour_semaine as num_s,d.num_agent as num_a,d.saisie as sa,js.jour as j, js.semaine as sem,a.nom_agent as nom_a,a.prenom_agent as prenom_a FROM donnees d,jour_semaine js,agent a WHERE d.num_jour_semaine=js.num_jour_semaine AND d.num_agent=a.num_agent ORDER BY js"; $result=mysql_query($query) or die ("Pb avec la requette: <br />".$query."<br />".mysql_error()); echo '<table>'; //lignbe des titres echo '<tr><th>Jour sem</th><th>num agent</th><th>Nom</th><th>Prenom</th><th>Saisie</th></tr>'; //boucle while($row=mysql_fetch_assoc){ echo '<tr>'; echo '<td>'.$row['num_s'].'</td>'; echo '<td>'.$row['num_a'].'</td>'; echo '<td>'.$row['nom_a'].'</td>'; echo '<td>'.$row['prenom_a'].'</td>'; echo '<td>'.$row['sa'].'</td>'; echo '</tr>'; } echo '</table>'; ?>