因此,我让客户填写表格。 该表格包含以下信息:

name, weight, number of axles, number of bogies

等等

填写表单后,它将发送到数据库,并将其放置在表train_information ,如下所示:

填写表格

现在,number_of_axles是FK,填充也是火车插入后的工作台axle 该表如下所示:

例子2

现在,我拥有的是:

<div id="distances">
                <tr>
                    <?php
                        $_POST['number_of_axles'];
                            if(isset($_POST['number_of_axles'])){
                            for($i=0; $i<$_POST['number_of_axles']; $i++){
                                echo "<td>" . "<input type='text' placeholder='Distance $i' id='field' name='distance[$i]'>" . "</td>";
                            }
                        }
                    ?>
                </tr>
            </div>

这是在他们提交表单后,另一页显示了基于轴数的文本字段数。 例如:他们输入了12个车轴(参见图片)。 他们现在可以看到12个文本字段。 在这些字段中,他们需要增加距离。 当他们按下“提交”(还没有“提交”按钮)时,我希望将距离填入工作台axle (请参见第二张图片,现在它显示为NULL)

我该怎么做呢???

#1楼 票数:0

您可以遍历$ _POST ['distance'],此时将是一个数组,因此构建插入查询。 但您还需要通过train_id。

$train_id = $_POST['train_id'];
$distances = $_POST['distance'];

$sql = "INSERT INTO axle VALUES ";

$values = array();

foreach ($distances as $axle => $distance) {
    $values = " (NULL, $train_id, $axle, $distance)";
}

$sql .= implode($values, ",");
$sql .= ';';

这是构建查询可以(可能应该)更改以适合在PDO或其他库中运行的简单实现。

#2楼 票数:0

使用axis_id作为input 名称属性的一部分: name=distance[$axle_id] 例如:

shafts.php

<?php

// assuming db connection $conn available
// insert train info, makes mysqli_insert_id available
// form action="axles_update.php"

$result = mysqli_query($conn, // mysqli_insert_id is trusted
    "SELECT axle_id FROM axle WHERE train_id = " . mysqli_insert_id($conn));

$ii = 1;
while ($row = mysqli_fetch_assoc($result)){
    echo "<td><input type='text' placeholder='Distance " . $ii+ . 
         "' id='field' name='distance[" . $row['axle_id'] . "]'></td>\n";
}

?>

update_axles.php

<?php

// assuming db connection $conn available

$stmt = mysqli_prepare($conn, "UPDATE axle SET distance = ? WHERE axle_id = ?");
mysqli_stmt_bind_param($stmt, 'si', $value, $key);

foreach ( $_POST['distance'] as $key => $value ) {
    if ( '' != $value ) { mysqli_stmt_execute($stmt); }
}
mysqli_stmt_close($stmt);

?>

这里缺少许多细节和检查,但它显示了基本概念。

  ask by Mitch translate from so

未解决问题?本站智能推荐:

1回复

带变量失败的插入语句

在这里,我遇到了这个问题。 它似乎无法使用我最后一条语句中的前两个语句中的ID作为变量资源,因此sqlcharacter语句失败。 我做错了什么?
1回复

SQL插入语句挂起

这是我的代码。 我没有收到错误声明,但数据未插入表中。 我尝试在PHPMyAdmin中运行查询,它运行正常。 它也不是因为用户权限。 这会添加斜杠 这是代码混乱的行...它只是挂起并且永远不会打印出消息 它永远不会打印出这一行。
2回复

mysqli插入语句错误

只需更新我的 mysql 连接等即可使用此 mysqli 实现。 我正在尝试运行下面的代码... 与数据库的连接很好并且工作正常,当我替换 ? 对于真正的价值,它有效。 有人可以帮我解决下面的错误吗? 谢谢。 代码: 错误: 我回显了 sql 语句并得到了这个:
1回复

PHP准备好的语句不会更新或插入整个数据

我有一个页面,我的成员可以发布新帖子或更新帖子。 我从tinymce编辑器中获得了帖子内容。 一切正常,但是当我的内容进入新行或<p>&nbsp;</p>或<div>&nbsp;</div>类的可用空间时,会引起问题。 php
1回复

准备好的语句,不将数据插入数据库

我准备好的将数据插入数据库的语句无法正常工作。 我遇到了所有这些问题,但是我只是举了一个例子,以防万一我犯了一个简单的错误。 当我收到一条消息,我将自己放置在代码中时,查询运行正常,但是没有任何内容输入到实际数据库中。 到目前为止,我对准备好的语句的问题是,当某些事情不起作用时,您缺乏反馈
2回复

循环结果以插入具有复杂性的新div

如何循环结果以为每个结果插入具有复杂性的新div? 我有下面的数据库表,其中包含以下列: 我有以下PHP代码: 我想将输出格式化如下: 我将如何完成?
2回复

动态准备好的插入语句

让我开始说,我刚刚开始学习准备好的语句,因此其中很多内容可能很难掌握,但我想尝试一下。 我试图在我的DatabaseObject类中创建一个动态创建函数。 该函数将采用可能具有任意数量的不同允许数据类型的任意数量的值。 不幸的是,我没有尝试过。 这是代码。 在这一点上,我对应该做的
2回复

PHP中的两个插入语句

这个问题已经在这里有了答案: mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。 如何获取并修复实际的mysql错误? 1个答案 嗨,大家好,我如何在php代码中使用两个insert语句将数据存储到数据库中的两个不同表中?