![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 28.08.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki problem i już mi się pomysły kończą. Chcę użyć funkcji count() w wyszukiwarce aby w razie znalezienia wyników je pokazała, a w razie ich braku pokazała echo "Nic nie znaleziono". Niby proste ale jak używam count() to w przypadku znalezienia wielu rekordów pokazuje tylko jeden, pierwszy. W przypadku braku rekordów pokazuje co należy. W ogóle to dziwne co pokazuje print_r(count($row)): 12. Przecież aktualnie mógł znaleźć max 2 rekordy bo tak by to filtrowało. Baza składa się z 5 tabel, gdzie jedna z nich zawiera relacje w 4 pozostałymi. Czyli wiele do jednej. Linie odpowiedzialne za count:
Cały kod:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 13 Dołączył: 16.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ten count powinien być przed pętlą foreach bo jak $stmt będzie puste to pętla i tak się nie wykona.
Zrzuć jeszcze otrzymany SQL. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak na logikę: counta robisz na zmiennej $row, która przechowuje dane pojedynczego wiersza. Wniosek: liczysz kolumny wiersza, których zawsze jest 12 (klucze asocjscyjne i numeryczne czyli po 2 klucze z tą samąwartością w wyniku) a nie ilość rekordów w wyniku.
Ten post edytował lukaskolista 29.01.2016, 07:25:33 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 28.08.2015 Ostrzeżenie: (0%) ![]() ![]() |
A istnieje jakiś sposób żeby zamiast po kolumnach iterować po wierszach? Bo tak się nad tym zastanawiam i nie mogę wpaść na to jak...
Co ciekawe, nawet jak dodam jedynie var_dump(count($row)) tak:
to też pokazuje tylko jeden wynik chociaż powinien znaleźć dwa. W przypadku istnienia dwóch ogłoszeń o podanych kryteriach var_dump daje: int(12)int(12), w przypadku jednego daje int(12). Otrzymany SQL przy wybraniu jednego pola:
Ten post edytował Panicz74 30.01.2016, 02:15:42 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jak się klamer nie używa to pokazuje tylko 1 (ostatni)
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 28.08.2015 Ostrzeżenie: (0%) ![]() ![]() |
No tak... Teraz działa:
Dlaczego potrafię zrozumieć coś takiego jak tworzenie i bindowanie tablicy przez execute() a łapię się na takich pierdołach? To już nie pierwszy raz. Też mieliście takie problemy kiedyś ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak, jak się nie formatuje porządnie kodu, to tak jest
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:12 |