Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wartości ostatnich wierszy tabeli
Forum PHP.pl > Forum > Przedszkole
lunex
Witam, potrzebuję pobrać i porównać dowolną ilość ostatnich wpisów z tabeli czy są takie same.

  1. <?php
  2. $last = 'SELECT data FROM table ORDER BY id DESC LIMIT 10';
  3. $wynik_last = $polaczenie->query($last);
  4. ?>

pobiera to 10 ostatnich wpisów i teraz nie mam pojęcia jak porównać czy wszystkie są takie same.
Bardzo proszę o pomoc smile.gif
kajzur
Użyj pętli do tego smile.gif np while smile.gif
lunex
próbowałem z pętlą tylko dalej nie wiem jak porównać czy wszystkie wyciągnięte elementy mają takie same wartości...
john_doe
kajzur dobrze pisze smile.gif

ale taki pomysł:

daj z tego selecta DISTINCT i jeśli mysql_num_row < mniejsze niż Twój LIMIT wtedy coś jest równe. a gdy zwróci 1 to wszystkie są równe smile.gif
lunex
  1. <?php
  2. $last = 'SELECT COUNT(DISTINCT "data") FROM table ORDER BY id DESC LIMIT 10';
  3. $wynik_last = $polaczenie->query($last);
  4. $ile_znalezionych = $wynik_last->num_rows;
  5. echo $ile_znalezionych;
  6. ?>


Za każdym razem zwraca "1" pomimo że wszystkie komórki się różnią zawartością... blinksmiley.gif
Gdzie mam błąd??
nospor
nie: DISTINCT "data"
a : DISTINCT data

przeciez data to pole a nie tekst

ps: koleny blad to taki, ze count() w mysql powoduje zwrocenie jednego rekordu. wiec ->num_rows zawsze da ci jeden rekord.
Zwrocony rekord zawiera informację o liczie rekordow winksmiley.jpg
lunex
kurcze... jednak nie działa mi to poprawnie

SELECT DISTINCT data FROM table ORDER BY id DESC LIMIT 3

jak napisać zeby najpierw limitowalo do np. 3 ostatnich komorek a dopiero potem pobierało z nich te niepowtarzalne?
nospor
  1. SELECT DISTINCT DATA FROM (SELECT DATA FROM TABLE ORDER BY id DESC LIMIT 10 ) podsel
lunex
dzięki, sprytne to. kliknalem pomogl snitch.gif
TheaSiX
a to Ci psikus.. mnie jakoś nie chce to działać..

  1. <?php
  2. require("db.php");
  3. $result = mysql_query("SELECT DISTINCT gallery_number FROM (SELECT * FROM pictures ORDER BY gallery_number DESC LIMIT 20)");
  4. while($row = mysql_fetch_array($result)){
  5.  $g_no = $row["gallery_number"];
  6.  print " GALLERY NUMBER = $g_no<br>";
  7. }
  8. ?>


Robię to na przykładzie swojej galerii zdjęć. W tabeli jest unikalny ID każdego zdjęcia + ID galerii. W ostatnich 20 wierszach, mam dwie możliwości (g_no = 14 i g_no = 15). Jednak co widzę po wykonaniu tego skryptu?

  1. <?php
  2. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/test.php on line 5
  3. ?>
nospor
jakbys wyswietlil sobie blad zapytania (mysql_error()) i porownal swoje zapytanie z moim, to moze bys dojrzal, ze czegos w zapytaniu u ciebie brakuje winksmiley.jpg
TheaSiX
przyjąłem do wiadomości, poprawiłem, zadziałało.. lekcja nauczona 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.