我反复使用表单和保存页面将用户的答案保存到我的sql数据库中。最初,我将答案保存到一个数组中,一旦达到目标,我使用一个循环将数组的所有值传递到数据库,更新页面的代码如下所示:
unset($_SESSION['myanswers']);
$_SESSION['myanswers'] = array();
$_SESSION['myanswers']=array(
"File"=>$_POST['file'],
"Rating"=>$_POST['like'],
"Repetitions"=>$_SESSION['reps'],
"degradation"=>$_POST['degradation']
);
$f1=$_SESSION['myanswers']['File'];
$r1=$_SESSION['myanswers']['Rating'];
$r2=$_SESSION['myanswers']['Repetitions'];
$the_id=$_SESSION['user_id'];
$the_deg=$_SESSION['myanswers']['degradation'];
array_push($_SESSION['answers'], $_SESSION['myanswers']);
if($_SESSION['counter']==goal){
require 'connect.php';
foreach( $_SESSION['answers'] as $key => $obj)
{
$f1=$obj['File'];
$r1=$obj['Rating'];
$r2=$obj['Repetitions'];
$the_id=$_SESSION['user_id'];
$the_deg=$obj['degradation'];
$sql = "INSERT INTO `array`(`id`, `file`, `rating`, `repetitions`, `degredation`) VALUES ('$the_id', '$f1', '$r1', '$r2', '$the_deg')";
mysql_query($sql);
}
header("Location: MyEndPage");
die();
}else{
header("Location: MyFormPage");
die();
}
这段代码运行得很好,但我需要立即保存所有答案,而不是在达到目标时保存。因此,我将代码更改为以下内容:
unset($_SESSION['myanswers']);
$_SESSION['myanswers'] = array();
$_SESSION['myanswers']=array(
"File"=>$_POST['file'],
"Rating"=>$_POST['like'],
"Repetitions"=>$_SESSION['reps'],
"degradation"=>$_POST['degradation']
);
$f1=$_SESSION['myanswers']['File'];
$r1=$_SESSION['myanswers']['Rating'];
$r2=$_SESSION['myanswers']['Repetitions'];
$the_id=$_SESSION['user_id'];
$the_deg=$_SESSION['myanswers']['degradation'];
require 'connect.php';
$sql = "INSERT INTO `array`(`id`, `file`, `rating`, `repetitions`, `degredation`) VALUES ('$the_id', '$f1', '$r1', '$r2', '$the_deg')";
mysql_query($sql);
if($_SESSION['counter']==goal){
header("Location: MyEndPage");
die();
}else{
header("Location: MyFormPage");
die();
}
当问题出现时,新条目总是保存在新旧数据之间的同一位置。例如,如果在更改之前我保存了5个条目,它们在sql数组中的顺序如下:
1,name1,data1
2,name2,data2
3,name3,data3
4,name4,data4
5,name5,data5
使用新代码重复添加新条目是有问题的,例如,如果我们添加条目6,7,8,它们是这样添加的:
1,name1,data1 | 1,name1,data1 | 1,name1,data1
2,name2,data2,name2,data2
3,name3,data3,data3,name3,data3
4,name4,data4,name4,data4
5,name5,data6,data5,data6,data6,data6
4,name7,数据8
-------------------6,名称6,数据6,名称7,数据5
--------------6,名称6,数据6
出于某种原因,插入不位于sql数组的末尾,而是堆栈在旧代码收集的数据的末尾。我尝试了一些代码上的调整,但没有成功。
数据库不一定在表的末尾存储新记录。它们还可以重用先前删除释放的空间。
此外,无论出于何种原因,顺序可能看起来是随机的。特别是当您筛选(where子句)或联接其他表时,顺序可能会受到影响,因为MySQL使用特定的索引进行筛选或联接,并且通常会按该顺序返回实际数据。
不管是什么原因,如果你查询数据,你可能会以任何随机顺序得到这些数据。如果需要特定顺序中的信息,请通过向查询添加ORDER BY
子句来强制执行该顺序。
问题内容: 什么是将数据数组保存到单个mysql字段的好方法? 同样,一旦我在mysql表中查询该数组,又有什么好方法可以将其恢复为数组形式? 是序列化和反序列化答案吗? 问题答案: 没有 好的 方法可以将数组存储到单个字段中。 您需要检查您的关系数据并对模式进行适当的更改。请参阅下面的示例以获取对此方法的参考。 如果 必须 将数组保存到单个字段中,则and 函数可以解决问题。但是您不能对实际内容
问题内容: $ sql =“ INSENT INTO data(id,num,name)VALUES ”; 如何将$ array转换成? 谢谢 问题答案: implode()可以帮助您做到这一点,尽管您将需要遍历并将其应用于每个单独的数组:
问题内容: 我想将多维字节数组保存到SQL Server数据库。 我知道如何保存一个字节数组,这是图像到数据库的转换。为此,我使用的数据类型是。但是现在我想存储另一个字节数组,它是多维字节数组,它具有带有x,y值的二维。 我在互联网上搜索过,在这里,据说是使用格式。我只想知道是否将多维数组保存在数据类型数据列中,这些值会被更改吗?是否可以再次将数据接收为多维数组? 问题答案: 是的,您将能够不更改
问题内容: 我想以自己的格式将SQL保存到YAML文件,如下所示: 我使用以下YAML设置 但是我得到了YAML的“经典”丑陋输出 有什么办法可以实现输出#1? PS。repr(config)等于: 问题答案: 如果您的输入格式是一些未格式化的SQL(没有换行符和缩进空格),就像您似乎从输出(2)中 获取的那样,您将 永远不会 自动获得良好的输出: 会给你: 如您所知。您可以尝试使用换行符和缩进来
问题内容: 我想将日期和时间从PHP保存到SQL。这是插入新记录的SQL语句(在类的方法中找到): 在.php页面中,我使用来调用当前日期和时间。但是我仍然收到错误“日期时间值不正确”。我可以用来获取日期吗? 问题答案: 一定是确切的请求时间吗?您可以使生活更轻松,只需使用: MySQL将在您的输入写入表后立即插入当前日期。
问题内容: 我正在尝试对与php数组中的值匹配的行进行sql查询。 本质上我有一个像 并希望执行单个SQL查询以获取与该数组匹配的行 是否有捷径可寻?还是我必须手动构造查询字符串? 问题答案: 使用爆破功能,即