Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1632 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Tableau dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Tableau dynamique

n°1620479
sabbahh
Posté le 08-10-2007 à 12:38:13  profilanswer
 

Bonjour,  
j'ai petit soucis avec la construction d'un tableau dynamique.
Jusque là j'arrive à créer mon tab avec une boucle while, mais ce que je veux faire c'est:
 -fusionner la première cellule de la lignes, bon j'ai du mal à expliquer mon prob:
 
[Ligne1][Ligne 1.1][][][][]
[Ligne1][Ligne 1.2][][][][]
--------------------------------------
[Ligne2][Ligne 2.1][][][][]
[Ligne2][Ligne 2.2][][][][]
 
donc fusionner la première cellule.


Message édité par sabbahh le 28-04-2008 à 12:10:20
mood
Publicité
Posté le 08-10-2007 à 12:38:13  profilanswer
 

n°1620483
flo850
moi je
Posté le 08-10-2007 à 12:43:24  profilanswer
 

tu as un tableau qui a plusieurs fois le meme index ?  
 
genre $tab['ligne1'] est sensé aparaitre deux fois, une fois avec [Ligne 1.1][][][][]   et une fois avec [Ligne 1.2][][][][] ?
 
parce que la , je crois quil y a un pb

n°1620485
sabbahh
Posté le 08-10-2007 à 12:47:22  profilanswer
 

oui le même index, exemple:
[produit1][arrivage le lundi][quantité1]..
[produit1][arrivage le mardi][quantité2].. <-- il s'agit du même produit
[produit2][arrivage le lundi][quantité1]..
[produit2][arrivage le mardi][quantité2]..

n°1620486
sabbahh
Posté le 08-10-2007 à 12:48:16  profilanswer
 

ce que je veux faire:
[produit1 [arrivage le lundi][quantité1]..
           ] [arrivage le mardi][quantité2]..
 
et j'ai du mal avec les <tr> <td>.. alors que en statique c faisable


Message édité par sabbahh le 08-10-2007 à 12:49:13
n°1620513
Alisteroid
Posté le 08-10-2007 à 13:50:51  profilanswer
 

Suffit d'inbriquer des foreach non?

n°1620518
sabbahh
Posté le 08-10-2007 à 14:00:57  profilanswer
 

En fait, j'ai utilisé 2 while (la 1ére pour chaque produit, et la 2éme pour l'arrivage, quatité..)
Mais ce qui arrive :
[produit1] [arrivage le lundi][quantité1]..  
[arrivage le mardi][quantité2].. <- ça me décale ma ligne d'une cellule
[produit2] [arrivage le lundi][quantité2]..  
[arrivage le mardi][quantité2]..  

n°1620567
Alisteroid
Posté le 08-10-2007 à 15:04:41  profilanswer
 

Sert toi de ca :  

Code :
  1. <?php
  2. $array_produits = array('produit1'=>array( 'arrivage lundi '=> 'quantite lundi',
  3.           'arrivage mardi '=> 'quantite mardi'),
  4.      'produit2'=>array( 'arrivage2 lundi '=> 'quantite2 lundi',
  5.           'arrivage2 mardi '=> 'quantite2 mardi'
  6.            )
  7.    );
  8. echo "Avant affichage :<br>" ;
  9. echo "<pre>";print_r($array_produits);echo "</pre>";
  10. echo "Après affichage :<br>" ;
  11. echo '<table cellpadding="0" cellspacing="10">';
  12. foreach ($array_produits as $num_produit => $produit)
  13. {
  14. foreach ($produit as $arivage => $quantite)
  15. {
  16.  echo '<tr><td>'.$num_produit.'</td><td>'.$arivage.'</td><td>'.$quantite.'</td><td></tr>';
  17. }
  18. }
  19. echo "</table>";
  20. ?>


 


Avant affichage :
 
Array
(
    [produit1] => Array
        (
            [arrivage lundi ] => quantite lundi
            [arrivage mardi ] => quantite mardi
        )
 
    [produit2] => Array
        (
            [arrivage2 lundi ] => quantite2 lundi
            [arrivage2 mardi ] => quantite2 mardi
        )
 
)
Ca donne :  
 
Après affichage :
produit1 arrivage lundi  quantite lundi  
produit1 arrivage mardi  quantite mardi  
produit2 arrivage2 lundi  quantite2 lundi  
produit2 arrivage2 mardi  quantite2 mardi


C'est fait à la va vite, très bourrin , je mélange jamais le php et l'html comme ça mais bon... tu comprendras surement d'ou vient ton erreur


Message édité par Alisteroid le 08-10-2007 à 15:05:48
n°1620572
Alisteroid
Posté le 08-10-2007 à 15:10:11  profilanswer
 

Bref ton probleme vient surement du fait qu'au lieu de faire  
 
 

Code :
  1. foreach ($array_produits as $num_produit => $produit)
  2. {
  3.     foreach ($produit as $arivage => $quantite)
  4.     {
  5.         echo '<tr><td>'.$num_produit.'</td><td>'.$arivage.'</td><td>'.$quantite.'</td></tr>';
  6.     }
  7. }


Tu faisais

Code :
  1. foreach ($array_produits as $num_produit => $produit)
  2. {
  3.  echo '<tr><td rowspan="'.count($produit).'">'.$num_produit.'</td>';
  4. foreach ($produit as $arivage => $quantite)
  5.      {
  6.          echo '<td>'.$arivage.'</td><td>'.$quantite.'</td></tr>';
  7.      }
  8. echo '</tr>';
  9. }


Message édité par Alisteroid le 08-10-2007 à 15:17:34
n°1620573
sabbahh
Posté le 08-10-2007 à 15:10:35  profilanswer
 

ça j'arrive à le faire. ce que je veux c'est de ne pas réecrire "produit1".
            arrivage lundi  quantite lundi  
produit1 arrivage lundi  quantite lundi  
            arrivage mardi  quantite mardi  
---------------------------------------
            arrivage2 lundi  quantite2 lundi  
produit2 arrivage2 mardi  quantite2 mardi
            arrivage2 lundi  quantite2 lundi  
 
Fusionner la première cellule avec les 3 lignes:(


Message édité par sabbahh le 08-10-2007 à 15:11:55
n°1620575
Alisteroid
Posté le 08-10-2007 à 15:11:21  profilanswer
 

Tu veux l'écrire qu'une fois?Si c'est la cas, le deuxieme bloc de code ci dessus, n'écris qu'une fois le produit!suffit de mettre un rowspan=<?=count($produit)?> sur ta premier colonne ou tu auras écris produit dessus

Message cité 1 fois
Message édité par Alisteroid le 08-10-2007 à 15:13:44
mood
Publicité
Posté le 08-10-2007 à 15:11:21  profilanswer
 

n°1620578
sabbahh
Posté le 08-10-2007 à 15:13:47  profilanswer
 

Comme ça:
-------------------------------------------
           | arrivage lundi | quantite lundi  
           |----------------------------------  
produit1| arrivage lundi | quantite lundi    
           |----------------------------------
           | arrivage mardi| quantite mardi  
--------------------------------------------

n°1620580
Alisteroid
Posté le 08-10-2007 à 15:17:50  profilanswer
 

Code :
  1. foreach ($array_produits as $num_produit => $produit)
  2. {
  3.  echo '<tr><td rowspan="'.count($produit).'">'.$num_produit.'</td>';
  4. foreach ($produit as $arivage => $quantite)
  5.      {
  6.          echo '<td>'.$arivage.'</td><td>'.$quantite.'</td></tr>';
  7.      }
  8. echo '</tr>';
  9. }

n°1620581
sabbahh
Posté le 08-10-2007 à 15:20:22  profilanswer
 

Alisteroid a écrit :

Tu veux l'écrire qu'une fois?Si c'est la cas, le deuxieme bloc de code ci dessus, n'écris qu'une fois le produit!suffit de mettre un rowspan=<?=count($produit)?> sur ta premier colonne ou tu auras écris produit dessus


Genre çà?
 
row     "c'est pour les noms produit"
rowlog "c'est pour les 'carractéristiques' produit"

Code :
  1. while(($rowlog = mysql_fetch_array($rez))) { ?>
  2. <th rowspan=<?=count($rowlog[3])?> ><?php echo utf8_encode($row[0]);echo'<br>';echo utf8_encode($row[1]); ?></th>

n°1620588
Alisteroid
Posté le 08-10-2007 à 15:26:41  profilanswer
 

Un truc quand tu programmes:

 

Tu fais tes requetes, tu récupères tes résultats sous tableaux et varaibles php, tu fais tes calculs & vérfication & co et tout à la fin dans un autre fichier  tu gères uniquement l'affichage(tu fais un include en prenant le même nom de fichier mais en le terminant par '.inc' , que tu place dans un dossier "include" c'est mieux, tu sauras que tout ton affichage de tout ton site est dans ce dossier).

 

Donc la quand tu fais ton while, remplit d'abord convenablement un tableau php et affiche le au fur et à mesure si tu as du mal (echo "<pre>";print_r($mon_tableau);echo "</pre>";), tu peux ainsi commencer par afficher $rowlog et voir comment il est foutu! , vas y petit à petit. Mais vouloir faire de l'affichage directement à partir du résultat de ta requete c'est vraiment mal, c'est moche, dur à modifier, peu lisible!

 


Message cité 2 fois
Message édité par Alisteroid le 08-10-2007 à 15:28:51
n°1620589
sabbahh
Posté le 08-10-2007 à 15:27:09  profilanswer
 

Bon je te remercie, j'ai fais un petit test avec rowspan="3" et ça marche, donc il faut juste que je récupère le nombre exacte.
Merci bcp

n°1620590
sabbahh
Posté le 08-10-2007 à 15:29:07  profilanswer
 

Alisteroid a écrit :

Un truc quand tu programmes:
 
Tu fais tes requetes, tu récupères tes résultats sous tableaux et varaibles php, tu fais tes calculs & vérfication & co et tout à la fin dans un autre fichier  tu gères uniquement l'affichage(tu fais un include en prenant le même nom de fichier mais en le terminant par '.inc' , que tu place dans un dossier "include" c'est mieux, tu sauras que tout ton affichage de tout ton site est dans ce dossier).
 
Donc la quand tu fais ton while, remplit d'abord convenablement un tableau php et affiche le au fur et à mesure si tu as du mal , vas y petit à petit. Mais vouloir faire de l'affichage directement à partir du résultat de ta requete c'est vraiment mal, c'est moche, dur à modifier, peu lisible!


 
Merci pour le conseil, j'avoue que c'est pas facile à modifier et peu lisible. j'essayerai!

n°1620591
Alisteroid
Posté le 08-10-2007 à 15:29:37  profilanswer
 

Prends ma remarque si dessus en considération et tu te simplifieras la vie ;)
 

n°1620592
sabbahh
Posté le 08-10-2007 à 15:32:59  profilanswer
 

Alisteroid a écrit :

Prends ma remarque si dessus en considération et tu te simplifieras la vie ;)
 


 
Promis, mais ça serait pas pour toute suite, je n'ai vraiment pas le temps. mais je veux bien m'améliorer et faire les choses proprement donc ça serait la première chose à faire!

n°1620607
omega2
Posté le 08-10-2007 à 15:46:29  profilanswer
 

Alisteroid a écrit :

Un truc quand tu programmes:
 
Tu fais tes requetes, tu récupères tes résultats sous tableaux et varaibles php, tu fais tes calculs & vérfication & co et tout à la fin dans un autre fichier  tu gères uniquement l'affichage(tu fais un include en prenant le même nom de fichier mais en le terminant par '.inc' , que tu place dans un dossier "include" c'est mieux, tu sauras que tout ton affichage de tout ton site est dans ce dossier).


Un gros bémol : il ne faut jamais donner .inc .res ... comme extension à des fichiers contenant du code à moins que t'es envie que des inconnus n'aient accès au code de tes fichiers (ils sont envoyés comme de simples fichiers texte si on les ouvre directement depuis un navigateur) Si tu veux utiliser ce genre d'extension alors il faut toujours rajouter l'extension .php (ou .jsp ou ... en fonction du langage) ce qui donne .inc.php .
Ca n'est pas une règle qui permet de bien faire fonctionner le site mais une règle de sécurité pour éviter de donner des éléments aux visiteurs qui leurs permettraient de passer outre les protections du site.

n°1620636
Alisteroid
Posté le 08-10-2007 à 16:57:34  profilanswer
 

C'était sous entendu hein, j'ai bien dis nom du fichier + .inc (donc + extension) -> nom_fichier.inc.php  :D
Bref , jamais j'aurais une idée pareille ^^
Mais tu fais bien de le faire remarquer car sabbahh à surement du comprendre la même chose que toi ;)


Message édité par Alisteroid le 08-10-2007 à 16:59:22
n°1622324
sabbahh
Posté le 11-10-2007 à 14:45:18  profilanswer
 

c'est noté. merci

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Tableau dynamique

 

Sujets relatifs
vérifier si une valeur existe bien dans un tableau[RESOLU] Trier sur deux tables
[Résolu]Modifier les style de lien pour une partie seulement[resolu][java/mysql] restauration de dump
[Résolu] Problème de compilation Qt[Résolu] Vérification en javascript d'un tableau dynamique en PHP
[RESOLU] créer un tableau dynamique en phpProblème id dans création de tableau dynamique [résolu]
[Resolu]selection de ligne d'un tableau dynamique et formulairetableau dynamique [RESOLU]
Plus de sujets relatifs à : [Résolu] Tableau dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR