>백엔드 개발 >PHP 튜토리얼 > 遇见过重复插入数据的请进

遇见过重复插入数据的请进

PHP中文网
PHP中文网원래의
2016-06-13 13:34:361045검색

  遇见过重复插入数据的大虾请进!
问题是这样的,我用Php写了一个表单,然后在提交的处理页面执行一条insert语句,但是我到数据看的时候发现每次插入的都是两条记录,郁闷了一个下午了,希望遇见过这类问题的大侠能帮忙解决一下。我的提交表单的文件如下所示:

<?php session_start();?>
<html>
<head>
<title>图书馆管理系统</title>
<link href="http://www.php1.cn/"></head>
<script language="javascript">
function check(form){
if(form.barcode.value==""){
alert("请输入条形码1!");form.barcode.focus();return false;
}
if(form.bookName.value==""){
alert("请输入图书姓名!");form.bookName.focus();return false;
}
if(form.price.value==""){
alert("请输入图书定价!");form.price.focus();return false;
}
form.submit();
}
</script>
<body>
<table width="776" border="0" align="center" cellpadding="0" cellspacing="0" class="tableBorder">
  <tr>
  <td>
<?php include("navigation.php");?>
</td>
  </tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" bgcolor="#FFFFFF"><table width="99%" height="510" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tableBorder_gray">
<tr>
<td height="510" align="center" valign="top" style="padding:5px;"><table width="98%" height="487" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="22" valign="top" class="word_orange">当前位置:图书档案管理 &gt; 添加图书信息 &gt;&gt;&gt;</td>
</tr>
<tr>
<td align="center" valign="top"><table width="100%" height="493" border="0" cellpadding="0" cellspacing="0">
<tr>
  <td align="center" valign="top">
<form name="form1" method="post" action="book_ok.php">
<table width="600" height="432" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
  <tr>
  <td width="173" align="center">条 形 码:</td>
  <td width="427" height="39">
  <input name="barcode" type="text" id="barcode"></td>
  </tr>
  <tr>
  <td align="center">图书名称:</td>
  <td height="39"><input name="bookName" type="text" id="bookName" size="50"> * </td>
  </tr>
  <tr>
  <td align="center">图书类型:</td>
  <td>
<select name="typeId" class="wenbenkuang" id="typeId">
<?php  
  include("Conn/conn.php");
$sql=mysql_query("select * from tb_booktype");
$info=mysql_fetch_array($sql);
do{
?> 
  <option value="<?php echo $info[id];?>"><?php echo $info[typename];?></option>
<?php }while($info=mysql_fetch_array($sql));?>  
  </select>
</td>
  </tr>
  <tr>
  <td align="center">作  者:</td>
  <td><input name="author" type="text" id="author" size="40"></td>
  </tr>
  <tr>
  <td align="center">译  者:</td>
  <td><input name="translator" type="text" id="translator" size="40"></td>
  </tr>
  <tr>
  <td align="center">出 版 社:</td>
  <td>
<select name="isbn" class="wenbenkuang">
<?php
$sql2=mysql_query("select * from tb_publishing");
$info2=mysql_fetch_array($sql2);
do{
?> 
  <option value="<?php echo $info2[ISBN];?>"><?php echo $info2[pubname];?></option>
<?php }while($info2=mysql_fetch_array($sql2));?>  
  </select>
</td>
  </tr>
  <tr>
  <td align="center">价  格:</td>
  <td><input name="price" type="text" id="price">(元)</td>
  </tr>
  <tr>
  <td align="center">页  码:</td>
  <td><input name="page" type="text" id="page"></td>
  </tr>
  <tr>
  <td align="center">书  架:</td>
  <td><select name="bookcaseid" class="wenbenkuang" id="bookcaseid">
<?php
$sql3=mysql_query("select * from tb_bookcase");
$info3=mysql_fetch_array($sql3);
do{
?> 
  <option value="<?php echo $info3[id];?>"><?php echo $info3[name];?></option>
<?php }while($info3=mysql_fetch_array($sql3));?>  
  </select>
  <input name="operator" type="hidden" id="operator" value="<?php echo $info3[name];?>"></td>
  </tr>
  <tr>
  <td align="center"> </td>
  <td><input name="Submit" type="submit" class="btn_grey" value="保存" onClick="return check(form1)"> 
<input name="Submit2" type="button" class="btn_grey" value="返回" onClick="history.back();"></td>
  </tr>
  </table>
</form>
</td>
  </tr>
</table></td>
  </tr>
  </table></td>
  </tr>
</table><?php include("copyright.php");?></td>
  </tr>
</table>
</td>
  </tr>
</table>
</body>
</html>
我的处理页面代码如下:<?php  
session_start();
include("conn/conn.php");
$operator=$_SESSION[admin_name];
$barcode=$_POST[barcode];
$bookName=$_POST[bookName];
$typeid=$_POST[typeId];
$author=$_POST[author];
$translator=$_POST[translator];
$isbn=$_POST[isbn];
$price=$_POST[price];
$page=$_POST[page];
$bookcase=$_POST[bookcaseid];
$inTime=date("Y-m-d");
$sql=mysql_query("insert into tb_bookinfo(barcode,bookName,typeid,author,translator,ISBN,price,page,bookcase,inTime,operator )values(&#39;$barcode&#39;,&#39;$bookName&#39;,&#39;$typeid&#39;,&#39;$author&#39;,&#39;$translator&#39;,&#39;$isbn&#39;,&#39;$price&#39;,&#39;$page&#39;,&#39;$bookcase&#39;,&#39;$inTime&#39;,&#39;$operator&#39;)");
header(&#39;location:book.php&#39;);   
echo "<script language=&#39;javascript&#39;>alert(&#39;图书信息添加成功!&#39;);</script>";
?>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">


------解决方案--------------------
我的处理页面代码如下:session_start(); 
------解决方案--------------------
onclick改为onsubmit ,以及删掉check()的form.submit(),check()只负责验证数据 
------解决方案--------------------
你在check方法里面多写了submit.验证成功后check()提交一次 本身的input type=submit 又提交一次,所以你数据是重复的。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.