MySQL:按用户名获取结果

时间:2013-01-20 19:53:22

标签: php mysql

您好我正在尝试按用户名获取一个用户个人资料字段值(捐赠按钮代码)。这是表格

enter image description here

由于我对MySQL和学习不太熟悉所以我尝试了很少的条件,但不知怎的,我无法理解如何用userprofile表检查用户名并获得捐赠内容。

SELECT ^users.userid, ^users.handle, ^userprofile.title, ^userprofile.content 
FROM ^users, ^userprofile
WHERE ^userprofile.userid=^users.handle AND title= 'donation'

并尝试使用echo $donation['content']

获取输出

但我当然知道查询声明不对,但现在我不知道怎么写。请帮帮我。

注意:^只是数据库前缀

2 个答案:

答案 0 :(得分:3)

您需要做的是执行table join

(从技术上讲,您在FROM字段中使用逗号执行连接,但是在查询中指定连接类型是明智的,如果不仅仅是为了便于阅读)。

如果用户多次捐赠,可能会有更多结果。在任何情况下,您都需要从查询结果中获取行(如果您因为没有发布足够的代码而无法判断)。因为您从多个表中获取结果,所以打印该行返回的数组。

$result = mysql_query(/* YOUR QUERY */)
while ($row = mysql_fetch_assoc($result)) {
    //do stuff here later.
}
print_r($row);

一旦知道查询提供了什么输出,就可以在while循环中访问所需的列。

我还应该提一下,mysql_函数现在已经过折旧,建议你使用mysqli_ functions或pdo :: query来访问sql信息。

答案 1 :(得分:1)

最简单的解决方案是嵌套SELECT

SELECT `content` FROM `userprofile` WHERE `userid` = (SELECT `id` FROM `users` WHERE `handle` = ? LIMIT 1) AND `title` = 'donation' LIMIT 1