Conseil pour tableau PHP
19 messages
• Page 1 sur 2 • 1, 2
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
Conseil pour tableau PHP
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 :
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 :
Merci
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 :
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

- Messages: 472
- Inscription: 15 Juin 2007
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...
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

- Messages: 3835
- Inscription: 14 Sep 2006
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.
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

- Messages: 373
- Inscription: 4 Mar 2005
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"> </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>'; ?>
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
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 ''
`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

- Messages: 472
- Inscription: 15 Juin 2007
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
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

- Messages: 3835
- Inscription: 14 Sep 2006
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
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.
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
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 !
Je suis d'accord que tu es débutant, mais tu as loupé des bases importantes alors avant d'en arriver la !
19 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

