首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Insert语句in loop

问Insert语句in loop
EN

Stack Overflow用户
提问于 2015-03-31 20:57:06
回答 2查看 86关注 0票数 0

所以我让顾客填写一张表格。该表单包含以下信息:

name, weight, number of axles, number of bogies

等。

一旦填写了表单,它就会被发送到数据库,放在表train_information中,如下所示:

​

​

现在,填充是FK,也是插入列车后的表axle。下面的表格是这样的:

​

​

现在,我要说的是:

代码语言:javascript
复制
<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个文本字段。在这些字段中,他们需要添加距离。当他们按下submit (提交按钮还没有)时,我希望在表axle中填入距离。(参见第二张图片,其中现在显示为空)

我该怎么做?

EN

回答 2

Stack Overflow用户

发布于 2015-03-31 21:49:01

您可以遍历$_POST‘’distance‘,此时它将是一个数组,因此构建插入查询。但您还需要传递train_id。

代码语言:javascript
复制
$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或其他库中工作。

票数 0
EN

Stack Overflow用户

发布于 2015-03-31 22:04:07

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

axles.php

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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);

?>

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29369223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档