寻找一种有效的方法来处理大量重复的 If 语句检查
P粉421119778
P粉421119778 2024-04-03 19:20:08
[PHP讨论组]

在我尝试为我在本科论文中创建的数据库创建一个搜索工具时,我需要对用户输入的值进行大量检查,并根据这些值生成并执行适当的MySQL查询。示例如下:

HTML代码

(part of the whole table)

              
                
              

作为同一个表的另一部分,我有一个按钮,允许用户创建第二行输入,以便进行更具体的搜索,具有 2 个属性,使用 AND 或 OR 语句。

我想保留这篇文章的排序以便收到答案,所以我不会包含 addRow() JavaScript 函数,但如果有必要请评论它,我将编辑尽快。

我的问题如下,我有这两个输入,我想检查用户是否在第二行输入(在“高级”输入中)输入了任何内容,然后根据新值执行适当的操作查询。

目前的 PHP 代码看起来像这样:

PHP代码

if($option == 'Name' && $newoption == 'Email' && !empty($newEmail)){
                $sql = "SELECT patients.Patient_id,patients.Patient_name,patients.DOB,patients.Phonenum,patients.Email,MSR.Sex FROM patients,MSR WHERE patients.Patient_id = MSR.NDSnum AND Doctor_ID = $usersid AND patients.Email = '$newEmail' $and_or patients.Patient_name LIKE '%$entry%' ORDER BY Patient_id";
                $result = $pdo->query($sql);
                if ($result->rowCount() > 0) {
                  while ($row = $result->fetch()) { ?>
                    
Patient ID Name Date of Birth Phone Number Email Sex Previous Visits
Previous Visits"; ?>
'$entry' $and_or patients.Patient_name LIKE '%$entry%' AND Doctor_ID = $usersid ORDER BY Patient_id"; $result = $pdo->query($sql); if ($result->rowCount() > 0) { while ($row = $result->fetch()) { ?>
Patient Id Patient Name Date of Birth Phone Number Email Previous Visits
Previous Visits"; ?>

上面的 if 语句会持续大约 20 次...每次都会检查一个属性与另一个属性的关系..例如 Name+newIDID+newNameEmail+newSex 显然我知道我还没有完成,并且这些属性有数百种可能的组合,但我想知道是否有某种方法可以避免这一切并使其变得更容易......

很抱歉问了这么长的问题!欢迎任何有关如何使这个问题变得更好的注释。

提前感谢您抽出时间。

P粉421119778
P粉421119778

全部回复(1)
P粉239089443

也许可以将相同的 IF 条件组合在一起?

这是我推荐的东西:

if ($option == 'Name') {
    if ($newoption == 'Email' && !empty($newEmail)) {
        //...
    }
    if ($newoption == 'Age' && !empty($newAge)) {
        //...
    }
}

少一点重复:

if ($option == 'Name') {
    // use this 'if', if $newoption correlates to which child if is populated...
    if ($newoption == 'Email' || $newoption == 'Age') {
        if (!empty($newEmail)) {
            //...
        }
        if (!empty($newAge)) {
            //...
        }
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号