[MySQL][PHP]Wyszukiwanie i paginacja, wyszukiwarka z paginacją |
[MySQL][PHP]Wyszukiwanie i paginacja, wyszukiwarka z paginacją |
14.07.2020, 09:39:38
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 21.12.2007 Skąd: Stalowa Wola Ostrzeżenie: (0%) |
Witam,
chciałbym zrobić wyszukiwanie z bazy MySQL z paginacją tego wyniku. Mam zapytanie:
i numer wierszy z tego zapytania pobieram przez $rowcount = $rezult->num_rows po wykonaniu powyższego zapytania. Przeczytałem tutaj na forum, że to może i dobre rozwiązanie, ale przy małej ilości danych. Gorzej, jeżeli wynik będzie liczył np. 100 tys. lub więcej wierszy, mogę zarżnąć serwer, powinienem raczej użyć COUNT(*). Ale jak tego użyć przy moim zapytaniu, z trzech różnych tabel? Będę wdzięczny za podpowiedź. |
|
|
14.07.2020, 10:00:07
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 447 Pomógł: 6292 Dołączył: 27.12.2004 |
Cytat Ale jak tego użyć przy moim zapytaniu, z trzech różnych tabel? Będę wdzięczny za podpowiedź. To nei ma zadnego znaczenia ile masz JOINow. count(*) dziala tak samo. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.07.2020, 10:10:41
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 21.12.2007 Skąd: Stalowa Wola Ostrzeżenie: (0%) |
A mogę prosić o podpowiedź, gdzie wcisnąć COUNT? Nie wiem, jak go użyć, żeby zliczyć wynikowe wiersze zamiast używać pełnego zapytania i num_rows? Czy mam użyć COUNT(*) czy COUNT(np. t.id?). Próbowałem się sugerować tym tematem http://forum.php.pl/index.php?showtopic=26...mp;hl=paginacja, ale nie do końca chyba rozumiem, co zlicza COUNT.
|
|
|
14.07.2020, 10:12:02
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 447 Pomógł: 6292 Dołączył: 27.12.2004 |
$sql = "SELECT count(t.id)
FROM tab1 AS t LEFT JOIN login AS l ON t.login_id=l.lid LEFT JOIN numery AS n ON t.id=n.id WHERE t.pstate='1'"; -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.07.2020, 01:35:42
Post
#5
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 21.12.2007 Skąd: Stalowa Wola Ostrzeżenie: (0%) |
Dziękuję, już sprawdzam czy mi się uda to skleić. Właśnie zauważyłem link do stronicowania w Twojej stopce
Pozdrawiam Działa super, dziękuję jeszcze raz. A proszę mi powiedzieć, czy mogę do tego dodać sumę kolumny? Czyli:
Dotychczas robiłem całe zapytanie, potem num_rows a sumę liczyłem w pętli przy wyświetlaniu. Wyświetlałem całą zawartość (tabela ma póki co jakieś 2000 wierszy), teraz przy paginacji sumę wyświetlę tylko na ostatniej stronie. |
|
|
15.07.2020, 08:56:03
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 447 Pomógł: 6292 Dołączył: 27.12.2004 |
Mozesz dodac sume. A na przyszlosc mozesz tez sprawdzic zanim napiszesz
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.07.2020, 21:33:54
Post
#7
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 21.12.2007 Skąd: Stalowa Wola Ostrzeżenie: (0%) |
Oczywiście sprawdziłem wcześniej, i widziałem że działa, tylko ja mam takie może dziwne podejście, że nie zawsze wierzę w to, co widzę i wolę zapytać, jeśli nie mogę znaleźć jasnej informacji. Mam do zsumowania ogólnie dwie kolumny (netto i brutto - chociaż może i lepiej będzie tylko pomnożyć netto razy 1,23 zamiast ładować to w zapytanie, bo podatek się nie zmienia) i zastanawiałem się, czy nie lepiej zrobić to osobnym zapytaniem. Dziękuję jeszcze raz za pomoc.
|
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 01:55 |