Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: [PHP][MySQL]Wyszukiwanie użytkowników

Witam,
Mam już działający skrypt wyszukujący użytkowników po nicku, chciałbym żeby skrypt wyszukiwał użytkowników także po imieniu bądź lokalizacji. Zależnie od tego co użytkownik wpisze w wyszukiwarkę.


// zliczanie wyników
if($type == "count")
{
$sql = mysql_query("SELECT count(username)
FROM users
WHERE MATCH(username)
AGAINST('$query' IN BOOLEAN MODE)");
$total = mysql_fetch_array($sql);
$num = $total[0];
echo $num;

}

if($type == "results")
{
$sql = mysql_query("SELECT username, name, location, avatar
FROM users
WHERE MATCH(username)
AGAINST('$query' IN BOOLEAN MODE)");

while($array = mysql_fetch_array($sql)) { //Wyświetlanie..


Link do szukajki:http://compsite.privacy.pl/Skrypt2/viewfriends.php
* można przetestować wpisując admin lub a*

No i tu moje pytanie jakby można było to zrobić słyszałem o UNION i JOIN ale używając przykładów z manuala nic nie wychodzi.
Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: [PHP][MySQL]Wyszukiwanie użytkowników

Dobra zamieniłem WHERE MATCH AGAINST na LIKE i teraz w miarę działa tylko że jak wpisuje w szukajke polskie znaki to wyskakuje błąd.

konto usunięte

Temat: [PHP][MySQL]Wyszukiwanie użytkowników

1. Jaki błąd ?
2. w MATCH przypadkiem nie można po przecinku podać kilku kolumn w których nastąpi wyszukanie ?
Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: [PHP][MySQL]Wyszukiwanie użytkowników

Można, tylko że jak tak robiłem to wyskakiwał błąd z mysql_fetch_array($sql). Teraz zrobiłem wyszukiwanie za pomocą LIKE i wszystko działa tylko że jak wpisuje miasto które ma polskie litery to jest błąd również z mysql_fetch_array($sql). Przykładowo wpisuje Wroc to znajduje normalnie, jak Wpisuje Wrocł to już jest błąd.

Dla tych co chcą zobaczyć jak wygląda błąd to tu jest skrypt:http://compsite.privacy.pl/Skrypt2/main.php

Nick:admin hasło: admin

Wyszukiwarkę znajdziecie wchodząc w znajomych.

Żeby sprawdzić błąd proszę wpisać Wrocław lub Gdańsk. Kodowanie w bazie i skrypcie mam ustawione na utf-8Jacek Dunikowski edytował(a) ten post dnia 06.02.11 o godzinie 19:36
Tomasz Zadora

Tomasz Zadora programuję

Temat: [PHP][MySQL]Wyszukiwanie użytkowników

1. Sprawdź jaki jest błąd zaraz po mysql_query
2. Co z SQLInjection ?
3. Wyszukiwanie FULLTEXT przy większej ilości danych zawsze będzie szybsze od LIKE, nawet jeżeli LIKE idzie po indeksie. Z tym, że trzeba to zapytanie FULLTEXTowe także odpowiednio skonstruować - bo przydało by się sortować wyniki po trafności.


SELECT username, name, location, avatar,
MATCH(username) AGAINST('$query' IN BOOLEAN MODE) as score
FROM users
WHERE MATCH(username) AGAINST('$query' IN BOOLEAN MODE) ORDER BY score DESC

konto usunięte

Temat: [PHP][MySQL]Wyszukiwanie użytkowników

A dokładnie użyj mysql_error() później to przynajmniej się dowiemy co się urobiło.

konto usunięte

Temat: [PHP][MySQL]Wyszukiwanie użytkowników

dziwne to zapytanie.

nie mozesz zrobic tego prosciej?

$query = mysql_real_escape_string($_POST['query']);

SELECT * FROM `users` WHERE `user_login` LIKE "%'.$query.'%" OR `user_name` LIKE "%'.$query.'%" OR `user_location` LIKE "'.$query.'";

?Jakub Świegot edytował(a) ten post dnia 16.02.11 o godzinie 14:46



Wyślij zaproszenie do