Affichage des données dans un tableau PHP/MySQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage des données dans un tableau PHP/MySQL

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

par two3d » 04 déc. 2020, 01:42

Salut, c'est quoi que tu n'arrives pas a faire ? les <ul><li> ?

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

par Dlonget » 16 juil. 2020, 18:23

Bonsoir, merci pour vos messages ! mais je n'arrive toujours pas à insérer ces fameuses boucles dans mon code initial qui fonctionne bien....je suis cadre dans un club aviron, je me suis lancé dans la gestion du site à titre bénévole mais je réalise que ce n'est pas mon métier malgré mes idées pour améliorer la gestion du club...-:)....promis celui qui améliorera mon code initial bénéficiera d'une initiation gratuite...!!!...et saura ce que ramer signifie....merci !!!

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

par Saian » 16 juil. 2020, 09:44

Salut, si tu veux te simplifier la partie affichage, tu peux commencer par une première boucle pour ranger les résultats par jour et heure.

En pseudo code php à adapter selon les api que tu utilises et la version de php :
// boucle pour classer les données
$byDate = [];
foreach ($result as $activity) {
  $byDate[$activity['DateOuv']][$activity['HO']][] = $activity;
}

// boucle d'affichage
foreach ($byDate as $day => $hours) {
  echo '<p>entête liste</p>';
  echo '<ul>';
  foreach ($hours as $hour => $activities) {
    echo '<li>heure<ul>';
    foreach ($activities as $activity) {
      echo '<li>nom prénom souhait</li>';
    }
    echo '</ul></li>';
  }
  echo '</ul>';
}

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

par two3d » 15 juil. 2020, 16:31

Oui, je vois donc pour ce faire tu dois enregistrer l'heure dans un array et mettre tous les "longet didier - Skiff", "gluck serge - Skiff",... dans une imbrication de ul -> li puis ferme le ul quand c'est une nouvelle heure et ainsi de suite.

Donc tu fait ta boucle comme elle est sauf que tu declare un table vide (par exemple: $heures=[]) puis dès que ta boucle est lancée tu enregistre les heures dans ce tableau, tu fait ensuite une verif pour voir si cette heure est enregistrée -> si oui -> tu fait ton imbrication ul/li puis tu referme dès que c'est une autre autre qui n'est pas encore enregistrée dans ton "$heures"

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

par Dlonget » 15 juil. 2020, 16:20

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 !

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

par two3d » 14 juil. 2020, 10:06

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

par two3d » 14 juil. 2020, 09:45

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

par sadeq » 14 juil. 2020, 08:46

[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

par Dlonget » 14 juil. 2020, 07:12

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

par two3d » 13 juil. 2020, 21:27

+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

par or 1 » 13 juil. 2020, 18:31

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

par Dlonget » 13 juil. 2020, 18:21

contacter un admin ?

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

par Dlonget » 13 juil. 2020, 18:20

zut...!!!!...comment modifier ou supprimer mon post ?

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

par Dlonget » 13 juil. 2020, 17:08

zut...!!!!...comment modifier ou supprimer mon post ?

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

par two3d » 13 juil. 2020, 15:25

BRUT DE POMME!

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