我需要一些想法来做以下事情:
我需要动态构建一个表,并使用codeigniter插入和更新数据库中的数据。
$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
....
答案 0 :(得分:0)
此解决方案对我来说效果很好,您只需仔细整理阵列即可。 (摘自PHP Cookbook)
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;
}
例如,让我们在六列表中打印50个美国州的名称:
$query = $this->db->query('SELECT * FROM `states`');
$states = $query->result_array();
// generate the HTML table
$grid = pc_grid_horizontal($states, 6);
print $grid;