dsieyx2015 2014-10-01 11:19
浏览 517
已采纳

当我使用concat时,Mysql查询无效

I don't understand why following query is not return anything. If I change the query then it's return result.

what I'm doing now (No output)

$msg =  array();
$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";  

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

$getSearch =  mysql_query($getSearch);  
while($searchResult =  mysql_fetch_array($getSearch)){
$msg[] = $company = $searchResult['company_name'] . "<br/>";
}
echo  json_encode($msg);        

Change Code(Working)

$msg =  array();
$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 company.company_name LIKE '$ad_company%'"; 

//$msg[] = empty($ad_company) ? "empty company" : "not empty company"; //for checking and field has value

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

$getSearch =  mysql_query($getSearch);

while($searchResult =  mysql_fetch_array($getSearch)){
$msg[] = $company = $searchResult['company_name'] . "<br/>";
}
echo  json_encode($msg);        
  • 写回答

3条回答 默认 最新

  • ds3464 2014-10-01 11:26
    关注

    Try this

    As answer by Mitja , you have missed the space between WHERE and 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%' ";
    }  
    

    EDITED

    $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%' ";
    }  
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器