【问题标题】:PHP/MySQL Testing Application with Large Amount of Data [closed]具有大量数据的 PHP/MySQL 测试应用程序 [关闭]
【发布时间】:2013-03-27 15:00:50
【问题描述】:

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

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

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

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

我想出的替代方案是:

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

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

有人有什么建议吗?

【问题讨论】:

  • 要在 javascript 和 PHP 之间传输数据,您可以为您的数组使用一些 JSON 格式,每种语言都可以理解这种格式。您还可以在 JSON 中创建一个临时文件来记录答案,然后在测试结束时将它们放入数据库中(如果我了解您的工作流程的话)。

标签: php javascript mysql arrays


【解决方案1】:

您应该使用 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
}

这是未经测试的,如果它在 cmets 中不起作用,请告诉我。

【讨论】:

    猜你喜欢
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2012-06-12
    • 1970-01-01
    相关资源
    最近更新 更多