Hi Robbie Reading what I wrote wasn't very clear to me either ;-)
> How does song_x_artist reference the other databases? Is there a way to set > up a field to always be a reference to another table? I think you may be talking foreign keys here - something yet to come in MySQL AFAIK. > > I am not quite sure what you mean... but here is my take anyways. Is this > going around my elbow? Or is this just how you do relationals in SQL? .... > This is a standard way of doing many-to-many relationships in SQL; there may be others. > (For each relationship you may want to have in a system, you must set up a > table to house that relationship?) For each M2M, basically, yes. > Table::"song_x_artist" > ********************* > PrimID (can't duplicate) > SongID (can duplicate) > ArtistID (can duplicate) Yep - I don't use the primary key when I do it, but by using one you can obviously avoid unwanted duplications. > > (PHP) & MySQL > ********************* > $songID = (the id of the song the user selected to sample) > $artistsOnSong = Select * from "song_x_artist" where "songID" = $songID > while ($artistArray= mySQL_Fetch_Array ($artistsOnSong)){ > $currentArtists = Select * from "Artists" where artistID = > $artistArray[ArtistID] > while ($artistInfo= mySQL_Fetch_Array ($currentArtists)){ > //start to build the html table of the related artists for the song > here. > } > } > > Would that work? And if it does... I am not so sure about how to write it > out, so if you have any suggestions on better syntax, please advise. 'Ang on - I'm not a PHP man so I've got to think my way through the code... Yep - if I read that correctly, should be OK. Assuming that we're starting with a song, the steps are: 1) Grab the song ID (primary key) from the songs table. 2) Select all the Artist IDs from the song_x_artist (x-reference) table and push them into an array. (This is why we want sub-selects in MySQL 4!) 3) Pop each value from the array and use it as the criterion to select all the details that you want from the artists table - what comes back is your final results. So, yes, what you've done looks right. Only one way to find out ;-) Cheers Matthew Smith --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php