搜索工作正常,只显示第一个结果

时间:2015-03-11 11:07:54

标签: php mysql

标题应该清楚问题。搜索功能按预期工作,但第一次点击的内容根本不会显示,我不知道为什么。这是代码:

<form action="admin_orders_search.php" method="GET">
<input type="text" name="query" value="Search"/>
</form>

<?php
$query = $_GET['query'];

$query = htmlspecialchars($query); 

$query = mysql_real_escape_string($query);

$sql = "SELECT * FROM orders WHERE 1";
$matches = preg_split('/\s+/',$query);
foreach($matches as $match){
$sql .= " AND `ship_eta` LIKE '%".$match."%'";
}
$raw_results = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($raw_results) > 0){ 

    while($results = mysql_fetch_array($raw_results))
    {

// ----结果开始----&gt;

$res=mysql_query("select * from orders ".$qry." order by id desc ");
while($row=mysql_fetch_array($raw_results))
{ ?>

//这是显示的点击次数

}

// ----结果结束----&gt;

   }

}
else{ 
    echo "No hits";
}
?>

2 个答案:

答案 0 :(得分:0)

在代码中:

$res=mysql_query("select * from orders ".$qry." order by id desc ");
while($row=mysql_fetch_array($raw_results))
{
//results here
}

您仍然使用变量$raw_results。我想你想使用变量$res,因为你已经有$raw_results

答案 1 :(得分:0)

我在代码中找到了一些未使用的行,删除它们后就可以了!受影响的行是:

...
if(mysql_num_rows($raw_results) > 0){

// ---- RESULTS START  ----> 

while($row=mysql_fetch_array($raw_results))
{ ?>

// here are the hits

}

// ---- RESULT END ----> 

}
else{ 
    echo "No hits";
}

}
else{ 
echo "error: ".$min_length." needed minimum!";
}
?>

// ---- SEARCH END ---->
<?php 
}
}
?>