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, указывающую на то, что ключ не существует (да, я его создаю), но по большей части вывод - белый.
Почему это происходит? Я ошибаюсь?
Заранее спасибо.
Четкость редактирования:
Мои ошибки в стороне, проблема заключается в создании вторичного массива, например:
<code> $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 "
";
Это не печатает массив, оно просто дает пустую страницу; однако, если я изменяю его, чтобы просто переустановить массив $ formattedStores на что-то, я получаю вывод. Что толкает массив, вызывающий проблему, возможно, ошибку Kohana?
Спасибо