首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用关联数组显示和更新数据库

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

Stack Overflow用户
提问于 2018-01-24 16:41:23
回答 1查看 224关注 0票数 0

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

现在,我希望允许用户更新事务。使用下面的代码,我在屏幕上显示100个零件编号(我只显示一个部分片段)。如果$_POST值有效,则更新表。否则,我允许用户输入更新字段。

pnum qty

1-3

2-5

3-9

我的问题有两个:(1)如果我将100个部件编号存储在数据库中,那么是否需要100条If --然后-else语句来解析数组数据,以便在屏幕上显示它?(2)我是否还需要另外100条if--然后- back语句来将数据更新回数据库表?

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 16:48:59

你基本上想要混合/匹配的同时循环。理想情况下,数组的键应该是部件号或唯一标识符,这使得使用起来容易得多。foreach、in_array()和while循环是您的朋友。如下所示:

代码语言:javascript
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48427544

复制
相关文章

相似问题

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