[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка с БД
Lexus-best
выполняю поиск по базе данных.
переменная speciality_f текстовая (пм или эк) берется из формы при нажатии кнопки
$sql= "SELECT * FROM fakultet WHERE speciality = " . $_POST['speciality_f'];
$result = mysql_query($sql);
echo "Студенты специальности " . $_POST['speciality_f']. ":";
while ($rows=mysql_fetch_assoc($result))
{
echo '<li>', $rows[name], ' ', $rows[surname],' ', $rows[middle_name],' ', $rows[date];
}
...


при выполнении пишет ошибку "Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource" в строке while ($rows=mysql_fetch_assoc($result)).

если заменить поиск по числовым переменным то всё работает.
может кто сталкивался с такой проблемкой. заранее благодарен любой помощи.



Спустя 6 минут, 34 секунды (21.03.2011 - 22:45) sharki написал(а):
А как насчет ковычек? =)

$sql= "SELECT * FROM `fakultet` WHERE `speciality` = ' " . $_POST['speciality_f'] . " ' ";


и здесь тоже

echo '<li>' . $rows['name'] . ' ' .  $rows['surname'] . ' ' . $rows['middle_name'] . ' ' .  $rows['date'];

Спустя 8 минут, 41 секунда (21.03.2011 - 22:53) Lexus-best написал(а):
http://voronko.hut2.ru/ - тут я всё проверяю.

заменил. ошибка пропала, но и не выводит....

ковычки не всегда обязательны.


Спустя 19 минут, 28 секунд (21.03.2011 - 23:13) Lexus-best написал(а):
вопрос по прежнему открыт.

Спустя 18 минут, 26 секунд (21.03.2011 - 23:31) inpost написал(а):
Lexus-best
Кавычки не нужны, когда там целое число, а у тебя явно не целое, и скорее всего не число.
Не выводит, потому что записей нету таких, проверяй через mysql_num_rows

Спустя 6 минут, 6 секунд (21.03.2011 - 23:37) Lexus-best написал(а):
переменная speciality_f текстовая ( принимает значения пм или эк)

ок. проверю mysql_num_rows......
потестирую выводы массивов.

потом отпишусь

Спустя 19 часов, 8 минут, 37 секунд (22.03.2011 - 18:46) Lexus-best написал(а):
проблема решилась путём обнесения переменной $_POST['speciality_f'] фигурными скобками {} . B)

в итоге строка выглядит
$sql= "SELECT * FROM `fakultet` WHERE `speciality` =  '{$_POST['speciality_f']}' ";


всем спасибо за внимание!

Спустя 40 минут, 34 секунды (22.03.2011 - 19:26) sharki написал(а):
Правильнее делается так

$sql= "SELECT * FROM `fakultet` WHERE `speciality` =  '" . $_POST['speciality_f'] . "' ";


_____________
fan lexus =|
Быстрый ответ:

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