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:
Media_id art_id
3 2
5 2
I 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)) {
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.
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
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php