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

PHP & Base de données Discussion :

Afficher un tableau avec php mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Afficher un tableau avec php mysql
    Bonsoir,

    J'essaie de faire un tableau à partir de données SQL en PHP toutefois, je n'arrive pas à afficher en HTML sur la même ligne par exemple la vente de Papaye 2006 et 2007, elle s'affiche sur deux lignes différentes (voir fichier jpg joint).

    Voilà le 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<title>tableau la Halde</title>
    	<meta http-equiv="Content-Language" content="fr" />
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script src="javascript/jquery.js" type="text/javascript"></script>
    	<script src="javascript/style.js" type="text/javascript"></script>
     
    </head>
    <body>
    <?php
    //Connexion au serveur MySQL
    		$db=mysql_connect("localhost","xxxx","xxxxx") or die ("erreur de connexion".mysql_error());
    //ouverture de la base 
    		mysql_select_db("vpc",$db)or die("erreur de connexion à la base xxx");
    $select = 'SELECT id, annee, type, nombre FROM fruit';
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
     
    //$total = mysql_num_rows($result);
     
     
    //if($total) {
    echo "<table class='vision'>" //la class vision permet de faire appel au jquery + css
    ?>
    	    <caption>Vente de fruits</caption>	  
    	     <thead>
    	        <tr>
    	            <th>type</th>
    	            <th>2006</th>
    	            <th>2007</th>
     
    	        </tr>
    	    </thead>
    	    <tbody>
    	       <tr>
    	         <?php while($row = mysql_fetch_array($result)) { ?>
    	            <td><?php  echo $row['type'];?></td>
        	        <td> <?php if($row['annee']=='2006')  
                       echo $row['nombre'];?></td>
    	          <td><?php   if($row['annee']=='2007') 
                        echo $row['nombre'];?></td>
    	         </tr>	  
    	            <?php  } //pour finir la boucle?>  
    	    </tbody>
    	    <?php
    	echo "</table>";       
    	   ?>
    </body>
    </html>
    Qui aurait une piste pour améliorer cela?
    Merci beaucoup.
    slnprojet
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    il faut que tu classes les résultats de ta requete, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau[$nom_du_fruit][$annee] = $quantite
    tu fais ensuite ton affichage HTML a partir de ça.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci pour la réponse.
    Je verrai cela demain.
    A bientôt,
    slnprojet

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Depuis deux jours, j'essaie sans succès d'afficher le tableau avec les valeurs correspondant aux années 2006 et 2007 sur une même ligne.
    J'ai classé les résultats de la requête et essayé avec group by dans la requête sql et sans group by (voir jpg joints).
    Que pourrais-je faire pour améliorer l'affichage du tableau ?
    Par avance merci beaucoup.
    slnprojet

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<title>tableau les fruits</title>
    	<meta http-equiv="Content-Language" content="fr" />
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<link type="text/css" rel="stylesheet" href="style.css" />
     
     
    	<script src="javascript/jquery.js" type="text/javascript"></script>
    	<script src="javascript/style.js" type="text/javascript"></script>
    </head>
    <body>
    <?php
    //Connexion au serveur MySQL
    		$db=mysql_connect("localhost","v_util","vpc@2006") or die ("erreur de connexion".mysql_error());
    //ouverture de la base VPC
    		mysql_select_db("vpc",$db)or die("erreur de connexion à la base VPC");
    $select = 'SELECT  annee, type, nombre FROM fruit GROUP BY type';
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
     
    echo "<table class='vision'>" //la class vision permet de faire appel au jquery + css
    ?>
    	    <caption>Vente de fruits</caption>	  
    	     <thead>
    	        <tr>
    	            <th>type</th>
    	            <th>2006</th>
    	            <th>2007</th>
     
    	        </tr>
    	    </thead>
    	    <tbody>
    	       <tr>
    	         <?php while($row= mysql_fetch_array($result)) { 
     
    //association
    	          $tableau[$row['annee']['type']] = $row['nombre'];
     
     
    	         ?>
     
    	         <td><?php  echo  $row['type']; ?></td>   
     
    	         <td> <?php  if($row['annee']=='2006' )echo $row['nombre']; ?></td>
    	          <td> <?php  if($row['annee']=='2007' )echo $row['nombre']; ?></td>
     
    	         </tr>	  
    	    	    <?php  } //pour finir la boucle?>              
    	    </tbody>
    	    <?php
     
     
     
    	echo "</table>";       
    	   ?>
    </body>
    </html>
    Images attachées Images attachées   

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton $tableau ne correspond pas à ce que je t'ai proposé.

    Il suffit ensuite de le parcourir avec un foreach()

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Grâce à vous et également à votre contribution 8 avril sur ce forum, j'ai pu faire mon tableau.
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<title>tableau fruits</title>
    	<meta http-equiv="Content-Language" content="fr" />
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<link type="text/css" rel="stylesheet" href="style.css" />
     
     
    	<script src="javascript/jquery.js" type="text/javascript"></script>
    	<script src="javascript/style.js" type="text/javascript"></script>
     
    </head>
     
    <body>
    <?php
    	$db=mysql_connect("localhost","v_util","vpc@2006") or die ("erreur de connexion".mysql_error());
    //ouverture de la base VPC
    		mysql_select_db("vpc",$db)or die("erreur de connexion à la base VPC");
    $select = 'SELECT id, annee, type, nombre FROM fruit ORDER BY annee ASC';
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    echo "<table class='vision'>" //la class vision permet de faire appel au jquery + css
    ?>
    	    <caption>Quantité de fruits</caption>	  
    	     <thead>
    	        <tr>
    	            <th>type</th>
    	            <th>2006</th>
    	            <th>2007</th>
     
    	        </tr>
    	    </thead>
    	    <tbody>
     
    	         <?php 
    	         $tab= array();//creation d'un tableau pour stocker les années
    	         while($row= mysql_fetch_assoc($result)) { 
     
    	         $tableau[$row['type']][$row['annee']] = $row['nombre'];//respecter l'ordre type - annee - nombre
    print_r($tableau);//pour voir le contenu de $tableau
     
     if (!in_array($row['annee'],$tab)) { $tab[] = $row['annee']; }//mettre les années pour les avoir en en-tete
    } ?>
    	         <tr>
    	          <?php foreach ($tableau as $annee=>$value) {	
    	          	echo '<tr>';//tr important pour la presentation
    	         	$new_line = TRUE; 
    	         	foreach ($tab as $type) {	if ($new_line) {
                   	echo '<td>'.$annee. '</td>';
    	            $new_line = FALSE; }
                    echo'<td>'.$value[$type]. '</td>';  
        	       }}?>  
    	         </tr>	  
     
    	    </tbody>
    <?php echo '</table>';  ?>
    </body>
    </html>
    Merci beaucoup.
    A bientôt,
    slnprojet
    Images attachées Images attachées  

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

Discussions similaires

  1. Crée un tableau avec php/mysql
    Par waltcap dans le forum Langage
    Réponses: 4
    Dernier message: 16/09/2010, 20h09
  2. Quel SGBD avec PHP : MySQL ou Postgres
    Par charliejo dans le forum Requêtes
    Réponses: 6
    Dernier message: 25/01/2006, 12h13
  3. Apparition d'un tableau avec PHP
    Par poah dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/12/2005, 15h09
  4. multi update avec php/ mysql
    Par arnoweb dans le forum Administration
    Réponses: 1
    Dernier message: 17/11/2005, 22h10
  5. [SGBD] afficher infos issues de php/mysql dans html
    Par php_de_travers dans le forum Requêtes
    Réponses: 11
    Dernier message: 22/10/2005, 00h28

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