我的页面中有一个选择标记,并且包含作业列表。我希望如果用户之前选择了该作业,则会显示警告并返回当前页面。
正如我所说,它需要在插入数据库时检查作业字段是否与之前提交的内容相同,显示警告...... 这是我的工作页面:
<?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>';
}
?>
结果如下:
答案 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);