[PHP][MySQL]Wyszukiwanie w kilku tabelach. |
[PHP][MySQL]Wyszukiwanie w kilku tabelach. |
6.02.2011, 01:47:11
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 23.02.2009 Ostrzeżenie: (0%) |
Witam,
Otóż mam problem. Mam już działającą wyszukiwarkę, przy wpisaniu nazwy użytkownika wyświetla się użytkownik z linkiem do profilu, ale chciałbym żeby również przy wpisaniu miasta wyświetlili się userzy z danej lokacji. Moje pytanie jak połączyć wyszukiwanie w 2 tabelach aby wyniki wyświetlały się zależnie od tego czy user wpisze nick bądź lokalizację.Słyszałem o UNION , ale jakoś mi to nie wychodzi. Link do wyszukiwarki: http://compsite.privacy.pl/Skrypt2/viewfriends.php#, można przetestować wpisując a*.
|
|
|
6.02.2011, 07:37:55
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) |
użyj JOIN
|
|
|
6.02.2011, 12:50:15
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 23.02.2009 Ostrzeżenie: (0%) |
Sorry pisałem późno ten temat i nie w wielu tabelach tylko wyszukiwanie w jednej tabeli ;P. I jeśli JOIN to jak tego dokładnie użyć, użyłem tak jak w manualu i wyskakuje błąd z mysql_fetch_array.
|
|
|
6.02.2011, 12:54:41
Post
#4
|
|
Grupa: Zarejestrowani Postów: 194 Pomógł: 26 Dołączył: 9.01.2011 Skąd: /dev/null Ostrzeżenie: (0%) |
|
|
|
6.02.2011, 13:01:51
Post
#5
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 23.02.2009 Ostrzeżenie: (0%) |
no tak tylko ja mam to zrobione WHERE MATCH AGAINST
|
|
|
6.02.2011, 14:51:12
Post
#6
|
|
Grupa: Zarejestrowani Postów: 194 Pomógł: 26 Dołączył: 9.01.2011 Skąd: /dev/null Ostrzeżenie: (0%) |
|
|
|
6.02.2011, 15:32:14
Post
#7
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 23.02.2009 Ostrzeżenie: (0%) |
Zrobiłem tak jak napisałeś ale:
A 37 linijka to: |
|
|
6.02.2011, 15:34:03
Post
#8
|
|
Grupa: Zarejestrowani Postów: 194 Pomógł: 26 Dołączył: 9.01.2011 Skąd: /dev/null Ostrzeżenie: (0%) |
daj
może coś wypluje |
|
|
6.02.2011, 15:34:26
Post
#9
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 4 Dołączył: 4.02.2011 Ostrzeżenie: (0%) |
W twoim zapytaniu nie widzę dwóch tabel. Cały czas odnosisz się do tabeli users i wybierasz z niej kilka kolumn (username, name, location, avatar).
W pierwszym pytaniu pytasz o ilość wierszy odpowiedzi a w drugim wyszukujesz po username operując także na tabeli users. Jeśli używasz przeszukiwanie pełnotekstowe, to przy tworzeniu tej tabeli powinno być zaznaczone utworzenie indeksu. Pełnotekstowe szukanie usera z username, które najczęściej jest tylko jednym słowem jest lekką przesadą. W tym wypadku like wystarczy w zupełności. I tak wyłapie wszystkie podobne nazwy userów. Nie ma co używać JOIN, ponieważ nie ma nawet dwóch tabel. pozdrawiam |
|
|
6.02.2011, 15:48:46
Post
#10
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 23.02.2009 Ostrzeżenie: (0%) |
Cytat Sorry pisałem późno ten temat i nie w wielu tabelach tylko wyszukiwanie w jednej tabeli ;P. I jeśli JOIN to jak tego dokładnie użyć, użyłem tak jak w manualu i wyskakuje błąd z mysql_fetch_array. No rozumiem, spróbuje z LIKE i dam znać. Dodano: No powiem Ci że działa teraz, tylko że problem jak wpisuje polskie znaki np w "Wrocław" Jak napisze Wroc to znajduje, ale jak dodam ł to od razu błąd wyskakuje.. Ten post edytował jaca19 6.02.2011, 15:55:10 |
|
|
6.02.2011, 16:18:22
Post
#11
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 4 Dołączył: 4.02.2011 Ostrzeżenie: (0%) |
Problem z polskimi znakami może wynikać z kilku problemów.
1. Kodowania strony - używaj najlepiej utf8 2. porównywanie znaków w Mysql (najlepiej: utf8_general_ci) 3. Czy w edytorrze php masz tę same tablicę kodową, co twoja strona? pozdrwiam |
|
|
6.02.2011, 19:48:19
Post
#12
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 23.02.2009 Ostrzeżenie: (0%) |
1. Używam
2. Tak mam ustawione 3. Tak I nadal błąd kiedy próbuje wyszukać frazy z polskim znakiem. Nie mam pojęcia gdzie tkwi problem. |
|
|
6.02.2011, 20:19:00
Post
#13
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 4 Dołączył: 4.02.2011 Ostrzeżenie: (0%) |
A jaki błąd wyskakuje?
wstaw to w linijce 20 (powyższy listing) i powiedz, co wypluło. echo '<pre>'; var_dump($sql); echo '</pre>'; Ten post edytował Zbigizmi 6.02.2011, 20:29:08 |
|
|
8.02.2011, 19:46:56
Post
#14
|
|
Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
daj może coś wypluje Podbijam. Na pewno coś wypluje. Spróbuj tego i podaj rezultat. Przy okazji podaj, jak wygląda Twoje obecne zapytanie. |
|
|
8.02.2011, 23:22:23
Post
#15
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 23.02.2009 Ostrzeżenie: (0%) |
Obecny kod wyszukiwania. Zrobiłem tak jak napisał zbigizmi i przy wpisywaniu polskich znaków wypluwa "bool(false)" a jak dałem "die(mysql_error());" to:
omg, działa ;P miałem username w bazie ustawione na porównywanie latin_general_ci stąd te błędy. Przepraszam za niedopatrzenie ale oczywiście daje po + wszystkim którzy mnie naprowadzili . Pozdrawiam. Ten post edytował jaca19 8.02.2011, 23:04:55 |
|
|
Wersja Lo-Fi | Aktualny czas: 12.06.2024 - 02:11 |