Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]wybieranie najnowszych
Forum PHP.pl > Forum > Przedszkole
smagul
mam tabelkę z której muszę pobrać pięć najnowszych wpisów, po jednym dla każdego artykułu oraz bieżące wartości dla tych wierszy.
w tabelce mam id, name, date i value.

  1. SELECT name, value FROM TABLE WHERE name IN('name1', 'name2', 'name3', 'name4', 'name5') GROUP BY name ORDER BY date ASC


i otrzymuję po jednym wierszy każdego elementu ale ze złą wartością.
thek
Najpierw obie posortuj malejąco tablicę wpisów zanim zaczniesz grupować smile.gif Grupowanie bowiem występuje PRZED porządkowaniem. Przykład?
  1. SELECT * FROM (SELECT name, value FROM tabela WHERE name IN('name1', 'name2', 'name3', 'name4', 'name5') ORDER BY date DESC) AS t GROUP BY t.name
Ewentualnie wariacja tego.
Zajęczyca
To może żeby nie zakładać nowego tematu - równierz mam problem z pobieraniem ostatnio dodanych wpisów. Mój kod wygląda następująco:

  1. function main()
  2. {
  3. $db = connection(); //polaczenie z baza
  4. $lastph = ("SELECT MAX(Id) FROM usr"); //index o najwyzszej wartosci
  5. $execute = mysql_query($lastph, $db);
  6. $wynik = mysql_result($execute,0,0); //pobieramy wynik zapytania
  7. $id = $wynik['Id']; //zapisujemy do zmiennej (bo tak mi wygodnie)
  8. $i=20; //to ograniczenie ma sprawic ze zobaczymy tylko 20 ostatnio dodanych rekordow
  9. while($i>0)
  10. {
  11. $find = ("SELECT * FROM usr WHERE Id='$id'"); //pobieramy dane dla aktualnej wartosci indexu
  12. $exe = mysql_query($find, $db);
  13. $res = mysql_fetch_array($exe); //tablica z danymi
  14. $login = $res['login']; // pobieramy jakies informacje
  15. if ($res['login']!='') //jesli niektore wartosci w tym rekordzie sa puste to go pomijamy
  16. { //nie sa puste to wyswietlamy jakies informacje
  17. echo'sialala '.$index.'';
  18. }
  19. $id--; //zmniejszamy wartosc indexu
  20. $i--; //zmniejszamy i
  21. }


Problem jest następujący:
Gdy posiadam wpisy o indexach 1-9 to pętla działa jak marzenie. Problem zaczyna się od 10 rekordu wzwyż: gdy mam wpisy o indexach 10-19, wyświetla się tylko jeden, ten spod indexu 1, analogicznie sytuacja ma się dla indexów 20-29 (wyświetla się tylko rekord spod indexu 2) itd.

Nie mam zielonego pojęcia dlaczego tak jest. Index w bazie ma atrybuty AUTO_INCREMENT PRIMARY_KEY NOT NULL INT(10).
Szukam jakiegoś rozwiązania od dłuższego czasu, niestety na nic nie wpadłam, z czego wnioskuję, że rozwiązanie jest na tyle proste, że nie ma sensu nawet o tym gdziekolwiek pisać;-)
HELP!;-)



Edit: Ok już nie trzeba, zapytanie było źle sformułowane, już wsio działa ;-)
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.