0

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

在此处输入图像描述

由于我对 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']

但是我当然知道查询语句不对,但是现在我不知道该怎么写。请帮我。

注意:^ 只是数据库前缀

4

2 回答 2

3

您需要做的是执行表连接

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

可能会有更多的结果,而不是只有一个,比如说如果用户提供了多次捐款。在任何情况下,您都需要从查询结果中获取行(我不知道您是否这样做,因为您没有发布足够的代码)。因为您要从多个表中获取结果,所以打印该行返回的数组。

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

一旦您知道查询给出的输出,您就可以在 while 循环中访问您需要的列。

我还要提一下,mysql_ 函数现在已被贬值,建议您使用 mysqli_ 函数或 pdo::query 来访问 sql 信息。

于 2013-01-20T19:58:23.350 回答
1

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

SELECT `content` FROM `userprofile` WHERE `userid` = (SELECT `id` FROM `users` WHERE `handle` = ? LIMIT 1) AND `title` = 'donation' LIMIT 1
于 2013-01-20T20:08:38.653 回答