Mysql 和 PHP LIKE 查询在页面上没有生成结果,但在 Mysql 中返回结果 [英] Mysql and PHP LIKE query generates no results on page but returns result in Mysql

查看:46
本文介绍了Mysql 和 PHP LIKE 查询在页面上没有生成结果,但在 Mysql 中返回结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 mysql 中的一个表上使用多个 LiKE 查询,该查询是从另一个表生成然后发送到 Mysql.运行时的实际查询会生成结果,但是当我在页面上运行它时,它什么都不返回??其次,必须有一种更简单的方法来使用 less LIKE 命令运行相同的查询,也许

Im using a multiple LiKE queries on a table in mysql, The query is being generated from another table and then sent to Mysql. The actual query when run generates results but when i run it on the page it returns nothing?? Secondly there must be a simpler way to run the same query using less LIKE command maybe

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

这是我用来构建查询的代码

this is the code that im using to build the query

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");

这是查询的回显输出,然后当运行没有结果时.

and this is the echoed output of the query and then when run no results.

摘录 LIKE '%Roy Hodgson%' OR 标题LIKE '%Roy Hodgson%' 或摘录 LIKE'%Sammy Lee%' 或标题 LIKE '%SammyLee%' 或摘录 LIKE '%KennyDalglish%' 或 title LIKE '%KennyDalglish%' 或摘录 LIKE '%BradJones%' 或标题 LIKE '%Brad Jones%'或摘录 LIKE '%Glen Johnson%' 或标题 LIKE '%Glen Johnson%' 或摘录LIKE '%Paul Konchesky%' 或标题 LIKE'%Paul Konchesky%' 或摘录 LIKE'%Raul Meireles%' 或标题 LIKE '%RaulMeireles%' 或摘录 LIKE '%DanielAgger%' 或 title LIKE '%Daniel Agger%'或摘录 LIKE '%Fabio Aurelio%' 或标题 LIKE '%Fabio Aurelio%' 或摘录 LIKE '%Steven Gerrard%' 或title LIKE '%Steven Gerrard%' 或摘录 LIKE '%Fernando Torres%' 或title LIKE '%Fernando Torres%' 或摘录 LIKE '%Joe Cole%' OR 标题LIKE '%Joe Cole%' 或摘录 LIKE'%Daniel Pacheco%' 或 title LIKE'%Daniel Pacheco%' 或摘录 LIKE'%Milan Jovanovic%' 或 title LIKE'%Milan Jovanovic%' 或摘录 LIKE'%Sotirios Kyrgiakos%' 或标题 LIKE'%Sotirios Kyrgiakos%' 或摘录 LIKE'%Maxi Rodriguez%' 或标题 LIKE'%Maxi Rodriguez%' 或摘录 LIKE'%Dirk Kuyt%' 或 title LIKE '%DirkKuyt%' 或摘录 LIKE '%Ryan Babel%'OR title LIKE '%Ryan Babel%' OR摘录 LIKE '%Lucas%' 或标题 LIKE'%Lucas%' 或摘录 LIKE '%DannyWilson%' 或 title LIKE '%DannyWilson%' 或摘录 LIKE '%JamieCarragher%' 或 title LIKE '%JamieCarragher%' 或摘录 LIKE '%DavidNGog%' OR 标题 LIKE '%David NGog%' OR摘录 LIKE '%Pepe Reina%' OR 标题LIKE '%Pepe Reina%' 或摘录 LIKE'%Jay Spearing%' 或标题 LIKE '%JaySpearing%' 或摘录 LIKE '%ChristianPoulsen%' 或 title LIKE '%ChristianPoulsen%' 或摘录 LIKE '%CharlesItandje%' OR title LIKE '%CharlesItandje%' 或摘录 LIKE '%StephenDarby%' 或标题 LIKE '%StephenDarby%' 或摘录 LIKE '%JonjoShelvey%' 或标题 LIKE '%JonjoShelvey%' 或摘录 LIKE '%MartinKelly%' 或 title LIKE '%Martin Kelly%'或摘录如 '%Steven Irwin%' 或标题 LIKE '%Steven Irwin%' 或摘录LIKE '%Martin Skrtel%' 或标题 LIKE'%Martin Skrtel%' 或摘录 LIKE'%Nathan Eccleston%' 或标题 LIKE'%Nathan Eccleston%' 或摘录 LIKE'%Daniel Ayala%' 或标题 LIKE'%Daniel Ayala%' 或摘录 LIKE'%Martin Hansen%' 或标题 LIKE'%Martin Hansen%' 或摘录 LIKE'%Peter Gulacsi%' 或标题 LIKE'%Peter Gulacsi%' 或摘录 LIKE'%Dean Bouzanis%' 或标题 LIKE '%DeanBouzanis%' 或摘录 LIKE '%VictorPalsson%' 或标题 LIKE '%VictorPalsson%' 或摘录 LIKE '%Tom Ince%'OR 标题 LIKE '%Tom Ince%' OR 摘录LIKE '%David Amoo%' 或标题 LIKE'%David Amoo%' 或摘录 LIKE '%AndreWisdom%' OR title LIKE '%AndreWisdom%' 或摘录 LIKE '%GerardoBruna%' 或 title LIKE '%GerardoBruna%' 或摘录 LIKE '%JackRobinson%' 或标题 LIKE '%JackRobinson%' 或摘录 LIKE'%liverpool%' 或 title LIKE'%liverpool%' 或摘录 LIKE '%lfc%'或标题 LIKE '%lfc%'

excerpt LIKE '%Roy Hodgson%' OR title LIKE '%Roy Hodgson%' OR excerpt LIKE '%Sammy Lee%' OR title LIKE '%Sammy Lee%' OR excerpt LIKE '%Kenny Dalglish%' OR title LIKE '%Kenny Dalglish%' OR excerpt LIKE '%Brad Jones%' OR title LIKE '%Brad Jones%' OR excerpt LIKE '%Glen Johnson%' OR title LIKE '%Glen Johnson%' OR excerpt LIKE '%Paul Konchesky%' OR title LIKE '%Paul Konchesky%' OR excerpt LIKE '%Raul Meireles%' OR title LIKE '%Raul Meireles%' OR excerpt LIKE '%Daniel Agger%' OR title LIKE '%Daniel Agger%' OR excerpt LIKE '%Fabio Aurelio%' OR title LIKE '%Fabio Aurelio%' OR excerpt LIKE '%Steven Gerrard%' OR title LIKE '%Steven Gerrard%' OR excerpt LIKE '%Fernando Torres%' OR title LIKE '%Fernando Torres%' OR excerpt LIKE '%Joe Cole%' OR title LIKE '%Joe Cole%' OR excerpt LIKE '%Daniel Pacheco%' OR title LIKE '%Daniel Pacheco%' OR excerpt LIKE '%Milan Jovanovic%' OR title LIKE '%Milan Jovanovic%' OR excerpt LIKE '%Sotirios Kyrgiakos%' OR title LIKE '%Sotirios Kyrgiakos%' OR excerpt LIKE '%Maxi Rodriguez%' OR title LIKE '%Maxi Rodriguez%' OR excerpt LIKE '%Dirk Kuyt%' OR title LIKE '%Dirk Kuyt%' OR excerpt LIKE '%Ryan Babel%' OR title LIKE '%Ryan Babel%' OR excerpt LIKE '%Lucas%' OR title LIKE '%Lucas%' OR excerpt LIKE '%Danny Wilson%' OR title LIKE '%Danny Wilson%' OR excerpt LIKE '%Jamie Carragher%' OR title LIKE '%Jamie Carragher%' OR excerpt LIKE '%David NGog%' OR title LIKE '%David NGog%' OR excerpt LIKE '%Pepe Reina%' OR title LIKE '%Pepe Reina%' OR excerpt LIKE '%Jay Spearing%' OR title LIKE '%Jay Spearing%' OR excerpt LIKE '%Christian Poulsen%' OR title LIKE '%Christian Poulsen%' OR excerpt LIKE '%Charles Itandje%' OR title LIKE '%Charles Itandje%' OR excerpt LIKE '%Stephen Darby%' OR title LIKE '%Stephen Darby%' OR excerpt LIKE '%Jonjo Shelvey%' OR title LIKE '%Jonjo Shelvey%' OR excerpt LIKE '%Martin Kelly%' OR title LIKE '%Martin Kelly%' OR excerpt LIKE '%Steven Irwin%' OR title LIKE '%Steven Irwin%' OR excerpt LIKE '%Martin Skrtel%' OR title LIKE '%Martin Skrtel%' OR excerpt LIKE '%Nathan Eccleston%' OR title LIKE '%Nathan Eccleston%' OR excerpt LIKE '%Daniel Ayala%' OR title LIKE '%Daniel Ayala%' OR excerpt LIKE '%Martin Hansen%' OR title LIKE '%Martin Hansen%' OR excerpt LIKE '%Peter Gulacsi%' OR title LIKE '%Peter Gulacsi%' OR excerpt LIKE '%Dean Bouzanis%' OR title LIKE '%Dean Bouzanis%' OR excerpt LIKE '%Victor Palsson%' OR title LIKE '%Victor Palsson%' OR excerpt LIKE '%Tom Ince%' OR title LIKE '%Tom Ince%' OR excerpt LIKE '%David Amoo%' OR title LIKE '%David Amoo%' OR excerpt LIKE '%Andre Wisdom%' OR title LIKE '%Andre Wisdom%' OR excerpt LIKE '%Gerardo Bruna%' OR title LIKE '%Gerardo Bruna%' OR excerpt LIKE '%Jack Robinson%' OR title LIKE '%Jack Robinson%' OR excerpt LIKE '%liverpool%' OR title LIKE '%liverpool%' OR excerpt LIKE '%lfc%' OR title LIKE '%lfc%'

推荐答案

问题是这一行:

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

您的脚本不会输出整个查询,只会输出其中的一部分,然后会对其进行修改.难怪你看不到哪里出了问题.

Your script doesn't output the whole query, just part of it, which it then modifies. No wonder you couldn't see what was wrong.

它运行的查询实际上是:

The query it's running is actually:

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

你不需要那些额外的引号

You don't need those extra inverted commas

这篇关于Mysql 和 PHP LIKE 查询在页面上没有生成结果,但在 Mysql 中返回结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆