Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Zapytania do bazy danych
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich.
Mógłby mi ktoś powiedzieć dlaczego te zapytania nie grają ze sobą?

  1. $zapytanie = "INSERT INTO `portfolio` (`nazwa`, `tresc`, `adres_strony`, `technologia`, `data_wykonania`, `obrazek`, `adres`) VALUES ('".$nazwa."', '".$tresc."', '".$adres_strony."', '".$technologia."', '".$data_wykonania."', 'portfolia/".$plik_nazwa."', '/portfolio')";
  2. $idzapytania = mysql_query($zapytanie);
  3. $zapytanie2 = "SELECT LAST_INSERT_ID()";
  4. $idzapytania2 = mysql_query($zapytanie2);
  5. while ($wiersz = mysql_fetch_array($idzapytania2))
  6. {
  7. $wiersz['id'];
  8. }
  9. $zapytanie3 = 'UPDATE `portfolio` SET `numer`= "'.$wiersz['id'].'" `id`="'.$wiersz['id'].'"';
  10. $idzapytania3 = mysql_query($zapytanie3);


Działa tylko pierwsze. $zapytanie2 nie pobiera ostatnio dodanego rekordu co za tym idzie $zapytanie3 nie zostanie wykonane.
Proszę o pomoc.
Z góry dziękuje smile.gif
Blame
Bo pole nie nazywa się id tylko last_insert_id(), czyli powinno być $wiersz['last_insert_id()'].
pyro
  1. $zapytanie2 = "SELECT LAST_INSERT_ID()";
  2. $idzapytania2 = mysql_query($zapytanie2);
  3. while ($wiersz = mysql_fetch_array($idzapytania2))
  4. {
  5. $wiersz['id'];
  6. }


Cały ten kawałek kodu możesz zastąpić:

  1. $last_insert_id = mysql_insert_id();


Szybciej, krócej, łatwiej i przyjemniej.
adrianozo
  1. $zapytanie = "INSERT INTO `portfolio` (`nazwa`, `tresc`, `adres_strony`, `technologia`, `data_wykonania`, `obrazek`, `adres`) VALUES ('".$nazwa."', '".$tresc."', '".$adres_strony."', '".$technologia."', '".$data_wykonania."', 'portfolia/".$plik_nazwa."', '/portfolio')";
  2. $idzapytania = mysql_query($zapytanie);
  3. $zapytanie2 = "SELECT LAST_INSERT_ID()";
  4. $idzapytania2 = mysql_query($zapytanie2);
  5. while ($wiersz = mysql_fetch_array($idzapytania2))
  6. {
  7. $wiersz['last_insert_id()'];
  8. }
  9. $zapytanie3 = 'UPDATE `portfolio` SET `numer`= "'.$wiersz['last_insert_id()'].'" `id`="'.$wiersz['last_insert_id()'].'"';
  10. $idzapytania3 = mysql_query($zapytanie3);


Nadal to samo sad.gif

Cytat(pyro @ 6.02.2010, 21:58:53 ) *
  1. $zapytanie2 = "SELECT LAST_INSERT_ID()";
  2. $idzapytania2 = mysql_query($zapytanie2);
  3. while ($wiersz = mysql_fetch_array($idzapytania2))
  4. {
  5. $wiersz['id'];
  6. }


Cały ten kawałek kodu możesz zastąpić:

  1. $last_insert_id = mysql_last_insert_id();


Szybciej, krócej, łatwiej i przyjemniej.


No tak nie za bardzo:

Kod
Fatal error: Call to undefined function: mysql_last_insert_id() in /a/b/c/d/dodaj_do_portfolio.php on line 52
pyro
Przeczytaj co napisałem. Poza tym skrypt nie zadziała bo w 3 zapytaniu brakuje przecinka między kolumnami.

// edit

Mała pomyłka. powinno być mysql_insert_id(); bez `last`.
adrianozo
Dzięki wielkie smile.gif
POMÓGŁ LECĄ smile.gif
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.