一、背景
开发中,经常将csv文件中的数据导入数据库,这样就可以在使用部分数据时利用php语言读取数据,存入php数组,最后把这些数值赋给JS,在前端界面使用,比如形成图表。
以下记录这一过程,重点是将简单的php数值索引一维数组转化为JS数组。
二、步骤
1.CSV文件导入数据库
打开phpMyAdmin,选择一个数据库,点击上方导入,选取需要导入的.csv文件,
将格式选择为csv,根据数据集情况选择是否勾选“文件首行包含数据表的字段名 (若未选此项,首行将被认为是数据)”,勾选“忽略插入错误",其他选项默认即可。
选好之后点击执行即可。如需给表改名,打开数据表,点击上方操作即可。
2.SQL语言查询数据
查询本表最后一列数据,存放在PHP数组中。
<?php
header("content-type:text/html;charset=utf-8");
$mysql_server='localhost';
$mysql_username='root';
$mysql_password='root';
//连接数据库
$conn=@mysqli_connect($mysql_server,$mysql_username,$mysql_password) or die("Could not connect to MySQL server");//@屏蔽错误,否则有错的话会把语句显示出来,不安全
@mysqli_select_db($conn, "nut") or die("Could not select database");
$query1="SELECT attack_aggregate FROM nonSpoof_data_extracted";//表中选取一列
$result1=mysqli_query($conn,$query1);//查询列
if (!$result1) {
printf("Error: %s\n", mysqli_error($conn));//SQL语句出错报错
}
$attack_aggregate=array();
while($row=mysqli_fetch_array($result1))//结果集中选取一行,返回生成的数组
{
$attack_aggregate[]=$row['attack_aggregate'];
}
//print_r($attack_aggregate);//输出数组
?>
数组输出如下:
三、PHP数组转JS数组
1.json_encode()
php中的json_encode() 函数对变量进行JSON编码,
语法: json_encode ( $ value [, $ options = 0 ] )
此处$value为要编码的php数组,需注意该函数只对UTF8编码的数据有效。
返回值:执行成功返回json数据(其实是一个string),失败返回false。
示例:
<?php
$book = array('1'=>'a','b'=>'2','c'=>'3','4'=>'d');
$json = json_encode($book);
echo $json;
echo "<br>";
echo $json[0];
?>
结果如下:
{"1":"a","b":"2","c":"3","4":"d"}
{
2.decodeURIComponent()
使用 decodeURIComponent() 函数可以在JS中对编码后的 URI 进行解码。
语法:decodeURIComponent(uri)
参数:uri:必需,是一个含有编码 URI 组件或其他要解码的文本的字符串。
返回值:解码后的内容。
3.应用
SQL语言查询数据取PHP数组数据生成JS数组,并alert数组第一个单元的值。
<html>
<body>
<title>JavaScript</title>
<script language="JavaScript">
// 将php数组转化为json格式数据
var str = '<?php echo json_encode($attack_aggregate); ?>';
// 转换为js数组
var attack_aggregate = eval(decodeURIComponent(str));
alert(attack_aggregate[0]);//print 0.11
</script>
</body>
界面如下:
总结
路漫漫其修远兮,吾将上下而求索。:)