[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не может вывести из бызы данных
Guest
У меня на сайте список лекций. все лекции лежат в базе данных под своим id.
Чтобы выбрать нужную лекцию надо в форму ввести id лекции.
Форма:

<form method="post" action="lesson.php">
<table
align="center" CELLPADDING=0 CELLSPACING=0>
<tr>
<td
style="border: 0px">Введите номер лекции (пример: 1):</td>
<td
style="border: 0px"><input type="text" name="id" size="1"></td>
</tr>
<tr>
<td
style="border: 0px" colspan="2" align="center"><input type="submit" name="ok" value="На урок" size="10"></td>
</tr>
</table>
</form>


При нажатии на кнопку "На урок" должна открыться страничка в теле которой стоит код

          <table>

<? $sql = "SELECT * FROM lesson WHERE id = '$_POST[id]'";
$query = mysql_query($sql);
while ($row = mysql_fetch_assoc($query)){
?>
<tr>
<
td align="center><? echo $row['name']; ?></td>
</tr>
<tr>
<td bgcolor="
#ffffff"><? echo $row['lesson']; ?></td>
</tr>
<?
}
?>
</table>


И вот в чем, собственно, вся проблема. Страничка-то открывается, но вместо нужной лекции на ней написано:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in


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



Спустя 7 минут, 51 секунда (6.07.2011 - 18:23) Игорь_Vasinsky написал(а):
$sql = "SELECT * FROM `lesson` WHERE id = '".(int)$_POST['id']."'";


и

вначале необходимо проверить наличие POST
потом проверить есть ли совпадения в БД mysql_num_rows - а потом уже вывод

и безопасность конечно же.

в подписи линк на оформление SQL запросов

Спустя 5 минут, 13 секунд (6.07.2011 - 18:28) neadekvat написал(а):

Спустя 59 секунд (6.07.2011 - 18:29) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 6.07.2011 - 19:23)
потом проверить есть ли совпадения в БД mysql_num_rows - а потом уже вывод

То есть mysql_num_rows сделать раньше запроса или что? оО А вообще, тут это ни при чем. Тут возвращается не дескриптор, а false, т.е. дело не в отсутствующих записях.

Спустя 4 минуты, 30 секунд (6.07.2011 - 18:34) Игорь_Vasinsky написал(а):
1. ошибка в запросе, я подкорректировал
2. - если нет совпадений - будет тоже не красиво.

Guest
вообще есть удобная штука на время отладки

$query = mysql_query($sql) or die(mysql_error());

Спустя 1 минута, 43 секунды (6.07.2011 - 18:35) Guest написал(а):
о. получилось) спасибо!!!

Спустя 49 секунд (6.07.2011 - 18:36) Игорь_Vasinsky написал(а):
выдели для себя эти моменты.

Спустя 1 минута, 19 секунд (6.07.2011 - 18:37) Игорь_Vasinsky написал(а):
Цитата
То есть mysql_num_rows сделать раньше запроса или что?

когда ты меня за дурочка перестанешь держать biggrin.gif
после валидного запрса и перед выводом

Спустя 3 минуты, 53 секунды (6.07.2011 - 18:41) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 6.07.2011 - 19:37)
когда ты меня за дурочка перестанешь держать

Я не считаю людей глупее себя. Вот в том случаи, например, я не понял формулировку и уточнил, что ж такое ты имел в виду.

Спустя 1 минута, 8 секунд (6.07.2011 - 18:42) Игорь_Vasinsky написал(а):
biggrin.gif лан.. я ж без злости и без иронии - просто учитываю опыт общения wink.gif

Спустя 1 минута, 27 секунд (6.07.2011 - 18:44) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 6.07.2011 - 19:42)
я ж без злости и без иронии - просто учитываю опыт общения

Да и я. Просто не ставлю смайликов ")))", оттого, возможно, и кажется, что я сижу с каменным лицом и всех стараюсь подосрать.

Спустя 1 минута, 46 секунд (6.07.2011 - 18:46) Игорь_Vasinsky написал(а):
biggrin.gif лан - главное, что помогли.
Быстрый ответ:

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