Skocz do zawartości

Mysql


gnysek

Rekomendowane odpowiedzi

  • Administratorzy

Na początek załóżmy, że mamy tabelę z takimi polami:

id,id_cat,tresc,data, - gdzie id jest auto_increment i wg. niego tabela się sortuje, id_cat oznacza numer jakiejś tam kategori, tresc wiadomo a data to data utworzenia tego rekordu.

 

I teraz chciałbym pobrać z tabeli 10 OSTATNICH rekordów z tabeli (wg. daty DESC), ale żeby wśród tych 10 nie powtarzał się 2 razy żaden z numerów id_cat (czyli chciałbym poprostu z każdego działu jeden najnowszy rekord, ale załóżmy, że nie wiemy czy maksymalny id_cat to 10 czy 9999 :P)

 

Ciekaw jestem czy coś takiego się da...

 

(oczywiscie php, więc można używać nie tylko skladny Sqla, ale należy wtedy założyć, że może kiedyś być tylko 1 rekord w bazie)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
  • Administratorzy

dla potomnych: to zapytanie to GROUP BY nazwa_tabeli

jeżeli napiszemy np. GROUP BY data, to ukaże się nam tylko pierwszy rekord jeżeli są dwa lub więcej z takim samym polem data.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Wykorzystałem to na miom wlasnym forum w nieczytanych postach.

$szukaj_nieczytanych=mysql_query("SELECT * FROM read_history WHERE user_id='$gid' GROUP BY id_post");

gdzie $gid oznacza numer użytkonika aktualnie przegladającego stronę.

Tabela read_history składa się z pól: id, id_forum (oznacza numer kategori na forum), id_post (oznacza numer działu w kategori), id_post (oznacz numer tematu), id_reply(oznacza numer odpowiedzi, ale ogólnie nie w temacie).

 

Strona grupuje wszystkie rekordy z tym samym id_post a innym id_reply, dzieki czemu podaje nam id pierwszego postu w tym temacie (pierwsze znalezione id_reply) czyli pierwszy nieczytany post.

 

Prawdę mówiąc ud kategori itd. nie jest potrzebny do tego skryptu, ale uzywam tych pól na stronie głownej i wtedy pobieram z bazy np. jeden rekord z id=id kategori. Jak powbierze się jeden - wiadomo, masz nieczytane posty, jak pobierze się 0 - oznacza to że nie ma niecytanych postów.

 

Więcej nie powiem, bo nie po to siedziałem 2 miechy nad portalem, żeby teraz zradzić wam wszystko (chociaz pewnie i tak portal jest dziurawy jak sitko).

 

Dzialanie będzie można obejrzeć już wkrótce [narazie będize dostepny tylko dla mojej strony o Harvest Moonie, ale za miesiąc dwa będzie do pobrania jego ulepszona wersja ze skórkami, itp. ze strony Relax Zonk (która teraz jeszcze nie sitnieje :)) Zastanawiam się nad nazwą i chyba będzie to PiDżi Portal (PGP)].

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Gnysek: Oj sorki, pomyliłem temat. Bardzo dobrze wiem co to GROUP BY, sam czasem na gmclan stosuję. Myślałem, że chodziło o GMSQL i chciałem się dowiedzieć co kombinujesz z MySQL pod względem GM'a. ;)

 

A propos, pamietaj ze zapis "tralalalala $zmienna tralalalala" jest parokrotnie wolniejszy od 'tralalalala '.$zmienna.' tralalalala'

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
Gnysek: Oj sorki, pomyliłem temat. Bardzo dobrze wiem co to GROUP BY, sam czasem na gmclan stosuję. Myślałem, że chodziło o GMSQL i chciałem się dowiedzieć co kombinujesz z MySQL pod względem GM'a. ;)

 

A propos, pamietaj ze zapis "tralalalala $zmienna tralalalala" jest parokrotnie wolniejszy od 'tralalalala '.$zmienna.' tralalalala'

 

mozliwe że w Farmerze Franie będzie się dało ściągać i wysyłać wyniki online :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...