2016-09-13 1 views
1

4つ以上のフィールドを持つフォームがあり、それらのフィールドに挿入されたすべてのデータが関連しています。
たとえば、私は名前がclassclass_timeclass_teacher & batch_nameの4つのフィールドを持っており、フォームを入力して送信するたびにデータがデータベースに送信されます。基本的にタイムテーブルスクリプトです。
もしそうなら、私はmaths12-01ashokIASこれらの値を追加し、フォームを送信し、それはので、私は同じ時間と異なるバッチと教師の名前を追加し、時間秒あれば、今、それはエラーが表示されるはずですし、フォームが提出してはならない、保存されてしまった最初の時間同じ教師が同時に2つの異なるクラスに出席することはできません。どのように私はPHPでこれを達成することができます。
ここに私が試したいくつかのコードがあります。PHPはデータベースからの値を比較します

$sql2 = "SELECT * FROM `s_timetable`"; 
$res = mysql_query($sql2) or die(mysql_error()); 
$fetch_data = mysql_fetch_array($res); 

if ($fetch_data['class_info'] && $fetch_data['teacher_info']) == $_POST['class'] && $_POST['teacher'] 
{ 

} 
+0

mysql _ * - 機能は使用しないでください。それらはphp 5.5以降廃止されており、PHP 7.0で完全に削除されました。 – Manish

+0

'POST'ですでに時間と教師がいるので、エントリが存在する場合はクエリを作成し、そうでなければエントリを作成します。 – Sasikumar

答えて

1

これをPHPで行うのではなく、同じ教師をデータベースで同時に使用できない複合ユニークキーを追加するだけです。

ALTER TABLE s_timetable ADD CONSTRAINT myUniqueConstraint UNIQUE(class_time, class_teacher); 

新しいデータを挿入しようとするたびに、同じ教師が同時に存在すると、SQLエラーが返されます。

Multiple column index documentation

2

新しいデータを挿入する前に*あなたは、下記のクエリで物事を確認することができますし、そのクエリが0以上の行を返す場合、あなたはあなたがどんなmysql_を使うべきではありません

select * from `tablename` where `class_time` = '".$class_time."' and `class_teacher`='".$class_teacher."' 

エラーメッセージを表示することができます-機能。 php 5.5以降で廃止され、最新のphpで完全に削除されました

0

まず、そのユーザーが既にテーブルに入っているかどうかを確認する必要があります。

$sql = mysql_query("select * from table_name where class_time ='" . $_REQUEST['class_time'] . "' AND class_teacher ='" . $_REQUEST['class_teacher'] . "'"); 

$record = mysql_num_row($sql); 

if ($record) { 
    echo "Record already exits"; 
    exit(); 
} else { 
//insert query 
} 

注:それは推奨されませんmysqlを使用して停止します。

+0

バッチ名は必要ありません。クラス時間と教師名は大丈夫です –

+0

@VivekSingh Yupバッチ名は必要ありません。おかげさまで助けてください。 – Jaky

+0

答えが更新されました。 – urfusion

0

単にそれがすでに存在する場合は、エラーMSGを生成することができるようclass_timeとclass_teacherを選択しますクエリを追加します。

$checksched = mysqli_query($con,"SELECT * FROM s_timetable WHERE class_time = '".$inputted_time."' and class_teacher = 'inputted_teacher' ") 
    $match = mysqli_num_rows($checksched); 

if ($match > 0){ 
echo "<script> 
alert('Teacher already exist!'); 
</script>"; 
} 
関連する問題