gpt4 book ai didi

php - 使用 OOP PHP 更改枚举

转载 作者:行者123 更新时间:2023-11-29 19:15:09 25 4
gpt4 key购买 nike

我是学习 PHP 网络开发的新手,我有一个问题正在尝试解决。我的数据库中有一个 ENUM 类型,有 2 个值:“Y”或“N”。它在我的用户表 (tbl_users) 中称为 userStatus。我正在尝试使用 PHP 在单击按钮时更改该特定用户的 ENUM 值。但是,当我单击按钮时没有任何反应,我不确定是按钮还是我的 PHP 还是两者的组合错误导致了此功能不起作用?

PHP 更改 ENUM:

if(isset($_POST['btn-activate'])){

if(isset($_GET['id']))
{
$id = $_GET['id'];
extract($user_home->getID($userId));

$statusY = "Y";
$statusN = "N";

$stmt = $user->runQuery("SELECT userID,userStatus FROM tbl_users WHERE userID=:uID");
$stmt->execute(array(":userID"=>$userId));
$row=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() > 0)
{
if($row['userStatus']==$statusN)
{
$stmt = $user->runQuery("UPDATE tbl_users SET userStatus=:status WHERE userId=:userID");
$stmt->bindparam(":status",$statusY);
$stmt->bindparam(":userID",$userId);
$stmt->execute();

$msg = "
<div class='alert alert-success'>
<button class='close' data-dismiss='alert'>&times;</button>
<strong>WoW !</strong> Your Account is Now Activated : <a href='manage_users.php'></a>
</div>
";
}
else
{
$msg = "
<div class='alert alert-error'>
<button class='close' data-dismiss='alert'>&times;</button>
<strong>sorry !</strong> Your Account is allready Activated : <a href='manage_users.php'></a>
</div>
";
}
}
else
{
$msg = "
<div class='alert alert-error'>
<button class='close' data-dismiss='alert'>&times;</button>
<strong>sorry !</strong> No Account Found : <a href='manage_users.php'></a>
</div>
";
}
}
}

获取用户id函数:

 public function getID($userId)
{
$stmt = $this->db->prepare("SELECT * FROM tbl_users WHERE userId=:id");
$stmt->execute(array(":id"=>$userId));
$editRow=$stmt->fetch(PDO::FETCH_ASSOC);
return $editRow;
}

显示用户的表:

  $database = new Database();
$db = $database->dbConnection();
$conn = $db;


$query = "SELECT * FROM tbl_users";
$stmt = $conn->prepare($query);
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
?>
<tr>

<td><?php echo $row['userID']?></td>
<td><?php echo $row['userName']?></td>
<td><?php echo $row['userFirstName']."&nbsp;".$row['userSurname']; ?></td>
<td><?php echo $row['userEmail']?></td>
<td><?php echo $row['userRole']?></td>
<td><?php echo $row['userStatus']?></td>

<td>

表格末尾的“我”按钮,单击该按钮后,将在以下位置运行 PHP:

                <?php if($row['userStatus'] == ('N')){
echo ' <button type="submit" class="btn btn-info"><i class="glyphicon glyphicon-ok" name="btn-activate" ></i> Activate</button>';
}else{
echo ' <button class="btn btn-default"><i class="glyphicon glyphicon-eye-close"></i> Archive</button>';
} ?>
<button data-toggle="modal" data-target="#view-modal" data-id="<?php echo $row['userID']; ?>" id="getUser" class="btn btn-warning"><i class="glyphicon glyphicon-pencil"></i> Edit</button>

</td>
</tr>

提前致谢。

最佳答案

如果前两个 if 条件中的任何一个不计算为 TRUE,则不会出现任何代码(什么也不会发生)。

考虑添加一些调试输出。至少为每个 if 和 echo 一些调试输出添加一个 else

<小时/>

非常奇怪的是,代码同时检查 $_POST$_GET。我怀疑 id 是在表单提交中传递的,就像 btn-activate 一样,而不是作为 uri 中的参数。 (即您的意思是 $_POST['id'] ?只是在这里猜测。

我们在这一行中看到对 $userid 的引用:

extract($user_home->getID($userId));

但我们看不到分配给 $userId 的值。前面的行尝试设置一个名为 $id 的变量。但我们没有看到 $id 在其他地方使用。

就我个人而言,如果没有特别需要,我会避免使用 extract 函数。 (我不希望我的代码容易出现故障,在此示例中,当有人向 tbl_users 添加列时。)

http://ericlippert.com/2014/03/05/how-to-debug-small-programs/

关于php - 使用 OOP PHP 更改枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42775747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com