Чтобы выбрать нужную лекцию надо в форму ввести 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
вообще есть удобная штука на время отладки
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 сделать раньше запроса или что? |
когда ты меня за дурочка перестанешь держать

после валидного запрса и перед выводом
Спустя 3 минуты, 53 секунды (6.07.2011 - 18:41) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 6.07.2011 - 19:37) |
когда ты меня за дурочка перестанешь держать |
Я не считаю людей глупее себя. Вот в том случаи, например, я не понял формулировку и уточнил, что ж такое ты имел в виду.
Спустя 1 минута, 8 секунд (6.07.2011 - 18:42) Игорь_Vasinsky написал(а):


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