问候,
我有数据存储在mysql上,分隔符","在1表中.我也有行和列存储在数据库中.现在我必须使用存储在数据库中的行和列号输出数据来绘制表格.
行和列号是用户输入,因此可能会有所不同.
比方说,列上有3个,行上有3个.
我需要像显示一样做,
|___d1__|___d2__|___d3__|
|___d4__|___d5__|___d6__|
|___d7__|___d8__|___d9__|
Run Code Online (Sandbox Code Playgroud)
其中d1-d9是存储在mysql数据库中的数据,在一个表中带有分隔符",".
谢谢你的帮助.
这不会帮助你解决这个问题,但是一句好建议:永远不要将逗号分隔值写入数据库字段.你不能明智地查询这样存储的信息,你的应用程序代码将会被丑陋的转换混乱.而是使用一个单独的表,其中包含对主表的引用和每个值的一行.
您可以使用explode()函数将数据列中的逗号分隔值转换为数组:
<?php
$result = mysql_query('SELECT rows, columns, data from table_name where id=1');
$record = mysql_fetch_assoc($result);
$rows = $record['rows'];
$columns = $record['columns'];
$data = explode(',' , $record['data']);
if (sizeof($data) != $rows * $columns) die('invalid data');
?>
Run Code Online (Sandbox Code Playgroud)
要显示表,您需要两个嵌套的for循环:
<table>
<?php for ($row = 0; $row < $rows; $row++) : ?>
<tr>
<?php for ($column = 0; $column < $columns; $column++) : ?>
<td>
<?php echo $data[$row * $columns + $column]; ?>
</td>
<?php endfor ?>
</tr>
<?php endfor ?>
</table>
Run Code Online (Sandbox Code Playgroud)