gpt4 book ai didi

php - 使用关联数组显示和更新数据库

转载 作者:行者123 更新时间:2023-11-29 18:00:16 24 4
gpt4 key购买 nike

在我的代码的其他地方,我已经收到了用户的输入并将数据保存到数据库中。

现在我想允许用户更新交易。使用以下代码,我在屏幕上显示 100 个零件号(我仅显示部分片段)。如果 $_POST 值有效,我会更新该表。否则,我允许用户输入来更新字段。

数量数量
1 - 3
2 - 5
3 - 9
:

我的问题有两个:(1) 如果数据库中存储了 100 个零件编号,是否需要有 100 个 if-then-else 语句来解析数组数据才能将其显示在屏幕上?(2) 我是否还需要另外 100 个 if-then-else 语句来将数据更新回数据库表?

<?php
if ( !empty($_POST)) {
$Error_part_no_1 = null;
$Error_part_no_2 = null;
$part_no_1 = $_POST['part_no_1];
$part_no_2 = $_POST['part_no_2];

if ($valid) {
$sql = "UPDATE (table) SET qty = ?";

} else {
$sql = "SELECT * FROM (table)";
$q = $pdo->prepare($sql);
$q->execute(array());

while ($row = $q->fetch(PDO::FETCH_ASSOC))
{
if ($row['part_num'] == 'part_no_1' {$part_no_1 = $row['qty'];}
if ($row['part_num'] == 'part_no_2' {$part_no_2 = $row['qty'];}
}
}
?>
<form class="form-horizontal" action="update.php?id=<?php echo $id?>" method="post">
<div class="control-group <?php echo !empty($Error_part_no_1)?'error':'';?>">
<label class="control-label">Part No 1</label>
<div class="controls">
<input name="part_no_1" type="text" placeholder="" value="<?php echo !empty($part_no_1)?$part_no_1:'';?>">
<?php if (!empty($Error_part_no_1)): ?>
<span class="help-inline"><?php echo $Error_part_no_1;?></span>
<?php endif; ?>
</div>
</div>
</form>

最佳答案

您基本上想要混合/匹配 while 循环。理想情况下,数组的键应该是零件编号或唯一标识符,这使得使用起来更加容易。 foreach,in_array() ,而 while 循环是你的 friend 。如下所示:

<?php
if ( !empty($_POST)) {

if ($valid) {
//LOOP through $_POST with foreach, update the table accordingly
foreach ( $_POST as $partNo => $val ) {
$sql = "UPDATE (table) SET qty = ? WHERE part_no = ?";
//Execute
}
} else {
$sql = "SELECT * FROM (table)";
$q = $pdo->prepare($sql);
$q->execute(array());


?>
<form class="form-horizontal" action="update.php?id=<?php echo $id?>" method="post">
<?php while ($row = $q->fetch(PDO::FETCH_ASSOC)): ?>
<div class="control-group <?php echo in_array($emptyErrors, $row['part_no'])?'error':'';?>">
<label class="control-label">Part No 1</label>
<div class="controls">
<input name="<?php echo $row['part_no'] ?>" type="text" placeholder="" value="<?php echo !empty($row['part_no'])?$row['part_no']:'';?>">
<?php if (in_array($emptyErrors, $row['part_no'])): ?>
<span class="help-inline">Part number <?php echo $row['part_no'];?> cannot be empty.</span>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
</form>

关于php - 使用关联数组显示和更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48427544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com