0

動物の名前を挿入し、動物がデータベースにあるかどうかを確認するphpファイルがあります。ただし、データが既に存在する場合、メッセージを出力できません。常に「値が挿入されました」というメッセージとこのメッセージを出力します

警告: mysqli_num_rows() は、パラメーター 1 が mysqli_result であると想定します。ブール値は C:\xampp\htdocs\test\test-insert.php の 12 行目に指定されています

<?php
$host='localhost';
$user='root';
$password='root';
$dbname='pet';
$connect=mysqli_connect($host,$user,$password,$dbname) or die("can not connect to server");
if(@$_GET['submit']=='yes' && $_POST['animal']!="")
{
    $animal=mysqli_real_escape_string($connect,trim($_POST['animal']));
    $query="INSERT INTO animal (animal) VALUES ('$animal')";
    $result=mysqli_query($connect,$query) or die("can not execute query".mysqli_error($connect));
    if(mysqli_num_rows($result))
    {
        echo "value is already exist !";
    }
    else
    {
        echo "value is inserted ";
        echo "<p>$query</p>";
    }
}
else // 1st form display
{
    echo "<form action='$_SERVER[PHP_SELF]?submit=yes' method='POST'>
            <input type='text' name='animal'>
            <input type='submit' name='submit' value='insert name'>";

}
?>
4

2 に答える 2

2
<?php
$host='localhost';
$user='root';
$password='root';
$dbname='pet';
$connect=mysqli_connect($host,$user,$password,$dbname) or die("can not connect to server");
if(@$_GET['submit']=='yes' && $_POST['animal']!="")
{
    $animal=mysqli_real_escape_string($connect,trim($_POST['animal']));
    $checkquery="SELECT * FROM animal WHERE animal='".$animal."'";
    $checkresult=mysqli_query($connect,$checkquery) or die("can not execute query".mysqli_error($connect));
    if(mysqli_num_rows($checkresult))
    {
        echo "value is already exist !";
    }
    else
    {
        $query="INSERT INTO animal (animal) VALUES ('$animal')";
        $result=mysqli_query($connect,$query) or die("can not execute query".mysqli_error($connect));
        echo "value is inserted ";
        echo "<p>$query</p>";
    }
}
else // 1st form display
{
   echo "<form action='$_SERVER[PHP_SELF]?submit=yes' method='POST'>
        <input type='text' name='animal'>
        <input type='submit' name='submit' value='insert name'>";

}
?>
于 2013-11-08T16:14:32.653 に答える
0

クエリ変数をSELECT INSTEADに置き換えますINSERT

$query = "SELECT * FROM animal"
$result = mysqli_query($connect,$query) or die("can not execute query".mysqli_error($connect));
if(mysqli_num_rows($result))
{
    echo "value is already exist !";
}
于 2013-11-08T16:05:54.023 に答える