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

  FORUM HardWare.fr
  Programmation
  PHP

  table MySQL dans tableau (à 2 dimensions?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

table MySQL dans tableau (à 2 dimensions?)

n°1178792
Mploufeur
Posté le 18-08-2005 à 14:46:49  profilanswer
 

Bonjour à tous,
 
J'ai une table MySQL dont la structure est la suivante:

id, chaine1, nombre1, chaine2, nombre2, ... , chaine20, nombre20


Et je voudrais mettre le contenu de cette table dans un tableau pour pouvoir travailler dessus plus tard.
 
Je suppose que la meilleure solution est de mettre tout ça dans un tableau à 2 dimensions, où
* la 1ère clé est un chiffre (l'id)
* la 2ème clé est associative
 
Ainsi je devrais pouvoir récupérer les valeurs dans le tableau suivant:

$tableau[0][id]       <-- (*)
$tableau[0][chaine1]
$tableau[0][nombre1]
$tableau[0][chaine2]
$tableau[0][nombre2]
...
$tableau[0][chaine20]
$tableau[0][nombre20]
|
|
|
$tableau[n][id]       <-- (*)
$tableau[n][chaine1]
$tableau[n][nombre1]
$tableau[n][chaine2]
$tableau[n][nombre2]
...
$tableau[n][chaine20]
$tableau[n][nombre20]


 
Note (*): cette ligne n'est pas indispensable puisque la première clé est égale à l'id, mais si c'est plus facile de faire comme ça, c'est pas grave...
 
(j'espère que tout ça est compréhensible)
 
 
 
==> Mon seul problème, c'est que je ne sais pas comment coder ça simplement en PHP. J'ai bien des idées, mais c'est proche de l'usine à gaz, avec plein de lignes de codes.
 
Je suis sur qu'il y a un moyen simple de faire ça.
Est-ce vous avez des idées pour m'aider???

mood
Publicité
Posté le 18-08-2005 à 14:46:49  profilanswer
 

n°1178868
naceroth
Posté le 18-08-2005 à 16:04:33  profilanswer
 

Le schéma de la db lui-même est une usine à gaz, ce qui rend ta question plus difficile qu'elle ne devrait l'être (une parfaite illustration d'un cas où on crée un table a priori simple mais qui implique des traitements compliqués :))
 
Pourquoi ne pas avoir concu la table sous la forme

Code :
  1. id, ref, ordre, chaine, nombre


 
où id serait une clé unique, ref une clé étrangère (ou une référence commune au 20 binômes chaine/nombre) et ordre l'ordre dans le cas où il aurait de l'importance ?

n°1179314
Mploufeur
Posté le 19-08-2005 à 08:38:29  profilanswer
 

Merci naceroth de ta réponse.
 
Je crois en effet que je vais revoir l'organisation de ma BDD.
Pour être honnête, je n'ai pas tout saisi ce que tu me recommande, mais je vais essayer de largement simplifier mon truc.
 
Bonne journée.

n°1179322
omega2
Posté le 19-08-2005 à 08:56:23  profilanswer
 

mysql_fetch_array() te crais un tableau contenant une ligne de résultat que tu peux placer dans une case d'un autre tableau si tu veux.
Il y a le même genre de fonctions pour quasiment toutes les bases de données que php reconais si ce n'est toute.
En PDO php5.1 et supérieur) il y a la fonction fetchAll de l'objet PDOStatement (objet contenant le résultat com^plet de la requête) qsui permet d'obtenir directement un tableau à deux dimensions.
 
Sinon, quand on cré une base de donnée, pour savoir s'il faut utiliser une seule table ou plusieurs il faut regarder combien d'élément d'un type donné est relié à un élément donné d'un autre type.
Là, t'as plusieurs couples "chaine,nombre" pour un id donné.
par conséquent, t'auras besoin d'une table contenant l'id (numérique pour des raisons de rapidité) et les autres éléments (mais sans les couples "chaine,nombre" ) et une table contenant l'id , un couple "chaine,nombre" et éventuellement une colone numérique permettant de trier les couples.

n°1179678
td-rat
www.corkteam.com
Posté le 19-08-2005 à 15:35:12  profilanswer
 

Mploufeur a écrit :

Merci naceroth de ta réponse.
 
Je crois en effet que je vais revoir l'organisation de ma BDD.
Pour être honnête, je n'ai pas tout saisi ce que tu me recommande, mais je vais essayer de largement simplifier mon truc.
 
Bonne journée.


 
Il te preconise
 

Code :
  1. id       ref      num      chaine         Nombre
  2. 1        1        1        xxxxxx         xxxxxx
  3. 2        1        2        yyyyyy         yyyyyy
  4. 3        1        3        zzzzzz         zzzzzz
  5. .
  6. .


 
La ligne 3 represente ton couple chaine3 nombre3 que tu connais grace a "num=3" et la "ref=1" etant le numero permetant de regrouper le premier groupe de nombre et de chaine.
 


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

  table MySQL dans tableau (à 2 dimensions?)

 

Sujets relatifs
[MySQL & PHP] Obtenir les valeurs que peut prendre un champs SETcreate table table1 as .... en access
Bouquin sur PHP/MySQL[CSS débutant] Comme lier une feuille CSS à un tableau dans page HTML?
[MySQL][MD5][Java] Fonction de "déhashage"Deplacer fichier d'index des tables mysql
[MySQL] Requête sur 2 tables un peu tordueComment faire pour lancer un script à une date donnée sur MYSQL???
Galerie photos avec mysql ?[résolu]Probleme PHP/Mysql bizzarre
Plus de sujets relatifs à : table MySQL dans tableau (à 2 dimensions?)


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