2017-06-15 101 views
0
  1. 当用户填写表单时,如果LinkedIn Id已经存在,它应该会抛出一个错误,说LinkedIn Id already exists.检查是否存在记录并自动填充mysql表中的ID

  2. 如果用户没有输入ContactID,表格不保存数据。 ContactID是MySQL表中的一个自动递增字段。由于不止一个用户同时在同一个表单上工作,我希望ContactID由MySQL表中的下一个可用编号自动填充。

这里是我的HTML表单代码和下面的PHP代码。如果您需要其他细节进行调试,请询问。

<html> 
<body> 
<form method="post" action="demo.php"> 

<link rel="stylesheet" href="contact_css.css"> 
<!--Create a table --> 

<table> 
<tr><td><b>Contact Information</b></td> 
</tr> 
<tr> 
<div class="leftside"> 
    <td>ContactID</td> 
    <td><input type="text" name="ContactID"></td> 
</div> 
<div class="rightside"> 
    <td>ContactOwner</td> 
<!-- <td><input type="text" name="ContactOwner"></td>--> 
    <td><select name="ContactOwner"> 
<option value="None">None</option> 
<option value="Malik">Malik</option> 
<option value="Ankit">Ankit</option> 
<option value="Vikrant">Vikrant</option> 
</select></td> 
</div> 
    </tr> 
    <tr> 
    <div class="rightside"> 
    <td>LeadSource</td> 
    <td><select name="LeadSource"> 
<option value="None">None</option> 
<option value="Advertisement">Advertisement</option> 
<option value="ColdCall">ColdCall</option> 
<option value="LinkedIn">LinkedIn</option> 

<option value="Web">Web</option> 

</select></td> 
    <!--<td><input type="text" name="LeadSource"></td>--> 
</div> 

<div class="leftside"> 
    <td>First_name</td> 
    <td><input type="text" name="First_name"></td> 
</div> 
</tr> 
<tr> 
<div class="rightside"> 
<td>Last_name</td> 
<td><input type="text" name="Last_name"></td> 
<td>AccountName</td> 
    <td><input type="text" name="AccountName"></td> 
    </tr> 
    <tr> 
<td>Title</td> 
    <td><input type="text" name="Title"></td> 
    <td>EmailID</td> 
    <td><input type="text" name="EmailID"></td> 
    </tr> 
    <tr> 
    <td>Industry</td> 
    <td><input type="text" name="Industry"></td> 
    <td>Department</td> 
    <td><input type="text" name="Department"></td> 
    </tr> 
    <tr> 
    <td>Phone</td> 
    <td><input type="text" name="Phone" required></td> 
    <td>Mobile</td> 
    <td><input type="text" name="Mobile"></td> 
    </tr> 
    <tr> 

    <td>Today_date</td> 
    <td><input type="date" name="Today_date"></td> 

    <td>LinkedIn</td> 
    <td><input type="text" name="LinkedIn"></td> 
    </tr> 
    <tr> 
    <td>CallStatus</td> 
    <td><select name="CallStatus"> 
<option value="None">None</option> 
<option value="AnsweringMachine">AnsweringMachine</option> 
<option value="Callback">Callback</option> 
<option value="NotInterested">NotInterested</option> 
<option value="Prospect">Prospect</option> 
<option value="WrongContact">WrongContact</option> 
<option value="PerformedInternally">PerformedInternally</option> 
<option value="LessThan30Employee">LessThan30Employee</option> 
</select></td> 
<td>Website</td> 
<td><input type="text" name="Website"></td> 

</tr> 
    </table> 

<!-- Second table--> 
<table> 
<tr><td><b>Address Information</b></td> 
</tr> 
<tr> 
<div class="leftside"> 
    <td>Street</td> 
    <td><input type="text" name="Street"></td> 
</div> 
<div class="rightside"> 
    <td>OtherStreet</td> 
    <td><input type="text" name="OtherStreet"></td> 
</div> 
</tr> 
<tr> 
<div class="leftside"> 
    <td>City</td> 
    <td><input type="text" name="City"></td> 
</div> 
<div class="rightside"> 
    <td>State</td> 
    <td><input type="text" name="State"></td> 
</div> 
</tr> 
<tr> 
    <td>Zip</td> 
    <td><input type="text" name="Zip"></td> 
    <td>Country</td> 
    <td><input type="text" name="Country"></td> 
</tr> 
</table> 
<!--Third table--> 
<table> 
<tr><td><b>Description Information</b></td> 
</tr> 
<tr> 
<td>Description</td> 
    <td><input type="text" name="Description" class="Description"></td> 

</table> 
<button type="button">Cancel</button> 
<button type="button" class="button2" onclick="window.location.href='fetch_data.php'" />View</button> 
<button type="button" class="button3" onclick="window.location.href='exm_list.php'" />Edit</button> 
<button type="submit">Add</button> 

</form> 
< /body> 
</html> 

PHP代码:

<?php 

// create a variable 
if (isset($_POST)){ 

$ContactID=$_POST['ContactID']; 
$ContactOwner=$_POST['ContactOwner']; 
$LeadSource=$_POST['LeadSource']; 
$First_name=$_POST['First_name']; 
$Last_name=$_POST['Last_name']; 
$AccountName=$_POST['AccountName']; 
$Title=$_POST['Title']; 
$EmailID=$_POST['EmailID']; 
$Industry=$_POST['Industry']; 
$Department=$_POST['Department']; 
$Phone=$_POST['Phone']; 
$Mobile=$_POST['Mobile']; 

$Today_date=$_POST['Today_date']; 
$LinkedIn=$_POST['LinkedIn']; 
$CallStatus=$_POST['CallStatus']; 
$Website=$_POST['Website']; 
$Street=$_POST['Street']; 
$OtherStreet=$_POST['OtherStreet']; 
$City=$_POST['City']; 
$State=$_POST['State']; 
$Zip=$_POST['Zip']; 
$Country=$_POST['Country']; 
$Description=$_POST['Description']; 
} 
//create connection 
$connect=mysqli_connect('localhost','root','','contacts'); 
$check="SELECT COUNT(*) FROM contact where ContactID='$_POST[ContactID]' "; 
$result=mysqli_query($connect,$check); 
$data=mysqli_fetch_array($result, MYSQLI_NUM); 
if($data[0] > 1){ 
echo "LinkedIn id already exists"; 
} 
else { 
$newUser="INSERT INTO contact(ContactID,ContactOwner,LeadSource,First_name,Last_name,AccountName,Title,EmailID,Industry,Department,Phone,Today_date,LinkedIn,CallStatus,Website,Street,OtherStreet,City,State,Zip,Country,Description) 
      VALUES('$ContactID','$ContactOwner','$LeadSource','$First_name','$Last_name','$AccountName','$Title','$EmailID','$Industry','$Department','$Phone','$Today_date','$LinkedIn','$CallStatus','$Website','$Street','$OtherStreet','$City','$State','$Zip','$Country','$Description')"; 
if (mysqli_query($connect,$newUser)) 
{ 
    echo "Information Added<br/>"; 
} 
else 
{ 
    echo "Error adding user in database, ContactID exists.<br/>"; 
} 
} 
+1

请使用[MySQLi的预处理语句(http://php.net/manual/en/mysqli.quickstart.prepared- statement.php)来防止SQL注入。 – PeterMader

回答

1

尝试改变:

$check="SELECT COUNT(*) FROM contact where ContactID='$_POST[ContactID]' "; 

$check="SELECT COUNT(*) FROM contact where ContactID='$ContactID' "; 

另外:

如果用户未输入联系人ID,表单将不保存数据。 ***联系人ID 是mysql表中的自动增量字段。

在您的插入不包括

ContactID, 

,因为这是一个自动增量字段作为你提到。你应该做的,而不是要做到这一点:

//创建连接

$connect=mysqli_connect('localhost','root','','contacts'); 
$check="SELECT COUNT(*) FROM contact where ContactID='$ContactID' "; 
$result=mysqli_query($connect,$check); 
$data=mysqli_fetch_array($result, MYSQLI_NUM); 

if($data[0] > 1){ 
      echo "LinkedIn id already exists"; 
}else { 

    $newUser="INSERT INTO contact(ContactOwner,LeadSource,First_name,Last_name,AccountName,Title,EmailID,Industry,Department,Phone,Today_date,LinkedIn,CallStatus,Website,Street,OtherStreet,City,State,Zip,Country,Description) 
      VALUES('$ContactOwner','$LeadSource','$First_name','$Last_name','$AccountName','$Title','$EmailID','$Industry','$Department','$Phone','$Today_date','$LinkedIn','$CallStatus','$Website','$Street','$OtherStreet','$City','$State','$Zip','$Country','$Description')"; 
    if (mysqli_query($connect,$newUser)) 
    { 
     echo "Information Added<br/>"; 
    } 
} 
+0

我尝试了你的建议,但没有奏效。 –

+0

@JasmineLalani发生了什么,你期望发生什么? – hungrykoala

+0

:你编辑和共享的代码,我试图运行它,但它不工作,因为我require.i.e。如果我没有输入“ContactID”,表单没有被提交,它会抛出一个错误“在数据库中添加用户时出错,ContactID存在”。我从插入语句中删除了ContactID –