我在mysql中的一个表上使用多个LiKE查询,这个查询是从另一个表生成的,然后发送给Mysql。运行时的实际查询会生成结果,但当我在页面上运行它时,它什么也不返回?其次,必须有一种更简单的方法来使用更少类似的命令来运行相同的查询。
mysql_query("SELECT FROM fm_sources WHERE title,excerpt LIKE (list of items to query against)")这是im用于构建查询的代码。
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");这是查询的回显输出,然后不运行任何结果。
摘录如‘%罗伊霍奇森%’或‘%罗伊霍奇森%’或摘录如'%Sammy Lee%‘或摘录如'%Sammy Lee%’或摘录如‘%肯尼达格利什%’或标题如‘%肯尼达格利什%’或摘录像‘%布拉德琼斯%’或摘录如‘%格伦约翰逊%’或标题如‘%格伦约翰逊%’或摘录像‘%’%保罗康切斯基%或摘录像‘%保罗康切斯基%’或标题如‘%’%布拉德琼斯%‘或摘录如’%格伦约翰逊%‘或摘录像’%保罗康切斯基%‘或’%保罗康切斯基%‘或摘录如'%Raul Meireles%‘或'%Raul Meireles%’或摘录如'%Daniel Agger%‘或标题如'%Daniel Agger%’或摘录如'%Fabio Aurelio%‘或标题如'%Fabio Aurelio%’或摘录如'%Steven %‘或摘录如'%Fernando Torres%’或摘录如'%Fernando Torres%‘或’%Fernando Torres%‘或摘录如'%Joe Cole%’或摘录如'%Joe Cole%‘或’%Joe%‘或摘录如’%Fernando Torres%‘或’%Fernando Torres%‘或摘录如’%Joe Cole%‘或’%Joe%‘或摘录如'%Daniel Pacheco%‘或'%Daniel Pacheco%’或摘录如‘%米兰’% Jovanovic%‘或摘录如’%米兰‘% Jovanovic%’或摘录如'%Sotirios Kyrgiakos%‘或摘录如'%Sotirios Kyrgiakos%’或摘录如'%Maxi Rodriguez%‘或标题如'%Maxi Rodriguez%’或摘录如'%Dirk Kuyt%‘或标题如'%Dirk Kuyt%’或摘录像'%Ryan Babel%‘或'%Ryan Babel%’或‘%Ryan%’或摘录如'%Lucas%‘或'%Lucas%’或摘录如'%丹尼威尔逊%‘或摘录如’%丹尼威尔逊%‘或摘录如’%杰米卡拉格%‘或像’%杰米卡拉格%‘或象’%杰米卡拉格%‘或摘录像’%大卫恩戈格%‘或标题如’%大卫恩戈格%‘或’%佩佩丽娜%‘或标题如’%佩佩瑞娜%‘或摘录像’%杰伊‘%或摘录像’%杰伊%‘或’%杰伊说话%‘或摘录像’%杰伊说话%‘或摘录像’%杰伊说话%‘或’%%‘%基督教保尔森%或标题如'%Christian Poulsen%‘或摘录如'%Charles Itandje%’或摘录如'%Charles Itandje%‘或摘录如'%Stephen Darby%’或标题如'%Stephen Darby%‘或摘录如'%Jonjo Shelvey%’或摘录如'%Martin Kelly%‘或标题如'%Martin Kelly%’或摘录如'%Steven Irwin%‘或标题如'%Steven %’或标题如'% Steven%‘或摘录象’%‘马丁·斯科特尔%或标题如'%Martin Skrtel%‘或摘录如'%Nathan Eccleston%’或摘录如'%Nathan Eccleston%‘或摘录如'%Daniel Ayala%’或象'%Daniel Ayala%‘或象'%Martin Hansen%’或类似于'%Martin Hansen‘或摘录如'%Peter Gulacsi%’或摘录如'%Peter Gulacsi%‘或摘录如'%Dean Bouzanis%’或标题如'%Dean Bouzanis%‘或象’%Dean Bouzanis%‘或摘录象'%Victor Bouzanis%’或象‘%Victor Bouzanis%’或象‘%Victor Bouzanis%’帕尔松%或标题如'%Victor Palsson%‘或摘录如'%Tom Ince%’或标题如'%Tom Ince%‘或摘录如’%Tom Ince%‘或摘录如'%David Amoo%’或摘录如'%David Amoo%‘或摘录如'%Andre智慧%’或标题类似于'%Andre智慧%‘或标题如'%Gerardo Bruna%’或标题如%Gerardo Bruna%或标题如'%Jack Robinson%‘或标题如'%Jack Robinson%’或摘录如'%Gerardo Bruna%‘或标题如’%Jack Robinson%‘或象’%Jack Robinson%‘或象’%利物浦‘%摘录%‘或标题如’%利物浦%‘或摘录如’%利物浦%‘或标题如’%利物浦%‘
发布于 2010-09-26 11:05:34
问题是这条线:
$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你不需要那些额外的引号
https://stackoverflow.com/questions/3796325
复制相似问题