Maison > Article > développement back-end > 遇见过重复插入数据的请进
遇见过重复插入数据的大虾请进!
问题是这样的,我用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">当前位置:图书档案管理 > 添加图书信息 >>></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('$barcode','$bookName','$typeid','$author','$translator','$isbn','$price','$page','$bookcase','$inTime','$operator')"); header('location:book.php'); echo "<script language='javascript'>alert('图书信息添加成功!');</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 又提交一次,所以你数据是重复的。