IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Affichage des données recuperer en php [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 146
    Points : 72
    Points
    72
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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/

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    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 ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 146
    Points : 72
    Points
    72
    Par défaut
    oui je pense que je vais faire cela

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 146
    Points : 72
    Points
    72
    Par défaut
    Bon j'ai essayé de faire quelque chose comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 )

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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

  6. #6
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Il faut travailler avec des tableau de tableau.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $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. »
    « Le watchdog aboie, les tests passent »

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 146
    Points : 72
    Points
    72
    Par défaut
    J'avance un peu ^^ ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    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. »
    « Le watchdog aboie, les tests passent »

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 146
    Points : 72
    Points
    72
    Par défaut
    sa me fait revenir a mon 1er problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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/

  10. #10
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Petit problème de logique, ou bien d'incompréhension des balises HTML. ^^

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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. »
    « Le watchdog aboie, les tests passent »

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/08/2014, 09h46
  2. [VB6][MYSQL] recuperer des données MySQL via PHP
    Par psykotox dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 18/01/2008, 11h25
  3. [MySQL] affichage des données dans un tableau avec mysql et php
    Par fofina dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/10/2007, 14h00
  4. recuperer des données MySQL via PHP en VB6
    Par pobrouwers dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/04/2007, 12h33
  5. Réponses: 2
    Dernier message: 15/12/2006, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo