Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ostatni dopisany rekord do bazy
Forum PHP.pl > Forum > PHP
fusilis
Jak odczytac ostatni dopisany rekord do bazy ?
Co robie zle :

  1. <?php
  2. $sql = mysql_connect(&#092;"ppp\",\"root\",\"ktosiek\");
  3. mysql_select_db (tabaza);
  4. $myrow = mysql_query(&#092;"SELECT MAX(id) as counter FROM biblio\");
  5. echo &#092;"\".$myrow[counter].\"\";
  6. ?>


Z gory dzieki za pomoc.
[PL]Neon
Ja bym to zrobił jakoś tak:

  1. <?php
  2.  
  3. // Baza danych
  4. mysql_connect ($dbhost, $dbuser, $dbpass)
  5. or die ('Nie mogłem połączyć się z MySQL: ' . mysql_error() );
  6. mysql_select_db ($dbname)
  7. or die ('Nie mogłem wybrać bazy danych: ' . mysql_error() );
  8.  
  9. // Zapytania
  10. $query = &#092;"SELECT id FROM bibilo ORDER BY id DESC LIMIT 1\";
  11. $query2 = mysql_query($query);
  12. $query3 = mysql_fetch_array($query2);
  13.  
  14. // Echo
  15. echo $query3['id'];
  16.  
  17. // EoMySQL
  18.  
  19. ?>


An'Should'Work!

BTW. Piszę na szybko, może być błąd...

BTW2.
Po 1sze te twe zapytanie było dziwne (MySQL znam na tyle ile mi potrzeba... więc mogę się mylić)
Po 2gie dziwnie te echo zrobiłeś :
- zacząłeś wyciągać z zapytania tablicę, mimo że jej nie zrobiłeś...
- po co te cudzysłowia? po co łączniki? wystarczyło samą zmienną z tablicą... jak już
fusilis
dzieki,a jak bym chcial zeby zwrocil mi caly wiersz ....moze mala podpowiedz
[PL]Neon
Nie do końca rozumiem o co Ci chodzi... Ale się domyślam i brakuje mi struktury twojej bazy danych... na razie wiem, że masz tylko id...Napisz dokładniej, a zedytuje mój post i napiszę odpowiedź smile.gif

Bo jeżeli chodzi Ci o to, aby podało wszystkie dane ostatniego id, to wystarczy wyciągać dane tablicą... Ale trzeba SELECT id zamienić na SELECT *, np. (strzelam z nazwami pól MySQL) :

  1. <?php
  2.  
  3. // Baza danych
  4. mysql_connect ($dbhost, $dbuser, $dbpass)
  5. or die ('Nie mogłem połączyć się z MySQL: ' . mysql_error() );
  6. mysql_select_db ($dbname)
  7. or die ('Nie mogłem wybrać bazy danych: ' . mysql_error() );
  8.  
  9. // Zapytania
  10. $query = &#092;"SELECT * FROM bibilo ORDER BY id DESC LIMIT 1\";
  11. $query2 = mysql_query($query);
  12. $query3 = mysql_fetch_array($query2);
  13.  
  14. // Echo
  15. echo 'Ostatni news:<br />- ID: ' . $query3['id'] . '<br />- Treść: ' . $query3['tresc'] . '<br />- Data: ' . $query3['data_rejestracji'];
  16.  
  17. // EoMySQL
  18.  
  19. ?>


Już tłumaczę...
- id na *, ponieważ chcemy wyciągnąć wszystkie pola tam, gdzie id jest ostatnie... gdyby było id, moglibyśmy wyciągnąć tylko ID
- to co między klamerkami w $query3 to pola MySQL wyciągnięte w formie tablicy... po więcej zapraszam do lektury mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual

BTW. mogę się mylić ;P

Do tsufu - masz rację... jakby mi gość podał pole typu registration_date to bym jego użył...
tsufu
  1. SELECT *
  2. FROM bibilo ORDER BY id DESC LIMIT 1


ogolnie to tak
aczkolwiek staraj sie nie uzywac jako klucza glownego w nazwie kolumny samego id, zdarza sie ze jest to blokowane
jesli chcesz znac id ostatniego wpisu zainteresuje sie mysql_insert_id() sorki moj blad
mysql_insert_id -- Podaje numer ID wygenerowany podczas ostatniej operacji INSERT
a nie jak podalem last_id z pamieci pisalem winksmiley.jpg aczkolwiek lepiej w samym apytaniu sql to wyciagac ...

apytaniw powaysze onacza
pobierz wszystko z tablicy bil... poszereguj od najwyzszego do najmniejszego pobierz tylko jeden wiersz
problem polega na tym jesli wstawisz cos o id=10 potem znowu wstawisz cos (id=11) usuniesz o id=10 i ktos powiedzmy uporzadkuje baze danych to wtedy jesli cos dodasz to znowu o id=10 wiec nie bedzie to pozycja ze tak powiem najmlodsza
jesli cos to zdrugiej strony oplaca sie trzymac timestamp
ale to tak dla hardcorowcow winksmiley.jpg

Uzywaj tagow SQL - SongoQ
SongoQ
@fusilis Przeciez @[PL]Neon Ci podal rozwiaznie, wystarczy ze wymienisz pola lub wstawisz * i wyciagniesz z tablicy.
fusilis
Ok, dzieki
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.