gpt4 book ai didi

php - 使用 PHP 和 MySQL 按多种类型对事件进行排序。

转载 作者:行者123 更新时间:2023-11-29 14:43:33 24 4
gpt4 key购买 nike

我需要创建一小段代码,以允许我根据用户选择的类别类型过滤事件数据库。

我目前让它适用于仅选择一个类别的用户...

  $user_qstring = "SELECT types FROM tbl_users WHERE user_id='".$_SESSION['id']."'";
$user_result = mysql_query($user_qstring);
$user_row = mysql_fetch_array($user_result);

$type_filter = $user_row['types'];
if(isset($type_filter) && $type_filter !="") {
$day_events = "SELECT COUNT(*) FROM tbl_events WHERE day='".$day_id."' AND
type='".$type_filter."'";
}else{
$day_events = "SELECT COUNT(*) FROM tbl_events WHERE day='".$day_id."'";
}

我需要更改此代码,以便设置 $type_filter 并包含以下格式的多个类别。

Festivals,Sports,Education

并让查询自动添加...

OR type='".$type_filter[2]."' OR type='".$type_filter[3]."' OR ect...

我已经能够使用多种方法解决问题...

elseif(){
}

语句,但需要一个可扩展到无限类型的解决方案。

我知道我需要首先使用explode 将 $type_filter 更改为列表...

$type_filter = explode(",", $user_row['types']);

但我仍然无法将它们组合在一起以获得一个简短而优雅的解决方案。

最佳答案

您需要首先确认 $type_filter 不包含单引号,否则您很容易成为 sql 注入(inject)攻击的目标。

$day_events = "SELECT COUNT(*) FROM tbl_events WHERE day='".$day_id."' AND type IN ('" . implode("','", explode(',', $type_filter)) . "')";

关于php - 使用 PHP 和 MySQL 按多种类型对事件进行排序。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7489003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com