Php mysql:显示\u名称不显示?
我需要帮助,因为我看不出这不起作用的原因 我有一个mysql查询,它选择Php mysql:显示\u名称不显示?,php,mysql,Php,Mysql,我需要帮助,因为我看不出这不起作用的原因 我有一个mysql查询,它选择ptb_reviews和ptb_profiles表中的所有项目 我已将ptb\u评论。from\u user\u id设置为等于ptb\u profiles。user\u id 因此,现在我想呼出ptb\u配置文件中user\u id的display\u name,它与ptb\u reviews中的from\u user\u id相同 但是,它不会显示display\u name,唯一有效的方法是,如果我从\u user\u
ptb_reviews
和ptb_profiles
表中的所有项目
我已将ptb\u评论。from\u user\u id
设置为等于ptb\u profiles。user\u id
因此,现在我想呼出ptb\u配置文件中user\u id
的display\u name
,它与ptb\u reviews
中的from\u user\u id
相同
但是,它不会显示display\u name
,唯一有效的方法是,如果我从\u user\u id
中回显,它会给出用户编号而不是名称
我的ptb_reviews
表如下所示:
id | from_user_id | to_user_id | content |
1 2 5 hello
2 5 6 hi
3 -1 6 hello
id | user_id | display_name |
1 2 jack
2 5 lisa
我的“ptb_配置文件”表如下所示:
id | from_user_id | to_user_id | content |
1 2 5 hello
2 5 6 hi
3 -1 6 hello
id | user_id | display_name |
1 2 jack
2 5 lisa
下面是我的mysql查询:
function get_reviews() {
global $connection;
global $profile_id;
$query = "SELECT *
FROM ptb_reviews, ptb_profiles
WHERE ptb_reviews.to_user_id = \"$profile_id\"
AND ptb_reviews.deleted ='0'
AND ptb_reviews.approved = '1'
AND ptb_reviews.from_user_id = '-1'
OR ptb_reviews.from_user_id = ptb_profiles.user_id
GROUP BY ptb_reviews.content
ORDER BY ptb_reviews.date_added DESC
LIMIT 5";
$reviews_set = mysql_query($query, $connection);
confirm_query($query, $connection);
return $reviews_set;
}
php:
首先,不要使用“隐式联接”(select*fromtable1,table2,其中table1.aField=table2.aField
);使用显式联接:从表1中选择*表1上的内部联接表2.aField=table2.aField
我建议一些简单的步骤来确保你得到你想要的。在PHP项目中实现之前,请尝试MySQL控制台(或工作台或其他界面)中的所有操作
使用适当的过滤器将表中单个的所有行返回给\u user\u id
,应该很容易
select
*
from
ptb_reviews as r
inner join ptb_profiles as p on r.from_user_id = p.userId
where
r.deleted = '0'
r.approved = '1'
order by
r.date_added desc
limit 5
如果有效,则开始添加所需的where
条件。一个接一个地尝试,当你得到你需要的东西时,把它放在你的PHP项目中你应该停止使用mysql扩展,选择mysqli或pdo。mysql将在不久的将来被弃用。mysql.*
现在已被弃用。@MikeBrant那么除了“display\u name”之外,我如何获得其他每一列的结果?@HarryMan您正在按内容分组,允许mysql选择它想要的显示名称、用户id等。您还可以让mysql确定与ptb_概要文件建立关系的字段。您的OR子句中也有一个问题。@Kevin您是正确的,因为它被定义为5.5.0。我只是做了区分,因为有一段时间PHP.net文档中指出这些函数将在将来被弃用,而现在它们明确表示这些函数的弃用已经完成。如果你查看他的表,他实际上有一个用户id,等于-1。不知道为什么。。