Re: foreach ($media as $key => $val) problem
| From: | Kristen G. Thorson | Date: | Wed, 01 Jun 2005 19:15:15 +0000 |
| Subject: | Re: foreach ($media as $key => $val) problem | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-216167@lists.php.net to get a copy of this message | ||
Jack Jackson wrote:
Hi, all, This might look like a mysql problem but I assure you it's my botching the PHP which is the problem! I'm building a part of a page with info from three tables: art, media and media_art. Media_art is the intersection table. For every entry in art there can be one or more entries in media. art.art_id 1 has two entries in media_art:If this particular example has only two rows to return, then the above two lines look like the culprit. $media = ... is fetching the first row, but you're not doing anything with it, then while( $media = ...) will fetch the second and print it out. Take out the first line above.Media_id art_id 3 2 5 2I do this SQL, which in phpmyadmin returns the two names of media as expected SELECT media.media_name FROM art, media_art, media WHERE art.art_id = 1 AND art.art_id = media_art.art_id AND media.media_id = media_art.media_id Yet here's where I mess up. To see if I've got them in an array, I do: $media = mysql_fetch_assoc($media_result);while ($media = mysql_fetch_assoc($media_result)) {
asort($media); foreach($media as $key => $val) {echo "key: $key value: $val <br />"; }} //end while $media = mysql_fetch_assoc($media_result)and this returns only the name of the HIGHer number of the two (that is, 5). What have I done wrong to echo out each name of the media associated with this record? I'm trying, eventually, to echo it out in the age so that it appears as [art_id 1] comprises Ink, watercolor. Thanks in advance, Jack