PHP system newsów + MySQL

0

Witam mam napisany system newsów w PHP z wykorzystaniem bazy danych MySQL. Chcę aby mój kod był szybki wiec staram się wykonywać jak najmniejszą liczbę zapytań do bazy. Problem polega na wyświetlaniu newsów, załóżmy że na jednaj stronie może być wyświetlone tylko 10 newsów i do tego wykonuję taką funkcje:

$query = "SELECT news_title, news_text, news_date, users_login FROM news LIMIT 0, 10";
$result = mysql_query($query);
while($record = mysql_fetch_assoc($result))
{
  $results[] = $record;
}

Działa świetnie.

Ale gdy będzie więcej niż 10 newsów to przydało by mi się stronicowanie a do tego jest potrzebna liczba wszystkich newsów w bazie. więc używam:

$query = "SELECT COUNT(*) AS count FROM news";
$result = mysql_query($query);
while($record = mysql_fetch_assoc($result))
{
  $results[] = $record;
}

Tym oto sposobem mam potrzebne mi rzeczy aby dobrnąć do celu. Pytanie brzmi. Czy można to zrobić jakimś cudem w jednym zapytaniu?

0

Tak, w MySQL mozesz uzyc magicznego slowa kluczowego SQL_CALC_FOUND_ROWS:

SELECT SQL_CALC_FOUND_ROWS * FROM tablica LIMIT 10

Nastepnie:

SELECT FOUND_ROWS() -- zwraca calkowita liczbe wierszy w tabeli tablica

1 użytkowników online, w tym zalogowanych: 0, gości: 1