Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazanie zmiennej last_insert_id()
malyto
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 14.04.2005
Skąd: Śrem

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
sobstel
post
Post #2





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


spróbuj SELECT LAST_INSERT_ID() nazwa i odwoluj sie przez $result['nazwa'] albo po prostu uzyj funkcji php mysql_insert_id


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:07