首页 > 解决方案 > 寻找更好的语句来使用,而不是使用带有 sql 查询的 if 语句

问题描述

我正在运行一个查询,需要它从一个字段中选择并根据种族和性别对用户进行评分。

我尝试了 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">&times;</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">&times;</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">&times;</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">&times;</a>
                            <p align="center">
                                An error occured, Could not disapprove business
                            </p>
                        </div>
                    <?php 
                    }
            }

我正在寻找一个更好的语句来使用,因为即使这个语句运行两个结果并且不显示一个结果。

标签: phpmysql

解决方案


您确实知道您的代码是以两种查询都会执行的方式编写的,以防万一

if(isset($_POST['approveBtn']))

是真的,你呢?我不确定这真的是你想要的......

正如有人已经说过的那样,即使更新查询不更新任何记录(您应该检查受影响的行),UPDATE 查询也会成功,但请注意在代码中插入 $id 查询,因为这可能是打开的到 SQL 注入。


推荐阅读