|
|
|
| Народ помогите.Решил обучиться самостоятельно делать простой сайт на PHP.Взял у сына
диск Евгения Попова-Все технические моменты онлайн бизнеса в видеоформате 2.
PHP и MYSQL для начинающих.
9 урок в простом пхп сайте неработает цикл do-while ,
Повторял уроки с 1 по 9 7 раз, угрохал 8 дней и не пашет.
Рассерчал нашёл на диске его пхп скрипт( lessons.php ),
Переписал его к себе со всеми поправками на свой ( texn.php ).
И всё равно пишется такая же ошибка.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
И
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
В строках между которыми находится цикл do-while. | |
|
|
|
|
|
|
|
для: scan54
(21.03.2009 в 07:24)
| | на всякий случай перевод
Вы передаете функции mysql_fetch_array() не ответ запроса.
Покажите код. и для работы с ответом кажется не пойдет do-while, используют while или for | |
|
|
|
|
|
|
|
для: а-я
(21.03.2009 в 08:29)
| | Вот полный код всей странички на которой я застрял.Спасибо за внимание к моей проблеме.
<?php
include ("blocks/bd.php"); /*Соединяемся с базой*/
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='lessons'",$db);
$myrow = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="description" content="<?php echo $myrow['meta_d']; ?>">
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<? include("blocks/header.php"); ?>
<tr>
<td><table width="690" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--Подключаем левый блок сайта-->
<? include ("blocks/lefttd.php"); ?>
<td valign="top">
<p><?php echo $myrow['text']; ?> </p>
<?php
$result = mysql_query ("SELECT id,title,description,author,date FROM lessons",$db);
$myrow = mysql_fetch_array ($result);
do {
printf ("<table align='center' class='lesson'>
<tr>
<td class='lesson_title'>
<p class='lesson_name'><a href='view_lesson.php?id=%s'>%s</a></p>
<p class='lesson_adds'>Дата добавления: %s</p>
<p class='lesson_adds'>Автор урока: %s</p></td>
</tr>
<tr>
<td>%s</td>
</tr>
</table><br><br>", $myrow["id"], $myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"]);
}
while ($myrow = mysql_fetch_array ($result));
?>
<p> </p></td>
</tr>
</table></td>
</tr>
<!--Подключаем нижний графический элемент-->
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html> | |
|
|
|
|
|
|
|
для: scan54
(21.03.2009 в 15:21)
| | попробуйте использовать такую конструкцию для запросов.
<?
$sql = '
SELECT
`title`,
`meta_d`,
`meta_k`,
`text`
FROM
`settings`
WHERE
`page` = "lessons"
';
$result = mysql_query($sql,$db) or die(mysql_error());
?>
|
так сразу покажет запрос с ошибкой.
и мне кажется у Вас просто нет данных в БД.
запрос пришел пустой, а в коде нет проверки на пустой ответ.
а сразу идет попытка получение ответа.
автор скорее всего просто заглушил подобные ошибки. | |
|
|
|
|
|
|
|
для: а-я
(21.03.2009 в 16:13)
| | Спасибо. Я правда ещё слабак в своих начинаниях, но введя ваш код на страничку
получил ошибку,при перенесении которой с экрана Adobe Dreamweaver(а)на блокнот
получил вот такое описание:
Notice: Undefined variable: db in z:\home\localhost\www\moisite\texn.php on line 13
[ убрать подсказку | никогда больше не показывать ]
Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля
ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода
ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако
множество готовых скриптов требуют более низкого уровня ошибок.
Вы можете установить более слабый контроль ошибок одним из следующих способов:
Впишите в скрипты строчку:
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный),
который подключается всеми остальными.
Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания:
php_value error_reporting 7
Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ
не является рекомендуемым и может привести к серьезным неудобствам при отладке!
[Денвер: показать возможную причину ошибки]
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in
z:\home\localhost\www\moisite\texn.php on line 13
Но всё же интересно, что в
базе 2 таблицы и с 1 таблицы приходят данные, а со второй нет,хотя похоже выше всё сказано.Как вы думаете придёться мне исправлять конфигурацию или как? | |
|
|
|
|
|
|
|
для: scan54
(21.03.2009 в 19:14)
| | надо смотреть файл blocks/bd.php
оттуда не приходит переменная $db | |
|
|
|
|
|
|
|
для: а-я
(21.03.2009 в 19:27)
| | В файле blocks/bd.php прописано--
<?php
$db = mysql_connect ("localhost","uyt","uyt456");
mysql_select_db ("moisite",$db);
?> | |
|
|
|
|
|
|
|
для: scan54
(21.03.2009 в 19:39)
| | Прикрепите в архиве все что у вас есть включая дамп таблиц.
Попытаюсь сделать и написать комментарии.. | |
|
|
|
|
|
|
|
для: а-я
(21.03.2009 в 20:51)
| | Спасибо что тратите на неуча время, а может просто переделать do-while на while.
Вместо {действие} (условие) сделать (условие) {действие} только вот незнаю как?
<?php
$result = mysql_query ("SELECT id,title,description,author,date FROM lessons",$db);
$myrow = mysql_fetch_array ($result);
do {
printf ("<table align='center' class='lesson'>
<tr>
<td class='lesson_title'>
<p class='lesson_name'><a href='view_lesson.php?id=%s'>%s</a></p>
<p class='lesson_adds'>Дата добавления: %s</p>
<p class='lesson_adds'>Автор урока: %s</p></td>
</tr>
<tr>
<td>%s</td>
</tr>
</table><br><br>", $myrow["id"], $myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"]);
}
while ($myrow = mysql_fetch_array ($result));
?> | |
|
|
|
|
|
|
|
для: scan54
(21.03.2009 в 21:23)
| | а если так?
<?php
$sql = '
SELECT
`id`,
`title`,
`description`,
`author`,
`date`
FROM `lessons`';
$result = mysql_query($sql,$db) or die(mysql_error());
?>
<? if(mysql_num_rows($result)): ?>
<? while($_R = mysql_fetch_array ($result)): ?>
<table align='center' class='lesson'>
<tr>
<td class='lesson_title'>
<p class='lesson_name'><a href='view_lesson.php?id=<?php echo $_R['id']?>'><?php echo $_R['title']?></a></p>
<p class='lesson_adds'>Дата добавления: <?php echo $_R['date']?></p>
<p class='lesson_adds'>Автор урока: <?php echo $_R['author']?></p>
</td>
</tr>
<tr><td><?php echo $_R['description']?></td></tr>
</table>
<br /><br />
<? endwhile; ?>
<? else: ?>
Данных нету.<br />
<? endif; ?>
|
| |
|
|
|
|
|
|
|
для: а-я
(21.03.2009 в 21:35)
| | так тоже не получится.
Опять же, потому что include("blocks/bd.php"); не указан. | |
|
|
|
|
|
|
|
для: Trianon
(21.03.2009 в 22:06)
| | >так тоже не получится.
>Опять же, потому что include("blocks/bd.php"); не указан.
хммм. мне просто показалось, что мы разбираем только часть кода.
автор: scan54 (21.03.2009 в 15:21) там есть код, строки от 32 до 58.
конечно, мне надо было уточнить, что этот код надо заменить в таком то месте.. | |
|
|
|
|
 85.7 Кб |
|
|
для: а-я
(21.03.2009 в 21:35)
| | Доброе утро всем. Вписал я ваш код вместо do-while, получил
вот эту надпись:
Unknown column 'description' in 'field list'
(Неизвестный столбец 'описание' в 'cписке полей')
на своём тренеровочном сайте http://localhost/moisite
а в дизайне Dreamweaver(е) вот такую картинку
P.S начал читатать книгу Энди Харриса
PHPMySQL для начинающих
Ребята а может вам выслать его 9 урок,где он
всё по полочкам раскладывает и показывает,
правда он весит 28 мГБ ?
Мне сын сказал что за диск с этими уроками он выложил
2500 рублей, во как. | |
|
|
|
|
|
|
|
для: scan54
(22.03.2009 в 09:40)
| | значит в таблице lessons у Вас нету поле description
я как-то тож пытался использовать все эти навороты, только еще больше запутался.
легче выучить разметку, она как таблица умножения.. на первый взгляд тяжелая вещь, а потом от зубов отскакивает.
поставить denwer на свой ПК,
купить несколько книг, которые висят в шапке форума.
книги очень хорошие, авторы книг это администраторы этого сайта(форума) они пишут на довольно доступном языке...
=) даже, если я это все понял) а я был далек от всего этого..
И конечно, советую почаще использовать поиск на этом форуме.
Он представляет из себя отдельную ценность.)
В нем столько нового узнал) | |
|
|
|
|
 92.9 Кб |
|
|
для: а-я
(22.03.2009 в 12:33)
| | Спасибо дорогой за помощь,учту все ваши пожелания.Будем учиться мне ведь только 55, ешё непоздно.В Dump.ru выложил 9 урок, он записан как фильм,если интересно посмотрите.
Как ссылку ставить я ещё незнаю, а вот тут скрин со сылками которые мне дали при закачке.
Да вот прошу прошения я поставил пароль на файл( lesson9 ). | |
|
|
|
|
|
|
|
для: а-я
(21.03.2009 в 20:51)
| | Извини дружище моя старушка орёт, чтобы я завязывал до завтра.Так что прости, да и дампы я снимать ещё неумею.Вот скрины. | |
|
|
|
|
|
|
|
для: а-я
(21.03.2009 в 19:27)
| | И как Евгений Павлов говорит в этом 9 уроке, что с 1 таблицей в базе уже есть соединение с помощью include ,то со второй больше писать уже ненадо. | |
|
|
|
|
 123.2 Кб |
|
|
для: а-я
(21.03.2009 в 08:29)
| | Да вот кстати,что выплывает у меня и у него. | |
|
|
|
|
 83.1 Кб |
|
|
для: а-я
(21.03.2009 в 08:29)
| | А вот это у Евгения Попова. | |
|
|
|