作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 android 应用程序中有 3 个 arrayList。我通过 android volley POST 请求将它们发送到 php,例如:
public RequestPostBook(long id, ArrayList<String> bookNames, ArrayList<String> bookAuthors, ArrayList<String> subjects,
String date,Response.Listener<String> listener)
{
super(Method.POST, REGISTER_REQUEST_URL, listener, null);
JSONArray bookNamesJSON = new JSONArray(Arrays.asList(bookNames));
JSONArray bookAuthorsJSON = new JSONArray(Arrays.asList(bookAuthors));
JSONArray subjectsJSON = new JSONArray(Arrays.asList(subjects));
params = new HashMap<>();
params.put("candidateId", id + "");
params.put("bookName",bookNamesJSON.toString());
params.put("authorName",bookAuthorsJSON.toString());
params.put("subjectName",subjectsJSON.toString());
params.put("reqDate",date);
}
@Override
public Map<String, String> getParams() {
return params;
}
现在我必须使用 php 中 arrayList 中的值来执行一系列类似的查询。我正在 php 中尝试:
$candidateId=$_POST["candidateId"];
$reqDate=$_POST["reqDate"];
$subjectName=json_decode($_POST["subjectName"]);
$bookName=json_decode($_POST["bookName"]);
$authorName=json_decode($_POST["authorName"]);
$i=0;
foreach($subjectName as $value)
{
$subject=$subjectName[$i];
$book=$bookName[$i];
$author=$authorName[$i];
$stmt = $conn->prepare("INSERT INTO BookRequisition VALUES (?,?,?,?,?);");
$stmt->bind_param("dssss", $candidateId, $subject, $book, $author, $reqDate);
$stmt->execute();
$i++;
}
当我通过应用程序运行此操作时,这就是我在 BookRequisition 表中得到的内容:
12100116050(candidateId) Array(subjectName) Array(bookName) Array(authorName) 2019-03-08(reqDate)
任何人都可以帮助我如何将正确的值发送到表中吗?提前致谢。
最佳答案
请尝试以下代码。
<?php
$candidateId = $_POST["candidateId"];
$reqDate = $_POST["reqDate"];
$subjectName = json_decode($_POST["subjectName"])[0];
$bookName = json_decode($_POST["bookName"])[0];
$authorName = json_decode($_POST["authorName"])[0];
foreach ($subjectName as $i => $subject) {
$stmt = $conn->prepare("INSERT INTO BookRequisition VALUES (?,?,?,?,?);");
$stmt->bind_param("dssss", $candidateId, $subject, $bookName[$i], $authorName[$i], $reqDate);
$stmt->execute();
}
?>
注意:您应该对从您的设备发布的数据进行适当的验证。
关于php - 在 php 中循环遍历 JSONArray 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55056910/
我是一名优秀的程序员,十分优秀!