Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: поисковичек

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
strengerst
Отправлено: 28 Ноября, 2010 - 16:14:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Здраствуйте подскажите пожалуста что не так. Вообщем
у меня есть масив сданными $eryy, и поисковое слово которое надо найти через форму тоесть $_POST['search'], далее найденное слово в масиве $eryy, функцией array_keys должна записать ключ в переменную $search, потом в зависимости от найденных слов мы должны вывести на экран все найденные данные по ключам $search,

if(isset($_POST['search'])){
$search=array(array_keys($eryy, $_POST['search']));
$tiserch=count($search);
for($i=0; $i<=$tiserch; $i++){ $key=$search[$i];
echo "".$eryy[$key]."<br />";}}

Вот чего нтак почему не работает подскажите пожалуйста как правильно. Ниндзя
 
 Top
ALEN
Отправлено: 28 Ноября, 2010 - 16:20:51
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Советую для своего поисковичка использовать MySQl - проще и функциональней, а в настоящее время поисковые системы на файлах совсем не актуальны.
 
 Top
strengerst
Отправлено: 28 Ноября, 2010 - 16:48:54
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




ALEN пишет:
Советую для своего поисковичка использовать MySQl - проще и функциональней, а в настоящее время поисковые системы на файлах совсем не актуальны.


Да все так только все эти данные заннесены из MySQL в массив $erry, вот поэтому я и ищу через массив.
Так как чере MySQL запрос ищет только одно слова или одно предложение, а если два разных слова то уже не найдет а в массиве должно найти.
 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 17:10:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)






-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
strengerst
Отправлено: 28 Ноября, 2010 - 17:30:20
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Я с этой функцией знаком но она мне не подходит так как вот
**
Если needle присутствует в haystack более одного раза, будет возвращён первый найденный ключ. Для того, чтобы возвратить ключи для всех найденных значений, используйте функцию array_keys() с необязательным параметром search_value.**
Выписка из определение.
А насщет оформление понимаю что у меня все сложно. В дальнейшем постораюсь упростить.
(Добавление)
OrmaJever пишет:



Я с этой функцией знаком но она мне не подходит так как вот
**
Если needle присутствует в haystack более одного раза, будет возвращён первый найденный ключ. Для того, чтобы возвратить ключи для всех найденных значений, используйте функцию array_keys() с необязательным параметром search_value.**
Выписка из определение.
А насщет оформление понимаю что у меня все сложно. В дальнейшем постораюсь упростить.
 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 17:34:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




но я тогда не понял почему нельзя проводить поиск ещё в бд через where хотябы ?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
strengerst
Отправлено: 28 Ноября, 2010 - 17:50:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




OrmaJever пишет:
но я тогда не понял почему нельзя проводить поиск ещё в бд через where хотябы ?


но понимаете когда человек ищет информацию он набирает в поисковике несколько ключевых слов. типа (картинки , скачать) вот если через базу данных тогда результат будет нулевым так как MySQL посчитает это одним предложением и такового как бы не найдет. Только если слова будут искаться по отдельности сначала картинки и только в следующем запросе еще и скачать. А через массив выведеться весть контекст в которм присутствуют и слова картини и слова скачать как по раздельности так и совместно.
Или я не прав.
 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 18:06:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Ну как я понял весь контент в котором нужно искать должен лежать в одной колонке? например с название content.
Искать можно в сразу в цыкле.
PHP:
скопировать код в буфер обмена
  1. while($arr = mysql_fetch_array($mysql_result))
  2. {
  3.      preg_match_all('#(.+?)'.$_POST['search'].'(.+?)#i', $arr['content']);
  4.      // или
  5.      strpos($arr['content'], $_POST['search']);
  6. }


да и вобще искат ьможно по разному. Смотря как вы хотите искать.

(Отредактировано автором: 28 Ноября, 2010 - 18:08:30)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
strengerst
Отправлено: 28 Ноября, 2010 - 18:25:12
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




OrmaJever пишет:
Ну как я понял весь контент в котором нужно искать должен лежать в одной колонке? например с название content.
Искать можно в сразу в цыкле.
PHP:
скопировать код в буфер обмена
  1. while($arr = mysql_fetch_array($mysql_result))
  2. {
  3.      preg_match_all('#(.+?)'.$_POST['search'].'(.+?)#i', $arr['content']);
  4.      // или
  5.      strpos($arr['content'], $_POST['search']);
  6. }


да и вобще искат ьможно по разному. Смотря как вы хотите искать.


Ну и как мне это все провернуть, у меня все данные в массиве $eryy, и даже если там найдуться указанные слова мне нужно знать к какому ключу в массиве принадлежит найденное слова, что бы через этот ключ вывести весь контент в котором присутствует искомое слово. А остальные контенты не выводить.
(Добавление)
Давай те поступи м по другому может кто знает тогда напишите как через MySQL вывести не одну строку где встречаеться искомое слово а все строки где встречають искомые слова. Тоесть когда пользователь вводит два ключевых слова пусть через пробел в поисковой строке, и эти два слова находяться в разных столбцах. Что бы MySQL запрос показал сразу эти две строки а остальные не трогал. Хм
 
 Top
ALEN
Отправлено: 28 Ноября, 2010 - 18:43:21
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




strengerst
Ну вот приехали к незнанию SQL и PHP , а не к тому, что выход - поиск в массиве. Учим: select where like и т.д.
 
 Top
strengerst
Отправлено: 28 Ноября, 2010 - 18:51:35
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




ALEN пишет:
strengerst
Ну вот приехали к незнанию SQL и PHP , а не к тому, что выход - поиск в массиве. Учим: select where like и т.д.


Да знаю я что такое select where like и как сними работать знаю и MaYSQL знаю, ну я еще раз повторяю поисковик будет работать только в том случаи если в поисковой строке
будет веденно одно слова, или предложение которое есть в базе данных, а два разных ключевых слова которые находяться в разных строках MaYSQL не покажит потому как
приймет эти ключевые слова за предложение.
И я об этом уже писал, читайте внимательнее.
(Добавление)
А через массив это было бы в полне выполнимо. Но вот не выходит по моему коду.
 
 Top
ALEN
Отправлено: 28 Ноября, 2010 - 18:55:47
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




strengerst
Вот еще раз подтверждаете свое незнания php и sql .
LIKE '%vasay%' - такого видимо точно не знаете, а еще конструкции по типу or и and - учите мат часть и все выйдет, не изобретайте велосипед, ваша задача в нескольких строках и на выводе получите уже готовый массив с данными.
 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 18:59:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




да ALEN прав. язык sql имеет много всего интересного!
strengerst вы думаете поиск на крупных сайта так же через масив делают?))


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
strengerst
Отправлено: 28 Ноября, 2010 - 19:06:25
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




OrmaJever пишет:
да ALEN прав. язык sql имеет много всего интересного!
strengerst вы думаете поиск на крупных сайта так же через масив делают?))

Но покрайне мере он позволет выполнение данной задачи, даже на этом сайте.
(Добавление)
ALEN пишет:
strengerst
Вот еще раз подтверждаете свое незнания php и sql .
LIKE '%vasay%' - такого видимо точно не знаете, а еще конструкции по типу or и and - учите мат часть и все выйдет, не изобретайте велосипед, ваша задача в нескольких строках и на выводе получите уже готовый массив с данными.


Вы мне не отрыли не чего нового таким способом находиться лишь одно солво или предложение, а не два разных ключевых слова, в одной строке.
(Добавление)
ALEN пишет:
strengerst
Вот еще раз подтверждаете свое незнания php и sql .
LIKE '%vasay%' - такого видимо точно не знаете, а еще конструкции по типу or и and - учите мат часть и все выйдет, не изобретайте велосипед, ваша задача в нескольких строках и на выводе получите уже готовый массив с данными.


Вы мне не отрыли не чего нового таким способом находиться лишь одно слово или предложение, а не два разных ключевых слова, в одной строке.
(Добавление)
Ну вот хотя бы взять поисковичок на это сайте, он находит все ключевые слова но я понимая так

"SELECT * FROM `FORUM` WHERE `comment` LIKE '%искомое слово%'";
Пусть заместо искомого слова там будет стоять $_POST['poisk']; НО как зделать как на этом сайте что бы выдовала все строки с коментариями в которых есть ключевые слова
тоесть ане одно или предложение. тоесть типа "php" "java" что бы выдала все строки с
слова java и строки со словами php.
Обьясните пожалуйста.
 
 Top
OrmaJever Модератор
Отправлено: 28 Ноября, 2010 - 19:27:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




http://phpclub[dot]ru/detail/article/mysql_search почитай тут. Только не первый раздел а всё что там написано. Ато обычно люди читают первые 5 строк и говорятчтотам чего то нету!


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB