• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed PHP PDO | Pobieranie wartości id z tabeli i przekazywanie jej do innego bloku try

VPS Starter Arubacloud
+2 głosów
603 wizyt
pytanie zadane 23 lutego 2016 w PHP przez molik Użytkownik (950 p.)
zamknięte 23 lutego 2016 przez efiku

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();
        }

 

komentarz zamknięcia: Rozwiązanie: http://php.net/manual/en/pdo.lastinsertid.php
komentarz 25 sierpnia 2016 przez Patryk Filipiak Początkujący (460 p.)
Widzę że przerobiłeś książkę PHP i MySQL od nowicjusza do wojownika ninja. Jak podobała ci się bo według mnie jest taka 5//10. Trochę słabe przykłady są w tej książce. Jaka jest twoja opinia.

Podobne pytania

0 głosów
0 odpowiedzi 104 wizyt
pytanie zadane 27 lipca 2017 w PHP przez kevin Mądrala (5,010 p.)
+1 głos
3 odpowiedzi 577 wizyt
0 głosów
1 odpowiedź 692 wizyt
pytanie zadane 30 grudnia 2017 w PHP przez kevin Mądrala (5,010 p.)

92,960 zapytań

141,922 odpowiedzi

321,158 komentarzy

62,295 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...