|
Posted by Nick Selby on 06/01/05 23:03
Thanks Kristen and TG!! Worked like a charm
Kristen G. Thorson wrote:
> 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
>>
>
>
>
>
Navigation:
[Reply to this message]
|