我有一个MySQL查询,带有以下代码:
$stmt_offer = $pdo->query("SELECT * FROM `offers` WHERE `fs` = '1' ORDER BY `id` DESC LIMIT 15");
foreach ($stmt_offer as $row):
$array_s['hbid'] = $row['ang_id'];
$array_s['title'] = $row['titel'];
$array_s['size'] = $row['qm'];
$array_s['description'] = $row['beschreibung'];
endforeach;
$array_object['response'] = $array_s;
$array_offer['offer'] = $array_object;
echo json_encode($array_offer);
代码可以找到,但我只得到一个结果。
我的输出:
{
"offer":
{
"response":
{
"hbid":"1234567",
"title":"Test",
"size":"100",
"description":"my_description"
}
}
}
foreach代码中有什么错误?
每次循环时都在覆盖$ array_s。
试试这个
$stmt_offer = $pdo->query("SELECT * FROM `offers` WHERE `fs` = '1' ORDER BY `id` DESC LIMIT 15");
$i = 0;
foreach ($stmt_offer as $row):
$array_s[$i]['hbid'] = $row['ang_id'];
$array_s[$i]['title'] = $row['titel'];
$array_s[$i]['size'] = $row['qm'];
$array_s[$i]['description'] = $row['beschreibung'];
$i++;
endforeach;
$array_object['response'] = $array_s;
$array_offer['offer'] = $array_object;
echo json_encode($array_offer);
我在这里做的是:我已经设置了一个$ i计数器,因此每次您将值循环到数组中时,我都会指定它的位置。以前,您每次循环时都在覆盖阵列,因此结果将是您查询的最后一个项目。