每当我第一次输入值并添加记录时,它就会完美地添加,但每当我通过按F5刷新浏览器时它会显示消息 "您正在查找的页面使用了您输入的信息..."并插入重复记录。 HTML代码定义如下:
<?php include("Connection.php"); ?>
<form role="form" method="post">
<div class="col-md-6">
<div class="form-group">
<label>Type Name</label>
<input name="emptype" class="form-control" placeholder="Employee ID">
</div>
<div class="form-group">
<label>Type Description</label>
<input name="typedecs" class="form-control" placeholder="First Name">
</div>
</div>
<div class="col-md-12 text-right">
<button type="submit" name="addtype" class="btn btn-primary">Add Type</button>
<button type="reset" class="btn btn-default">Reset</button>
</div>
</form>
below is my PHP Code
<?php
$emptype=$_POST['emptype'];
$typedesc=$_POST['typedecs'];
if(isset($_POST['addtype']))
{
$query=mysql_query("insert into emptype(typename,typedesc)values('$emptype','$typedesc')")or die("<script>alert('Error');</script>");
echo '<script>showAlert();window.setTimeout(function () {HideAlert();},3000);</script>';
我缺少什么?请帮助。
答案 0 :(得分:2)
建议:使用mysqli_ *或PDO而不是mysql_ *函数,但是你已经编写了代码,所以我也给了代码。
只需运行一个select查询来检查数据库中是否已存在该记录(如果存在),则不要再次插入。
++
答案 1 :(得分:0)
一个选项可以是测试数值是否已存在于您的数据库中。
的示例// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see mysql_real_escape_string()
$query = sprintf("SELECT * FROM emptype
WHERE typename='%s' AND typedesc='%s'",
mysql_real_escape_string($emptype),
mysql_real_escape_string($typdesc));
// Perform Query
$result = mysql_query($query) or die(mysql_error());
// Get num rows
$num_rows = mysql_num_rows($result);
// If $num_rows is False - It's not a duplicate
if(!$num_rows)
...
考虑使用PDO PHP.net - PDO - 对mysql函数进行折旧。
答案 2 :(得分:0)
我认为这是因为php脚本(插入查询)位于HTML表单的同一页面,因此当您刷新页面时,您告诉浏览器使用以前的数据再次调用php脚本。所以为了防止将HTML表单与php分开,所以你的代码应该像: 1- HTML.php
<?php include("Connection.php"); ?>
<form role="form" method="post" action="Action.php">
<div class="col-md-6">
<div class="form-group">
<label>Type Name</label>
<input name="emptype" class="form-control" placeholder="Employee ID">
</div>
<div class="form-group">
<label>Type Description</label>
<input name="typedecs" class="form-control" placeholder="First Name">
</div>
</div>
<div class="col-md-12 text-right">
<input type="submit" value="submit">
</div> </form>
2- Action.php
<?php include("Connection.php");
$emptype=$_POST['emptype'];
$typedesc=$_POST['typedecs'];
if(isset($_POST['addtype']))
{
$query=mysql_query("insert into emptype(typename,typedesc)values('$emptype','$typedesc')")or die("<script>alert('Error');</script>");
echo '<script>showAlert();window.setTimeout(function () {HideAlert();},3000);</script>'; echo "<meta http-equiv='refresh' content='0;url=html.php'>";
&GT;
这将使html.php页面调用Action.php页面当按下提交按钮然后执行php脚本然后它会再次将你重定向到html.php页面