Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Num_rows przy limicie
NaC
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 19.09.2003

Ostrzeżenie: (0%)
-----


Robie prosta wyszukiwarke, w zapytaniu mam limit, gdzie $ile to ilosc wynikow per site, a $od zwieksza sie na podstawie linku na stronie (aby tworzyc podstrony musze uzyc drugiego zapytania, query2, identycznego jak ponizsze, lecz bez limitu i wtedy uzyc np. mysql_num_rows)

[sql:1:0771f13432]
$query = mysql_db_query("SELECT * FROM db_news where $content like '%$wyrazenie%' order by $sort2 LIMIT $od,$ile");
[/sql:1:0771f13432]

Pytanie: Czy da sie to zrealizowac w jednym zapytaniu, bez koniecznosci uzywania drugiego tylko po to, aby wiedziec ile jest wszystkich wynikow na stronie (i dzieki temu np. zrobic podstrony) ?
Wiem, ze dla wersji 4.0 Mysqla dziala funkcja SQL_CALC_FOUND_ROWS, ale co zrobic w przypadku starszych ? Da sie to jakos rozwiazac w jednym zapytaniu (moze count ?) lub programistycznie ?
Zaznaczam, ze jestem poczatkujacym.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
uboottd
post
Post #2





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


prawidlowe rozwiazanie jest takie:
do zapytania dodaje sie opje SQL_CALC_FOUND_ROWS:
[sql:1:890e2bbe5e]
SELECT SQL_CALC_FOUND_ROWS *
FROM tabele..... itd.
LIMIT x,y
[/sql:1:890e2bbe5e]
Wykonuje sie to zapytanie, po czy wysyla sie nastepujace zapytanie:
[sql:1:890e2bbe5e]
SELECT FOUND_ROWS()
[/sql:1:890e2bbe5e]
Ktore zwraca ilosc znalezionych wierszy w poprzednim zapytaniu z pominieciem klauzuli LIMIT.

Drugie zapytanie takie same jak pierwsze tylko bez limitu jest o tyle beznadziejne, ze zapytanie moze byc dosc skomplikowane z duza iloscia sklejen, liczonych wyrazen itp. powtorzenie ktorego na pewno nie przyspieszy dzialania skryptu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

PS. to podswietlenie juz po prostu zalamuje...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 20:50