首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在我的sql中遍历数据库以获取所有结果并显示它们

在我的sql中遍历数据库以获取所有结果并显示它们
EN

Stack Overflow用户
提问于 2013-02-03 20:29:11
回答 4查看 58关注 0票数 0

我有两个表users和msgs:

users包含idnameemailpassword

msgs包含idsenderreceiverlink

我想选择receiver等于用户的相同id的所有行,如何循环才能获得所有行?

我试着做一些事,但不要紧

代码语言:javascript
运行
复制
$name_query = mysql_query("SELECT fullname,id FROM users WHERE email = '$email'");
$name = mysql_fetch_object($name_query);

$user_id = $name->id;

$result = mysql_query("SELECT receiver FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("ID: %s  Name: %s", $row[0], $row[1]);  
}

mysql_free_result($result);

?>
EN

回答 4

Stack Overflow用户

发布于 2013-02-03 20:31:52

试试这个::

代码语言:javascript
运行
复制
Select 
u.fullname,u.id
from 
`users` u
INNER JOIN msgs m ON (u.id=m.receiver)
WHERE email = '$email'
票数 0
EN

Stack Overflow用户

发布于 2013-02-03 20:32:45

您应该只检索所需的行,而不是所有行(如果数据库中有1.000.000条消息怎么办?)

这可以通过使用"JOIN“的一个查询来完成:http://dev.mysql.com/doc/refman/5.0/en/join.html

票数 0
EN

Stack Overflow用户

发布于 2013-02-03 20:34:44

使用join子句

代码语言:javascript
运行
复制
SELECT m.*, u.email, u.name FROM `users` AS u
JOIN `msgs` AS m ON m.receiver = u.id
WHERE u.email = '$email'

这为您提供了例如

代码语言:javascript
运行
复制
| id | sender | receiver |   link   |      email       |      name       |  
+----+--------+----------+----------+------------------+-----------------+
|  1 |    1   |     2    |   adfd   | receiver's email | receiver's name |

您可以将结果提取到关联数组并使用命名索引,如下所示:

代码语言:javascript
运行
复制
$row['link']
$row['name']

或者普通的索引数组(正确的索引可以通过打印整个数组来找到)

代码语言:javascript
运行
复制
print_r($row)

$row[3] // should be link
$row[5] // should be name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14672480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档