Conseil pour tableau PHP


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

Conseil pour tableau PHP

Message le Ven Mai 30, 2008 13:34

Bonjour,

j'en appelle à nouveau à vos connaissance je cherche à créer un tableau dynamique alimenté par deux requêtes SQL,
la recupération des données s'effectue correctement mais je ne parviens pas à dispatcher les données et les mettre en forme.

Mon tableau se presente comme ceci :

Image

et je souhaite inserer plusieurs colonnes apres ce tableau contenant les commandes d'autres magasins.

pouvez vous me mettre sur une bonne piste.

voici mes 2 requetes :

Code: Tout sélectionner
$req = "SELECT * from lignedecommande WHERE idcom IN ('$ids')";

Code: Tout sélectionner
$req2 = "SELECT * from lignedecommande WHERE Mag IN ('$magasin') AND Semaine= '$num_semaine'";


Merci


erestrebian
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 472
Inscription: 15 Juin 2007

Message le Ven Mai 30, 2008 13:42

est-ce que tu crées le tableau dans la foulée?

c'est souvent mieux de récupérer l'ensemble des données puis de passer à l'affichage comme ça tu organises la page comme tu veux...


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Mai 30, 2008 13:48

avec un SELECT * FROM lignedecommande l1 LEFT JOIN lignedecommande l2 ON (l1.idcom = l2.idcom) WHERE l1.idcom IN () AND l2.Mag IN () AND l2.semaine = Num;

Tu peux surement le faire en une seule requête mais bon elle est surement fausse, faudrait que tu donnes des informations sur la structure, les champs et les types de champs de tes tables. Ensuite, expliquez un peu plus profondément ton problème.
Dernière édition par YoyoS le Ven Mai 30, 2008 13:50, édité 1 fois.


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

Message le Ven Mai 30, 2008 13:48

voici le code ça sera surement plus parlant:

Code: Tout sélectionner
<?php
  include ('connexion.php');
  $idcom = $_POST['idcom'] ;
  $ids = @implode("', '", $_POST['idcom']) ;
  $mag = $_POST['mag'] ;
  $magasin = @implode("', '", $_POST['mag']) ;
 
  $req = "SELECT * from lignedecommande WHERE idcom IN ('$ids')";
  $res = mysql_query($req);
  //place les données dans un tableau
  $tablo='';
  while($data = mysql_fetch_assoc($res)) { $tablo[]=$data; }

  $num_semaine = strftime("%U")-1 ;
  $req2 = "SELECT * from lignedecommande WHERE Mag IN ('$magasin') AND Semaine= '$num_semaine'";
  $res2 = mysql_query($req2);
  echo $req2;
  //place les données dans un tableau
  $tablo2='';
  while($data2 = mysql_fetch_assoc($res2)) { $tablo2[]=$data2;  }
 

  echo '<center><table border=1 bordercolor=#000000>';
  echo '<tr>';
  echo '<td bgcolor="#FFFFFF">&nbsp;</td>';
  echo '<td colspan="4" bgcolor="#5389EE">Magasin</td>';
  echo '</tr>';
  echo '<tr>';
  echo '<td bgcolor="#5389EE"><b><u><font color=#FFFFFF>Produits</u></b></font></td>';
  echo '<td bgcolor="#5389EE"><b><u><font color=#FFFFFF>S</u></b></font></td>';
  echo '<td bgcolor="#5389EE"><b><u><font color=#FFFFFF>Q</u></b></font></td>';
  echo '<td bgcolor="#5389EE"><b><u><font color=#FFFFFF>S-1</u></b></font></td>';
  echo '<td bgcolor="#5389EE"><b><u><font color=#FFFFFF>Q-1</u></b></font></td>';
  echo '</tr>'."\n";
 
  $nb=count($tablo);
 
  for($i=0;$i<$nb;$i++){
   
  //les valeurs à afficher
  $valeur1=$tablo[$i]['Produit'];
  $valeur2=$tablo[$i]['Stock'];
  $valeur3=$tablo[$i]['Qte'];
  $valeur6=$tablo[$i]['Mag'];
  $valeur4=$tablo2[$i]['Stock'];
  $valeur5=$tablo2[$i]['Qte'];

 
  echo '<tr>';
  echo '<td><font size=2>'.$valeur1.'</font></td><td>'.$valeur2.'</td><td>'.$valeur3.'</td><td>'.$valeur4.'</td><td>'.$valeur5.'</td>';
  echo '</tr>';

  }
  echo '</table>';  ?>


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Mai 30, 2008 13:51

Donne le schema de tes tables !
Dernière édition par YoyoS le Ven Mai 30, 2008 13:59, édité 1 fois.


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

Message le Ven Mai 30, 2008 13:58

VOICI LE SCHEMA DE MA TABLE :

`Produit` varchar(255) NOT NULL default '',
`Qte` varchar(255) NOT NULL default '',
`Stock` varchar(255) NOT NULL default '',
`Mag` varchar(255) NOT NULL default '',
`Date` date NOT NULL default '0000-00-00',
`Idcom` varchar(255) NOT NULL default '',
`Semaine` varchar(255) NOT NULL default ''


erestrebian
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 472
Inscription: 15 Juin 2007

Message le Ven Mai 30, 2008 14:07

l'idée c'est que pour un produit tu as différents type d'information qui se répètent sur plusieurs magasins

il faut donc qu'à l'affichage de ton tableau, tu es déjà toutes ces informations et que tu saches le nom des magasins en présence pour tous les produits. Une fois que tu as ça tu affiches en tête de colonne tous les magasins, ensuite sur chaque ligne, tu reportes les informations sur le produit en faisant gaffe de garder les informations dans l'ordre des magasins.

Le plus simple pour cet exercice me semble de récupérer d'abord les données dans un tableau avant de les afficher


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Mai 30, 2008 14:13

Moi ca me semble un peu complexe pour rien ce code non ? Et pas du tout optimisé aussi :(

Déja ta table, j'imagine que c'est l'idcom la clé primaire ? faudrait la mettre en primary key, Semaine en tinyint, date ça serait mieux en timestamp, et les autres :(

Les deux requêtes qui peuvent être mise en une seule sans devoir utiliser des tableaux, juste le résultat de la requête :(
Dernière édition par YoyoS le Ven Mai 30, 2008 14:17, édité 2 fois.


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

Message le Ven Mai 30, 2008 14:15

peux tu me fournir un exemple pour me mettre sur la piste car étant débutant, l'exercice se révèle être plus compliqué que ce que je pensais.


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

Message le Ven Mai 30, 2008 14:18

je vois que tou ça t'attriste beaucoup YoyoS. lol
mais que veux tu c'est ça les débutants!!


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Mai 30, 2008 14:19

Bah je suis désolé mais pour moi faudrait changer le truc actuel, et je ne saisis pas tout ce que tu as voulu faire, et surtout ce que tu veux faire.

Je suis d'accord que tu es débutant, mais tu as loupé des bases importantes alors avant d'en arriver la !


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

Message le Ven Mai 30, 2008 14:21

en fait ce que je souhaite faire c'est afficher le tableau comme ci-dessus répété par le nombre de magasins avec leurs données correspondantes.

C'est assez clair?


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Mai 30, 2008 14:26

Donc en gros ceci ?

Commande1 Magasin1
produit Q
produit ...
produit
Commande2 Magasin2
produit
produit
produit
Commande3 Magasin3
...


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

Message le Ven Mai 30, 2008 14:30

en fait comme ceci :

Image

biensur les données des colonnes S, Qte ect.. ne sont pas les mêmes pour les differents magasins.
Dernière édition par webac le Ven Mai 30, 2008 14:32, édité 1 fois.


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Mai 30, 2008 14:32

Mais a la place de Magasin1 Magasin2 Magasin3

Faudrait plutôt mettre Commande1 Commande2 Commande3 non ? vu que si un magasin fait plusieurs commandes ?

Conseil pour tableau PHP

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