Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/Mysql:全文搜索结果返回更多结果(计数),然后显示在while循环中。_Php_Mysql_Full Text Search - Fatal编程技术网

PHP/Mysql:全文搜索结果返回更多结果(计数),然后显示在while循环中。

PHP/Mysql:全文搜索结果返回更多结果(计数),然后显示在while循环中。,php,mysql,full-text-search,Php,Mysql,Full Text Search,我有以下代码 当用户输入术语时。。。有时,totalRows\u标题返回的内容多于页面上显示的记录。(我想我重复了错误的价值观,但我想我盯着这个太久了) 您可以在这里看到一个示例(它将显示找到的5个结果,但仅显示4个): 缺失的第五项是我们期望看到的,它被称为“纳克索斯音乐图书馆”。 例如,它显示了此搜索的结果,因此它位于数据库中: 代码如下: $search = $_GET['search']; if(isset($_GET['search'])) {

我有以下代码

当用户输入术语时。。。有时,totalRows\u标题返回的内容多于页面上显示的记录。(我想我重复了错误的价值观,但我想我盯着这个太久了)

您可以在这里看到一个示例(它将显示找到的5个结果,但仅显示4个):

缺失的第五项是我们期望看到的,它被称为“纳克索斯音乐图书馆”。 例如,它显示了此搜索的结果,因此它位于数据库中:

代码如下:

   $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 . '&nbsp;titles were found matching the entry &nbsp; <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']。这只是一个最佳实践,没有理由毫无意义地分配变量。