Php 在单个表中显示MySQL结果
我创建了一个界面,用户可以在其中选择要显示的结果。用户选择的选项保存在一个数组中,因此MySQL查询将遍历该数组的不同元素 所以我想在一个表中显示结果。。。大概是这样的: 标题1|标题2 结果1-1 |结果1-2 结果2-1 |结果2-2 我的代码如下:Php 在单个表中显示MySQL结果,php,mysql,database,Php,Mysql,Database,我创建了一个界面,用户可以在其中选择要显示的结果。用户选择的选项保存在一个数组中,因此MySQL查询将遍历该数组的不同元素 所以我想在一个表中显示结果。。。大概是这样的: 标题1|标题2 结果1-1 |结果1-2 结果2-1 |结果2-2 我的代码如下: $mark = $_POST['mark']; if (isset($_POST['mark']) && is_array($_POST['mark'])) { echo "<table border='1'>
$mark = $_POST['mark'];
if (isset($_POST['mark']) && is_array($_POST['mark'])) {
echo "<table border='1'>";
echo "<tr>";
for ($i = 0; $i < count($mark); $i++) {
echo "<th>" . $mark[$i] . "</th>";
}
echo "</tr>";
for ($i = 0; $i < count($mark); $i++) {
$markQuery = "SELECT $mark[$i] FROM marks LIMIT 10";
$result = mysqli_query($DB_connection, $markQuery);
echo "<tr>";
while($row= mysqli_fetch_assoc($result)){
echo "<td>" . $row[$mark[$i]] . "</td>";
}
echo "</tr>";
}
echo "</table>";
}
$mark=$\u POST['mark'];
if(isset($\u POST['mark'])和&is_数组($\u POST['mark'])){
回声“;
回声“;
对于($i=0;$i
我不确定第二个循环是否是一个好主意,但我不知道应该怎么做才能显示我想要的结果。首先尝试获取所有列,然后将其添加到
sql
查询,无需循环数据库查询
$mark = $_POST['mark'];
if (isset($_POST['mark']) && is_array($_POST['mark'])) {
echo "<table border='1'>";
echo "<tr>";
for ($i = 0; $i < count($mark); $i++) {
echo "<th>" . $mark[$i] . "</th>";
}
echo "</tr>";
$sql = implode(',', $_POST['marks']);
$markQuery = "SELECT ".$sql." FROM marks LIMIT 10";
$result = mysqli_query($DB_connection, $markQuery);
echo "<tr>";
while($row= mysqli_fetch_assoc($result)){
echo "<td>" . $row[$mark[$i]] . "</td>";
}
echo "</tr>";
echo "</table>";
}
$mark=$\u POST['mark'];
if(isset($\u POST['mark'])和&is_数组($\u POST['mark'])){
回声“;
回声“;
对于($i=0;$i
我知道这不是你问题的答案,但当你将未经验证的输入放入SQL语句时,你的代码容易受到SQL注入的攻击,并且容易受到XSS攻击,因为你将未经验证的用户输入输出到HTML,可用于将任何Javascript代码写入目标网页。你不应该每次都查询数据库时间是因为它不是有效的方式。相反,我会添加一个名为type
的新列,从表中获取所有记录,然后使用php按新列对其进行过滤。与其在循环中创建查询列,不如使用improde
函数,如$sql=improde(',',$\u POST['marks'))
@czeski。我会编辑我的答案,谢谢你Holpducki和czeski谢谢你的建议。最后,我修改了代码,并使用函数“内爆”和“str_替换”,不再使用循环。我在这一领域完全是新手,所以我会尝试了解更多关于你所说的内容。谢谢你的警告!