Я пытаюсь использовать PHP для логического хранения всех этих данных в вложенных ассоциативных массивах, а затем всякий раз, когда я просматриваю данные или должен ссылаться на данные, я хотел бы обратиться к указателю массива а не делать новые запросы каждый раз.Настройка PHP Query во вложенный массив
Например:
Мой запрос
$query = $db->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
") or die(mysqli_error());
и им пытаются создать вложенную массив как
$array = array() ;
while($row = mysqli_fetch_assoc($query)) {
$array[$row['campaign_id']] = $row['campaign_id'];
$array[$row['campaign_id']]['campaign_title'] = $row['campaign_title'];
$array[$row['campaign_id']]['campaign_start_date'] = $row['campaign_start_date'];
$array[$row['campaign_id']]['campaign_end_date'] = $row['campaign_end_date'];
$array[$row['campaign_id']]['campaign_title'] = $row['campaign_title'];
$array[$row['campaign_id']]['category_id'] = $row['category_id'];
$array[$row['campaign_id']]['category_id']['category_title'] = $row['category_title'];
}
Поэтому, когда я указываю:
$array[2][3]['category_title']
Он напечатает категория заголовок
Есть ли у вас идеи? Я буквально был в нем месяцами и не могу понять.
Sry, но я не понимаю вообще, что вы делаете. Не могли бы вы показать нам короткий пример результирующего массива, который вы хотите? – Unex
Вы уверены, что SQL-запрос вовлечен в проблему, или это просто доступ к значениям в массивах? – mins