【发布时间】:2023-03-05 22:17:01
【问题描述】:
所以我试图根据用户的输入创建一个 MySQL 查询。我有很多复选框(大约 50 个),所以我不想单独做。这只是我的几个复选框:
<input type="checkbox" name="check_list[]" value="ki67" /> ki67<br><br>
<input type="checkbox" name="check_list[]" value="myc" /> myc<br><br>
<input type="checkbox" name="check_list[]" value="mta1" /> mta1<br><br>
<input type="checkbox" name="check_list[]" value="mvd/cd34" /> mvd/cd34<br><br>
然后我通过 PHP 运行它们来告诉用户检查了什么:
if(!empty($_POST['check_list'])) {
foreach($_POST['check_list'] as $check) {
echo $check . "<br>";
}
}
现在我想通过 MySQL 进程运行它们以显示已选择的行数。这是我的那部分代码:
<?php
//perform database query
$query = "SELECT COUNT(*) ";
$query .= "FROM testdata ";
if(!empty($_POST['check_list'])) {
foreach($_POST['check_list'] as $check) {
$query .= "WHERE rd_$check = 1";
}
}
然后:
$result = mysqli_query($link, $query);
if (!$result) {
die("Database query failed.");
}
当我尝试选中多个框时,问题就出现了。我不知道如何将更多连接到$query。该命令必须类似于:
SELECT COUNT(*) FROM testdata WHERE rd_ki67 = 1 AND rd_myc = 1 AND ...;
有人知道怎么做吗?
【问题讨论】:
-
所以您不能在查询中添加
and字词? o_O -
否,因为这样整个字符串都会失败。你会得到: SELECT COUNT(*) FROM testdata AND rd_ki67 = 1 AND rd_myc = 1 AND ...
-
SELECT COUNT(*) FROM testdata WHERE [rd_ki67 = 1 AND] [rd_myc = 1 AND] [rd_field3 = 1]在[]中看到一些模式? -
谢谢!这行得通,除了最后一部分它会附加一个 AND 并且字符串会失败。对不起!我对编程很陌生!
-
例如,制作一些
substr。
标签: php html mysql checkbox input