[PHP-DB] Re: assigning variables after one-to-many query

2004-04-23 Thread Torsten Roehr
Rachel Rodriguez [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]
 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| [EMAIL PROTECTED]|
 |   2| [EMAIL PROTECTED] |
 |   3| [EMAIL PROTECTED]  |
 |   4| [EMAIL PROTECTED] |
 |   5| [EMAIL PROTECTED] |
 ++-+


Hi Rachel,

if you know that you will always have a one to many relationship and never a
many to many relationship you don't need table2 at all. Just add column 'id'
to table three as the foreign key. This should make your life easier.

Regards, Torsten


 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 = [EMAIL PROTECTED],
 $email2 = [EMAIL PROTECTED], and $email3 =
 [EMAIL PROTECTED]

 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))
  {
   echoBill'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



Re: [PHP-DB] Re: assigning variables after one-to-many query

2004-04-23 Thread Rachel Rodriguez

--- Torsten Roehr [EMAIL PROTECTED] wrote:
 Rachel Rodriguez [EMAIL PROTECTED]
 wrote in message

news:[EMAIL PROTECTED]
  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| [EMAIL PROTECTED]|
  |   2| [EMAIL PROTECTED] |
  |   3| [EMAIL PROTECTED]  |
  |   4| [EMAIL PROTECTED] |
  |   5| [EMAIL PROTECTED] |
  ++-+
 
 
 Hi Rachel,
 
 if you know that you will always have a one to many
 relationship and never a
 many to many relationship you don't need table2 at
 all. Just add column 'id'
 to table three as the foreign key. This should make
 your life easier.
 
 Regards, Torsten
 
 
  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.
 

Thanks Torsten!  The database design tip is useful,
but I'm still stuck with the variable assignment
problem from my original post.  

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