Sql显示表中的数据而不指定列名

问题描述 投票:0回答:4

所以我有这个代码:

 <?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相同的结果但是有回声。

php mysql sql pdo
4个回答
1
投票

您可以使用implode将每行的所有元素组合成一个字符串:

foreach ($all as $row)
  {
      echo ‘<option value="info">’ . implode(‘|’, $row) . ‘</option>‘;
  }

或者你可以使用嵌套的foreach


3
投票

如果使用fetchAll函数,则返回索引和关联数组的所有数据通知。

如果您只想使用列名获取数据,需要使用如下所示:

$all = $sfm->fetchAll(\PDO::FETCH_ASSOC);

0
投票

也许试试这个,如果你只想列出每个表的列:

foreach($row[0] as $column => $value){
    echo "<option value=\"info\">" . $column . "</option>";
}

这假设每个表都有数据。


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>
 }
© www.soinside.com 2019 - 2024. All rights reserved.