【发布时间】:2019-03-20 13:18:38
【问题描述】:
我的问题是:
我将表连接在一起,有些表有多个我应该获取的数据,但我的 JSON 对象只检索一个。我认为这样做的原因是因为while循环也循环通过我的主表,获取所有内容并停止循环,考虑到没有任何东西可以循环(我根据我的数据库中的id获取我的数据,这些是@ 987654322@等)。
所以我的问题是:
我怎样才能遍历我的主表(一次),但继续遍历连接的表并将这些值插入到它们的“自己的”数组中?
这就是我现在拥有的:
$sqli = "SELECT event.*, typex.id, typex.type
FROM event
JOIN typex ON event.id = typex.id
WHERE event.id = ?";
mysqli_stmt_bind_param($stmt, 's', $editID); //fetch data based on ID
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
$data['all'] = array($row);
$data['type'] = array($row['type']);
}
//Echo data as JSON
echo json_encode($data);
所以给你一个想法:
$data['all'] 是包含所有 $row 的数组(这样我就可以轻松地从我的主表中访问列)
$data['type'] 但是应该只保存表中的数据:typex(typex 是一个连接表)。
一个例子:
您有一个名为:stack 的主表和一个您加入的表:typex。
考虑到主表在id 和unique 上有一个auto_increment,您想将表stack 中ID 为5 的所有行插入到数组$data['all'] 中,它将循环一次...但现在是我失败的部分,需要你的帮助:
在您的连接表中:typex 您有 2 行 ID 为 5。这 2 行应该被提取并插入到数组 $data['type'] 中。这是如何实现的?
【问题讨论】:
-
我认为您需要从 typex 获取数据并加入事件,以便它通过所有 typex 结果。或者做两个单独的查询,一个用于事件,一个用于所有 typex 事件。
-
你将如何通过 ajax 获取它?这意味着我必须进行多次 ajax 调用。
-
不,您可以一次调用,只需将多个查询添加到上面的代码中即可。
-
我认为您可能只需要在尝试绑定值并执行它之前准备该查询
-
@RiggsFolly 恕我直言,但我并没有那么迟钝,我考虑到向你们展示它是毫无用处的,所以我把它删掉了。因为它没有任何价值。我理解这种误解。\