所以我有这个代码:
<?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'];
在我的代码中。现在我想显示表的内容,但每个表都有不同数量的columus和colum名称。如何在不指定列名的情况下显示表的内容?请帮忙。
编辑
我尝试了什么,我试着让它成为一个for循环,没有用。
编辑2
我不够清楚,我试图获得与print_r相同的结果但是有回声。
您可以使用implode将每行的所有元素组合成一个字符串:
foreach ($all as $row)
{
echo ‘<option value="info">’ . implode(‘|’, $row) . ‘</option>‘;
}
或者你可以使用嵌套的foreach
:
如果使用fetchAll函数,则返回索引和关联数组的所有数据通知。
如果您只想使用列名获取数据,需要使用如下所示:
$all = $sfm->fetchAll(\PDO::FETCH_ASSOC);
也许试试这个,如果你只想列出每个表的列:
foreach($row[0] as $column => $value){
echo "<option value=\"info\">" . $column . "</option>";
}
这假设每个表都有数据。
我认为这样做的一个简单方法就是做一些事情:
$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>
}