我正在运行一个查询,需要它从一个字段中进行选择并根据种族和性别为用户评分。
我尝试了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
}
}
我正在寻找一种更好的语句,因为即使该语句会同时运行两个结果,并且不会显示一个结果。
答案 0 :(得分:0)
您确实知道您的代码是以这样的方式编写的,即两种查询都可以执行,以防万一
if(isset($ _ POST ['approveBtn']))
是真的,是吗?我不确定这真的就是您想要的...
正如某人已经说过的,即使UPDATE查询不更新任何记录(您应检查受影响的行),它们也会成功,但是要当心在代码中插入$ id,因为这样做可能对SQL注入开放。