我正在运行一个查询,需要它从一个字段中挑选并根据种族和性别对用户进行评分。
我尝试了 if 语句来查找查询并选择正确的分数,但它要么选择第一个 if 语句并且不检查其余语句,即使在单击批准按钮时查询不同也是如此。
//Approve Button Rating
if(isset($_POST['approveBtn'])){
$query ="UPDATE bbee SET status=1 WHERE id='$id' AND race='Black'";
if(mysqli_query($connection,$query))
{?>
<div class="successmsg alert alert-autocloseable-success">
<a href="#" class="close" data-dismiss="alert">×</a>
<p align="center">
You are a level 1 B-BBEE Contributor
</p>
</div>
<?php
}else{
?>
<div class="errormsg alert alert-autocloseable-danger">
<a href="#" class="close" data-dismiss="alert">×</a>
<p align="center">
An error occured, Could not disapprove business
</p>
</div>
<?php
}
}
if(isset($_POST['approveBtn'])){
$query ="UPDATE bbee SET status=2 WHERE id='$id' AND race='White'";
if(mysqli_query($connection,$query))
{?>
<div class="successmsg alert alert-autocloseable-success">
<a href="#" class="close" data-dismiss="alert">×</a>
<p align="center">
You are a level 2 B-BBEE Contributor
</p>
</div>
<?php
}else{
?>
<div class="errormsg alert alert-autocloseable-danger">
<a href="#" class="close" data-dismiss="alert">×</a>
<p align="center">
An error occured, Could not disapprove business
</p>
</div>
<?php
}
}
我正在寻找一个更好的语句来使用,因为即使这个语句也会运行两个结果而不显示一个结果。
最佳答案
你确实知道你的代码是以一种方式编写的,以防万一查询被执行
if(isset($_POST['approveBtn']))
是真的,你呢?我不确定这是否真的是您想要的...
正如有人已经说过的,UPDATE 查询即使不更新任何记录也是成功的(您应该检查受影响的行),但要注意在查询中插入 $id,就像您在代码中所做的那样可能对 SQL 注入(inject)开放。
关于php - 寻找更好的语句来使用而不是带有 sql 查询的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56377664/