Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (4) 1 2 [3] 4  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Ребята, нужна помощь..., Вроде всё правильно написал, а не работает...
TurnOff  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 29
Пользователь №: 39222
На форуме: 2 года, 8 месяцев, 10 дней
Карма:




Игорь_Vasinsky
а как сделать через LIKE ?
Не так ?


<?php

include("/db_connection.php"); // подключаемся к бд

function search ($query)
{
$query = trim($query);
$query = mysql_real_escape_string($query);
$query = htmlspecialchars($query);

if (!empty($query))
{
if (strlen($query) < 3) {
echo 'Слишком короткий поисковый запрос.';
} else if (strlen($query) > 128) {
echo 'Слишком длинный поисковый запрос.';
} else {

$query = str_replace('*', '%', $query);
$query = str_replace('?', '_', $query);
$q = "SELECT * FROM `words` WHERE `name` LIKE '$query'";
$result = mysql_query($q);
while($row = mysql_fetch_array($result))
{
echo $row['name'];
}

}

}
else {
echo 'Задан пустой поисковый запрос.';
}
}

?>


Это сообщение отредактировал TurnOff - 25.03.2014 - 22:24
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 6 дней


та. напиши на русском - что тебе надо.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TurnOff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 29
Пользователь №: 39222
На форуме: 2 года, 8 месяцев, 10 дней
Карма:




Игорь_Vasinsky
Вот эту задачу решить )

Вывести форму, содержащую поле для ввода ключевой фразы и сопроводительный текст: «В кл. фразе Вы можете использовать специальные символы: '*' - заменяет любую комбинацию символов; '?' - заменяет один символ. Таким образом на слово 'газ*' найдется 'газ', 'газета', 'газированный' и т.д. на 'баннер?' - 'баннера', 'баннеру', но не 'баннер' и 'баннерный'»
После отправки формы необходимо осуществить поиск по таблице с единственным текстовым полем, по вышеописанному алгоритму.
rolleyes.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 6 дней


написано для ANSII
для юникода строковые функции с mb_ + указать utf-8


//search - name у sumpit формы

if(isset($_POST['search'])){
//это то что с поискового поля в форме прилетело
if(strlen($_POST['search']) < 3)
echo 'Короткий поисковый запрос';
else{
$input = $POST['search']
$input = substr($input, array("*"=>"%","?"=>"_"));
$input = mysql_real_escape_string($input);

$res = mysql_query("select * from `you_table` where `you_cell` like '".$input."'");

if($res === false)
echo 'Ошибка при запросе в БД';
else{
if(mysql_num_rows($res) == 0)
echo 'Ничего не нашлось....';
else{
while($r=mysql_fetch_assoc($res)){
//массивы с полями из БД
echo '<pre>' . print_r($r, 1) . '</pre>';
}
}
}

}
}


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TurnOff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 29
Пользователь №: 39222
На форуме: 2 года, 8 месяцев, 10 дней
Карма:




Игорь_Vasinsky
ничего не возвращает! sad.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 6 дней


как твой sql выглядит? когда уже что-то ищешь?


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TurnOff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 29
Пользователь №: 39222
На форуме: 2 года, 8 месяцев, 10 дней
Карма:




Игорь_Vasinsky
в смысле ? Я пользуюсь паком Denwer. Но все задания, которые я делал раньше, все работали, и сейчас работают, а вот с этим... какие-то сложности... (
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 6 дней


1.
Цитата
$res = mysql_query("select * from `you_table` where `you_cell` like '".$input."'")


я пропустил ;

$res = mysql_query("select * from `you_table` where `you_cell` like '".$input."'");



если не сработает - то покажи что выводит если заменить на

echo "select * from `you_table` where `you_cell` like '".$input."'";


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TurnOff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 29
Пользователь №: 39222
На форуме: 2 года, 8 месяцев, 10 дней
Карма:




Игорь_Vasinsky
это я всё уже исправил, и ещё тут
$input = $POST['search']
вы пропустили ; . Заменил, пусто... как в пустыне :(
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TurnOff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 29
Пользователь №: 39222
На форуме: 2 года, 8 месяцев, 10 дней
Карма:




Игорь_Vasinsky
Warning: mb_substr() expects parameter 2 to be long, array given in Z:\home\test1.ru\www\search.php on line 13
select * from `words` where `name` like ''
Warning: mysql_num_rows() expects parameter 1 to be resource, null given in Z:\home\test1.ru\www\search.php on line 21
Ничего не нашлось....


Это сообщение отредактировал TurnOff - 25.03.2014 - 23:07
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SDV  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 73
Пользователь №: 37028
На форуме: 3 года, 8 месяцев, 5 дней
Карма: 2




Цитата (Игорь_Vasinsky @ 25.03.2014 - 22:10)
ты ошибаешься - это основа безопасности в mysql

это понятно, просто я смотрел код с первого поста, когда писал сообщение

TurnOff а почему не используешь встроенный в mysql regexp?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 6 дней


Цитата
Warning: mb_substr() expects parameter 2 to be long, array given in Z:\home\test1.ru\www\search.php on line 13


у тебя всё сыпиться после этой ошибки

как исправил её?

я функцию перепутал))) ахахаххахаха

strtr() нужна

mb_ не надо тут


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TurnOff  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 29
Пользователь №: 39222
На форуме: 2 года, 8 месяцев, 10 дней
Карма:




Игорь_Vasinsky

mb_strtr() он не нашёл, только strtr() и далее ошибка...

select * from `words` where `name` like ''
Warning: mysql_num_rows() expects parameter 1 to be resource, null given in Z:\home\test1.ru\www\search.php on line 21
Ничего не нашлось....
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 6 дней


у тебя эти строки

$input = $POST['поле в форме куда вводят текст']
$input = strtr($input, array("*"=>"%","?"=>"_"));
$input = mysql_real_escape_string($input);


должны вернуть строку уже готовую для LIKE

проверяй.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TurnOff  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 29
Пользователь №: 39222
На форуме: 2 года, 8 месяцев, 10 дней
Карма:




Игорь_Vasinsky

index.html

<html>
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>
<body>

<form
name="search" method="post" action="search.php">
<p>
«В кл. фразе Вы можете использовать специальные символы: '*' - заменяет любую комбинацию символов; '?' - заменяет один символ. <br>Таким образом на слово 'газ*' найдется 'газ', 'газета', 'газированный' и т.д. на 'баннер?' - 'баннера', 'баннеру', но не 'баннер' и 'баннерный'»</p>
<input
type="search" name="query" placeholder="Поиск">
<button
type="submit">Найти</button>
</form>

</body>
</html>



search.php

<?php

include("/db_connection.php"); // подключаем БД



if(isset($_POST['query'])){
//это то что с поискового поля в форме прилетело
if(strlen($_POST['query']) < 3)
echo 'Короткий поисковый запрос';
else{
$input = $POST['query'];
$input = strtr($input, array("*"=>"%","?"=>"_"));
$input = mysql_real_escape_string($input);

$res = mysql_query("select * from `words` where `name` like '".$input."'");

if($res === false)
echo 'Ошибка при запросе в БД';
else{
if(mysql_num_rows($res) == 0)
echo 'Ничего не нашлось....';
else{
while($r=mysql_fetch_assoc($res)){
//массивы с полями из БД
echo '<pre>' . print_r($r, 1) . '</pre>';
}
}
}

}
}

?>


Результат...

Ничего не нашлось....
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (4) 1 2 [3] 4  Ответ в темуСоздание новой темыСоздание опроса