2016-07-03 4 views
0

に挿入されてから重複データを防止することができます。私はここで他の人が前に掲示されていた同様の質問を見て、それはので、私は新しいものを作成しています私を助けていませんでした。PHP - 私はPHPで非常に新しいですとちょっとみんな、私はあなたの助けが必要mysqlデータベース

<?php 
    $servername = "localhost"; 
    $name = "root"; 
    $password = "root"; 
    $dbname = "my computer"; 

    // Create connection 
    $conn = mysqli_connect($servername, $name, $password, $dbname); 
    // Check connection 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 



    $query = "SELECT * FROM `booked` WHERE 

    `name` = '{$username}' 
    `date` = '{$date}' 
    `computer_id` = '{$select3}' 
    `start_time` = '{$select1}' 
    `end_time` = '{$select2}' 
    `room` = '{$room}' 

    "; 

    $result = mysqli_query($conn, $query); 



    if (mysqli_num_rows ($result) > 1) 
    { 

    echo "data already exists"; 

    } 




    else 
    { 
    $sql = "INSERT INTO booked (date, computer_id, name, start_time, end_time, room) 
     VALUES ('$date', '$select3', '$username', '$select1', '$select2', '$room')"; 



    if (mysqli_query($conn, $sql)) { 
     echo "New record created successfully"; 
     } else { 
     echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
     } 

    mysqli_close($conn); 

    } 
    ?> 

ここでは、 "booked"テーブル内の特定のテーブル行に変数値を格納するマイコードです。

私は、MySQLが同じ値が既にデータベース内に存在する場合は、「予約」データベースのテーブル内の値の挿入を拒否を確認します。注:すべての値は同じでなければなりません。 1つの値を除いてすべての値が同一であれば、システムはまだ挿入を受け入れるべきです。重複する値が見つかった場合には、エコーすべき

を「データを挿入することはできません。値が重複した」ありがとう、事前

答えて

1

におけるこれらの両方が動作するはずです。

ALTER TABLE `tableName` ADD UNIQUE `unique_index`(`columnName1` ,`columnName2`); 

OR(MySQLバージョン5.5.32)

ALTER TABLE `tableName` ADD UNIQUE (`columnName1` ,`columnName2`); 

OR

重複する値は、それがエコーべきで発見された場合は、 "データを挿入することはできません。値が重複した"

をあなたは、最初のデータが既に存在しているかどうかを確認し、その後、あなたのINSERTクエリを続けていくことができます。 PS。サブクエリを使用してこれを実行することもできます。

一つの方法:

$query = "SELECT * FROM `tableName` WHERE `columnName1` = '{$val1}'"; 

$result = mysqli_query($conn, $query); 

if (mysqli_num_rows ($result) > 1) 
{ 
//data already exists 
} 
else 
{ 
//do your INSERT query here 
} 
+0

はこんにちは、私はあなたの最後のコードを疲れが、それはうまくいきませんでした?..私はあなたが何を意味した –

+0

適切にあなたのコードを使用してイムかどうかを確認することができます上記の私のソースコードを更新したことがwork'なかった 'によって?あなたのクエリを 'echo'して実際にフェッチ/送信されているものを見てください。 – user5173426

-1

より高度なシステムでは、PDOでなければなりません。

GoがアップPDOを見て、そしてそれを使用する方法、それはあなたがそれが軌道に乗るときはかなり驚くべきことです。

関連する問題