php - 寻找更好的语句来使用而不是带有 sql 查询的 if 语句

标签 php mysql

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

我尝试了 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 
                    }
            }

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

最佳答案

你确实知道你的代码是以一种方式编写的,以防万一查询被执行

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

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

正如有人已经说过的,UPDATE 查询即使不更新任何记录也是成功的(您应该检查受影响的行),但要注意在查询中插入 $id,就像您在代码中所做的那样可能对 SQL 注入(inject)开放。

关于php - 寻找更好的语句来使用而不是带有 sql 查询的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56377664/

相关文章:

javascript - 使用 yui 在纯菜单中寻找正确的 jQuery 选择器

php - php 中的 PDO 连接错误

mysql - 使用 sql 将大型 csv 文件导入 phpmyadmin 时出现问题

mysql - 有没有办法在mysql中编辑Information_schema

javascript - 搜索结果中的动态链接

php - 无法识别简单的 AJAX 代码

php - 在 PHP session 中保存数组

java - MySQL 和 SQLite 的唯一约束和插入或更新

mysql - 需要高级 SQL 帮助

php - 如何从mysql中的两个不同子查询创建两列