【发布时间】:2013-06-22 17:49:41
【问题描述】:
我需要想办法在PHP 中为SQL db 准备一个插入语句,但我无法理解逻辑。插入语句将来自我在JSON 中收到的数据。 JSON 包含问题和答案。我将它们插入的表是问题所在。在前端(网站),表格有代表问题的列名,看起来像这样。
Date | Address | City | Zip
现在问题出在数据库中,这些名称没有保留。列名只是 column1 column 2 等。所以它看起来像这样
Column1 | Column2 | Column3 | Column4
另一件事 - 当每个像这样的表被创建时,它会有不同的值,所以我不能硬编码关系。此外,这些表是通过从前端(网站)导入 excel 电子表格创建的。所以我想出了一个复制电子表格第 1 行和第 2 行的计划,这样当你导入它们时,数据库看起来像这样
id | Column1 | Column2 | Column3 | Column4
1 | Date | Address | City | Zip
所以现在我对需要插入的值有一些参考。现在所涉及的下一步将是。
- 根据第 1 行中的数据查询列名或将列名更改为第 1 行中的数据。
- 根据查询将数据插入正确的列
因此,总而言之,如果没有正确的信息,我无法将答案插入代表问题的正确列中。我个人认为更改PHP 中的列名会是更好的选择。但是我对PHP 和SQL 还是很陌生,所以我什至不知道这是否可能。任何帮助表示赞赏
编辑
为了更好地理解我目前发布的PHP 的问题。
$json = safe($_POST['assessment']);
/*
$json =
'{
"info":
[
"Date: 6-22-13",
"Phone #: (555) 555-5555",
"Address: 304 N. SCOTTSDALE RD.",
"City: SCOTTSDALE",
"Zip: 85251",
"State: AZ"
]
}';
*/
$data = json_decode($json,true);
$collection = array();
foreach($data['info'] as $piece) {
$info = explode(':', $piece);
$collection[] = array('question' => $info[0], 'answer' => $info[1]);
}
echo '<pre>'; print_r($collection); echo '</pre>'
【问题讨论】:
-
通常具有像“column1...column2...etc”这样的任意列名是非常糟糕的做法。我建议重命名它们。但是数据......数据是通过与字段标签混合而来的?
-
带有包含列信息的额外数据的 JSON 是什么样的?
-
@Raythe 我完全同意,我没有设计网站或数据库,我只是在处理它。这一切都是为了与我构建的 Android 应用程序进行通信。第二部分“数据与字段标签混合在一起?”答案是肯定的。这个 db imo 是一场灾难。这只是我在设计这个软件时遇到的许多问题中的最新一个。这是我的第一次,这也无济于事
-
@Barmar 发布了
JSON的示例。JSON的“问题”部分与列名应该是什么以及它在网站上的显示方式完全匹配。如果你的意思是别的,请解释 -
您写道,您将复制第 1 行和第 2 行,以提供
Column1和Date之间的对应关系。你发布的 JSON 在哪里?