Cześć chciałbym Was zapytać o pewną banalną sprawę ale jakoś nie mogę sobie z tym poradzić. Chodzi mi o pobranie ostatniego id z tabeli i przekazanie go dalej.
Generalnie chodzi o to, że najpierw zapisuje dowcip do tabeli joke o polach id, joketext, jokedate, author, id. Jednak id zapisuje jako null gdyż pole posiada atrybut auto_increment.. w sumie w ogóle mogłem je pominąć, ale ok to przebiega sprawnie.
W drugim bloku try chciałbym właśnie pobrać tą wartość id automatycznie przyporządkowaną i wrzucić go do trzeciego bloku try gdzie właśnie jest zapisywanie do tabeli jokecategory z polami jokeid, categoryid. Pomoże mi ktoś?
// Dodaj dowcip do tabeli joke
try {
$sql = 'INSERT INTO joke (id, joketext, authorid, jokedate) VALUES (NULL, :joketext, :authorid, CURDATE())';
$s = $pdo->prepare($sql);
$s->bindValue(':joketext', $_POST['joketext']);
$s->bindValue(':authorid', $_POST['author']);
$s->execute();
} catch (PDOException $e) {
$dangerMsg = '<strong>Wystąpił błąd:</strong> ' . $e->getMessage() . '<br><strong>W linii:</strong> ' . $e->getLine() . '<br> <strong>W pliku:</strong>' . $e->getFile();
include 'layout/alerts/danger-alert.html.php';
exit();
}
// Pobieranie ostatniego wyniku id z tabeli joke
try {
$sql = 'SELECT id FROM joke ORDER BY id DESC LIMIT 1';
$result = $pdo->query($sql);
while($row = $result->fetch()){
$lastIds[] = $row['lastid'];
}
} catch (PDOException $e) {
$dangerMsg = '<strong>Wystąpił błąd:</strong> ' . $e->getMessage() . '<br><strong>W linii:</strong> ' . $e->getLine() . '<br> <strong>W pliku:</strong>' . $e->getFile();
include 'layout/alerts/danger-alert.html.php';
exit();
}
// Dodaj dowcip do tabeli jokecategory
try {
foreach($lastIds as $lastId):
// Pobieranie ostatniego wyniku id z tabeli joke
$sql = 'INSERT INTO category (jokeid, categoryid) VALUES ('.$lastId.',:category)';
$s = $pdo->prepare($sql);
$s->bindValue(':category', $_POST['category']);
$s->execute();
endforeach;
} catch (PDOException $e) {
$dangerMsg = '<strong>Wystąpił błąd:</strong> ' . $e->getMessage() . '<br><strong>W linii:</strong> ' . $e->getLine() . '<br> <strong>W pliku:</strong>' . $e->getFile();
include 'layout/alerts/danger-alert.html.php';
exit();
}