![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 31.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Piszę na stronie panel kontaktowy i mam pewien problem z wyświetlaniem wątków. Na stronie głównej mają się wyświetlać wyniki, które użytkownik dotąd napisał.
status=o - otwarty wątek status=z - zamknięty wątek
Otóż jeżeli ostatni warunek nie znajduje się w pętli, wiadomość wyświetla się tylko w dolnym wierszu. Screen: http://img401.imageshack.us/img401/1550/wj1t.png Ale jeżeli znajduje się w pętli, to gdy w wątku znajduje się więcej niż jeden wpis, to wyświetlają się wszystkie. Screen: http://img22.imageshack.us/img22/5806/inmo.png A teraz pytanie. Jak zrobić, aby w każdym wierszu wyświetlany był tylko jeden wynik? Ten post edytował damiansobolewski 25.08.2013, 22:50:19 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Patrząc na ten kod, pomijając ile razy coś tam się wyświetla a ile razy powinno, można sobie wyobrazić następującą sytuację:
Przychodzi czytelnik do biblioteki, prosi o wszystkie książki w bibliotece i sprawdza po kolei kto je napisał, porównując nazwisko autora z "X". Gdy znajdzie taką książkę, prosi o listę wszystkich książek napisanych w roku Y i sprawdza czy ta książka znajduje się na tej liście. Niezależnie od wyniku, odnosi listę z powrotem i szuka kolejnej pasującej książki, za każdym razem biorąc tę samą listę i odnosząc ją z powrotem. Bibliotekarka trochę krzywo się patrzy, ale że jest inteligentna to nie odkłada tej listy na półkę, tylko trzyma ją w pogotowiu (query cache). Po miesiącu czytelnik znajduje wszystko to co chciał i dziękuje bibliotekarce za cierpliwość i chce wychodzić, ale słyszy pytanie: - Dlaczego po prostu nie poprosił pan o książki napisane przez X w roku Y? - A to pani tak potrafi? Otóż tak, baza danych (bibliotekarka) potrafi takie rzeczy i robi to o wiele szybciej wykorzystując sobie znane mechanizmy takie jak na przykład indeksy (katalogi książek). Wygląda na to, że napisałeś od nowa implementację WHERE oraz JOIN, wymagającą przesłania całych tabel między mysql a php i bez żadnych usprawnień, które mysql oferuje. A przecież wystarczy odpowiednio zapytać (nie podałeś struktur tabel, więc trzeba je zgadywać z kodu):
Otrzymujesz jeden obcięty zestaw, w całości do wyświetlenia, jedyne co musisz dodać to jakieś przerywniki gdy zmienia się id_panelu by oddzielić od siebie różne wątki. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 23:55 |