Php 在codeigniter中插入数据并动态生成网格
我需要一些想法来完成以下工作: 我需要动态构建一个表,并使用codeigniter插入和更新数据库中的数据Php 在codeigniter中插入数据并动态生成网格,php,codeigniter,Php,Codeigniter,我需要一些想法来完成以下工作: 我需要动态构建一个表,并使用codeigniter插入和更新数据库中的数据 $dates=array (date1, date2, ......daten) (cols) $people=array(name1, name2, ......namen) (rows) date1 date2 date3 name1 3 5 8 name2 2 6
$dates=array (date1, date2, ......daten) (cols)
$people=array(name1, name2, ......namen) (rows)
date1 date2 date3
name1 3 5 8
name2 2 6 9
name3 5 5 1
name4 10 2 8
在db中,我需要注册:
name1, date1 and 3
name1, date2 and 5
name2, date1 and 2
....
这个解决方案对我很有效,你只需要仔细整理你的数组。 (摘自PHP食谱)
function pc_grid_horizontal($array, $size) {
// compute <td> width %ages
$table_width = 100;
$width = intval($table_width / $size);
// define how our <tr> and <td> tags appear
// sprintf() requires us to use %% to get literal %
$tr = '<tr align="center">';
$td = "<td width=\"$width%%\">%s</td>";
// open table
$grid = "<table width=\"$table_width%%\">$tr";
// loop through entries and display in rows of size $sized
// $i keeps track of when we need a new table tow
$i = 0;
foreach ($array as $e) {
$grid .= sprintf($td, $e);
$i++;
// end of a row
// close it up and open a new one
if (!($i % $size)) {
$grid .= "</tr>$tr";
}
}
// pad out remaining cells with blanks
while ($i % $size) {
$grid .= sprintf($td, ' ');
$i++;
}
// add </tr>, if necessary
$end_tr_len = strlen($tr) * -1;
if (substr($grid, $end_tr_len) != $tr) {
$grid .= '</tr>';
} else {
$grid = substr($grid, 0, $end_tr_len);
}
// close table
$grid .= '</table>';
return $grid;
}
$query = $this->db->query('SELECT * FROM `states`');
$states = $query->result_array();
// generate the HTML table
$grid = pc_grid_horizontal($states, 6);
print $grid;