Problème mis en forme tableau dynamique

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


webac
WRInaute impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

Problème mis en forme tableau dynamique

Message le Mar Mai 27, 2008 13:20

Bonjour,

Je n'arrive pas à mettre mon tableau en forme qui s'alimente avec des requêtes sql.
Les données sont bien récupérées mais l'affichage ce n'est pas trop ce que je veux.
voici mon code :

Code: Tout sélectionner
<? include ('connexion.php');
$idcom = $_GET['idcom'] ;
$mag = $_GET['mag'] ;
$datecom = substr("$idcom", 0,-6);
?>
<center>Détail de la commande de <? echo $mag ;?> du <? echo $datecom; ?></center>
<table width="25%" border="1" align="center" bordercolor="#FFFFFF" style="border: 1 solid #FFFFFF">
<br />
<td bgcolor="#5389EE" class="intitule" width="23%"><B><font size="5" color=white></font></B><center>
<b><font size="1" color="#FFFFFF">Produits</font></b>
</center></td>
<td bgcolor="#5389EE" class="intitule" width="1%"><B><font size="5" color=white></font></B><center>
<b><font size="1" color="#FFFFFF">Stock</font></b>
</center></td>
<td bgcolor="#5389EE" class="intitule" width="1%"><B><font size="5" color=white></font></B><center>
<b><font size="1" color="#FFFFFF">Qte</font></b>
</center></td>
<td bgcolor="#5389EE" class="intitule" width="1%"><B><font size="5" color=white></font></B><center>
<b><font size="1" color="#FFFFFF">Stock S-1</font></b>
</center></td>
<td bgcolor="#5389EE" class="intitule" width="1%"><B><font size="5" color=white></font></B><center>
<b><font size="1" color="#FFFFFF">Qte S-1</font></b>
</center></td>
<?php

$num_semaine = strftime("%U")-1 ;

$sql = "SELECT * from lignedecommande WHERE idcom = $idcom";

$resultat = mysql_query ($sql);

$nblignes = mysql_num_rows($resultat);
$i = 0;
while ($cl = mysql_fetch_array ($resultat))
{

$couleur = "#5389EE";
$i++;

   if ($i % 2 ==1)
   {
   $couleur = "#0066CC";
   }
  $prod   = $cl['Produit'];
  $stock  = $cl['Stock'];
  $qte    = $cl['Qte'];
 
  echo "<tr BGCOLOR=$couleur>";
  echo "<td><font size=2 color=white><b>$prod<b></font></td>";
  echo "<td><font size=2 color=white><b>$stock<b></font></td>";
  echo "<td><font size=2 color=white><b>$qte</font></td>";
 
  }
$sql2 = "SELECT * from lignedecommande WHERE Mag = '$mag' AND Semaine= '$num_semaine'";
$result = mysql_query ($sql2);

$lignes = mysql_num_rows($result);
$a = 0;
while ($col = mysql_fetch_array ($result))
{

$couleur = "#5389EE";
$a++;

   if ($a % 2 ==1)
   {
   $couleur = "#0066CC";
   }
  $stock1  = $col['Stock'];
  $qte1     = $col['Qte'];
  $prod1   = $col['Produit'];
   
  echo "<td><font size=2 color=white><b>$prod1<b></font></td>";
  echo "<td><font size=2 color=white><b>$stock1<b></font></td>";
  echo "<td><font size=2 color=white><b>$qte1</font></td>";
  echo "</tr>";
}

echo "</table>";
mysql_close()
?>


Pouvez-vous m'aider?

Merci.


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Mar Mai 27, 2008 13:28

Dans ton premier while tu ne fermes pas ton <tr>. La première ligne non plus d'ailleurs (ac les entêtes)

Y'a un BR dans un <table>

Et utilise des styles CSS pour rendre ça lisible, et modifiable facilement ;) car là c'est assez horrible à lire. Un simple style sur le tr te sauverais la vie.


webac
WRInaute impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

Message le Mar Mai 27, 2008 13:40

bonjour Bacteries,

Toujours là pour les autres j'apprecie beaucoup.

Tout dabord merci pour la balise BR que j'avais oublié, je vais m'occuper des CSS mais j'explique la mise en forme du tableau que je souhaite obtenir :


Produits Stock Qte Produits Stock S-1 Qte S-1

Produit1 0 1 Produit1 0 2
Produit2 0 2 Produit2 1 3



etc... les chiffres sont à titre d'exemple.

mon tableau actuellement s'affiche comme ceci :

Produit 1 Stock Qte Produits Stock S-1 Qte S-1

Produit1 0 1
Produit2 0 2
Produit1 0 2
Produit2 1 3

Peux tu m'éclairer?
Dernière édition par webac le Mar Mai 27, 2008 13:47, édité 1 fois.


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Mar Mai 27, 2008 13:46

Ton <tr> mal placé alors. L'erreur est là, après à lire le code c'est assez difficile, surtt ac la mise en forme HTML.

Là je ne vois qu'a un seul moment où tu as des tr, après chaque tuple (ligne) de ta requête SELECT * from lignedecommande WHERE Mag = '$mag' AND Semaine= '$num_semaine'.

Donc je ne vois pas cmt tu mettre en forme comme tu le souhaite.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3326
Inscription: Mar Nov 16, 2004 18:27

Message le Mar Mai 27, 2008 14:08

Il te faut écrire les résultats de tes requêtes dans des tableaux et ensuite lire les tableaux en même temps. J'ai mis une limite dans les requêtes pour éviter un décalage en sortie html.

Code: Tout sélectionner
<?php
  $req = "SELECT * from lignedecommande WHERE idcom = $idcom LIMIT 5";
  $res = mysql_query($req);
  //place les données dans un tableau
  while($data = mysql_fetch_assoc($res)) { $tablo[]=$data;  }


  $req2 = "SELECT * from lignedecommande WHERE Mag = '$mag' AND Semaine= '$num_semaine' LIMIT 5";
  $res2 = mysql_query($req2);
  //place les données dans un tableau
  while($data2 = mysql_fetch_assoc($res2)) { $tablo2[]=$data2;  }


  echo '<table>';
  $nb=count($tablo);
  for($i=0;$i<$nb;$i++){
   
  //les valeurs à afficher
  $valeur1=$tablo[$i]['Produit'];
  $valeur2=$tablo[$i]['Stock'];
  $valeur3=$tablo[$i]['Qte'];

  $valeur4=$tablo2[$i]['Produit'];
  $valeur5=$tablo2[$i]['Stock'];
  $valeur6=$tablo2[$i]['Qte'];

  echo '<tr>';
  echo '<td>'.$valeur1.'</td><td>'.$valeur2.'</td><td>'.$valeur3.'</td><td>'.$valeur4.'</td><td>'.$valeur5.'</td><td>'.$valeur6.'</td>';
  echo '</tr>';

  }
  echo '</table>';  ?>


webac
WRInaute impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

Message le Mar Mai 27, 2008 16:49

Merci beaucoup Koogar c'est effectivement beaucoup plus comprehensible et plus clair comme ça et ça fonctionne nickel.

Merci à tous


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité