tl; dr - Нажатие на массив (по $ array [] или $ array [$ id] не работает в Kohana 3, это дает пустую белую страницу.
Я использую Kohana (3), это мой первый опыт работы с MVC, и пока все отлично; однако я работаю с базой данных и столкнулся со странной проблемой, на которую я надеялся, что кто-то сможет пролить свет:
Мой рабочий процесс выглядит следующим образом, чтобы дать вам представление о моих проблемах, связанных с:
$sql = "SELECT table1.row1, max(table2.row1) as `maxAwesome` FROM table1, table2 WHERE table1.id=table2.table1id GROUP BY table1.id";
$table1Results = DB::query(Database::SELECT, $sql)->execute();
$masterArray = array();
foreach ($table1Results as $result1)
{
$sql = "SELECT * FROM table2 WHERE table2id='" . $result1['id'] . "' AND column > 21";
$table2Results = DB::query(Database::SELECT, $sql)->execute();
$subArray = array();
foreach ($table2Results as $result2)
{
$subArray[$result1['id']] = $result2;
// Even had just $subArray[] = array("whatever");
}
$masterArray[] = array("table1Data" => array(), "table2Data"=> $subArray);
}
Я делаю запрос, в котором я запускаю пару функций max / min, а затем выполняю запрос в foreach, выполняя еще один выбор для создания основного массива данных, отформатированных так, как я хочу, и весь SQL и т. Д. Работает нормально и денди; однако проблема возникает, когда я нажимаю на массив.
Кажется, всякий раз, когда я нажимаю на массив, выполняя либо $ array [] = array ("data"); или указав ключ $ array [$ id] = array ("data"); Kohana дает мне прямую пустую страницу, без ошибок, без вывода и т. Д.
Иногда я получаю ошибку Kohana, указывающую на то, что ключ не существует (да, я его создаю), но по большей части вывод белый.
Почему это происходит? Я ошибаюсь?
Заранее спасибо.
Ясность править:
Если не считать моих грубых ошибок в SQL, проблема заключается в построении вторичного массива, например:
$queryStores = "SELECT stores.store_id, stores.title, max(product.discount) as `max_discount`, min(product.discount) as `min_discount`
FROM stores, products
WHERE products.store=stores.store_id
GROUP BY products.store";
$stores = DB::Query(Database::SELECT, $queryStores)->execute();
$formattedStores = array();
if (count($stores))
{
foreach ($stores as $store)
{
$formattedStores[$store['store_id']] = array(
"title" => $store['title'],
);
// Same result if just doing $formattedStores[] = array();
// Problem goes away should I do:
// $formattedStores = array("This works");
//
}
}
echo "<pre>";
print_r($formattedStores);
echo "</pre>";
При этом не печатается массив, а просто отображается пустая страница; однако, если я изменю его, просто переустановив массив $ formattedStores на что-то, я получу результат. Что такого в том, что толкает массив, что вызывает проблему, возможно, ошибку Kohana?
Спасибо