Temat: Optymalizacja dziesięciu linijek kodu PHP
ło jezu. masz nie kawałek kodu a kawałek kupy. z przewagą kupy (parafrazując)
żeby przeanalizować:
1 wyciągasz wszystkie komentarze połączone ze zdjęciami + sumę wszystkich wierszy (count(*))
2. jeżeli ilość komentarzy jest 5, ustawiasz limit na 5 i jedziesz pętlą od 1 do 5, w której...
4. najpierw sprawdzasz, czy id komentarza (spośród ostatnich 5 wyciągniętych w pkt 1) jest w tabeli displayed, i
5. jak nie ma, pobierasz wszystkie komentarze dla zdjęcia, którego komentarz nie był jeszcze wyświetlony i printujesz zdjęcie z pierwszego zapytania i liczbę komentarzy z zapytania z pkt. 5.
6. jak jest, zwiększasz sobie limi
7. bez względu na 5,6 - dopisujesz ID do tabeli displayed
łojapier*ole ;)
napisz może co chcesz osiągnąć, bo z tego kodu nic nie wynika.
przede wszystkim, nie rozumiem indeksów, pobierasz *, gdzie "id" odnosi się zarówno do photos_comments.id jak i photos.id, a później wykorzystujesz to id jako photo_id. Po drugie, robisz w pętli zapytanie, ktore zwraca wszystkie komentarze dla danego zdjęcia, a wyświetlasz tylko ilość tych komentarzy.
jest też błąd, piszesz, że id komentarza to id fotki ale z kodu wynika ze photo_id komentarza to id fotki... kto to spłodził?
aaaaa, już wiem ;)
select photo_id, title from photos_comments where id in (select max(id) as latest from photos_comments group by photo_id) order by id desc
i wyswietl to co zwrocilo. zliczanie ilości wszystkich komentarzy sobie dorób ;)