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)==0 を使用

mysqlは現在非推奨であるため、mysqlではなくmysqliを使用する必要がありますが

于 2013-10-03T16:07:09.227 に答える
0

まず第一にmysql_、 -functionsは使用しないでください。この PHP 拡張機能は非推奨です。代わりにPDOまたは拡張子を使用してみてください。Mysqli

ちなみに、この拡張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 に答える
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 に答える