为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 SQL Where 子句中使用多个 And 条件

如何在 SQL Where 子句中使用多个 And 条件

PHP
哈士奇WWW 2023-07-01 17:18:02
我正在制作一个动态网站,人们可以在其中搜索捐助者。我正在使用 php 和 mysqli 构建我的搜索页面。我使用 SQL where 子句来获取输入。Select customusername, phonenumberFROM usersWHERE country = ‘$country’ AND bgroup = ‘$bggroup’  AND state = ‘$state’ AND district = ‘$district’这些值是从表单中正确获取的,我用另一个子句对其进行了验证。但我无法从数据库中获取任何内容,并且引发了致命错误。并显示错误的查询。我的所有服务器连接都良好并且正确连接到数据库和表。我知道 php 代码在 github 中不起作用,为您提供我上传的源代码请检查我的代码 https://github.com/iblood/iblood.github.io/blob/master/demo.php 请观察其中的任何错误,请解决我的问题我有自己的托管,所以我提供了上面的代码我是这个领域的新手,堆栈溢出你们中的任何一个人都可以帮助我解决这个问题。
查看完整描述

1 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

$sql = "Select 

     `customusername`,

     `phonenumber`

FROM `users`

WHERE

      `country` = '".mysqli_real_escape_string($connection, $country)."'

      AND `bgroup` = '".mysqli_real_escape_string($connection, $bggroup)."'

      AND `state` = '".mysqli_real_escape_string($connection, $state)."'

     AND `district` = '".mysqli_real_escape_string($connection, $disctrict)."'";

尝试这种方式,字段是输入或下拉菜单,如果它们是输入,您将如何确保用户输入有效信息?


编辑:试试这个,它没有经过测试,但应该可以工作。

if (isset($sqcountry) && mb_strlen($sqcountry)) {

    $search[] = " `country` = '".mysqli_real_escape_string($searchconn, $sqcountry)."'";

}

if (isset($sqbgroup) && mb_strlen($sqbgroup)) {

    $search[] = " `bgroup` = '".mysqli_real_escape_string($searchconn, $sqbgroup)."'";

}

if (isset($sqstate) && mb_strlen($sqstate)) {

    $search[] = " `sqstate` = '".mysqli_real_escape_string($searchconn, $sqstate)."'";

}

if (isset($sqdistrict) && mb_strlen($sqdistrict)) {

    $search[] = " `district` = '".mysqli_real_escape_string($searchconn, $sqdistrict)."'";

}

$where = '';

if (count($search)) {

    foreach($search as $value) {

        if (!mb_strlen($where)) {

            $where .= 'WHERE ' . $value;

            continue;

        }

        $where .= ' AND ' . $value;

    }

}


$sql = "SELECT 

            customusername,

            phonenumber

        FROM donors

        ".$where."

        LIMIT ${offset}, ${total_no_of_pages}";

$searchresult = mysqli_query($searchconn, $sql);


查看完整回答
反对 回复 2023-07-01
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号