问题描述
我在 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%'
推荐答案
问题是这一行:
$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 中返回结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!