2017-02-08 30 views
-5

私はクリーニングサービス会社のPHPプログラムを構築しています。私たちは1日に2回クリーナーを1回送ってきました。次のエントリーを2回挿入したクリーナーが「このクリーナーは完全に予約済みです」というメッセージを表示する必要があります。私はカレンダータイプの予約を使用しています。 私の挿入コードは次のとおりです。特定の時間内に重複エントリを防止するにはどうすればよいですか?

$query = "INSERT INTO bookings (uid, empname, date, custname, cleaner, address) VALUES ('$uid', '$empname', '00:00:00', '$_post[custname]', '$_post[cleaner]', '$_post[address]')"; 
$result = mysql_query($query); 
+0

これはユニークなインデックスのためのものです。 – apokryfos

+3

)これまでに何を試しましたか? b)** mysql関数を使用しないでください。PHP7で廃止**されました**。代わりに 'PDO'か' mysqli'を使います。 c)あなたのコードは** SQLインジェクション**に対して脆弱です! - 誰かが ''のような値を投稿すると想像してください。 DROP TABLEの予約 - ' - あなた自身を保護するためにパラメータ化された文を使用します。 –

+0

私があなたの質問を理解していれば、データベースからnum_rowsを得るために各エントリに挿入されたデータのユニークな値を使うことができます。 EX: "SELECT * FROM booking where WHERE = $ uid";それでは、MySQL_num_rows(ただし、あなたのコードではMySQL_を使用しないでください!安全で期限切れではありません) – Soheyl

答えて

0

あなただけの特別な日のためのクリーナー古いレコードをチェックする必要があります。次のスクリプトを使用して、日付を含む古いレコードを取得します。

$prevRecordsQuery= "SELECT COUNT(*) AS records FROM `bookings` WHERE `date` = $date AND `cleaner` = '$_post[cleaner]'"; 

$prevRecords = mysql_query($query); 

if($prevRecords) 
     echo "This cleaner is fully booked"; 
else{ 
    $query = "INSERT INTO bookings (uid, empname, date, custname, cleaner, address) VALUES ('$uid', '$empname', '00:00:00', '$_post[custname]', '$_post[cleaner]', '$_post[address]')"; 
    $result = mysql_query($query); 

} 
+0

ありがとう、Parantap Parashar。 –

+0

問題ありません。常に喜んで:) –

関連する問題