[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск с помощью MySql
Viper666
Поиск не работает, выдает ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%"текст%'' at line 4
И как нужно вывeсти найденные результаты?
<form  method="post">
<input
type="text" name="nmag" size="60" value="">
<input
type="submit" name="submit" value="Искать">
</form>

	$search = mysql_qw('
SELECT *
FROM name
WHERE name2
LIKE %"'
.($_POST['nmag'])."%'"
) or die(mysql_error());

while($search2 = mysql_fetch_assoc($search)){

echo $search2;
}




Спустя 4 минуты, 20 секунд (4.03.2012 - 14:04) Visman написал(а):
$search = mysql_query('SELECT *
FROM name
WHERE name2
LIKE
\'%'.mysql_real_escape_string($_POST['nmag']).'%\''
) or die(mysql_error());

while($search2 = mysql_fetch_assoc($search)){

print_r($search2);
}

Спустя 4 минуты, 36 секунд (4.03.2012 - 14:09) Viper666 написал(а):
Выводит ArrayArray

Спустя 1 минута, 20 секунд (4.03.2012 - 14:10) Visman написал(а):
Цитата (Viper666 @ 4.03.2012 - 19:09)
Выводит ArrayArray

Кто виноват, что ты массив выводишь? ;)

print_r($search2);

Спустя 6 минут, 46 секунд (4.03.2012 - 14:17) inpost написал(а):
LIKE % -внутри кавычек

Спустя 3 минуты, 47 секунд (4.03.2012 - 14:21) Viper666 написал(а):
Выводит так: Array ( [text] => тут результат )

Спустя 4 минуты, 41 секунда (4.03.2012 - 14:25) Visman написал(а):
Цитата (Viper666 @ 4.03.2012 - 19:21)
Выводит так: Array ( [text] => тут результат )

Правильно.
Чтобы вывести по другому нужно вызять каждый элемент строки и обрамить его требуемым под стиль вывода html кодом например.

Спустя 5 часов, 13 минут, 43 секунды (4.03.2012 - 19:39) Viper666 написал(а):
Спасибо!

Спустя 1 день, 2 часа, 48 секунд (5.03.2012 - 21:40) Viper666 написал(а):
Мне нужно искать по определенной section, section'ов 12 Когда в место WHERE поставил section=1 поиск выдает не правильный результат, он должен вывести то что есть в section=1) Может я что то забыл написать?

$search = mysql_qw('SELECT *
FROM tbl_name
WHERE section=1
LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());

Спустя 8 часов, 5 минут, 31 секунда (6.03.2012 - 05:45) Visman написал(а):
Цитата (Viper666 @ 6.03.2012 - 02:40)
LIKE \'%'.$word.'%\'

К чему относится? К какому полю?

В данной записи как раз ни к какому wink.gif

Спустя 8 часов, 33 минуты, 15 секунд (6.03.2012 - 14:19) Viper666 написал(а):
Не понял вопрос?

$word = mysql_real_escape_string($_POST['search']);

Спустя 5 минут, 36 секунд (6.03.2012 - 14:24) Visman написал(а):
Цитата (Viper666 @ 6.03.2012 - 19:19)
Не понял вопрос?

Я спрашиваю почему поле не пропасано к которому LIKE относится.

Спустя 22 минуты, 8 секунд (6.03.2012 - 14:46) Viper666 написал(а):
Как прописать?

Спустя 7 минут, 32 секунды (6.03.2012 - 14:54) Visman написал(а):
Цитата (Viper666 @ 6.03.2012 - 19:46)
Как прописать?

Пример
SELECT * FROM tbl_name WHERE set_col LIKE '%value%';

set_col - имя поля
value - с чем сравниваем
и условием тут считается set_col LIKE '%value%', а не LIKE '%value%' как у тебя в запросе.

Спустя 6 минут, 57 секунд (6.03.2012 - 15:01) Viper666 написал(а):
Ну мне надо искать только с section под названием 1

Спустя 1 минута, 49 секунд (6.03.2012 - 15:03) Visman написал(а):
:blink:
$search = mysql_qw('SELECT *
FROM tbl_name
WHERE section=1
ORDER BY id DESC'

) or die(mysql_error());

Спустя 2 минуты, 38 секунд (6.03.2012 - 15:05) Viper666 написал(а):
С section=1 должен искать!

Спустя 7 минут, 54 секунды (6.03.2012 - 15:13) Visman написал(а):
Цитата (Viper666 @ 6.03.2012 - 20:01)
Ну мне надо искать только с section под названием 1

На это я тебе дал ответ

$search = mysql_qw('SELECT *
FROM tbl_name
WHERE section=1
ORDER BY id DESC'

) or die(mysql_error());


Что не так?
Сам же написал условие "надо искать только с section под названием 1" больше в условии ни чего не сформулировано.
Цитата
Правильно сформулированный вопрос - это половина правильного ответа

Спустя 2 минуты, 25 секунд (6.03.2012 - 15:16) Viper666 написал(а):
Если я туда поставлю LIKE \'%'.$word.'%\' будет работать?

Спустя 1 минута, 28 секунд (6.03.2012 - 15:17) NitroGenerate написал(а):
Цитата (Viper666 @ 6.03.2012 - 12:16)
Если я туда поставлю LIKE \'%'.$word.'%\' будет работать?

А почему не будет-то?
$search = mysql_qw('SELECT *
FROM tbl_name
WHERE section LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());

Спустя 1 минута, 59 секунд (6.03.2012 - 15:19) Visman написал(а):
Цитата (Viper666 @ 6.03.2012 - 20:16)
Если я туда поставлю LIKE \'%'.$word.'%\' будет работать?

Нет, так как выше я написал как like должен использоваться
Цитата (Visman @ 6.03.2012 - 19:54)
set_col - имя поля
value - с чем сравниваем
и условием тут считается set_col LIKE '%value%'


Если уж на то пошло, то посмотри свой первый пост в теме, там то запрос верный!!!

Спустя 3 минуты, 19 секунд (6.03.2012 - 15:22) Viper666 написал(а):
Как ты написал он работает, если написать так

$search = mysql_qw('SELECT *
FROM tbl_name
WHERE section=1 LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());

он выдает не правильный результат)

Спустя 3 минуты, 49 секунд (6.03.2012 - 15:26) NitroGenerate написал(а):
Выбери уже наконец, что тебе надо section=1
или
section LIKE \'%'.$word.'%\'
Вместе, использовать неправильно!

Спустя 1 минута, 17 секунд (6.03.2012 - 15:27) Viper666 написал(а):
section=1 нужен)
А как использовать?

Спустя 1 минута, 12 секунд (6.03.2012 - 15:29) NitroGenerate написал(а):
Цитата (Viper666 @ 6.03.2012 - 12:27)
section=1 нужен)
А как использовать?

$search = mysql_qw('SELECT *
FROM tbl_name
WHERE section=1
ORDER BY id DESC'

) or die(mysql_error());


Выдаст результат все строки в которых ячейка section будет равна 1.

Спустя 55 секунд (6.03.2012 - 15:30) Visman написал(а):
Ему надо
$search = mysql_qw('SELECT *
FROM tbl_name
WHERE section=1 AND
name2 LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());

Но сформулировать не может :P

Спустя 1 минута, 43 секунды (6.03.2012 - 15:31) Viper666 написал(а):
Цитата (Visman @ 6.03.2012 - 12:30)
Ему надо
$search = mysql_qw('SELECT *
FROM tbl_name
WHERE section=1 AND
name2 LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());

Но сформулировать не может :P

Я так пробовал, тоже не правильный результат!

Спустя 1 минута, 51 секунда (6.03.2012 - 15:33) Visman написал(а):
Тогда показывай пример таблицы с набором данных
и какой результат правильный.

Спустя 5 минут, 51 секунда (6.03.2012 - 15:39) Viper666 написал(а):
Нашел ошибку)

$search = mysql_qw('SELECT *
FROM name
WHERE name2 and section=1
LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());


Надо было местами повернуть)
WHERE section=1 AND text


Всем спасибо!

Спустя 3 минуты, 7 секунд (6.03.2012 - 15:42) Visman написал(а):
Т.е. этот запрос
$search = mysql_qw('SELECT *
FROM name
WHERE name2 and section=1
LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());

работает правильно?
Наверное, я чего-то не понимаю :blink:

Спустя 4 минуты, 27 секунд (6.03.2012 - 15:47) NitroGenerate написал(а):
Свернутый текст
омг... *истерика*


Может быть так?
$search = mysql_qw('SELECT *
FROM name
WHERE section=1 and
text LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());


Свернутый текст
Хорошая игра, эта угадайка...

Спустя 43 секунды (6.03.2012 - 15:47) Viper666 написал(а):
Цитата (Visman @ 6.03.2012 - 12:42)
Т.е. этот запрос
$search = mysql_qw('SELECT *
FROM name
WHERE name2 and section=1
LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());

работает правильно?
Наверное, я чего-то не понимаю :blink:

Нет вот это)

$search = mysql_qw('SELECT *
FROM name
WHERE section=1 AND name2
LIKE
\'%'.$word.'%\'
ORDER BY id DESC'
) or die(mysql_error());

Спустя 59 секунд (6.03.2012 - 15:48) Visman написал(а):
Цитата (NitroGenerate @ 6.03.2012 - 20:47)
$search = mysql_qw('SELECT *
  FROM name
  WHERE section=1 and
  text LIKE \'%'.$word.'%\'
  ORDER BY id DESC'
  ) or die(mysql_error());

Я аналогично написал выше, только вместо text было взято name2 (имя поля из первого поста).

Спустя 44 секунды (6.03.2012 - 15:49) Visman написал(а):
Цитата (Viper666 @ 6.03.2012 - 20:47)
Нет вот это)

Посмотри мои посты выше.

Спустя 6 минут, 3 секунды (6.03.2012 - 15:55) Viper666 написал(а):
Цитата (Visman @ 6.03.2012 - 12:48)
Цитата (NitroGenerate @ 6.03.2012 - 20:47)
$search = mysql_qw('SELECT *
  FROM name
  WHERE section=1 and
  text LIKE \'%'.$word.'%\'
  ORDER BY id DESC'
  ) or die(mysql_error());

Я аналогично написал выше, только вместо text было взято name2 (имя поля из первого поста).

Да так было)

Спустя 5 часов, 33 минуты, 31 секунда (6.03.2012 - 21:29) Viper666 написал(а):
Остался еще вопрос) Если в место ? прописать 1,2 или 3 все правильно выводет)
А сам автоматический не определяет section) Только выводит section=1, а в остальных результат 0 (Ошибок не выводит)

$search = mysql_qw('SELECT *
FROM sms
WHERE section=? AND text
LIKE
\'%'.$word.'%\'',$elem7['number']
)
or die(mysql_error());

Спустя 3 минуты, 17 секунд (6.03.2012 - 21:32) Visman написал(а):
,$elem7['number']

Это что за интересная вещь?

Спустя 17 минут, 14 секунд (6.03.2012 - 21:49) Viper666 написал(а):
Цитата (Visman @ 6.03.2012 - 18:32)
,$elem7['number']

Это что за интересная вещь?

$res7 = mysql_qw(' 
SELECT *
FROM name
'
) or die(mysql_error());

$elem7 = mysql_fetch_assoc($res7);


$elem7['number']

тут хранятся все section, от 1 до последнего.
section=? присваевается $elem7['number']
И будет так, section=1 на пример)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.