如何使用PHP将动态文本框值插入到相同ID的数据库表中?

时间:2015-03-13 12:54:45

标签: javascript php jquery mysql database

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

当我尝试将动态文本框值插入到id 1的数据库表中时,动态文本框值会转到不同的id,如2,3,4等等。并且还会变为id为1的零字段值。{ {3}}

这是我的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();

?>

2 个答案:

答案 0 :(得分:1)

您可以在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']);

这将包含数组

中的所有值

答案 1 :(得分: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;

此外,您可以轻松获取JOIN记录或只是

  

假设你想获得用户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>';