PHP-MYSQL-Explode帮助
PHP-MYSQL-Explode帮助,php,mysql,explode,Php,Mysql,Explode,您好
我将数据存储在mysql上,在1个表中使用分隔符“,”。
我在数据库中也存储了行和列。
现在,我必须使用存储在数据库中的行数和列数输出数据以绘制表
行数和列数是用户输入的,因此可能会有所不同
比如说,列上有数字3,行上有数字3
我需要像展示一样做
|___d1__|___d2__|___d3__|
|___d4__|___d5__|___d6__|
|___d7__|___d8__|___d9__|
其中,d1-d9将是存储在mysql数据库中的数据,在一个表中使用分隔符“”
谢谢您的帮
您好
我将数据存储在mysql上,在1个表中使用分隔符“,”。
我在数据库中也存储了行和列。
现在,我必须使用存储在数据库中的行数和列数输出数据以绘制表
行数和列数是用户输入的,因此可能会有所不同
比如说,列上有数字3,行上有数字3
我需要像展示一样做
|___d1__|___d2__|___d3__|
|___d4__|___d5__|___d6__|
|___d7__|___d8__|___d9__|
其中,d1-d9将是存储在mysql数据库中的数据,在一个表中使用分隔符“”
谢谢您的帮助。假设用户为2行3列设置了表大小,并为6个单元格进行了一些输入,那么将进入数据库的数据将是
2、3、d1、d2、d3、d4、d5、d6
当您从单元格中提取数据并对提取的字符串进行分解时,您将得到包含8个元素的一维数组
$r=$e[0]行
$c=$e[1]列
$e[2-7]数据
- wrtite打开
标签
- 两个回路,一个接一个
- 第一个将为行的开头生成代码
- wrtite OPENING
标签
- 其中一个将为行生成代码李>
- 写入开始
标记
- 写入数据$e[1+从内部和外部循环计算的位置]
- 写入结束标记
- 内环末端
- wrtite关闭
标记
- 外环末端
- wrtite关闭
标记
假设用户为2行3列设置表大小,并为6个单元格进行一些输入,则将进入数据库的数据将是
2、3、d1、d2、d3、d4、d5、d6
当您从单元格中提取数据并对提取的字符串进行分解时,您将得到包含8个元素的一维数组
$r=$e[0]行
$c=$e[1]列
$e[2-7]数据
- wrtite打开
标签
- 两个回路,一个接一个
- 第一个将为行的开头生成代码
- wrtite OPENING
标签
- 其中一个将为行生成代码李>
- 写入开始
标记
- 写入数据$e[1+从内部和外部循环计算的位置]
- 写入结束标记
- 内环末端
- wrtite关闭
标记
- 外环末端
- wrtite关闭
标记
它应该给你一个想法这并不能帮助你解决这个问题,但有一个好建议:永远不要在数据库字段中写入逗号分隔的值。您无法明智地查询这样存储的信息,应用程序代码将被难看的转换弄得乱七八糟。相反,使用一个单独的表,该表引用主表,每个值一行。这无助于解决这个问题,但有一个好建议:永远不要将逗号分隔的值写入数据库字段。您无法明智地查询这样存储的信息,应用程序代码将被难看的转换弄得乱七八糟。相反,使用一个单独的表,该表引用主表,每个值一行。您可以使用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');
?>
要显示该表,需要两个嵌套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>
您可以使用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');
?>
要显示该表,需要两个嵌套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>
这确实对他有帮助,他可以编写一个过程来修复表,然后编写合理的查询,而不是试图这样做。这确实对他有帮助,他可以编写一个过程来修复表,然后编写合理的查询,而不是试图这样做。为了理解这个问题,我想这是最困难的部分。:-)为了理解这个问题,我想这是最困难的部分。:-)这种事使我头痛欲裂。(对不起,忍不住)这种事让我头痛欲裂。(对不起,我忍不住)
| | | |