【问题标题】:How to insert multiple numbers into table in PHP MySQL?如何在 PHP MySQL 中的表中插入多个数字?
【发布时间】:2017-07-15 13:39:51
【问题描述】:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
    <title>Word</title>
</head>
<body>

<form method="post" action="">

<?php
include("connect.php");
mysqli_query($link,"SET NAMES UTF8");


$select="SELECT * FROM students_info WHERE  bash='A'";

$result=mysqli_query($link,$select) or die(mysql_error());

while($row=mysqli_fetch_array($result))
{

    echo $row['Name']."<input type='text' name='warzy1'>"."<br>";
} 

?>

<input type="submit" name="submit" value="Save">

</form>

</body>
</html>

<?php
include("connect.php");
mysqli_query($link,"SET NAMES UTF8");

$warzy1=@$_POST['warzy1'];
$warz=implode(",",(array)$warzy1);

$insert="INSERT INTO word (Warzy_Yakam) VALUES ('$warz')";

mysqli_query($link,$insert) or die(mysqli_error($link));

?>

我在 PHP MySQL 的数据库中有一个表和一些输入名称为学生的输入,我如何可以同时向每个学生插入多个数据?出现在图像中

【问题讨论】:

标签: php mysql mysqli


【解决方案1】:

您应该根据学生 ID 为输入设置名称,并且是数组

echo $row['Name']."<input type='text' name='st_{$row['id']}[]'>"."<br>";

然后,在提交时,您可以从 POST 数据中获取 studen id

foreach ($_POST as $k => $v) {
    if (strpos($k, 'st_') !== false) {
        $studen_id = (int)str_replace('st_', '', $k);
        foreach ($v as $student_data_item) {
             // save it

【讨论】:

    【解决方案2】:

    首先在任何地方使用mysqli_* 函数(参见mysql_error)。

    然后你需要将输入字段的名称设为一个数组。之后像这样在发布的数组上循环:

    include("connect.php");
    mysqli_query($link, "SET NAMES UTF8");
    
    $select = "SELECT * FROM students_info WHERE  bash='A'";
    $result = mysqli_query($link, $select) or die(mysqli_error());
    
    while ($row = mysqli_fetch_array($result)) {
        echo $row['Name']."<input type='text' name='warzy1[]'>"."<br>";
    }
    
    ?>
        <input type="submit" name="submit" value="Save">
    
        </form>
    
        </body>
        </html>
    
    <?php
    include("connect.php");
    mysqli_query($link, "SET NAMES UTF8");
    
    if (!empty($_POST['warzy1'])) {
        $warzy1 = $_POST['warzy1'];
    
        $stmt = mysqli_prepare($link, "INSERT INTO word (Warzy_Yakam) VALUES (?)");
    
        foreach ($warzy1 as $w) {
            $stmt->bind_param('s', $w);
            $stmt->execute();
        }
    }
    

    【讨论】:

    • 谢谢你,colburton,我使用你的代码但不能发送数据,数据不发送到数据库:( .
    • 出现此警告(警告:mysqli_stmt::bind_param():变量数与 E:\wamp\www\Projefct Exam Result(2018)\word 中准备好的语句中的参数数不匹配.php 在第 34 行)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2022-11-18
    • 1970-01-01
    • 2012-06-13
    • 2010-12-07
    • 2016-10-19
    • 1970-01-01
    相关资源
    最近更新 更多