如果SQL不返回任何查询

时间:2013-10-03 16:02:31

标签: php mysql

我有这段代码:

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检查是否有任何查询?如果没有,请回复一些文字?

8 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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';
}

答案 2 :(得分: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";
     }

                }

答案 3 :(得分:1)

使用

if(mysql_num_rows($data)==0){
    echo "Sorry, but there's no results for your search";
}

答案 4 :(得分: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)取代。使用其中一个最新的库。

答案 5 :(得分:0)

使用mysql_num_rows($ data)== 0

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

答案 6 :(得分:0)

首先,您不应该使用mysql_ - 函数导致不推荐使用此PHP扩展。请尝试使用PDOMysqli扩展名。

顺便说一下,此扩展程序中mysql_num_rows function可以完全按照您的意愿行事。

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

答案 7 :(得分: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";