[英]How to make an multidimensional array from this query
查询:
SELECT
c.id campaign_id,
c.campaign_title,
c.start_date campaign_start_date,
c.end_date campaign_end_date,
cat.id category_id,
cat.category_title,
n.id nominee_id,
n.title nominee_title,
u.id voter_id,
u.fullname voter_name
FROM
campaign c
LEFT JOIN categories cat ON cat.campaign_id = c.id
LEFT JOIN category_nominees cn ON cn.category_id = cat.id
LEFT JOIN nominees n ON n.id = cn.nominee_id
LEFT JOIN category_votes cv ON cv.campaign_id = c.id
AND cv.category_id = cat.id
AND cv.nominee_id = n.id
LEFT JOIN users u on u.id = cv.user_id
WHERE
c.active = 1
ORDER BY
u.fullname,
c.campaign_title,
cat.category_order,
cat.category_title,
cn.nominee_order,
n.title
通过该查询,我将使用PHP在逻辑上将所有这些数据存储在嵌套的关联数组中,然后每当遍历数据或需要引用数据时,都将引用数组指针,而不是每次都进行新查询。
例如:$ campaigns [$ campaign_id] ['categories'] [$ category_id] ['nominees'] [$ nominee_id] ['title']是一种可能的方法。
我试过了
$rows = [];
while($row = mysqli_fetch_array($query))
{
if (!isset($rows[$row['campaign_id']])) {
$rows[$row['campaign_id']] = array(
'campaign_id' => $row['campaign_id'],
'category_id' => array()
);
}
array_push ($rows[$row['campaign_id']]['category_id'],array(
'category_id' => $row['category_title'],
'nominees_id' => $row['nominee_id']
));
}
我不知道。 任何帮助将不胜感激!
$campaigns = array(); while($row = mysqli_fetch_array($query)) {
$campaign_id = $row['campaign_id'];
$category_id = $row['category_id'];
$nominee_id = $row['nominee_id'];
$campaigns[$campaign_id]['categories'][$category_id]['nominees'][$nominee_id]['title']
= $row; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.