PHP/Mysql:全文搜索结果返回更多结果(计数),然后显示在while循环中。
我有以下代码 当用户输入术语时。。。有时,totalRows\u标题返回的内容多于页面上显示的记录。(我想我重复了错误的价值观,但我想我盯着这个太久了) 您可以在这里看到一个示例(它将显示找到的5个结果,但仅显示4个): 缺失的第五项是我们期望看到的,它被称为“纳克索斯音乐图书馆”。 例如,它显示了此搜索的结果,因此它位于数据库中: 代码如下:PHP/Mysql:全文搜索结果返回更多结果(计数),然后显示在while循环中。,php,mysql,full-text-search,Php,Mysql,Full Text Search,我有以下代码 当用户输入术语时。。。有时,totalRows\u标题返回的内容多于页面上显示的记录。(我想我重复了错误的价值观,但我想我盯着这个太久了) 您可以在这里看到一个示例(它将显示找到的5个结果,但仅显示4个): 缺失的第五项是我们期望看到的,它被称为“纳克索斯音乐图书馆”。 例如,它显示了此搜索的结果,因此它位于数据库中: 代码如下: $search = $_GET['search']; if(isset($_GET['search'])) {
$search = $_GET['search'];
if(isset($_GET['search']))
{
if ( $titles = mysql_query("SELECT * FROM arti WHERE MATCH(name, description, url) AGAINST('$search')ORDER BY name ASC"))
{
$row_titles = mysql_fetch_assoc($titles);
$totalRows_titles = mysql_num_rows($titles);
echo '<h4 >'. $totalRows_titles . ' titles were found matching the entry <em>'. $search .'</em></h4>';
while($row = mysql_fetch_assoc($titles))
{
echo '<p><b>'. $row['name'].'</b></br>'.$row['description'].'</br><a href="http://proxy.libraries.uc.edu/login?url='.$row['url'].'">Connect</a></p>';
}
}
else
{
echo "mysql:".(mysql_error ());
}
}
?>
$search=$\u GET['search'];
如果(isset($\u GET['search']))
{
if($titles=mysql_query(“从arti中选择*匹配(名称、描述、url)与($search')按名称排序ASC”))
{
$row\u titles=mysql\u fetch\u assoc($titles);
$totalRows\u titles=mysql\u num\u rows($titles);
回显“”。$totalRows\u titles.。找到的标题与条目“$search”匹配;
while($row=mysql\u fetch\u assoc($titles))
{
回显“”.$row['name']”。“.$row['description']”。”;
}
}
其他的
{
echo“mysql:”(mysql_错误());
}
}
?>
是否有任何特定原因导致$row\u titles=mysql\u fetch\u assoc($titles)代码>在while循环之前?@AbhikChakraborty因为该调用删除了结果的第一行…我原以为这是为了得到总数,但现在我看到它,我想我可能把它搞砸了。我想我明白你的意思了。在第一次调用中,它将光标指针设置为第一行,当你再次调用时,它将移动到第二行,依此类推,这就是为什么你使用while循环,直到光标没有移动到循环结束时,循环将执行并显示数据。首先,在if语句中放入$search=$\u GET['search']。这只是一个最佳实践,没有理由毫无意义地分配变量。