Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pobieranie ostatniego rekordu
Forum PHP.pl > Forum > Przedszkole
lol99
witam
chce pograć ostatni rekord z tabeli news
index.php?page=news&id=numer
gdy id będzie 1 wyświetli się ostatni news, gdy 2 to przedostatni, itd
  1.  
  2. $zapytanie = "SELECT text, tytul, data, autor FROM news ";
  3. $idzapytania = mysql_query($zapytanie);
  4. while ($wiersz = mysql_fetch_row($idzapytania))
  5. {
  6. //wyswietlanie
  7. }

proszę o podpowiedz
Soulast
  1. if (isset ($_GET['id'])) { $newsid = (int)$_GET['id'];}
  2.  
  3. $zapytanie = "SELECT text, tytul, data, autor FROM news WHERE id='$newsid' ";
  4. $idzapytania = mysql_query($zapytanie);
  5. while ($wiersz = mysql_fetch_row($idzapytania))
  6. {
  7. //wyswietlanie
  8. }


Wykonujesz to używając GET winksmiley.jpg
lol99
mi chodzi o taka jakby paginacje,
załóżmy, ze ostatni news ma id 18 po wywołaniu strony
index.php?page=news&id=1
ma wyświetlić się właśnie ostatni wpis czyli id 18
Mlodycompany
no to sprawdzasz ile jest rekordów w tabeli, odejmujesz wartość GET['id'], dodajesz do wyniku 1 i masz w tym momencie id rekordu który chcesz wyświetlić np. rekordów jest 18, GET['id'] = 2: 18 - 2 + 1 + 17 czyli przedostatni. Rozwiązanie trochę łopatologiczne, ale z pewnością działa
hondek
Jeżeli chcesz wyświetlić ostatni rekord to po prostu posortuj tabele malejąco DESC i daj limit 1 np.
  1. SELECT * FROM news ORDER BY id DESC LIMIT 1
lol99
tak, ale co jeśli ostatni ma id99
a przed ostatni 96?
hondek
Ano właśnie to, że jest coś takiego jak offset winksmiley.jpg czyli jak chcesz przedostatni to wyciągasz jeden rekord posortowanej tabeli malejąco zaczynając od 2 rekordu czyli :
  1. SELECT * FROM news ORDER BY id DESC LIMIT 1 OFFSET 2
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.