Page 1 sur 2

Affichage des données dans un tableau PHP/MySQL

Posté : 15 juin 2020, 14:11
par olivierndategana
Bonjour
J'ai deux tables: lignes budgétaires et sous lignes budgétaires. Sachant que chaque ligne budgétaire a une ou plusieurs sous lignes, comment puis je procéder pour afficher dans un tableau chaque ligne avec sous lignes comme ceci:

DESIGNATION MONTANT
--------------------------------------------------------
I. LIGNE I
-------------------------------------------------------
I.1. SOUS LIGNES 1 100
-----------------------------------------------------------
I.2. SOUS LIGNES 2 100
--------------------------------------------------------
Sous total I. 200
-------------------------------------------------------
II. LIGNE II
---------------------------------------------------------
II.1. SOUS LIGNES 1 50
--------------------------------------------------------
II.2. SOUS LIGNES 2 50
----------------------------------------------------
Sous total II. 100
-------------------------------------------------------

Re: AFFICHAGE DES DONNEES DANS UN TABLEAU PHP MYSQL

Posté : 16 juin 2020, 08:53
par Spols
Il y a plusieurs solutions

je préconiserai 2 requètes, la première sur toutes les sous-lignes en classant par ligne parent et puis le critère d'ordre des sous lignes
tu stocke le tout dans un tableau php

ensuite seconde requète de toutes tes lignes dans l'ordre désiré, tu affiche la ligne, tu cherche dans ton tableau les sous lignes correspondante, tu boucle dessus pour les afficher et puis ta ligne sous total. et tu passe à la ligne suivante.

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 18 juin 2020, 23:35
par two3d
La jointure SQL peut être si tu as moyen d'associer les données avec un ID par exemple

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 12 juil. 2020, 18:57
par Dlonget
Bonjour, j'ai un peu le même prolème...je souhaite afficher dans un tableau une liste de participants par jour et par heure...pour l'instant j'obtiens par exemple :

Mardi 07-07-2020, ENT à 08:00, BLANC Jean Luc(Moniteur)
08:00 : Gluck Serge - Skiff
08:00 : EYMEOUD Pierre - Skiff
09:00 : LEROY Joel - Ergo
09:00 : Chantriaux Claude - Skiff
09:00 : Canepari Carine - Fun Skiff

Mercredi 08-07-2020, ENT à 08:00, BLANC Jean Luc(Moniteur)
08:00 : Riviere Laurette - Skiff
08:00 : EYMEOUD Pierre - Skiff
09:00 : LEROY Joel - Ergo
09:00 : Lalu stage - 4X-
09:00 : clement patrick - Skiff
09:00 : FRUCTUS Michel - Fun Skiff

et je souhaiterais obtenir ceci :

Mardi 07-07-2020, ENT à 08:00, BLANC Jean Luc(Moniteur)

08:00 : Gluck Serge - Skiff
EYMEOUD Pierre - Skiff
09:00 : LEROY Joel - Ergo
Chantriaux Claude - Skiff
Canepari Carine - Fun Skiff

Mercredi 08-07-2020, ENT à 08:00, BLANC Jean Luc(Moniteur)

08:00 : Riviere Laurette - Skiff
EYMEOUD Pierre - Skiff
09:00 : LEROY Joel - Ergo
Lalu stage - 4X-
clement patrick - Skiff
FRUCTUS Michel - Fun Skiff


mon code est le suivant et je ne parviens pas à boucler correctement , merci de l'aide !
<?php
    // on se connecte à notre base
    $base = mysql_connect ('************','*********', '***********');
    mysql_select_db ('***********', $base) ;
    ?>
    
    <?php
	
	
	$sql = "
	SELECT
		`TBLInscritsEnt`.IDBD,
		`TBLInscritsEnt`.HO,
		`TBLInscritsEnt`.Souhait,
		`TBLInscritsEnt`.PRENOMS,
		`TBLInscritsEnt`.NOMS,
		`TblOuverture`.IDBD,
		DATE_FORMAT(`TblOuverture`.DateOuv, '%d-%m-%Y') as DateOuv,
		`TblOuverture`.Jour,
		DATE_FORMAT(`TblOuverture`.Horaire,'%H:%i') as Horaire,
		DATE_FORMAT(`TblOuverture`.HoraireF,'%H:%i') as Horairea,
		`TblOuverture`.HoraireF,
		`TblOuverture`.Encadrant,
		`TblOuverture`.Type,
		`TblOuverture`.Description,
		`TblOuverture`.Qualification
	FROM
		`TblOuverture`
		
	LEFT JOIN
		`TBLInscritsEnt`
	ON	
		`TblOuverture`.IDBD=`TBLInscritsEnt`.IDBD
	
	
	WHERE `DateOuv`BETWEEN DATE(NOW() - INTERVAL WEEKDAY(now()) DAY) 
	AND DATE(NOW() + INTERVAL 15 DAY) 
	
	ORDER by `TblOuverture`.DateOuv,`TblOuverture`.Horaire,`TBLInscritsEnt`.HO  asc
		
	";	
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
	
$old=" ";
	$i=0;
	$oldH=" ";
	$iH=0;
 
	while($data = mysql_fetch_assoc($req))
	{
		if($data['IDBD'] != $old)
		{
			
				if($i != 0)	{echo "</ul>";}
 				else
				{}	
   				
				if($data['HO'] != $oldH)
				{
			
					if($iH != 0)	{echo "</ul>";}
 					else
					{}	
				
				echo "<p><strong>" . $data['Jour']. " ". $data['DateOuv']. ", " .$data['Type'] . " à " .$data['Horaire'] .", " .$data['Encadrant'] ."(".$data['Qualification'] .") ".$data['Description']." </strong></p>" // titre de la liste
				
     	 			. "<ul>"
      				. "<li value=$i>" . $data['HO']  . " : " . $data['NOMS']  . "  " . $data['PRENOMS']  ." - " . $data['Souhait']  . "</li>"; // liste des évenements
 
   				$old = $data['IDBD'] ;
				
				
				}
				
			}
			
			else
			//{
  		 	echo "<li>" . $data['HO']  . " : " . $data['NOMS']  . "  " . $data['PRENOMS']  ." - " . $data['Souhait']  . "</li>";
			//}
		$iH=$iH+1;
		$i=$i+1;
		}
		echo "</ul>"; 
	
    mysql_free_result ($req);
    mysql_close ();
    ?>

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 13 juil. 2020, 15:25
par two3d
BRUT DE POMME!

ya même l'accès à une base de données dans le code :-*

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 13 juil. 2020, 17:08
par Dlonget
zut...!!!!...comment modifier ou supprimer mon post ?

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 13 juil. 2020, 18:20
par Dlonget
zut...!!!!...comment modifier ou supprimer mon post ?

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 13 juil. 2020, 18:21
par Dlonget
contacter un admin ?

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 13 juil. 2020, 18:31
par or 1
vous changez le mot de passe de la bdd. modifier votre message n'empêchera pas des gens d'avoir déjà eu accès à vos identifiants.

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 13 juil. 2020, 21:27
par two3d
+1 or1 et pour modifier le post c'est le petit stylo bleu en bas à droite de ton post

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 14 juil. 2020, 07:12
par Dlonget
Bonjour, j'ai bien sur modifier le mot de passe mais ca m'agace de laisser ce post ainsi...et je ne "vois" pas le petit stylo bleu....je n'arrive toujours pas à boucler pour afficher par jour et par heure...pas fini de m'agacer...lol...donc si quelqu'un sait faire preuve de patience ce serait cool..!!!...lol et merci !

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 14 juil. 2020, 08:46
par sadeq
[Modération]
Bonjour, les modifications demandées ont été effectuées.
Pour le bouton de modification (stylo bleu :) ) il est en bas à gauche de la zone du message.

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 14 juil. 2020, 09:45
par two3d
Le stylo bleu s'enlève le jour d'après (ou quelques heures après)

tu peux faire un dessin du tableau que tu aimerais avoir stp et de celui que tu as en ce moment, ça m'aidera à comprendre mieux ce que tu souhaite faire, c'est pas très clair pour moi

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 14 juil. 2020, 10:06
par two3d
Quelques astuces et remarques:

Ton code est faux avec tes fermetures de liste HTML (ul), lors d'une decalration de liste, tu a l'ouverture: <ul> et la fermeture: </ul> et là ton code dès qu'il fait une boucle, tu lui dit de mettre une fermeture (</ul>) tu pux l'enlever car la fermeture ce passe après toutes les boucles (il est présent en bas de ton code donc c'est bon mais il te faut l'ouvrir en haut de ton code, là tu as un paragraphe (<p>) ;) )

Tu peux raccourcir ton PHP, exe: quand tu fait des conditions, tu si tu prends juste le if, tu na pas besoin de mettre else {} <- rien, ça sert à rien, tu peux l’omettre.

Dans ce même exemple, les accolades ne sont pas nécessaires si tu à qu'une seule ligne après ta condition, ton code deviendrait:
if(condition) echo "quelque chose";
//et plus:
if(condition){echo "quelque chose";} else {}
Des caractères en moins, plus des caractères en moins ça fait un code plus rapide et moins lourd au final ;)

Ton incrémentation de la variable $i peut être raccourcie:
$i=$i+1;
//devient:
$i++;
Dernière chose, tu devrais passer à mysqli et oublier mysql car l'extension est supprimée en PHP 7.
<?php
    // on se connecte à notre base
    $base = mysql_connect ('************','*********', '***********');
    mysql_select_db ('***********', $base) ;
    ?>
    
    <?php
	
	
	$sql = "
	SELECT
		`TBLInscritsEnt`.IDBD,
		`TBLInscritsEnt`.HO,
		`TBLInscritsEnt`.Souhait,
		`TBLInscritsEnt`.PRENOMS,
		`TBLInscritsEnt`.NOMS,
		`TblOuverture`.IDBD,
		DATE_FORMAT(`TblOuverture`.DateOuv, '%d-%m-%Y') as DateOuv,
		`TblOuverture`.Jour,
		DATE_FORMAT(`TblOuverture`.Horaire,'%H:%i') as Horaire,
		DATE_FORMAT(`TblOuverture`.HoraireF,'%H:%i') as Horairea,
		`TblOuverture`.HoraireF,
		`TblOuverture`.Encadrant,
		`TblOuverture`.Type,
		`TblOuverture`.Description,
		`TblOuverture`.Qualification
	FROM
		`TblOuverture`
		
	LEFT JOIN
		`TBLInscritsEnt`
	ON	
		`TblOuverture`.IDBD=`TBLInscritsEnt`.IDBD
	
	
	WHERE `DateOuv`BETWEEN DATE(NOW() - INTERVAL WEEKDAY(now()) DAY) 
	AND DATE(NOW() + INTERVAL 15 DAY) 
	
	ORDER by `TblOuverture`.DateOuv,`TblOuverture`.Horaire,`TBLInscritsEnt`.HO  asc
		
	";	
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
	
$old=" ";
	$i=0;
	$oldH=" ";
	$iH=0;
 
	while($data = mysql_fetch_assoc($req))
	{
		if($data['IDBD'] != $old)
		{
			
				if($i != 0)	{echo "</ul>";}
 				else
				{}	
   				
				if($data['HO'] != $oldH)
				{
			
					if($iH != 0)	{echo "</ul>";}
 					else
					{}	
				
				echo "<p><strong>" . $data['Jour']. " ". $data['DateOuv']. ", " .$data['Type'] . " à " .$data['Horaire'] .", " .$data['Encadrant'] ."(".$data['Qualification'] .") ".$data['Description']." </strong></p>" // titre de la liste
				
     	 			. "<ul>"
      				. "<li value=$i>" . $data['HO']  . " : " . $data['NOMS']  . "  " . $data['PRENOMS']  ." - " . $data['Souhait']  . "</li>"; // liste des évenements
 
   				$old = $data['IDBD'] ;
				
				
				}
				
			}
			
			else
			//{
  		 	echo "<li>" . $data['HO']  . " : " . $data['NOMS']  . "  " . $data['PRENOMS']  ." - " . $data['Souhait']  . "</li>";
			//}
		$iH=$iH+1;
		$i=$i+1;
		}
		echo "</ul>"; 
	
    mysql_free_result ($req);
    mysql_close ();
    ?>

Re: Affichage des données dans un tableau PHP/MySQL

Posté : 15 juil. 2020, 16:20
par Dlonget
Merci pour la modification et les conseils !

pour l'instant mon code génère une page de ce type :

http://www.club-aviron-embrun.fr/Inscrits3.php

et je souhaiterais obtenir ceci :

http://www.club-aviron-embrun.fr/Inscrits2.php


je bute bêtement sur une question de logique....merci de l'aide !