|
|
|
| Учусь премудростям phpp
выдаёт такую ошибку
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\devichnik\kosmetika.php on line 34
<?php
include ("blocks/bd.php"); /*Соединяемся с базой */
$result = mysql_query("SELECT id,title,meta_d,meta_k,text FROM settings WHERE page='kosmetika'", $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 class="title">
<table width="690" border="0" align="center" bgcolor="#FFFF66" class="main_border">
<!--Подключаем шапку сайта-->
<?php include("blocks/header.php"); ?>
<tr>
<td>
<table width="690" border="1">
<tr>
<!--Подключение навигационной панели-->
<?php include("blocks/lefttd.php");?>
<td valign="top"> <p><?php echo $myrow['text']; ?></p>
<?php
$result = mysql_query("SELECT id.title.description FROM kosmetiks", $db);
$myrow = mysql_fetch_array($result);
do {
printf ("<table align='center' class='kosmetika'>
<tr>
<td class='kosmetika_title'>%s</td>
</tr>
<tr>
<td> </td>
</tr>
</table>", $myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
?>
<p> </p></td>
</tr>
</table></td>
</tr>
<!--Подключаем нижний графический элемент-->
<?php include("blocks/footer.php");?>
</table>
</body>
</html>
Как найти ошибку? | |
|
|
|
|
|
|
|
для: Ирен
(25.07.2009 в 15:05)
| | Ошибка вовсе не в php, ошибка в MySQL запросе. Найти ошибку я не могу, потому что нету структур таблиц | |
|
|
|
|
|
|
|
для: winflip
(25.07.2009 в 15:25)
| | Да вы правы. переустановила денвер. и всё пошло без проблем | |
|
|
|
|
|
|
|
для: Ирен
(25.07.2009 в 15:05)
| | проблема в том, что после оператора
$result = mysql_query("SELECT id.title.description FROM kosmetiks", $db);
|
Вы не должны тут же передавать $result любым функциям (в том числе и mysql_fetch_array()),
не проверив предварительно, что оператор был успешно выполнен. В случае, если он оказался отвергнут, самое разумное - вывести полный текст SQL-кода, диагностическое сообщение MySQL , и прекратить исполнение скрипта, поскольку в случае ошибки дальнейшая логика алгоритма так или иначе оказывается нарушенной.
$sql = "SELECT id.title.description FROM kosmetiks";
$result = mysql_query($sql, $db);
if(!$result) exit("Error in ".htmlspecialchars($sql)."<br>".mysql_error());
про примененный do...while писать очередной раз никаких приличных слов уже не осталось. | |
|
|
|
|
|
|
|
для: Ирен
(25.07.2009 в 15:05)
| | И снова здравствуйте Евгений Попов...
здесь
$result = mysql_query("SELECT id.title.description FROM kosmetiks", $db);
|
вместо точек запятые наверное нужны? | |
|
|
|
|
|
|
|
для: Valick
(25.07.2009 в 15:26)
| | >вместо точек запятые наверное нужны?
нужен навык обнаружения таких вещей через средства диагностики.
А не через форум. | |
|
|
|
|
|
|
|
для: Trianon
(25.07.2009 в 15:37)
| | Точки в этом файле согласна ошибка моя. но в другом запятые стоят. ошибка к сожалению таже mysql valid
и где взять эти средства диагностики | |
|
|
|
|
|
|
|
для: Valick
(25.07.2009 в 15:26)
| | Вот именно имнно Евгений Попов то мне и нужен. Если это тот который курсы создаёт. Именнь по ним я и учусь | |
|
|
|
|
|
|
|
для: Ирен
(25.07.2009 в 17:23)
| | почитайте | |
|
|
|
|
|
|
|
для: Valick
(25.07.2009 в 19:32)
| | Читать всё не стала. Только увидела как ктото пытается защетить Попова. Ну мне может и далеко до него. Может он и неплохой курс создал. у меня просто нет вариантов сравнить. Но заморочек у него куча. И суть даже не в написании кода. Мне просто иногда нужно посмотреть всю страницу где он пишет код. но увы приходится бегунком пользоваться чего я не люблю.
Да и главное мой код написан правильно. Хотя кто то пытался про do while чего то там сказать. Но всё писалось по Попову. И как ни странно но правильно.
Просто попалась карявая БД . после переустановки всё пошло на ура | |
|
|
|
|
|
|
|
для: Ирен
(25.07.2009 в 20:48)
| | Хотя кто то пытался про do while чего то там сказать.
do while - там быть не должно | |
|
|
|
|
|
|
|
для: Valick
(25.07.2009 в 20:51)
| | Картина Репина "Приплыли". Давайте вы не будете говорить что должно быть а что нет
Евгений Попов сам лично сказал что они обязательно должны быть | |
|
|
|
|
|
|
|
для: Ирен
(25.07.2009 в 15:05)
| | ошибка в использовании двойных и одинарных запятых, а точнее в место
printf ("<table align='center' class='kosmetika'>
<tr><td class='kosmetika_title'>%s</td></tr>
<tr><td> </td></tr>
</table>", $myrow["title"])
|
надо
printf ("<table align='center' class='kosmetika'>
<tr><td class='kosmetika_title'>%s</td></tr>
<tr><td> </td></tr>
</table>', $myrow['title']")
|
| |
|
|
|
|
|
|
|
для: bab-nike
(21.08.2009 в 02:30)
| | >>>>
printf ("<table align='center' class='kosmetika'>
<tr><td class='kosmetika_title'>%s</td></tr>
<tr><td> </td></tr>
</table>", $myrow["title"])
небыло ошибки
$myrow["title"] это второй параметр функции printf() | |
|
|
|
|
|
|
|
для: Ирен
(25.07.2009 в 15:05)
| | а вообще грамотно было бы написать вот так.
<?php
...
do { ?>
<table align='center' class='kosmetika'>
<tr>
<td class='kosmetika_title'><?php echo $myrow['title'] ?></td>
</tr>
<tr><td> </td>
</tr>
</table>
<?php}
while ($myrow = mysql_fetch_array($result));
?>
|
| |
|
|
|
|
|
|
|
для: bab-nike
(21.08.2009 в 02:40)
| | do {} while - тут не место | |
|
|
|
|
|
|
|
для: bab-nike
(21.08.2009 в 02:40)
| | впринципе пооптимальнее
, но кто как привыкает делать.
Лично я стараюсь не делать в html-тегах апострофов
,в xhtml это недопустимо
и тоже в строковых переменных также как в $myrow['title'] предпочитаю апострофы,
ибо там нечего интерпритировать, и проще не запутаться если там масса разных символов
//upd
>do {} while - тут не место
всётаки неплохо, что начинающих сразу знакомят с do {} while :)
самый редкоиспользуемый цикл , и не везде с ним можно ознакомиться
, если знакомят с ошибками , то на них и учатся )) | |
|
|
|