动态插入到多个值


Dynamic insert into with multiple values

这是我的index.php文件,它有一个简单的形式,但与jscript我将添加一些更多的动态输入,然后我需要插入这些输入到我的数据库。

<form action="insert.php" method="post">
    <input type="text" name="uid" placeholder="uid">
    <input type="text" name="cid_1" placeholder="cid1">
    <input type="text" name="cid_2" placeholder="cid2">
    <input type="submit" value="Register" name="submit" />
</form>

我创建了insert.php如下所示。我只需要为每个输入输入类型,但实际上输入将动态添加,因为我说,所以我只需要应用while或foreach函数,我猜,但我不确定如何做,希望有人能帮助我关于这个。

还有一件事我需要,在这种情况下,一切都在工作,但它每次插入,即使一些输入是空的。我也找不到关于这个的任何东西。

谢谢你从现在开始的帮助。

<?php
$link = mysqli_connect("localhost", "root", "", "test");
$uid = mysqli_real_escape_string($link, $_POST['uid']);
$cid1 = mysqli_real_escape_string($link, $_POST['cid_1']);
$cid2 = mysqli_real_escape_string($link, $_POST['cid_2']);
$sql = "INSERT INTO table (uid, cid) VALUES ('$uid', '$cid1'), ('$uid', '$cid2')";
mysqli_query($link, $sql)
?>

从您的SQL查询中我了解到,在uid下,您正在存储来自输入的动态"cid"值。所以你是在为"cid"添加动态输入字段。

为了在服务器上捕获动态字段,您必须将输入字段命名为如下所示,这些字段将作为数组发布到服务器上。

<input type="text" name="cid[]" placeholder="cid1">

接下来,您将遍历该数组并将每个输入数据保存到表中。

完整代码:

HTML

<form action="insert.php" method="post">
<input type="text" name="uid" placeholder="uid">
<input type="text" name="cid[]" placeholder="cid1">
<input type="text" name="cid[]" placeholder="cid2">
<input type="submit" value="Register" name="submit" />

PHP

$mysqli = new mysqli('localhost','usename','password','table');
$uid = $mysqli->real_escape_string($_POST['uid']); 
if($uid !== ''){
    if(isset($_POST["cid"]) && is_array($_POST["cid"])){
        foreach ($_POST["cid"] as $key => $value) {
            $value = $mysqli->real_escape_string($value);
            if($value !== ''){
                // insert into table
                $insert_row = $mysqli->query("INSERT INTO test ( uid, cid ) VALUES( '$uid', '$value' )");
            }
            else{
                echo ($key+1)." no cid field is empty";
                break;
            }
         } 
    }
}
else
    echo "uid is empty";