Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 22/06/2011, 18h33   #1
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
Par défaut Affichage des données recuperer en php

Bonjour ,
J'ai récupéré des dates provenant d'une base SQL et j'essaye de regrouper ces dates en fonction du mois et les afficher sous forme de liste sauf qu'a l'affichage cela ne s'affiche pas correctement je vous mets mon code
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
38
 
<div>
			<ul id="navigation">
				<?php
					function toMonthFR($a){
						$tmpdate = explode(" ",$a);
						$thedate = explode("-",$tmpdate[0]);
						$theday = $thedate[2];
						$themonth = $thedate[1];
						$theyear = $thedate[0];
						$year = array("Janvier","Fevrier","Mars","Avril","Mai","Jujn","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
						for($i = 0; $i <= 11; $i++){
							if($tmpdate[1] == ""){
								return($year[$themonth-1]);
							}else{
								return($year[$themonth-1]);	 
							}
						}
					}
 
					//Mois de la presta	
					$query_liste_rapport = "SELECT date_rapport,id_rapport_position FROM rapport_position WHERE id_prestation ='$presta' GROUP BY date_rapport ORDER BY date_rapport DESC";
					$liste_rapport = $cx->prepare($query_liste_rapport);
					$liste_rapport->execute();
					$result_liste_rapport = $liste_rapport->fetchAll(PDO::FETCH_ASSOC);
					//print_r($result_liste_rapport);
 
					foreach($result_liste_rapport as $value => $key){
						if(toMonthFR($result_liste_rapport[$value]['date_rapport']) != toMonthFR($result_liste_rapport[$value-1]['date_rapport'])){
							echo "<li class='toggleSubMenu'>".toMonthFR($result_liste_rapport[$value]['date_rapport'])."<ul class='subMenu'>";
							echo "<li>".$result_liste_rapport[$value]['date_rapport']."</li></ul></li>";
						}else{
							echo "<li>".$result_liste_rapport[$value]['date_rapport']."</li></ul></li>";
						}
					}
				?>
			</ul>
		</div>
et voici le résultat
http://imageshack.us/photo/my-images/715/sansreat.png/
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 18h37   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
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 984
Points : 5 011
Points : 5 011
Tu as un problème dans l'enchainement des listes et des items. Regarde le code HTML produit te donnera certainement une indication.

Pourquoi ne pas mettre les données dans un joli tableau bien propre avant de mettre en forme l'affichage correctement ?
__________________
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 23/06/2011, 09h57   #3
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
oui je pense que je vais faire cela
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 10h57   #4
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
Bon j'ai essayé de faire quelque chose comme ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$query_liste_rapport = "SELECT date_rapport,id_rapport_position FROM rapport_position WHERE id_prestation ='$presta' GROUP BY date_rapport ORDER BY date_rapport DESC";
$liste_rapport = $cx->prepare($query_liste_rapport);
$liste_rapport->execute();
$result_liste_rapport = $liste_rapport->fetchAll(PDO::FETCH_ASSOC);
$month = array();	
foreach($result_liste_rapport as $value => $key){
	echo $result_liste_rapport[$value]['date_rapport']."<br/>";
	if(toMonthFR($result_liste_rapport[$value]['date_rapport']) != toMonthFR($result_liste_rapport[$value-1]['date_rapport'])){
		$month[toMonthFR($result_liste_rapport[$value]['date_rapport'])] = $result_liste_rapport[$value]['date_rapport'];
	}else if(toMonthFR($result_liste_rapport[$value]['date_rapport']) == toMonthFR($result_liste_rapport[$value-1]['date_rapport'])){
		$month[toMonthFR($result_liste_rapport[$value]['date_rapport'])] = $result_liste_rapport[$value]['date_rapport'];
 
	}
}
print_r($month);
et apparemment c'est toujours pas bon
Code :
1
2
3
4
5
6
7
8
2011-05-28
2011-04-28
2011-03-28
2011-02-28
2011-02-22
2011-02-15
2011-01-28
Array ( [Mai] => 2011-05-28 [Avril] => 2011-04-28 [Mars] => 2011-03-28 [Fevrier] => 2011-02-15 [Janvier] => 2011-01-28 )
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h13   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
Attention, t'as requete preparer est inutle puisuqe tu ne preparer rien, utilise query à la place, et j'espere que t'as bien protegé tes valeur avec quote, aussi tu gaspille de la mémoire en faisant fetchAll et le parcourir juste après, fait direct le foreach sur le statement
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h14   #6
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Il faut travailler avec des tableau de tableau.
Code php :
$month[toMonthFR($result_liste_rapport[$value]['date_rapport'])][] = $result_liste_rapport[$value]['date_rapport'];

(voir la modification juste avant le = )
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h45   #7
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
J'avance un peu ^^ ,
Code :
Array ( [Mai] => Array ( [0] => 2011-05-28 ) [Avril] => Array ( [1] => 2011-04-28 ) [Mars] => Array ( [2] => 2011-03-28 ) [Fevrier] => Array ( [3] => 2011-02-28 [4] => 2011-02-22 [5] => 2011-02-15 ) [Janvier] => Array ( [6] => 2011-01-28 ) )
Pour l'affichage c'est pas encore sa :/ j'essaye de regrouper par mois
Code :
1
2
3
4
5
6
7
 
foreach($month as $value => $key){
	foreach($key as $value2){ 
		echo "<li class='toggleSubMenu'>".$value."<ul class='subMenu'>";
		echo "<li>".$value2."</li></ul></li>";
	}
}
et sa me donne
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Mai
    2011-05-28
Avril
    2011-04-28
Mars
    2011-03-28
Fevrier
    2011-02-28
Fevrier
    2011-02-22
Fevrier
    2011-02-15
Janvier
    2011-01-28
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h51   #8
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Pour ton affichage il suffit de remonter le premier <li> dans la première boucle.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 12h49   #9
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
sa me fait revenir a mon 1er problème
Code :
1
2
3
4
5
6
7
8
print_r($month);
foreach($month as $value => $key){
	echo "<li class='toggleSubMenu'>".$value."<ul class='subMenu'>";
	foreach($key as $value2 ){
		//echo "<li class='toggleSubMenu'>".$value."<ul class='subMenu'>";
		echo "<li>".$value2."</li></ul></li>";
	}
}
Résultat:
http://imageshack.us/f/28/sansreou.png/
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 13h23   #10
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Petit problème de logique, ou bien d'incompréhension des balises HTML. ^^

Code php :
1
2
3
4
5
6
7
print_r($month);
foreach($month as $value => $key){
	echo '<li class="toggleSubMenu">'.$value.'<ul class="subMenu">';
	foreach($key as $value2 )
		echo '<li>'.$value2.'</li>';
        echo '</ul></li>';
}
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h45.


 
 
 
 
Partenaires

Hébergement Web