Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将WHERE子句添加到MySQL查询_Php_Mysql - Fatal编程技术网

Php 将WHERE子句添加到MySQL查询

Php 将WHERE子句添加到MySQL查询,php,mysql,Php,Mysql,我有一个非常好的MySQL查询。它所做的是显示数据库中的所有文件名(文件名),以及该文件名的海报,然后是使用该文件名标记的任何用户(cp.user\u id)。稍后在脚本中,我将分解标记组。 我在tbl\u collab表中创建了一个名为“approved”的新字段,该字段可以是'yes'或'no',我想知道如何在我的查询中添加WHERE子句,以便只显示tbl\u collab中WHERE approved=“yes”的用户。我该怎么做?非常感谢 "SELECT up.id, up.file,

我有一个非常好的MySQL查询。它所做的是显示数据库中的所有文件名
(文件名)
,以及该文件名的海报,然后是使用该文件名标记的任何用户
(cp.user\u id)
。稍后在脚本中,我将分解
标记组。

我在
tbl\u collab
表中创建了一个名为“approved”的新字段,该字段可以是
'yes'
'no'
,我想知道如何在我的查询中添加WHERE子句,以便只显示tbl\u collab中WHERE approved=“yes”的用户。我该怎么做?非常感谢

"SELECT up.id, up.file, up.title, p.user_name, p.user_id, GROUP_CONCAT(CONCAT(cp.user_id, '~', cp.user_name) SEPARATOR '|') AS tagGroup
FROM tbl_uploads up
LEFT JOIN tbl_users p ON up.user_id = p.user_id
LEFT JOIN tbl_collab c ON up.file = c.file
LEFT JOIN tbl_users cp ON cp.user_id = c.collab_userid
GROUP BY up.file ORDER BY up.id DESC LIMIT ? , ?"
这就是我如何分解
tagGroup

$tag_array = explode('|' , $tagGroup);

foreach($tag_array as $tag) {

list($uid,$uname) = explode('~',$tag,2);

您可以在where子句中添加此条件,如

"SELECT up.id, up.file, up.title, p.user_name, p.user_id, GROUP_CONCAT(CONCAT(cp.user_id, '~', cp.user_name) SEPARATOR '|') AS tagGroup
FROM tbl_uploads up
LEFT JOIN tbl_users p ON up.user_id = p.user_id
LEFT JOIN tbl_collab c ON up.file = c.file
LEFT JOIN tbl_users cp ON cp.user_id = c.collab_userid
WHERE c.approved = 'yes'
GROUP BY up.file ORDER BY up.id DESC LIMIT ? , ?"
也可以在连接条件中添加此条件,如

"SELECT up.id, up.file, up.title, p.user_name, p.user_id, GROUP_CONCAT(CONCAT(cp.user_id, '~', cp.user_name) SEPARATOR '|') AS tagGroup
FROM tbl_uploads up
LEFT JOIN tbl_users p ON up.user_id = p.user_id
LEFT JOIN tbl_collab c ON up.file = c.file AND c.approved = 'yes'
LEFT JOIN tbl_users cp ON cp.user_id = c.collab_userid
GROUP BY up.file ORDER BY up.id DESC LIMIT ? , ?"

其中c.approved='yes'
添加到sql查询;)或者将连接条件更改为左连接tbl_collab c ON(up.file=c.file和c.approved='yes')

添加
其中c.approved='yes'
在最后的
左连接
下,但在
分组依据
子句之前。工作非常好。谢谢。最后我选择了第二个条件,因为它最适合我的需要。谢谢