Re: creating a nested multidimensional array from a query

From: Date: Mon, 14 Jun 2004 18:04:22 +0000
Subject: Re: creating a nested multidimensional array from a query
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-188242@lists.php.net to get a copy of this message
PLEASE stop posting the same qustion over and over. If you're not subscribed to the list (or reading it via news.php.net) you need to be to see responses. I sent a response to this question earlier today. grahama@siren.cc wrote:
Hi :) I am on my second week of php so be gentle I am creating an XML file out of a mysql query with nested arrays. Currently I can get 1 element and 1 child with a properly formatted XML file with the below script . My question is: How do I add 3 to 4 more child elements to the below 'playlist' array ? Currently ,I have one parent 'Artist' and one child 'english' ... I need to add more child elements to the 'Artist' array like urlPath, spanish, biography, etc Do I have to add another dimension to the 'playlist' array? Do I need another foreach loop ? Is there an easier more efficient way to do this? Be nice to spell out the schema in some way in the script...in case you need to add more levels...like a 'subCategory' I am a bit new to this so any help would be greatly appretiated .... head is spinning a bit $sql = 'SELECT artist.artist_name, media.english, media.path '; $sql .= 'FROM media, artist '; $sql .= 'WHERE artist.artist_id = media.artist_id LIMIT 0, 30 '; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { $playlist[$row['artist_name']] [] = $row['english']; //would like to add more children here... } $xml = "<sirenreels>\n"; foreach ($playlist as $artist => $media) { $num_media = count($media);
       $xml .= "<artist>\n";                    $xml .= "\t<meta>\n";              $xml .=     "\t\t<title>".$artist."</title>\n";
    $xml .= "\t</meta>\n";           $xml .= "\t<content>\n";   
foreach ($media as $mediaVal) {
            $xml .= "\t\t<media>\n";                   $xml .= "\t\t\t<english_name>".$mediaVal."</english_name>\n";
            ///add more children
            ///add more children
            $xml .= "\t\t</media>\n";              }
                $xml .= "\t</content>\n";       $xml .= "</artist>\n";   }
$xml .= "</sirenreels>\n"; print $xml
-- paperCrane <Justin Patrin>

« previous php.general (#188242) next »