如何检查字段是否不唯一

时间:2015-11-18 09:33:41

标签: php

我的页面中有一个选择标记,并且包含作业列表。我希望如果用户之前选择了该作业,则会显示警告并返回当前页面。

正如我所说,它需要在插入数据库时​​检查作业字段是否与之前提交的内容相同,显示警告...... 这是我的工作页面:

      <?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>';
}
?>

结果如下:

enter image description here

2 个答案:

答案 0 :(得分:5)

请记住,这些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>';

看看你是否得到了理想的结果

答案 1 :(得分:0)

您可以在“数据库”中设置“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);