我创建了一个界面,用户可以在其中选择要显示的结果。用户选择的选项保存在数组中,因此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'>";
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>";
}我不确定第二个循环是否是一个好主意,但我不知道我应该做什么来显示我想要的结果。
发布于 2015-06-23 11:40:56
先尝试取出所有列,然后将其添加到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>";
}https://stackoverflow.com/questions/31000985
复制相似问题