2011-09-09 47 views
-2

我是新来的PHP。我有一个表与用户和另一个与他们相关联的电子邮件地址和用户标识。我想按用户ID列出所有电子邮件地址。我想我需要一些嵌套的while循环,但不知道如何去做...任何帮助表示赞赏。从一个表中查询基于另一个表的数据

$rows = mysql_num_rows(mysql_query("SELECT * FROM users")); 
$data = mysql_fetch_array(mysql_query("SELECT * FROM users")); 

$i==0; 
while ($i < $rows){ 
    $.... this is where i'm lost 
} 

感谢

+0

这是一个非常糟糕的问题。您需要提供有关表格实际模式的信息,显示数据样本,并演示如果您希望有人提供帮助,所需的输出结果。 –

+0

@ken white,我留下了详细信息,以得到一个非常一般的答案,如下面的那个 –

回答

2

有更好的方法来做到这一点,也许像这样:

$query = mysql_query("SELECT * FROM users"); 
// Loop through the users 
while ($row = mysql_fetch_array($query) { 
    $query2 = mysql_query('SELECT * FROM emails WHERE user_id = ' . $row['id']); 
    // Loop through this user's email addresses 
    while ($row2 = mysql_fetch_array($query2) { 
    // Build up a string/array for your output with the email addresses in $row2['field_name'] 
    } 
} 

你也可以使用一个MySQL JOIN来从数据库中获取的所有数据一次,而不是运行多个查询。

希望有所帮助。

+0

这就是我正在寻找的基本答案 –

相关问题