更新mysql记录并传递id

时间:2014-03-08 11:00:48

标签: php mysql sql

我的表格是:

 <form class="form-horizontal" action="update.php?id=<?php echo $id ?>" method="post">
                            $sql = 'SELECT * FROM prekes WHERE pirkejo_id=' . $pirkejas . '';
                            $q = $pdo->prepare($sql);
                            $prekes = array();
                            foreach ($pdo->query($sql) as $row) {
                                if ($row['prek_pav'] != '') {
                                    array_push($prekes, $row);
                                }
                            }?>                               
<input name="prekes[1][pavadinimas]" type="text" value="<?php echo $prekes[0]['prek_pav']?>">
<input name="prekes[1][kaina]" type="text" value="<?php echo $prekes[0]['prek_kaina'] ?>">
<input name="prekes[2][pavadinimas]" type="text"value="<?php echo $prekes[1]['prek_pav']?>">
<input name="prekes[2][kaina]" type="text" value="<?php echo $prekes[1]['prek_kaina'] ?>">

我不知道如何优化它。我想更新我在数据库中的记录,不知道如何将prekes_id值传递给UPDATE sql。 我发现我的更新使用表单中的最后一个值更新所有记录。所有的记录与上次输入的记录相同。

$pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "UPDATE customers  set name = ?, pavarde = ?, ak = ?, numeris = ?  WHERE id = ?";
    $q = $pdo->prepare($sql);
    $q->execute(array($name, $pavarde, $ak, $numeris, $id));
    foreach ($prekes as $preke) {
    $sql = "UPDATE prekes SET prek_pav= ?,prek_kaina=? WHERE prekes_id=".$preke['prekes_id'];
    $q = $pdo->prepare($sql);
    $q->execute(array($preke['pavadinimas'], $preke['kaina']));
    }
    Database::disconnect();
    header("Location: default.php");

我使用此code来解决此问题。有没有更好的解决方案来解决这个问题? 我的桌子预先(prekes_id,pirkejo_id,prek_pav,prek_kaina)。我从$ _POST ['id']中获取pirkejo_id。

0 个答案:

没有答案