Php 仅向数据库中插入一次值

Php 仅向数据库中插入一次值,php,Php,我的数据库中有一条记录 <?php if(isset($_POST['submit'])) { $tadd=$_POST["tadd"]; //getting values $pname=$_POST["pname"]; $date=$_POST["date"]; $result=mysql_query("insert into pannel(tadd,pname,date)values('$tadd','$pname','

我的数据库中有一条记录

 <?php if(isset($_POST['submit'])) 
    { 
      $tadd=$_POST["tadd"]; //getting values 
      $pname=$_POST["pname"]; 
      $date=$_POST["date"];
      $result=mysql_query("insert into pannel(tadd,pname,date)values('$tadd','$pname','$date')");
      echo "<script type='text/javascript'>
           alert('Quotation Generated Successfully!')
      </script>"; 
      } ?> 
     <center>
     <h1>Title</h1>
     </center>

 <form name="form" method="post" action="" onSubmit="submit;">
 <center><table border="0" cellspacing="0" style="width:350px">

 <tr> <td><b>To Address</td> <td><textarea name="tadd" rows="5"
 cols="30"></textarea></td></tr>
     <tr> <td><b>Project Name</td> <td><input type="text" name="pname" required></td></tr>


  <tr> <td><b>Date</td> <td><input type="text" name="date"
 id="datepicker" required></td></tr>


 <tr> <td colspan="2" align="center"><input type="submit" name="submit"
 value="submit"/></td> </tr></center>  </table>   </form>
若我再次向数据库中插入值,那个么它应该已经插入了数据


请帮助我解决这个问题

您可以使用mysql_num_rows来实现这一点,这是一种方法,我相信其目标是避免重复

旁注:您还可以将列设置为唯一,以避免重复

注意:我以pname列为例。例如,由您检查哪一个用户名始终是唯一的

id tadd pname date 1 hello vvv 22/10/2014 请清理您的数据:

$query = "SELECT * FROM pannel where pname = '".$pname."'";

$result = mysql_query($query);

if(mysql_num_rows($result) > 0){

    echo "Already exists.";
}
else{
   mysql_query("insert into pannel (tadd, pname,date) values ('$tadd','$pname','$date')");
}
对其他人也一样

甚至更好,使用,或

它们更安全,因为您当前的代码是开放的。 脚注:

你应该摆脱onSubmit=submit;以你的形式。正如评论中所述,它不会做任何事情

编辑:


应该知道已经插入了哪些数据?您可以按照前面所述使列唯一,或者您可以使用mysql_num_rows检查SELECT,如果使用PDO,则检查mysqli_num_rows或rowCount。如果数据存在于特定行中,则基本上会中止。还有很多其他方法可以做到这一点;这些只是少数。您不应该使用mysql,因为mysql已被删除。请使用mysqli或PDO,您的意思是希望这样做覆盖当前数据而不添加新行吗?HTML格式不正确,表和中心标记嵌套不正确。它也是非常老式的表,用于数据,而不是表单,中心标记是属于过去的东西。onSubmit属性也不会做任何事情。b标签未关闭。mysql_查询函数已被弃用。在使用POST变量之前,您没有检查它们是否已设置。和嗯,你应该找到一个更新的教程。@vish description not working。您是否确实连接到数据库?它将插入多个数据库times@vish一次插入多次,或者意味着您仍然可以输入重复数据?id tadd pname date 1 hello vvv 22/10/2014 2 hi bbb 22/4/2014@vish对不起,我不明白你的意思。请详细解释。
$tadd = mysql_real_escape_string($_POST["tadd"]);
<?php 

// assuming DB connection has been made.

if(isset($_POST['submit'])) {

$tadd= mysql_real_escape_string($_POST["tadd"]);
$pname= mysql_real_escape_string($_POST["pname"]);
$date= mysql_real_escape_string($_POST["date"]);

$query = "SELECT * FROM pannel where pname = '".$pname."'";

$result = mysql_query($query);

    if(mysql_num_rows($result) > 0){

        echo "Already exists.";
        exit;
    }
    else{
       mysql_query("insert into pannel (tadd, pname,date) values ('$tadd','$pname','$date')");

       echo "<script type='text/javascript'>alert('Quotation Generated Successfully!')</script>";
        }



  } // brace for if(isset($_POST['submit']))

 ?>

<!DOCTYPE html>
<head></head>

<body>
 <center><h1>Title</h1></center>

 <form method="post" action="">
 <div align="center">
    <center>

 <table border="0" cellspacing="0" style="width:350px">

 <tr> <td><b>To Address</td> <td><textarea name="tadd" rows="5" cols="30"></textarea></td></tr>
     <tr> <td><b>Project Name</td> <td><input type="text" name="pname" required></td></tr>

 <tr> <td><b>Date</td> <td><input type="text" name="date" id="datepicker" required></td></tr>


 <tr> <td colspan="2" align="center">
 <input type="submit" name="submit" value="submit"/>
 </td> </tr>
 </table>
    </center>
 </div>
 </form>

</body>
</html>