0

我有这段代码:

require_once('connectvars2.php'); //This is the connection to my database
                $data = mysql_query("SELECT * FROM calzone ORDER BY id DESC");
                if (isset($_POST['submit'])) {
                $post = trim($_POST['post']);
                $data = mysql_query("SELECT * FROM calzone WHERE overskrift LIKE '%$post%' OR postnummer = '$post'");
                    if (!(empty($data))) { // This is my poor attempt :-)
                    echo 'No result!';
                    }
                }

这是我网站上的搜索功能。

如果没有与搜索词匹配的查询,我希望它返回一些内容。假设我写“6737”并且数据库没有找到结果,它应该打印“对不起,但是没有搜索结果!”。MySQL 有没有办法检查是否返回了任何查询?如果没有,回显一些文字?

4

8 回答 8

2

使用 mysql_num_rows

$data = mysql_query("SELECT * FROM calzone WHERE overskrift LIKE '%$post%' OR postnummer = '$post'");
if(mysql_num_rows($data) > 0){
    //show your data
}
else{
    echo "Sorry, but there are no results for your search!";
}

此外,如前所述,不推荐使用 mysql_query。切换到 PDO。

于 2013-10-03T16:09:09.470 回答
1

使用mysql_num_rows函数计数。行数..

$data = mysql_query("SELECT * FROM calzone WHERE overskrift LIKE '%$post%' OR postnummer = '$post'");
$num=mysql_num_rows($data);
if($num==0)
{
    echo 'Sorry, but theres no results for your search';
}
于 2013-10-03T16:05:29.133 回答
1
require_once('connectvars2.php'); //This is the connection to my database
                $data = mysql_query("SELECT * FROM calzone ORDER BY id DESC");
                if (isset($_POST['submit'])) {
                $post = trim($_POST['post']);
                $data = mysql_query("SELECT * FROM calzone WHERE overskrift LIKE '%$post%' OR postnummer = '$post'");
     if (mysql_num_rows($data) == 0){
      echo "Sorry, but there's no results for your search!";
     }else{
     echo "matched";
     }

                }
于 2013-10-03T16:05:36.970 回答
1

利用

if(mysql_num_rows($data)==0){
    echo "Sorry, but there's no results for your search";
}
于 2013-10-03T16:06:27.437 回答
0

您可能正在寻找mysql_num_rows

像这样使用

$data = mysql_query("SELECT * FROM calzone WHERE overskrift LIKE '%$post%' OR postnummer = '$post'");
if (mysql_num_rows($data) == 0) {
     echo 'No result!';
}

附带说明;您正在使用 mysql_XX 函数来访问数据库。这些已被 Mysqli 和 MySQL(PDO) 取代。使用这些最新库之一。

于 2013-10-03T16:06:07.057 回答
0

使用 mysql_num_rows($data)==0

虽然你应该使用mysqli而不是 mysql,因为现在不推荐使用 mysql

于 2013-10-03T16:07:09.227 回答
0

首先,您不应该使用mysql_-functions ,因为这个 PHP 扩展已被弃用。尝试使用PDOMysqli扩展。

顺便说一句,在这个扩展中有一个mysql_num_rows 功能可以完全满足您的需求。

$data = mysql_query("SELECT * FROM calzone WHERE overskrift LIKE '%$post%' OR postnummer = '$post'");
if (!mysql_num_rows($data)) { 
  echo 'No result!';
}
于 2013-10-03T16:07:27.540 回答
0

使用http://www.php.net/manual/en/function.mysql-num-rows.php

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";
于 2013-10-03T16:07:38.490 回答