![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 19.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Rozwiazanie orsona chyba raczej nie jest poprawne, tak jak wspomnial moj poprzednik :
MySQL zwrócił komunikat: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY Natomiast mozna uzyc count bez group by w takim wypadku [sql:1:c0c3994777] SELECT count(id) AS ile from db_download where kategoria='2' [/sql:1:c0c3994777] Chodzi tutaj o to, ze jezeli uzywamy count bez group by, to nie mozemy innych kolum mniec w wyniku ? Bo nie wiem dokladnie... W kazdym badz razie, jezeli nie widzicie innych rozwiazan (a na forum widze prawdziwych 'wymiataczy' z umiejetnosciami, ktorych mozna tylko pozazdroscic), to uzyje tego drugiego zapytania. Myslalem, ze im wiecej zapytan, tym wolniej to wszystko dziala - jezeli mysql radzi sobie szybko z zapytaniami o rekordy, to przy jakich trzeba sie glowic, aby bylo ich jak najmniej ? Pozniej z tego drugiego zapytania wyciagalem ilosc wynikow za pomoca funkcji mysql_num_rows, ale wczoraj dowiedzialem sie, ze w zapytaniu szybciej count zlicza to, jak to moj poprzednik napisal. Ciekawe jak ta nowa funkcja w mysql4.0, o ktorej powyzej napisalem by sie spisala. Ps. Swoja droga widzialem, ze przeciez przy takim zapytaniu phpmyadmin wyswitla ilosc wierszy (total), a watpie, zeby robil sobie drugie zapytanie bez limitow... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 10:46 |