Попытка сделать цикл для кода 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,
Хорошо, думаю, я нашел решение. Чтобы создать цикл, мы создаем 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;
Других решений пока нет …