0

PHPスクリプトがそのテーブルにINSERTする前に、データベーステーブルデータをクエリおよびチェックできるかどうかを知る必要がありますか?

2つのフィールドと送信ボタン(POST)を持つhtmlを作成しました。また、データベーステーブルにデータを追加してその結果を取得することにも問題はありませんが、重複があり、したくない...私のデータ、入力データを確認し、重複がない場合は追加するスクリプト。

手伝ってください。

ありがとうございました

コード

<?php


$con=mysqli_connect("localhost","root","Opera1","railway");


if(mysqli_connect_errno())
{
echo "Failed to connect to MySQL: ", mysqli_connect_error;
}

$data1 = $_POST['data1'];
$data2 = $_POST['data2'];



$sql="replace into pipe (data1, data2) 
values ('$data1','$data2')";



if(!mysqli_query($con,$sql))
{
die('Error : ' . mysqli_error($con));
}


echo "Record to Registraton added";

$result = mysqli_query($con,"SELECT * FROM pipe");

echo "<table border='1'>
<tr>
<th>Data1</th>
<th>Data2</th>
</tr>";

while($row = mysqli_fetch_array($result))
  {
 echo "<tr>";
  echo "<td>" . $row['data1'] . "</td>";
  echo "<td>" . $row['data2'] . "</td>";
  echo "</tr>";
  }
echo "</table><br><br>";


mysqli_close($con);


?>
4

3 に答える 3

1
       <?php


    $con=mysqli_connect("localhost","root","Opera1","railway");


    if(mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: ", mysqli_connect_error;
    }

    $data1 = $_POST['data1'];
    $data2 = $_POST['data2'];

    $sql1="select * from pipe";
    $q1=mysql_query($con, $sql1);
    $t=0;
    while($row1=mysql_fetch_array($q1))
    {

    if($row1['data1']== '$data1' || $row1['data2']=='$data2')
    {
    $t=1;
    break;
    }
    }
    if($t==1)
     { 
       echo "Duplicate Entry!";
     }
    else
    {

    $sql="replace into pipe (data1, data2) 
    values ('$data1','$data2')";



    if(!mysqli_query($con,$sql))
    {
    die('Error : ' . mysqli_error($con));
    }


    echo "Record to Registraton added";

    $result = mysqli_query($con,"SELECT * FROM pipe");

    echo "<table border='1'>
    <tr>
    <th>Data1</th>
    <th>Data2</th>
    </tr>";

    while($row = mysqli_fetch_array($result))
      {
     echo "<tr>";
      echo "<td>" . $row['data1'] . "</td>";
      echo "<td>" . $row['data2'] . "</td>";
      echo "</tr>";
      }
    echo "</table><br><br>";

    }

    mysqli_close($con);


    ?>
于 2013-07-04T10:52:41.457 に答える
0

重複がある場合に処理したくない場合は、INSERT INTO の代わりに INSERT IGNORE INTO を使用してください。INSERT とまったく同じように機能しますが、重複があっても失敗しません。

于 2013-07-04T10:51:05.430 に答える
0

重複レコードを一気に削除したい場合は、mysql で利用可能な REPLACE コマンドを使用できます (参照: http://dev.mysql.com/doc/refman/5.0/en/replace.html )。同じ値の行が既に存在する場合は、既存の行を削除し、新しいレコードを追加します。それ以外の場合は、新しいレコードを挿入します。

MySQL テーブルへの挿入または存在する場合は更新で他のオプションを探すこともできます

于 2013-07-04T11:00:44.770 に答える