Php 当我使用concate时,Mysql查询不起作用

Php 当我使用concate时,Mysql查询不起作用,php,mysql,Php,Mysql,我不明白为什么下面的查询没有返回任何内容。如果我更改查询,那么它将返回结果 我现在所做的没有输出 更改代码工作 也许是因为你在哪里和公司之间没有空间?试试这个 正如Mitja所回答的,您已经错过了WHERE和company之间的空间 $getSearch = "SELECT contact_details . * , company.company_name, users.nickname FROM contact_details LE

我不明白为什么下面的查询没有返回任何内容。如果我更改查询,那么它将返回结果

我现在所做的没有输出

更改代码工作


也许是因为你在哪里和公司之间没有空间?

试试这个

正如Mitja所回答的,您已经错过了WHERE和company之间的空间

$getSearch = "SELECT contact_details . * , company.company_name, users.nickname 
              FROM contact_details 
              LEFT JOIN users ON users.user_id = contact_details.user_id 
              LEFT JOIN company ON company.cid = contact_details.cid ";  

if(!empty($ad_company)){
    $getSearch .= " WHERE company.company_name LIKE '$ad_company%' ";
}  
编辑


我已从$getSearch查询中删除WHERE,并将其添加到我们要附加的查询中

 $getSearch = "SELECT contact_details . * , company.company_name, users.nickname FROM contact_details LEFT JOIN users ON users.user_id = contact_details.user_id LEFT JOIN company ON company.cid = contact_details.cid";  

if(!empty($ad_company)){
    $getSearch .= " WHERE company.company_name LIKE '$ad_company%' ";
}

将来,如果您遇到这样的问题,请始终尝试在使用db查询sql查询之前只打印sql查询。。通过这种方式,您将看到您的查询是否正确

我认为$ad_company是空的,因此您的qry以sql中的WHERE语法错误结束,因此请确保$ad_company已填充或移动if语句下的WHERE,同时尝试回显$getSearch;出口你会有一个好主意的。@Yazan$ad_company不是空的,我检查了它。我必须用if语句检查多个条件。那么,你喜欢用WHERE to every条件吗?现在更新了我的答案检查为什么使用1=1和?如果你的任何if子句没有添加到查询中,它将中断查询。为了避免这种情况,我添加了1=1,为什么在这里使用AND?
$getSearch = "SELECT contact_details . * , company.company_name, users.nickname 
              FROM contact_details 
              LEFT JOIN users ON users.user_id = contact_details.user_id 
              LEFT JOIN company ON company.cid = contact_details.cid ";  

if(!empty($ad_company)){
    $getSearch .= " WHERE company.company_name LIKE '$ad_company%' ";
}  
$getSearch = "SELECT contact_details . * , company.company_name, users.nickname 
              FROM contact_details 
              LEFT JOIN users ON users.user_id = contact_details.user_id 
              LEFT JOIN company ON company.cid = contact_details.cid
              WHERE 1=1 ";  

if(!empty($ad_company)){
    $getSearch .= " AND company.company_name LIKE '$ad_company%' ";
}  
 $getSearch = "SELECT contact_details . * , company.company_name, users.nickname FROM contact_details LEFT JOIN users ON users.user_id = contact_details.user_id LEFT JOIN company ON company.cid = contact_details.cid";  

if(!empty($ad_company)){
    $getSearch .= " WHERE company.company_name LIKE '$ad_company%' ";
}