fetchAll() to array → undeclared column
- MW
- Člen | 626
Zdravím a prosím o radu,
Mám následující kód a ne a né v tom podcyklu rozšířit pole
o actions[].
Už jsem se v tom zamotal a asi dělám triviální chybu, ale
nevidím ji..
Moc díky za nakopnutí :)
public function getRides($from, $to) {
$results = $this->database->query("SELECT e.id,
CONCAT_WS(':', e.date, e.drivers_id, e.trucks_id, e.codrivers_id, e.trailers_id) AS ident
FROM rides e WHERE date BETWEEN ? AND ?", $from, $to)->fetchAll();
foreach ($results as $result) {
$rides[$result["ident"]] = $result;
$actions = $this->database->query("SELECT * FROM actions WHERE rides_id = ?", $result['id'])->fetchAll();
foreach ($actions as $item) {
$rides[$result['ident']]['actions'][] = $item; //Cannot read an undeclared column 'actions'
}
}
return $rides;
}
- Ondřej Kubíček
- Člen | 494
není nic jednoduššího než si to oddebugovat a podívat se co tam máš
ale jinak tady nastavuješ něco
$rides[$result["ident"]] = $result;
a pak tam voláš klíč actions, který ale nikde nemáš, odkud by se asi tak měl vzít?
Editoval Ondřej Kubíček (20. 5. 2018 12:19)
- MW
- Člen | 626
Pokud to provedu takto:
$rides[$result['ident']]['actions'] = $item;
a dumpnu, tak mě to přidá klíč ACTION s hodnotou $item, to je v pořádku.
Hodnot je ale více a proto to
$rides[$result['ident']]['actions'][]
což mě ale nefunguje…
stejně jako ručně přidaný iterator
$rides[$result['ident']]['actions'][$i]
vždy pak nastává „Cannot read an undeclared column ‚actions‘“
Co mě uniká prosím?
Editoval MW (20. 5. 2018 14:05)
- Ondřej Kubíček
- Člen | 494
uniká ti to, jak se pracuje v php s poli
co to upravit nějak takhle
$rides[$result["ident"]] = ['result' => $result, 'actions' => []];
$rides[$result['ident']]['actions'][] = $item;
pak budeš mít pod tím klíčem $result["ident"]
pole o dvou
položkách, první result a druhé pole actions