PHP/MySQL 大数据量测试应用

标签 php javascript mysql arrays

应用程序:我有一个测试应用程序(类似于测验),它显示随机图像,用户单击单选按钮对图像进行评分。我目前正在使用 Javascript 来获取单选按钮的值。

我想我需要在 JS 中创建一个数组来保存答案,并以某种方式将该数组转换为 PHP 数组,以便在测试结束时所有答案都可以插入到 MySql 数据库中。

让事情变得更加复杂的是该数组将有 120 个元素!

在这种情况下,我是否应该费心将数据保存在数组中并在 JS 和 PHP 之间进行转换?

我提出的替代方案是:

  1. 使用纯 PHP 处理数据,并使数组仅在 PHP 中在测试结束时插入。我认为每次用户单击答案时都对数据库进行查询并不好,因为系统上同时存在太多答案 (120) 和许多用户。

  2. 使用 PHP 和临时表来保存答案。测试结束时,将数据从临时表复制到将存储数据的表。

大家有什么建议吗?

最佳答案

您应该使用 JSON。要将答案数组转换为 JavaScript 中的字符串,只需使用 JSON.stringify 即可将数组转换为字符串。例如:

var jsonnedArray=JSON.stringify(arrayOfAnswers)

然后将 jsonnedArray 传递给服务器,并使用 PHP 函数 json_decode 进行处理,该函数将 JavaScript 函数 JSON.stringify 生成的字符串转换为字符串 转换为它所代表的值。然后将其插入数据库。这是一些代码:

<?php
#un-jsonnify the arrray of answers
$arrayOfAnswers=json_decode($_POST['jsonnedArray']);
#loop through the answers and insert each one into the database
foreach($arrayOfAnswers as $currentAnswer){
    #do something here to insert $currentAnswer into the database
}

这尚未经过测试,如果它不起作用,请在评论中告诉我。

关于PHP/MySQL 大数据量测试应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15662107/

相关文章:

javascript - 后端 api 与数据库(作为服务)

php - 如何使用 php 在 select 中提取 select 的值?

php - 使用 mysqli_fetch_assoc 输出多个结果

php - 使用 htaccess 重定向/重写

php - PHP中如何从FormData获取数据和文件

javascript - 使用 JQuery 将行中包含的属性链接添加到表中

javascript - 数据表列过滤器未显示

javascript - 捕获 "Open Link in New Tab"javascript 或 jquery 的事件点击 - Cloaking URL

mysql查询中的php

php 和 mysql。 WHERE 日期 <= X 小时前?