![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Mam problem z zapytaniem do bazy. Chcę wyciągnąć z tabeli user rekordy których nazwa zaczyna się na literkę z zakresu A-E. Próbowałem na dwa sposoby: LIKE i REGEXP. Zapytanie LIKE:
Niestety, takie zapytanie nie wyświetla żadnego rekordu. Przy zapytaniu REGEXP jest trochę lepiej, ale i tak nie wyświetla wszystkich rekordów tak jak powinno :/ Np. przy zapytaniu
które powinno wyświetlić wszystkie rekordy, to wyświetla mi 7/9 i nie wiem dlaczego tamte 2 opuszcza. Natomiast zapytanie powinno wyświetlić wszystkie rekordy gdzie nazwa zaczyna się na A, a wyświetla 3 rekordy na 4 w których nazwa zaczyna się na A. Wiecie w czym może być problem? Może mieć to coś związanego z typem tabeli? Typ ustawiony mam na varchar(128). Pozdrawiam, Adrian |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Skoro ci wyświetla mniej, to znaczy, że pozostałe nie spełniają warunków. Sorry, za tyle informacji tylko tyle można powiedzieć.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie masz czasem spacji na początku tych niewybranych ciągów znaków?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
no właśnie nie... :/ Mam 4 rekordy o nazwach: "ABC" "Abracadabra" "After Party" i "All We Can".
Przy zapytaniu: wyświetla po kolei: Abracadabra, After Party i All We Can a jak z zapytania usunę sortowanie czyli: wyświetla po kolei: ABC, Abracadabra i After Party Jak to możliwe? :/ Przy zapytaniu:
wyświetla wszystkie 9 rekordów (nawet te zaczynające się na literkę Z) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Do do sortowania... Dodaj (a jeśli masz, to wcześniej usuń) indeks na pole nazwa. Nie pomoże, to spróbuj naprawić tabelę.
Co do '^[A-E]*' wyświetla prawidłowo (nawet te zaczynające się na Z). * bowiem oznacza 'zero or more times' |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Indeks do pola nazwa nic nie daje :/
Co masz na myśli pisząc, spróbuj naprawić tabelę? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
A mógłbyś pokazać co daje:
dla niewybieranych rekordów? Wpisując to zapytanie zwraca mi 9 pustych rekordów, tj. bez danych takich jak adres, miejscowosc, nazwa itd. a tak w ogóle to mam taki kod na wyświetlanie:
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym abyś pokazał wynik tego zapytania bezpośrednio z bazy danych (poprzez PHPMyAdmin czy inne narzędzie).
mysqli_fetch_assoc wywołujesz raz przed pętlą. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
0
197 70 65 80 65 65 65 70 90 0 jest to konto administratora przy którym nie ma nazwy o to chodziło? hmm jak sprawdzam zapytania w phpmyadmin to taki zapis:
działa bez zarzutu, dlaczego więc na stronie nie wyświetla wszystkich rekordów? :/ |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A sprawdzałeś co się dzieje po usunięciu nadmiarowego wywołania mysqli_fetch_assoc?
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
A sprawdzałeś co się dzieje po usunięciu nadmiarowego wywołania mysqli_fetch_assoc? Działa! (IMG:style_emoticons/default/smile.gif) Zostawiłem wywołanie w pętli while a to pierwsze usunąłem i działa jak powinno (IMG:style_emoticons/default/smile.gif) Dzięki wielkie bo już od kilku dni nad tym walczę (IMG:style_emoticons/default/smile.gif) Pozdrawiam, Adrian Nie chcę zakładać nowego tematu, ale mam jeszcze problem z wyświetleniem rekordu który zaczyna się na polski znak. W tabeli kodowanie mam ustawione na utf8_polish_ci W kodzie mam: mysqli_query($polaczenie, "SET CHARSET utf8"); mysqli_query($polaczenie, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); Gdzie może być błąd? |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Gdybyś opisał problem choć dwoma słowami więcej, myślę, że byłoby łatwiej go rozwiązać.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Bo wyświetlanie wyników podzieliłem sobie na 4 zakładki: A-E, F-M, N-T i U-Z
Muszę tylko podopisywać polskie znaki do zapytań. Jeszcze raz dzięki wielkie (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 19:39 |