2010-07-16 4 views
0

Comment former un tableau multidimensionnel à l'aide de données MySQL? J'utilise ce code en ce moment:Comment saisir des données MySQL dans un tableau multidimensionnel?

while($row = mysql_fetch_assoc($result)){ 
    $music[$row['artist']][$row['title']][$row['id']][$row['category_id']] = $row['key']; 
} 

Et je pense que ce serait beaucoup plus facile d'utiliser un tableau à plusieurs dimensions pour stocker mes données (tableau artiste => array title => id, category_id, clé) mais je n'ai aucune idée comment en former un en utilisant les données d'une base de données. J'ai googlé et ne peux trouver que des exemples de tableaux multidimensionnels de données statiques/locales, ce qui n'est pas bon pour moi. Je voudrais également savoir comment sortir des données multidimensionnelles en PHP pour une utilisation dans le monde réel. Aurais-je utiliser des boucles? Ou y aurait-il un autre moyen?

Et je voudrais juste vous remercier pour toute l'aide que j'ai eu jusqu'ici à stackoverflow, cela m'a sauvé beaucoup de maux de tête!

+0

Notez simplement que cela peut être assez cher à faire à chaque fois. Il est probablement préférable de structurer votre code de manière à ce que tout le travail dont vous avez besoin pour vos données se fasse à l'intérieur de la boucle sans avoir besoin de construire ce tableau supplémentaire. –

Répondre

0
$music = array(); 
while($row = mysql_fetch_assoc($result)){ 
    if (!isset($music[$row['artist']]) { 
     $music[$row['artist']] = array() 
     } 
    $music[$row['artist']][$row['title']]=array('id'=>$row['id'],'category_id'=>$row['category_id'],'key'=>$row['key']; 
    } 

ou plus simplement si besoin de mémoire est pas très important (je fais la plupart du temps):

$music = array(); 
while($row = mysql_fetch_assoc($result)){ 
    if (!isset($music[$row['artist']]) { 
     $music[$row['artist']] = array() 
     } 
    $music[$row['artist']][$row['title']]=$row; 
    } 

En utilisant deux pour-que des boucles travailleraient - en supposant que vous souhaitez afficher une arbre des artistes, que les sous-arbres des titres:

foreach ($music as $artist => $titles) { 
    foreach ($titles as $title => $details) { 
     // do stuff, $details contains all the details for the specific $artist and $title 
     } 
    } 
+0

Merci beaucoup, c'est exactement ce que je cherchais :). – user389956

0
var $music = array() 
while($row = mysql_fetch_assoc($result)) 
{ 
    foreach($row as $k => $v) 
    { 
     $music[$key][] = $v; 
    } 
} 

print_r($music); 
Questions connexes