PHP system newsów + MySQL

Odpowiedz Nowy wątek
2011-02-18 16:08

Rejestracja: 11 lat temu

Ostatnio: 9 lat temu

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?

Pozostało 580 znaków

2011-02-18 17:26
Administrator

Rejestracja: 18 lat temu

Ostatnio: 22 minuty temu

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

Pozostało 580 znaków

Odpowiedz

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