2016-10-20 2 views
2

Попытка создать цикл для кода EditableGrid. Вот как это выглядит сейчас.EditableGrid, цикл «addcolumn»

$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, 

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

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

Благодаря @DimaSan для редактирования этого вопроса. –

+0

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

ответ

0

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