Przykład o jaki mi chodzi najlepiej zobazuje na przykład ten tutek:
http://www.99points.info/2010/09/facebook-...jquery-and-php/
Dla każdego komentarza pod artem zliczane są ilości like. jak widać w tutku zliczenia te są na zasadzie
UNIX_TIMESTAMP() - date_created AS TimeSpent FROM facebook_collapsed_posts order by p_id desc limit 0,10"); $userip = $_SERVER['REMOTE_ADDR']; { $like_ip = mysql_query("SELECT count(*) FROM facebook_collapsed_ip where post_id = ".$row['p_id']." AND userip='".$userip."'"); $total_likes = mysql_query("SELECT * FROM facebook_collapsed_likes where post_id = ".$row['p_id']." "); $likes = $likes['likes'];
oraz dalej w pętli wyświetlenie czy czytający już to lubi czy nie:
<?php if($like_ip_num > 0){?> <?php }else{?> <?php }?>
Czyli wewnatrz pętli while dla każdego wpisu następuje zliczanie ogólnej ilości polubień oraz sprawdzenie czy czytający polubił już dany wpis. Czyli wyświetlenie 10 rekordów generuje 10x2 resultów.
Istnieje sposób na tego typu optymalizacje?
Wymyśliłem żeby u siebie połączyć w pierwszym zapytaniu tabele przypisując danemu rekordowi odpowiednie like i sprawdzenie na zasadzie:
$result = dbquery("SELECT l.*, s.* FROM ".$db_prefix."wpisr s LEFT JOIN ".$db_prefix."like l ON s.wpis_id=l.like_co ORDER BY wpis_id DESC "); while ($data =dbarray($result) ) { }
I działa (chyba

Dobrze kombinuje? Lepsze by to było niż sumowanie w pętli jak w tutorialu powyżej? A może jest inne lepsze rozwiązanie?