masde300
14.05.2012, 22:20:14
Witam,
Mam problem ze zliczaniem wyników w zapytaniu SELECT.
define('ILOSC_WYNIKOW_NA_STRONIE', 40);
$SQL = "SELECT SQL_CALC_FOUND_ROWS *
FROM rozne
WHERE kategoria="sport"
ORDER BY dodano DESC
LIMIT ".mysql_escape_string((int)$_GET['strona'*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
$RES = mysql_query($SQL);
$ile = mysql_num_rows($RES);
Niby $ile liczy ilość zapytań, ale tylko do 40, bo tak jest ustawiony limit. Co zrobić, żeby zliczyć wszystkie wyniki zapytania?
boro11
14.05.2012, 23:13:02
usuń limit?
masde300
14.05.2012, 23:21:15
limit jest mi potrzebny do podziału na strony, przy wyświetlaniu wyników
bostaf
14.05.2012, 23:50:00
Niestety nie da się tego zrobić bez dwóch zapytań. W pierwszym zliczasz tylko ilość wszystkich rekordów spełniających zadane kryteria, w drugim wyciągasz dane które chcesz z limitem.
Jeśli potrzebujesz tylko przycisk "NEXT" i nie musisz/nie chcesz wyświetlać użytkownikowi ilości znalezionych dopasowań, to możesz to zrobić jednym zapytaniem. Jeśli liczba rekordów do wyświetlenia to N, limit ustawiasz na N+1. Po wykonaniu zapytania sprawdzasz, czy liczba rekordów jest większa niż N. Jeśli tak, to wyświetlasz przycisk "NEXT", jeśli nie, to nie wyświetlasz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.