从POST名称更新表

时间:2016-02-18 19:12:34

标签: php mysql

我有这段代码

while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
    $rName = $row['abb'];
    echo $row['name'];
?>
<html>
    <select id="<?php echo $rName;?>">
        <option value="Yes">Enabled</option>
        <option value="No">Disabled</option>
    </select>
<?php
    echo '<br>';
}
    echo '<br>';
    echo '<input type="submit" name="submit"/>';
    echo '</form>';

所以你可以看到,每当我有一个新的$row['name']时,它会创建一个名为$row['abb']的新选择器

如何更新表priv并将该选择器中的值放入与选择器同名的行中。

例如,如果我有两个$row['name'],则会创建两个$row['abb'] 一个名为op2,另一个名为op3

在我的priv表中,我有行op2-op24。那么我怎么能这样做所以它知道用这个值更新正确的行?

更新1 **

我试过这个

                if(isset($_POST['submit'])){
            $userIDi = $user['ident'];
            $op2 = $_POST['op2'];
            $op3 = $_POST['op3'];
            $op4 = $_POST['op4'];
            $op5 = $_POST['op5'];
            $op6 = $_POST['op6'];
            $op7 = $_POST['op7'];
            $op8 = $_POST['op8'];
            $op9 = $_POST['op9'];
            $op10 = $_POST['op10'];
            $op11 = $_POST['op11'];
            $op12 = $_POST['op12'];
            $op13 = $_POST['op13'];
$stmt=$con->prepare("UPDATE priv SET op2 = $op2, op3 = $op3, op4 = $op4, op5 = $op5,
 op6 = $op6, op7 = $op7, op8 = $op8, op9 = $op9, op10 = $op10, op11 = $op11, op12 = $op12, op13 = $op13 WHERE ident = :ID");
$stmt->bindparam(":ID", $userIDi);
$stmt->execute();

这样做给了我这个错误

  

致命错误:未捕获的异常&#39; PDOException&#39; with message&#39; SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在&#39;附近使用。 op4 =,op5 =,op6 =,op7 =,op8 =,op9 =,op10 =,op11 =,op12 =,op&#39;在第1行&#39;在/nfs/c11/h05/mnt//html/orderpage.php:204堆栈跟踪:#0 /nfs/c11/h05/mnt/2080/html/orderpage.php(204):PDOStatement-&gt; execute()在第204行的/nfs/c11/h05//html/orderpage.php中抛出#1 {main}

0 个答案:

没有答案