Re: creating a nested multidimensional array from a query
| From: | Justin Patrin | 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);-- paperCrane <Justin Patrin>$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