簡體   English   中英

Mysql和PHP LIKE查詢在頁面上未生成任何結果,但在Mysql中返回結果

[英]Mysql and PHP LIKE query generates no results on page but returns result in Mysql

我在mysql的一個表上使用多個LiKE查詢,該查詢是從另一個表生成的,然后發送到Mysql。 實際查詢在運行時會生成結果,但是當我在頁面上運行它時,它什么也不返回? 其次,必須有一種更簡單的方法來使用更少的LIKE命令來運行相同的查詢

mysql_query("SELECT FROM fm_sources WHERE title,excerpt LIKE (list of items to query against)")

這是即時消息用於構建查詢的代碼

function parse_club_search($club)
{
    $club="'%".$club."%'";
    $club=mysql_query("SELECT * FROM fm_clubs WHERE name LIKE $club");
    while($row=mysql_fetch_assoc($club))
{
    $search_string=$row['search'];
    $search_staff=$row['staff'];
    $search_players=$row['players'];
}

$search_string=explode(",",$search_string);
$search_staff=explode(",",$search_staff);
$search_players=explode(",",$search_players);

$full_string=array_merge($search_staff,$search_players,$search_string);
array_pop($full_string);
$full_string_legnth=count($full_string);

$sql_query_holder="";

$array_track=0;

foreach($full_string as $tag)
{

   if($array_track!=($full_string_legnth-1))
   {
        echo $tag."<br/>";
        $sql_query_holder=$sql_query_holder." excerpt LIKE '%".$tag."%' OR title LIKE '%".$tag."%' OR";
        $array_track++;
    }
    else
    {
        $sql_query_holder=$sql_query_holder." excerpt LIKE '%".$tag."%' OR title LIKE '%".$tag."%'";
        $array_track++;
    }
}

echo $sql_query_holder."<br/><br/>";

$sql_query_holder="\"".$sql_query_holder."\"";
$search=mysql_query("SELECT * FROM fm_sources WHERE $sql_query_holder ORDER BY tweet_count DESC");

這是查詢的回顯輸出,然后在運行時無結果。

摘錄類似'%Roy Hodgson%'或標題類似'%Roy Hodgson%'或摘錄類似'%Sammy Lee%'或標題摘錄'%Sammy Lee%'或摘錄類似'%Kenny Dalglish%'或標題像'%Kenny Dalglish%'或摘錄,如'%Brad Jones%'或標題,如LIKE'%Brad Jones%',或摘錄,如'%Glen Johnson%',或標題,如'%Glen Johnson%',或摘錄,如,'%Paul Konchesky%',或標題像'%Paul Konchesky%'或摘錄像'%Raul Meireles%'或標題像'%Raul Meireles%'或摘錄像'%Daniel Agger%'或標題像'%Daniel Agger%'或摘錄像'%Fabio Aurelio %'或標題類似'%Fabio Aurelio%'或摘錄類似'%Steven Gerrard%'或標題類似'%Steven Gerrard%'或摘錄類似'%Fernando Torres%'或標題類似'%Fernando Torres%'或摘錄類似'%Joe Cole%'或標題類似'%Joe Cole%'或節選類似'%Daniel Pacheco%'或標題類似'%Daniel Pacheco%'或節選類似'%Milan Jovanovic%'或標題類似'%Milan Jovanovic% '或摘錄,如'%Sotirios Kyrgiakos%'或標題,如摘錄'%Sotirios Kyrgiakos%'或摘錄,如'%M axi Rodriguez%'或標題類似'%Maxi Rodriguez%'或節選類似'%Dirk Kuyt%'或標題類似'%Dirk Kuyt%'或節選類似'%Ryan Babel%'或標題類似'%Ryan Babel%'OR摘錄喜歡'%Lucas%'或標題贊'%Lucas%'或摘錄喜歡'%Danny Wilson%'或標題喜歡'%Danny Wilson%'或摘錄喜歡'%Jamie Carragher%'或標題喜歡'%Jamie Carragher% '或摘錄類似'%David NGog%'或稱謂類似'%David NGog%'或摘錄類似'%Pepe Reina%'或稱謂類似'%Pepe Reina%'或摘錄類似'%Jay Spearing%'或稱贊類似' %Jay Spearing%'或類似LIKE'%Christian Poulsen%'或標題LIKE'%Christian Poulsen%'或標題LIKE'%Charles Itandje%'或標題LIKE'%Charles Itandje%'或標題LIKE'%Stephen Darby%'或標題類似'%Stephen Darby%'或節選類似'%Jonjo Shelvey%'或標題類似'%Jonjo Shelvey%'或標題類似'%Martin Kelly%'或標題類似'%Martin Kelly%'或標題類似'%史蒂文·歐文%'或頭銜喜歡'%史蒂文·歐文%'或摘錄象'%Martin Skrtel%'或頭銜像'%Martin Skrt el%'或摘錄類似'%Nathan Eccleston%'或標題類似'%Nathan Eccleston%'或摘錄類似'%Daniel Ayala%'或標題像'%Daniel Ayala%'或摘錄類似'%Martin Hansen%'或標題像'%Martin Hansen%'或摘錄像'%Peter Gulacsi%'或標題像'%Peter Gulacsi%'或摘錄像'%Dean Bouzanis%'或標題像'%Dean Bouzanis%'或摘錄像'%Victor Palsson %'或標題類似'%Victor Palsson%'或摘錄類似'%Tom Ince%'或標題類似'%Tom Ince%'或摘錄類似'%David Amoo%'或標題類似'%David Amoo%'或摘錄類似'%Andre Wisdom%'或標題類似'%Andre Wisdom%'或節選類似'%Gerardo Bruna%'或標題類似'%Gerardo Bruna%'或節選類似'%Jack Robinson%'或標題類似'%Jack Robinson% '或摘錄類似'%liverpool%'或標題類似'%liverpool%'或摘錄類似'%lfc%'或標題類似'%lfc%'

問題是這一行:

$sql_query_holder="\"".$sql_query_holder."\"";

您的腳本不會輸出整個查詢,只是一部分查詢,然后進行修改。 難怪你看不到出什么問題了。

它正在運行的查詢實際上是:

SELECT * FROM fm_sources WHERE "excerpt LIKE '%Roy Hodgson%' OR title LIKE '%Roy Hodgson%' <etc etc> " ORDER BY tweet_count DESC

您不需要那些多余的逗號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM