как проверить, не является ли поле уникальным

У меня есть тег select на моей странице и есть список заданий. я хочу, чтобы пользователи раньше выбирали это задание, показывали предупреждение и возвращались к текущей странице.

как я уже сказал, при вставке в базу данных необходимо проверить, совпадает ли поле работы с предыдущим, показать предупреждение … это моя страница работы:

<?php echo '<form name="form2" method="post" action="">'; $db_host = 'localhost'; $db_name= 'site'; $db_table= 'job_list'; $db_user = 'root'; $db_pass = ''; $con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده"); mysql_query("SET NAMES 'utf8'", $con); mysql_query("SET CHARACTER SET 'utf8'", $con); mysql_query("SET character_set_connection = 'utf8'", $con); $selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده"); mysql_query("SET CHARACTER SET utf8"); $dbresult=mysql_query("SELECT * FROM $db_table",$con); echo "توانمندی مورد نظر خود را انتخاب نمایید: ";?><br/> <?php echo '<select name="job">'; ?> $user_id=<?= $fgmembersite->UserFullname(); ?> <?php while($amch=mysql_fetch_assoc($dbresult)) { echo '<option value="'.$amch['job_id'].'">'.$amch['job_name'].'</option>'; } echo '</select><br>'; echo'<textarea name="textaria" cols="" rows=""></textarea><br /> <input name="submit" type="submit" value="ثبت" /><br>'; echo '<a href="job_request.php">درخواست افزودن شغل</a>'; echo'</form>'; if(isset($_POST['submit'])) { $user_id =$fgmembersite->UserID(); $db_host = 'localhost'; $db_name= 'site'; $db_table= 'relation'; $db_user = 'root'; $db_pass = ''; $con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده"); mysql_query("SET NAMES 'utf8'", $con); mysql_query("SET CHARACTER SET 'utf8'", $con); mysql_query("SET character_set_connection = 'utf8'", $con); $selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده"); $ins = "INSERT INTO $db_table (job_id,user_id,comments) VALUES ('" . mysql_escape_string($_POST['job']) . "','$user_id ', '" . mysql_escape_string($_POST['textaria']) . "')"; $saved=mysql_query($ins ); mysql_close($con); echo '<script language="javascript">'; echo 'alert("شغل شما با موفقیت ثبت شد")'; echo '</script>'; echo '<script>window.location.href = "submit_job.php";</script>'; } ?> 

результат выглядит следующим образом:

введите описание изображения здесь

Имейте в виду, что эти методы mysql теперь устарели. нормально сменить

 $selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده"); $ins = "INSERT INTO $db_table (job_id,user_id,comments) VALUES ('" . mysql_escape_string($_POST['job']) . "','$user_id ', '" . mysql_escape_string($_POST['textaria']) . "')"; $saved=mysql_query($ins ); mysql_close($con); echo '<script language="javascript">'; echo 'alert("شغل شما با موفقیت ثبت شد")'; echo '</script>'; echo '<script>window.location.href = "submit_job.php";</script>'; 

чтобы:

 $selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده"); $rs = mysql_query("SELECT * FROM {$db_table} WHERE user_id = '{$user_id}' AND job_id = '".$_POST['job']."'"); if(mysql_fetch_assoc($rs)) { echo '<script language="javascript">'; echo 'alert("شغل شما قبلا ثبت شده")'; echo '</script>'; } else { $ins = "INSERT INTO $db_table (job_id,user_id,comments) VALUES ('" . mysql_escape_string($_POST['job']) . "','$user_id ', '" . mysql_escape_string($_POST['textaria']) . "')"; $saved=mysql_query($ins ); echo '<script language="javascript">'; echo 'alert("شغل شما با موفقیت ثبت شد")'; echo '</script>'; } mysql_close($con); echo '<script>window.location.href = "submit_job.php";</script>'; 

Посмотрите, получите ли вы желаемый результат

Вы можете сделать столбец «job_id» уникальным в базе данных (установите на нем индекс «UNIQUE»), а затем обнаружите, что из-за этого произошел сбой запроса. Пример кода:

 $selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده"); $ins = "INSERT INTO $db_table (job_id,user_id,comments) VALUES ('" . mysql_escape_string($_POST['job']) . "','$user_id ', '" . mysql_escape_string($_POST['textaria']) . "')"; $saved=mysql_query($ins ); if( mysql_errno() == 1586) { // Duplicate key show warning } mysql_close($con);