所以我有这段代码:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
include "../includes/db_conn.php";
$data = $_POST['tabledb'];
$sfm = $dbm->prepare('SELECT * FROM '.$data.'');
$sfm->execute();
$all = $sfm->fetchAll();
?>
<!DOCTYPE html>
<html>
<body>
<?php
foreach ($all as $row)
{
echo "<option value=\"info\">" . $row[0] . "</option>";
}
?>
</body>
</html>
如果具有下拉菜单,则可以选择一个小上下文,如果可以选择该表是通过ajax调用发送到此页面的,则可以从数据库中选择行。这就是为什么我有
$data = $_POST['tabledb'];
在我的代码中。现在,我想显示表的内容,但是每个表都有不同数量的列和列名称。如何在不指定列名的情况下显示表的内容?请帮忙。
编辑
我尝试过的方法是,尝试将其设置为for循环,但是没有用。
编辑2
我还不够清楚,我试图获得与print_r相同的结果,但带有回显。
答案 0 :(得分:3)
如果使用fetchAll函数,它将返回索引和关联数组的所有数据通知。
如果只想获取具有列名的数据,则需要使用如下所示:
$all = $sfm->fetchAll(\PDO::FETCH_ASSOC);
答案 1 :(得分:1)
您可以使用implode将每一行的所有元素组合为一个字符串:
foreach ($all as $row)
{
echo ‘<option value="info">’ . implode(‘|’, $row) . ‘</option>‘;
}
或者您可以使用嵌套foreach
:
答案 2 :(得分:0)
如果您只想列出每个表中的列,请尝试以下操作:
foreach($row[0] as $column => $value){
echo "<option value=\"info\">" . $column . "</option>";
}
这是假设每个表都有数据。
答案 3 :(得分:0)
我认为执行此操作的一种简单方法是:
$columns = array_keys($result[0]);//this will give you an array of all the columns
foreach($columns as $col) {
echo <td>col</td>
}
然后执行值
foreach($result as $row) {
echo <td>row['value1']</td>
echo <td>row['value2']</td>
}//or do another loop in here to through the whole array
然后您可以以表格格式显示它,使其与数据库中的内容匹配
对于您的下拉菜单,您可以重复使用columns数组
$columns = array_keys($result[0]);//this will give you an array of all the columns
foreach($columns as $col) {
echo <option value = '.$col.'>col</option>
}