2015-03-13 63 views
0

我需要在同一个ID上的数据库表中插入动态文本框值,现在我可以只在不同的用户ID上插入值。如何将动态文本框值插入到使用php的相同ID的数据库表中?

当我试图插入动态文本框值到数据库表中的ID 1,动态文本框值不同的id像2,3,4等。并且也成为I​​D为1的零字段值。 http://i.stack.imgur.com/MPWTt.png

这里是我的HTML和JavaScript代码:

文件名:index.php文件

<!DOCTYPE html> 
<html> 

    <head> 
    <SCRIPT src="http://code.jquery.com/jquery-2.1.1.js"></SCRIPT> 
     <style> 
     table, th, td { 
     border: 1px solid black; 
     border-collapse: collapse; 
     } 
     th, td { 
     padding: 5px; 
     } 
     table{ 
     background-image: #eee; 
     } 

     </style> 

    </head> 

<body> 

    <form name="registration" id="regis" method="post" enctype="multipart/formdata"> 
     <table> 

       <th colspan="1"> 
       <th>Details Mahall members</th> 
       </th> 

      <tr> 
       <td>Name of the person:</td> 
       <td> 
        <input type="text" name="first_name1" id="fname1" placeholder="Enter name" value=""/> 
       </td> 
      </tr> 


      <tr> 
       <td>Name of the father:</td> 
       <td> 
        <input type="text" name="first_name2" id="fname2" placeholder="Enter name" value=""/> 
       </td> 
      </tr> 

      <tr> 
       <td>Name of the mother:</td> 
       <td> 
        <input type="text" name="first_name3" id="fname3" placeholder="Enter name" value=""/> 
       </td> 
      </tr> 



      <tr> 
       <td>Details of family members:</td><td></td> 

      </tr> 

      <tr> 
       <td></td> 
       <td> 
        <table width="100%"> 
         <tr> 
          <th><center>No:</center></th><th><center>Name</center></th><th><center>Age</center></th><th><center>Relation<strong></th><th><center>Occupation<strong></th> 
         </tr> 
        </table> 
       </td> 
      </tr> 

      <tr> 
       <td></td> 

       <td> 
       <DIV id="product"> 
         <DIV class="product-item float-clear" style="clear:both;"> 

          <?php require_once("sub.php") ?> 

         </DIV> 
        </DIV></td></tr> 
       <tr><td></td><td> <DIV class="btn-action float-clear"> 
        <input type="button" name="add_item" value="Add More" onClick="addMore();" /> 
        <input type="button" name="del_item" value="Delete" onClick="deleteRow();" /> 
        <span class="success"><?php if(isset($message)) { echo $message; }?></span> 
       </DIV> 
       </td> 


      </tr> 

      <tr> 
      <td> 

       <input type="submit" name="save" value="Submit"/> 
       <input type="reset" value="cancel"/> 

      </td><td></td> 
      </tr> 
     </table> 


    </form> 
    <SCRIPT> 
function addMore() { 
    $("<DIV>").load("sub.php", function() { 
      $("#product").append($(this).html()); 
    }); 
} 
function deleteRow() { 
    $('DIV.product-item').each(function(index, item){ 
     jQuery(':checkbox', this).each(function() { 
      if ($(this).is(':checked')) { 
       $(item).remove(); 
      } 
     }); 
    }); 
} 
</SCRIPT> 
</body> 
</html> 

文件名:sub.php

<DIV class="product-item float-clear" style="clear:both;"> 
<DIV class="float-left"><input type="checkbox" name="item_index[]" /></DIV> 
<table cellspacing="2"> 
<tr> 

<td><DIV class="float-left"><input type="text" name="name1[]" style="width:60px"/></DIV></td> 
<td><DIV class="float-left"><input type="text" name="name2[]" style="width:90px"/></DIV></td> 
<td><DIV class="float-left"><input type="text" name="name3[]" style="width:62px"/></DIV></td> 
<td><DIV class="float-left"><input type="text" name="name4[]" style="width:130px"/></DIV></td> 
<td><DIV class="float-left"><input type="text" name="name5[]" style="width:178px"/></DIV></td> 
</DIV> 
</tr> 
</table> 

这里是我的PHP代码插入到数据库

<?php 
$username="root"; 
$password="sha12345"; 
$hostname="localhost"; 

$dbhandle = mysql_connect($hostname,$username,$password) or die("Could not connect to database"); 

$select = mysql_select_db("sha", $dbhandle); 


    if(isset($_POST['save'])) 
{ 
    $personname = $_POST['first_name1']; 
    $fathername = $_POST['first_name2']; 
    $mothernname = $_POST['first_name3']; 


    mysql_query("INSERT INTO sha(Name_person,Name_father,Name_mother) VALUES ('$personname','$fathername','$mothernname')"); 



     if(!empty($_POST["save"])) { 


     $itemCount = count($_POST["name1"]); 
     $itemValues=0; 
     $query = "INSERT INTO sha (no_members,name_members,age_members,relation_members,occupation_members) VALUES "; 
     $queryValue = ""; 
     for($i=0;$i<$itemCount;$i++) { 
      if(!empty($_POST["name1"][$i]) || !empty($_POST["name2"][$i]) || !empty($_POST["name3"][$i]) || !empty($_POST["name4"][$i]) || !empty($_POST["name5"][$i])) { 
       $itemValues++; 
       if($queryValue!="") { 
        $queryValue .= ","; 
       } 
       $queryValue .= "('" . $_POST["name1"][$i] . "', '" . $_POST["name2"][$i] . "', '" . $_POST["name3"][$i] . "', '" . $_POST["name4"][$i] . "', '" . $_POST["name5"][$i] . "')"; 
      } 
     } 
     $sql = $query.$queryValue; 
     if($itemValues!=0) { 
      $result = mysql_query($sql); 
      if(!empty($result)) $message = "Added Successfully."; 
     } 
    } 
    } 
    mysql_close(); 

?> 

回答

0

好了,所以这里的步骤,你可以按照

创建表的用户

CREATE TABLE users(
    id INT NOT NULL AUTO_INCREMENT, 
    Name_person VARCHAR(50) NOT NULL, 
    Name_father VARCHAR(50) NOT NULL, 
    Name_mother VARCHAR(50) NOT NULL, 
    PRIMARY KEY (id) 
); 

创建表family_members

CREATE TABLE family_members(
    id INT NOT NULL AUTO_INCREMENT, 
    user_id INT NOT NULL, 
    no_members TINYINT(2) NOT NULL DEFAULT 1, 
    name_members VARCHAR(50) NOT NULL, 
    age_members VARCHAR(50) NOT NULL, 
    relation_members VARCHAR(50) NOT NULL, 
    occupation_members VARCHAR(100) NOT NULL, 
    PRIMARY KEY (id) 
); 

然后在你的PHP代码

mysql_query("INSERT INTO users(Name_person,Name_father,Name_mother) VALUES ('$personname','$fathername','$mothernname')"); 


$user_id = mysql_insert_id(); 

$query = "INSERT INTO family_members (user_id,no_members,name_members,age_members,relation_members,occupation_members) VALUES "; 
$queryValue = ""; 
for($i=0;$i<$itemCount;$i++) { 
    if(!empty($_POST["name1"][$i]) || !empty($_POST["name2"][$i]) || !empty($_POST["name3"][$i]) || !empty($_POST["name4"][$i]) || !empty($_POST["name5"][$i])) { 
     $itemValues++; 
     if($queryValue!="") { 
      $queryValue .= ","; 
     } 
     $queryValue .= "('".$user_id. "', '" . $_POST["name1"][$i] . "', '" . $_POST["name2"][$i] . "', '" . $_POST["name3"][$i] . "', '" . $_POST["name4"][$i] . "', '" . $_POST["name5"][$i] . "')"; 
    } 
} 
$sql = $query.$queryValue; 

并进一步就可以轻松搞定记录加入或只是简单的

比方说您想获得的用户记录1

$get_user = mysql_query("SELECT * FROM users WHERE id = 1"); 
$user = mysql_fetch_assoc($get_user); 
$user_id = $user['user_id']; 


echo '<table>'; 
echo '<tr><th colspan="5">Recod of User '.$user['Name_person'].'</th></tr>'; 
$get_user_family = mysql_query("SELECT * FROM family_members WHERE user_id = '$user_id'"); 
while ($family = mysql_fetch_assoc($get_user_family)) 
{ 
    echo"<tr><td>".$family['no_members']."</td><td>".$family['name_members']."</td><td>".$family['age_members']."</td><td>".$family['relation_members']."</td><td>".$family['occupation_members']."</td></tr>"; 
} 
echo '<table>'; 
+0

谢谢,实际上我可以将所有动态文本框的值都插入到表格中,但是我无法在相同的ID上插入。 – Shereefva 2015-03-13 14:51:31

+0

感谢bheem raj,我可以正确插入第二个查询,但是问题出在值到不同的id's.you可以检出我现在附加的快照,比你会很容易理解我想问什么。 – Shereefva 2015-03-13 16:49:40

+0

哦,你应该有两张桌子,比如说'1。用户','2。 fmembers',并且它们之间应该有'一对多'关系,LIKE:在'fmembers'中创建新的字段'user_id'。然后将'Name_person,Name_father,Name_mother'存储在'users'表中,得到'user_id = mysql_insert_id()'。使用'user_id'在'fmembers'表中存储'no_members etc'等其他信息。 – 2015-03-13 17:10:33

0

您可以输入数组中的HTML像name="first_name[]"

<input type="text" name="first_name[]" id="fname1" placeholder="Enter name" value=""/> 
<input type="text" name="first_name[]" id="fname2" placeholder="Enter name" value=""/> 
<input type="text" name="first_name[]" id="fname3" placeholder="Enter name" value=""/> 

然后同时在PHP读取,你可以只写

print_r($_POST['first_name']); 

这将包含数组中的所有值

+0

真的谢谢你帮我bheem拉吉,我跟着像你编辑,但价值没有得到插入现在,我应该在HTML中创建文本框插入数据库表。 – Shereefva 2015-03-16 02:15:30

相关问题