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

时间:2015-12-29 16:36:05

标签: php html mysql button

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

2 个答案:

答案 0 :(得分:1)

您准备好的陈述是错误的。

我与pdo一起用来进行查询的代码是这样的:

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

应该像魅力一样工作。

答案 1 :(得分:0)

从主循环中获取此代码: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();
}
?>

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

您要更新的数据来自我正确的复选框吗?那么你可能想要循环更新所有选中的值,复选框为相应的操作'approve'或'unapproved'

删除include('pdoconnect.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();
     }
}