Sql показать данные в таблицах без указания имени столбца - PullRequest
0 голосов
/ 04 марта 2019

Итак, у меня есть этот код:

 <?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 Call.вот почему у меня есть:

   $data = $_POST['tabledb'];

в моем коде.Теперь я хотел бы показать содержимое таблиц, но каждая таблица имеет различное количество имен столбцов и столбцов.как показать содержимое таблиц без указания имени столбца?пожалуйста, помогите.

РЕДАКТИРОВАТЬ

то, что я пытался, я пытался сделать это для цикла, не работало.

РЕДАКТИРОВАТЬ 2

Я не был 'недостаточно ясно, я пытаюсь получить тот же результат, что и print_r, но с эхом.

Ответы [ 4 ]

0 голосов
/ 04 марта 2019

Я думаю, что простой способ сделать это - сделать что-то вроде:

$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 = array_keys($result[0]);//this will give you an array of all the columns
foreach($columns as $col) {
  echo <option value = '.$col.'>col</option>
 }
0 голосов
/ 04 марта 2019

Вы можете использовать implode, чтобы объединить все элементы для каждой строки в одну строку:

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

Или вы можете использовать use nested foreach:

0 голосов
/ 04 марта 2019

Если вы используете функцию fetchAll, она возвращает всю информацию о данных индекса и ассоциативного массива.

Если вы хотите получить данные только с именем столбца, необходимо использовать, как показано ниже:

$all = $sfm->fetchAll(\PDO::FETCH_ASSOC);
0 голосов
/ 04 марта 2019

Возможно, попробуйте это, если вы просто хотите перечислить столбцы для таблицы:

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

Это предполагает, что каждая таблица имеет данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...