Редактируемая сетка, цикл «addcolumn»

#php #mysql #editablegrid

#php #mysql #редактируемая сетка

Вопрос:

Пытаюсь создать цикл для кода EditableGrid. Вот как это выглядит сейчас.

 $grid->addColumn('id', 'ID', 'integer');
$grid->addColumn('site', 'Site', 'string');
  

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

 $grid->addColumn('newcolumn', 'A brand new column', 'string');
  

Чтобы автоматически добавлять новые столбцы на страницу, я хочу создать цикл, который получает входные данные для первого аргумента (имя поля в базе данных), взятого из таблицы:

 CREATE TABLE price (
  id   INT(11)     NOT NULL AUTO_INCREMENT,
  site VARCHAR(50) NOT NULL,
  

и два других аргумента (метка, которая будет отображаться в заголовке и тип данных столбца в MySQL), взятые из этой таблицы:

 CREATE TABLE header (
  header_name VARCHAR(50) NOT NULL,
  header_type VARCHAR(50) NOT NULL,
  

Комментарии:

1. Спасибо @DimaSan за редактирование этого вопроса.

2. $grid->addColumn('id, 'ID', 'integer'); отсутствует апостроф

Ответ №1:

Хорошо, думаю, я нашел решение. Чтобы создать цикл, мы создаем 2 запроса, которые являются:

 $get=$mysqli->query('SELECT header_name, header_type FROM header');
$get1=$mysqli->query('SHOW COLUMNS FROM price');
  

затем мы создаем цикл

 while($row = mysqli_fetch_assoc($get) and $row1 = mysqli_fetch_assoc($get1)){
$grid->addColumn(''.$row1['Field'].'', ''.$row['header_name'].'', ''.$row['header_type'].'');}
  

Я, думаю, это все. Кроме того, если вам нужно исключить некоторые столбцы, используйте этот фрагмент кода:

 if($row1 == 'id' || $row1 == 'site')
    continue;