Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazanie zmiennej last_insert_id()
Forum PHP.pl > Forum > PHP
malyto
Witam
Mam funkcję która dopisuje do bazy nową pozycję z danych z pobranych z formularza. Po czym aby uzyskać automatycznie przydzielony numer wpisu wywołuje funkcję LAST_INSERT_ID ()
  1. <?php
  2. function add_book () {
  3. global $host, $user, $passwd, $database, $Title, $Lang, $FileType, $Size, $Description, $WordKeys, $SessionUser;
  4. dbdata();
  5. $query = &#092;"SELECT user_id FROM user WHERE login='$SessionUser'\";
  6. $result = mysql_query($query);
  7. while($row = mysql_fetch_array($result)) {
  8. $query2 = &#092;"INSERT INTO book VALUES (NULL,'$Title','$Lang','$FileType','$Size','$Description','$WordKeys',\".$row['user_id'].\",'brak',NULL)\";
  9. $result2 = mysql_query($query2);
  10. }
  11. $query3 = &#092;"SELECT LAST_INSERT_ID()\";
  12. $result3 = mysql_query($query3);
  13. while($row = mysql_fetch_array($result3)) {
  14. mkdir(&#092;"books/\".$row['last_insert_id()'].\"\", 0777);
  15. $PATH_FILE = &#092;"books/\".$row['last_insert_id()'].\"/\";
  16. echo &#092;"<form enctype=\"multipart/form-data\" action=\"filesend.php\" method=\"post\">\";
  17. echo &#092;"<INPUT TYPE=HIDDEN NAME=\"PATH_FILE\" VALUE='$PATH_FILE'>\";
  18. $book_id = &#092;"\".$row['last_insert_id()'].\"\";
  19. echo &#092;"<INPUT TYPE=HIDDEN NAME=\"book_id\" VALUE='$book_id'>\";
  20. }
  21. if($result2) {
  22. echo '<div>Dane zostały zapisane do bazy. <br> Wczytaj teraz plik z ebookiem</div>';
  23. }
  24. else {
  25. echo '<div>Wystąpił problem dane nie zostały dopisane do bazy';
  26. }
  27. }
  28.  
  29. ?>

Problem polega na tym, że przypisanej zmiennej $book_id LAST_INSERT_ID() nie mogę użyć w kolejnej funkcji nastepującej za tą.
  1. <?php
  2. function add_author ($x,$y) {
  3. global $host, $user, $passwd, $database, $book_id;
  4. dbdata();
  5. $query = &#092;"SELECT author_id FROM author WHERE fname='$x' AND lname='$y'\";
  6. $result = mysql_query($query);
  7. while($row = mysql_fetch_array($result)) {
  8. echo &#092;"\".$row['author_id'].\"\";
  9. $id = &#092;"\".$row['author_id'].\"\";
  10. }
  11.  
  12. $query2 = &#092;"INSERT INTO authorbook VALUES ('$id','$book_id')\";
  13. $result2 = mysql_query($query2);
  14. }
  15.  
  16. ?>

I nawet próbując wypisać tę funkcję poprzez echo $book_id nic się nie pojawia na stronie.
CO ROBI ŹLE??
Dlaczego ta zmienna nie pojawia się nawet przy wywołaniu echem??
Dzięki za pomoc
Mały
sobstel
spróbuj SELECT LAST_INSERT_ID() nazwa i odwoluj sie przez $result['nazwa'] albo po prostu uzyj funkcji php mysql_insert_id
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.