----- Original Message ----- From: "Rachel Rodriguez" <email2rachel2003@xxxxxxxxx> To: <php-db@xxxxxxxxxxxxx> Sent: Friday, April 23, 2004 3:55 AM Subject: assigning variables after one-to-many query > Hi! > > I have a one-to-many relationship between two tables > (table1 and table3) with a "linking" table between > them (table2): > > table1: table2 > +---+--------+ +---+--------+ > |id | f_name | |id | emailID| > +---+--------+ +---+--------+ > | 1 | bill | | 1 | 1 | > | 2 | john | | 1 | 4 | > | 3 | diana | | 1 | 3 | > | 4 | victor | | 2 | 2 | > | 5 | renata | | 4 | 5 | > +---+--------+ +---+--------+ > > table3 > +--------+-----------------+ > |emailID | email | > +--------+-----------------+ > | 1 | bill@xxxxxxxxxxx| > | 2 | diana@xxxxxxxxx | > | 3 | bill@xxxxxxxxx | > | 4 | bill@xxxxxxxxxx | > | 5 | vic@xxxxxxxxxxx | > +--------+-----------------+ > maybe think again about your tables structure? seems like a mess to me. > I would like to write a query that matches table1.id > with records > from table3.emailID via the linking table (table2) and > then > assign each match to a variable. > > Here is what I have: > > $query = "SELECT t3.email > FROM table3 AS t3 > LEFT JOIN table2 AS t2 > ON (t3.emailID = t2.emailID) > LEFT JOIN table1 AS t1 > ON (t2.id = t1.id) > WHERE t1.id = 1"; > > $result = @myql_query($query, $db_connection); > > $num = mysql_num_rows($result); > > $email1 = ""; > $email2 = ""; > $email3 = ""; > > if ($num > 0) > { > while ($row = mysql_fetch_array($result)) > { > // do something here to assign > // $email1 = $row[email] and > // $email2 = $row[email], etc. > } > } > > Of course, the problem I am having is as I am going > through the "while" loop, I am assigning $email1, > $email2, and so on the > > same e-mail address. > > I would like to get: $email1 = bill@xxxxxxxxxxx, > $email2 = bill@xxxxxxxxxx, and $email3 = > bill@xxxxxxxxxx what i would do is add it into an array: $emails = Array(); while ($row = mysql_fetch_array($result,MYSQL_NUM)) { $emails[] = $row[0]; } then u have an array with : $emails[0] = bill@xxxxxxxxxxx $emails[1] = bill@xxxxxxxxxx etc... > > I would prefer to do that rather than what I have seen > in most examples which is similar to the following: > > // snippet of code > > while ($row = mysql_fetch_array($result)) > { > echo"Bill's email is $row[email]."; > } > > // end of snippet > > Any assistance is greatly appreciated. > > Thanks, > Rachel > > > > > __________________________________ > Do you Yahoo!? > Yahoo! Photos: High-quality 4x6 digital prints for 25¢ > http://photos.yahoo.com/ph/print_splash > > -- > PHP Database Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > > -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php