用于更新MySQL列的按钮不起作用


Button to update MySQL column not working

一旦有人点击网站上的按钮,我想用SQL语句更新我的数据库。我尝试过一些东西,但没有成功。你们能帮我吗?这是代码:http://pastebin.com/D0S83Jgh
不知道我这个问题做得对不对,我是新来的。

您准备的语句是错误的。

我使用pdo进行查询的代码是:

$sqlUpd = $upd->prepare("UPDATE league_signups SET approved='1' WHERE id = :id");
$q->bindParam(':id', $id, PDO::PARAM_STR);
$q->execute();

应该像符咒一样工作。

将此代码从主循环中取出:while($row=$q->fetch(PDO::fetch_ASSOC)){}

<?php
include('pdoconnect.php');
$id = isset($row['id'];
if(isset($_REQUEST['approve']))
{
    $sqlUpd = "UPDATE league_signups SET approved='1' WHERE id=$id";
    $q = $upd->prepare($sqlUpd);
    $q->execute();
}
if(isset($_REQUEST['unapprove']))
{
    $sqlUpd = "UPDATE league_signups SET approved='0' WHERE id=$id";
    $q = $upd->prepare($sqlUpd);
    $q->execute();
}
?>

将此代码放在循环结束或代码开头之后。。。

您要更新的数据来自复选框,对吗?然后,您可能需要进行循环,将复选框选中的所有值更新为相应的操作"批准"或"未批准"

删除include('doconnect.php');如果你从一开始就包括这个文件,这是完全没有必要的

<?php
// checkbox[] it's an array...
$UpdateIDs = (isset($_REQUEST['checkbox'])) ? $_REQUEST['checkbox'] : [];
// check if $_REQUEST['approve'] is set else check if $_REQUEST['unapprove'] is set else set $approve to null;
$approved = (isset($_REQUEST['approve']) ? 
     $_REQUEST['approve'] : 
     (isset($_REQUEST['unapprove'])) ? $_REQUEST['unapprove'] : null;
if(!is_null($approved))
{
     try {
         foreach($UpdateIDs as $ID)
         {
             $stmt = $upd->prepare("UPDATE league_signups SET approved=:approved WHERE id=:id");
             $stmt->execute([
                 ':approved' => $approved,
                 ':id' => $ID
             ]);
         }
     } catch(PDOException $e) {
         echo 'ERROR: ' . $e->getMessage();
     }
}