In folgendem Script kann ich keinen Fehler finden. Dennoch wird nicht so agiert, wie ich es mir wünsche und meiner Meinung nach auch sein sollte.
Es gibt ein Formular und wenn man es sendet, kommt man zu einer Seite mit diesem Script. Der Sende-Button heißt 'intoDB'. Hier frage ich ab, ob er gedrückt wurde und wenn ja, dann sollen die Daten in die DB eingetragen werden. Das klappt auch.
Ruft man diese Seite direkt auf, dann werden alle, entsprechend der SQL-Anweisung, Einträge gelistet. Auch das klappt.
Nun soll es aber so sein, daß beides zusammen funktionert. Also mit Klick auf den Button der anderen Seite den Datensatz in die DB eintragen und danach alles auflisten. Das geht auch, aber gerade der hier neu eingetragenen Datensatz wird nicht mit übernommen. Diesen kann ich erst sehen, wenn ich die Seite reloade oder wieder direkt aufrufe. Also eingetragen wird er, aber nicht gleich direkt mit ausgegeben.
Wieso geht das nicht? Normalerweise muß das doch funktionieren. Ich dachte auch erst an ein Cache-Problem, aber selbst wenn ich alle Chaches ausschalte, ändert sich daran nichts.
Kann sich das bitte mal jemand anschauen?
PHP-Code:
protected function compile()
{
if($this->Input->get('intoDB'))
{
// echo "eingetragen";
// In DB schreiben
$time = time();
$arrIntoDB = array
(
'tstamp' => $time,
'sessionID' => session_id(),
'id' => $this->Input->get('id'),
'name1' => $this->Input->get('name1'),
'name2' => $this->Input->get('name2'),
'nummer' => $this->Input->get('nummer'),
'anzahl' => $this->Input->get(anzahl)
);
$insertId = $this->Database->prepare("INSERT INTO tl_kfz %s")->set($arrIntoDB)->execute()->insertId;
}
// echo "anzeigen";
// Inhalte aus DB für aktuelle Session auslesen
$objKFZ = $this->Database->execute("SELECT *, SUM(anzahl) AS anzahl
FROM tl_kfz
WHERE sessionID = '" . session_id() . "'
GROUP BY nummer");
$arrKFZ = array();
$total = $objKFZ->numRows;
if ($total == 0)
{
$this->Template->message_noEntry = "Noch keine Einträge vorhanden.";
}
while ($objKFZ->next())
{
$arrKFZ[] = array
(
'name1' => $objKFZ->name1,
'name2' => $objKFZ->name2,
'nummer' => $objKFZ->nummer,
'anzahl' => $objKFZ->anzahl
);
}
$this->Template->dataKFZ = $arrKFZ;
}
Lesezeichen