Conseil pour tableau PHP

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par webac, 30 Mai 2008.

  1. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    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 :

    [​IMG]

    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:
    $req = "SELECT * from lignedecommande WHERE idcom IN ('$ids')";
    Code:
    $req2 = "SELECT * from lignedecommande WHERE Mag IN ('$magasin') AND Semaine= '$num_semaine'"; 
    Merci
     
  2. erestrebian
    erestrebian WRInaute occasionnel
    Inscrit:
    15 Juin 2007
    Messages:
    411
    J'aime reçus:
    0
    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...
     
  3. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    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.
     
  4. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    voici le code ça sera surement plus parlant:

    Code:
    <?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>';  ?>
     
  5. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Donne le schema de tes tables !
     
  6. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    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 ''
     
  7. erestrebian
    erestrebian WRInaute occasionnel
    Inscrit:
    15 Juin 2007
    Messages:
    411
    J'aime reçus:
    0
    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
     
  8. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    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 :(
     
  9. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    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.
     
  10. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    je vois que tou ça t'attriste beaucoup YoyoS. lol
    mais que veux tu c'est ça les débutants!!
     
  11. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    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 !
     
  12. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    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?
     
  13. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Donc en gros ceci ?

    Commande1 Magasin1
    produit Q
    produit ...
    produit
    Commande2 Magasin2
    produit
    produit
    produit
    Commande3 Magasin3
    ...
     
  14. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    en fait comme ceci :

    [​IMG]

    biensur les données des colonnes S, Qte ect.. ne sont pas les mêmes pour les differents magasins.
     
  15. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Mais a la place de Magasin1 Magasin2 Magasin3

    Faudrait plutôt mettre Commande1 Commande2 Commande3 non ? vu que si un magasin fait plusieurs commandes ?
     
  16. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    non une seule commande possible par semaine
     
  17. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Bon ben j'ai une petite idée, je ferais par exemple deux requêtes, une pour récupérer tous les produits par ordre alphabétique pour toutes les commandes des magasins concernés en évitant les doublons (normalement ça devrait être une table spécifique pour les produits ...)

    SELECT DISTINCT produits from lignedecommande WHERE idcom IN ('$ids')" ORDER BY produits;

    Ensuite, je récupérerais toutes les informations des commandes concernant les magasins + commandes concernées le tout trié par idcommande et ensuite trié par produit.

    SELECT * FROM lignedecommande WHERE idcom IN () AND Mag IN () AND semaine = Num ORDER BY idcom,produits

    Ensuite, quand tu construits ton tableau, tu utilises les deux résultats de requête simultanément, tu regardes si $resreq1[$i] == $resreq2['produits'] pour afficher ta donnée, sinon, tu fais rien et tu passes à la colonne suivante.

    Ca te dit quoi ?
     
  18. webac
    webac WRInaute occasionnel
    Inscrit:
    4 Mars 2005
    Messages:
    385
    J'aime reçus:
    0
    ça m'inspire pas mal merci pour tout je vais essayer de me debrouiller avec tout ça.
     
  19. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Ou alors non, j'ai ptet inversé, ca dépend l'ordre de construction du tableau en php, on construit les lignes d'abord non ?

    Donc tu trierais la deuxième requête sur les produits, puis par idcom, ensuite, tu compares les idcom pour afficher dans une bonne colonne.

    Exemple, pour le produit Abricot, si dans la première colonne (première commande) il n'y en a pas, il suffit de le voir avec $resreq['idcom'] == $compteur pour afficher ou pas
     
Chargement...
Similar Threads - Conseil tableau PHP Forum Date
Conseils site web Demandes d'avis et de conseils sur vos sites 16 Juin 2022
Conseil pour accélérer l'indexation de mon nouveau site Problèmes de référencement spécifiques à vos sites 9 Avril 2022
WordPress Bonjour, J'aimerai avoir des conseils. Mon site internet est-il bien construit ? Débuter en référencement 29 Mars 2022
Conseils pour site Hightech Demandes d'avis et de conseils sur vos sites 16 Mars 2022
besoin de conseils pour mon site Débuter en référencement 9 Mars 2022
Avis aux experts webmarketing BtoB : demande de conseil Demandes d'avis et de conseils sur vos sites 8 Mars 2022
Tout simplement à la recherche de conseils... Débuter en référencement 13 Novembre 2021
Quelle formation poussée sur Facebook Ads me conseillez-vous ? Facebook 3 Novembre 2021
Blog, silo et sens des liens conseillés Techniques avancées de référencement 15 Juillet 2021
[conseil] hébergement mutualisé pas cher avec muti-domaine Administration d'un site Web 8 Juillet 2021
Votre conseil pour un app builder ? Développement d'un site Web ou d'une appli mobile 8 Juin 2021
Hébergement Cloud, VPS infogéré... besoin de conseils Administration d'un site Web 8 Juin 2021
conseils sécurité sur internet Le café de WebRankInfo 1 Juin 2021
Conseils Mots Clés Débuter en référencement 19 Mars 2021
Recherche conseils et aide pour hébergement Administration d'un site Web 14 Mars 2021
Conseil pour débuter en seo Débuter en référencement 11 Novembre 2020
Besoin de conseil pour un site WEB de prise de commande Demandes d'avis et de conseils sur vos sites 9 Octobre 2020
conseil rédaction CGV Droit du web (juridique, fiscalité...) 19 Septembre 2020
Besoin de conseils pour rendre un site web plus attractif Débuter en référencement 16 Septembre 2020
WordPress Conseil sur la bonne structure des URL en répertoires Problèmes de référencement spécifiques à vos sites 19 Août 2020