Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Wyszukiwanie w kilku tabelach.
jaca19
post
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*.

  1. if($type == "count")
  2. {
  3. $sql = mysql_query("SELECT count(username)
  4. FROM users
  5. WHERE MATCH(username)
  6. AGAINST('$query' IN BOOLEAN MODE)");
  7. $total = mysql_fetch_array($sql);
  8. $num = $total[0];
  9.  
  10. echo $num;
  11.  
  12. }
  13.  
  14. if($type == "results")
  15. {
  16. $sql = mysql_query("SELECT username, name, location, avatar
  17. FROM users
  18. WHERE MATCH(username)
  19. AGAINST('$query' IN BOOLEAN MODE)");
  20.  
  21. while($array = mysql_fetch_array($sql)) {
  22.  
  23. $avatar = $array['avatar'];
  24. $username = $array['username'];
  25. $name = $array['name'];
  26. $location = $array['location'];
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jaca19
post
Post #2





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 23.02.2009

Ostrzeżenie: (0%)
-----


  1. if($type == "count")
  2. {
  3. $sql = mysql_query("SELECT count(username)
  4. FROM users
  5. WHERE username LIKE '%$query%' OR location LIKE '%$query%' OR name LIKE '%$query%'");
  6. $total = mysql_fetch_array($sql);
  7. $num = $total[0];
  8.  
  9. echo $num;
  10.  
  11. }
  12.  
  13. if($type == "results")
  14. {
  15. $sql = mysql_query("SELECT *
  16. FROM users
  17. WHERE username LIKE '%$query%' OR location LIKE '%$query%' OR name LIKE '%$query%'
  18. /* AGAINST('$query' IN BOOLEAN MODE)*/ ");
  19.  
  20. while($array = mysql_fetch_array($sql)) {


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:
  1. Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'


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 (IMG:style_emoticons/default/smile.gif) . Pozdrawiam.

Ten post edytował jaca19 8.02.2011, 23:04:55
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 19:34