Problème mis en forme tableau dynamique


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 374
Inscription: 4 Mar 2005

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 passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

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 occasionnel
WRInaute occasionnel
 
Messages: 374
Inscription: 4 Mar 2005

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 passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

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: 3974
Inscription: 16 Nov 2004

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 occasionnel
WRInaute occasionnel
 
Messages: 374
Inscription: 4 Mar 2005

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités