[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: переменные в запросе
IndigoHollow
У меня есть выпадающий список:

<select name="field">
<option value="AUT">Автор
<option value="ZAGLAVIE">Заглавие
<option value="PROD_ZAGL">Продолжение заглавия
<option value="SVED_IZDAN">Сведения об издании
<option value="MESTO_IZD">Место издания
</select>

и поле ввода текста input.
Я выбираю в выпадающем спичке поле и ввожу в input какое-то значение, затем средствами PHP записываю в переменную $field название выбранного поля, а в переменную $value текст из input.
Формирую запрос:

$query = "SELECT * FROM books WHERE '$field' = '$value' ";

, но он не хочет работать. Видимо я что-то делаю не так и вообще сомневаюсь можно ли использовать в качестве поля переменную. Подскажите пожалуйста как мне быть, очень хочется решить этот вопрос.



Спустя 21 минута, 55 секунд (22.05.2010 - 22:28) maxims написал(а):
возможно тебе надо писать `$field` вместо '$field'
т.е. в запросе поля надо заключать не в ' (одинарные ковычки), а в ` (клавиша где русское Ё), либо вообще без них.....

Спустя 32 минуты, 23 секунды (22.05.2010 - 23:01) IndigoHollow написал(а):
maxims, это не помогло, но спасибо за попытку помочь

Запрос проходит,но не выдаёт результата. Там у меня в цикле стоит счётчик и я знаю что на мой запрос должна найтись как минимум одна запись, но пишет, что ничего не нашлось.

Спустя 8 минут, 49 секунд (22.05.2010 - 23:10) maxims написал(а):
сделай так
$query = "SELECT * FROM books WHERE " . $field . "='" . $value . "' ";

Спустя 32 минуты, 13 секунд (22.05.2010 - 23:42) IndigoHollow написал(а):
Я так пробовал(перепробовал всё,что только можно), но результат по прежнему "Найдено записей: 0", хотя записи с такими значениями в базе есть

Спустя 49 минут, 32 секунды (23.05.2010 - 00:31) waldicom написал(а):
Просто вывести значение переменной $query
А также
$result = mysql_query($query)  or die(mysql_error());

Спустя 9 часов, 38 минут, 57 секунд (23.05.2010 - 10:10) Basili4 написал(а):
Посмотри что в $query если сам запрос нормально сформирован тогда только одно в табле нет записи удовлетворяющему твоему условию. Я втаких случаях пишу статический запрос

$query = "SELECT * FROM books WHERE AUT='Пушкин'; - ну иили какой там утебя автор есть и проверь в phpmyadmin если набор данных возращает нормально вставляй этот же запрос в скрипт он тоже должен вернуть набор данных как надо. если все ок. заменяй статичные занчения переменными.

Спустя 24 минуты, 48 секунд (23.05.2010 - 10:35) IndigoHollow написал(а):
maxims
waldicom
Basili4
Большое спасибо за ответы! Ошибку нашёл сам: "Архангельский" он не находит, т.к. в базе есть только "Архангельский А.Я."... соответственно надо добавить в запрос LIKE, % или что там. Сейчас попробую.


Попробовал. Правильно писать:

$query = "SELECT * FROM books WHERE $field LIKE '%".$value."%'";

Ещё раз всем спасибо за ответы smile.gif
Быстрый ответ:

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