[php] Tableaux a 2 dimensions

Tableaux a 2 dimensions [php] - PHP - Programmation

Marsh Posté le 20-02-2004 à 02:20:47    

bonjour à tous  :hello:  
 
J'ai fait quelques recherches, mais je n'ai pas trouvé mon bonheur, et je n'arrive pas à comprendre parfaitement les tutos que j'ai trouvé (je dois être fatigué ;) ).
 
Alors voilà mon problème :
J'ai une interface d'admin d'un journal en ligne.
J'ai une page dans laquelle on entre un article ; soit on clique sur le bouton continuer ca remet la meme page, et si on clique sur le bouton terminer, ca finit les entrées.
 
Je stocke les entrées dans des variables de session qui sont des tableaux, temporairement, la dernière page se chargeant de les enregistrer dans une base de donnée SQL.
 
Alors trois questions :
1/ Comment est-ce qu'on donne des noms aux colonnes des tableaux php quand ils ont deux dimensions, et comment on les appelle ? Je pense à un truc genre $tableau["nomcolonne"][0]... et comment on les initialise, aussi ? $tableau = array(array(), array()) ?
2/ Est-ce que ma page est correcte comme ça, sinon ? Je veux dire, c'est pas gênant que j'aie pas mal de variables de session ?
3/ Est-ce que vous avez une meilleure idée pour ce genre de problème ? A savoir une page récursive dont on ne connaît pas le nombre d'affichages...
 
Sur ma page, j'ai ça (en gros) :
 

Code :
  1. <?php
  2. /* definit les variables de session */
  3. require("varsess_journal.php" );
  4. /* si les variables de session ne sont pas initialisées (premier passage sur cette page), on les initialise : */
  5. if (!isset($_SESSION[article_titre]) || !isset($_SESSION[article_contenu]) || !isset($_SESSION[article_auteur])) {
  6. $_SESSION[article_titre] = array();
  7. $_SESSION[article_contenu] = array();
  8. $_SESSION[article_auteur] = array();
  9. }
  10. /* stockage des variables de session dans des variables locales */
  11. $article_titre = $_SESSION[article_titre];
  12. $article_contenu = $_SESSION[article_contenu];
  13. $article_auteur = $_SESSION[article_auteur];
  14. /* si on vient d'envoyer des données, on les enregistre ; si c'est le premier passage, ben non. */
  15. if (isset($_POST[titre]) && isset($_POST[contenu]) && isset($_POST[auteur])) {
  16. $article_titre[count($article_titre)] = $_POST[titre];
  17. /* etc... */
  18. }
  19. /* enfin, on enregistre les variables en session */
  20. $_SESSION[article_titre] = $article_titre;
  21. /* etc... */
  22. /* si une des variable envoyée est sur true, on ré-affiche le formulaire, sinon on redirige sur la page de fin. */
  23. ?>


 
 
voila voila
merci ! :)
 
 
ah oui, je suis las et fatigué, alors si vous ne comprenez rien, n'hésitez pas à m'insulter copieusement, j'essaierais d'être plus clair... ;)

Reply

Marsh Posté le 20-02-2004 à 02:20:47   

Reply

Marsh Posté le 20-02-2004 à 08:15:39    

1) $tableau = array('toto'=>array(),'titi'=>array()); si j'ai compris ce que tu veux
 
2)je vois pas ce qui pourrait géner... c'est juste que si tu stockes bcp de chose dans ta session, ton script sera plus lent à l'exécution
 
3)pas d'avis ;)

Reply

Marsh Posté le 20-02-2004 à 15:28:33    

1/ ben euh, pas tout à fait... en fait je voudrais un tableau comme ca :
 


  | titre  |  article   |   auteur   |
--------------------------------------
0 | blah   | bla bla    |  Mr Moi    |
1 | irtet  | blo blo    |  Mini Me   |
2 | ...    |  ...       | ....       |


 
est-ce que c'est possible, et si oui, comment ?
 
2/ en fait, c'est surtout que j'en ai 11, des variables de session, au total... :D alors est-ce que ca pose pas des problemes de lenteur excessive, de serveur qui sature, ou que sais-je ?
 
merci ! :)
 
Edit : ah oui, question subsidiaire : c'est bien count($tableau) pour la taille d'un tableau ? :D


Message édité par cosmoschtroumpf le 20-02-2004 à 15:55:41
Reply

Marsh Posté le 20-02-2004 à 16:49:35    

Salut,  
J'ai une idée qui vaut pas grand chose, j'utiliserai à ta place une chaine de caractère (tableau à 1 dimension) dans laquelle je mettrai des séparateurs du style |.
Ensuite lors de l'utilisation, je la découperai par une expression régulière.
 
Le count c'est pour compter les éléments d'un tableau mono dimension !
 

Reply

Marsh Posté le 20-02-2004 à 17:01:35    

1)   $tableau = array('toto'=>array(),'titi'=>array());
bah apprès tu peux faire  
$tableau['toto'][0] = "blabla";
...
 
ou $tableau['toto'] = array()
 
tu peux aussi tout définir en une seule ligne ;)
 
 
2) je dirai pas de problème... si tu voyais la tête de mes sessions [:ddr555]

Reply

Marsh Posté le 20-02-2004 à 20:07:02    

ok merci :)
 
bon, en fait c'est assez compliqué comme ca,  je vais garder mes 11 variables de session, je me pencherais sur les tableaux a 2 dimensions quand je ne serais pas pressé par le temps...
 
Merci en tout cas :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed