Проблема с постраничной навигацией

plahish

Новичок
почему выдаёт ошибку mysql_fetch_array() expects parameter 1 to be resource, boolean given in


$result77 = mysql_query("SELECT str FROM options", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];

@$page = $_GET['page'];

$result00 = mysql_query("SELECT COUNT (*) FROM data WHERE cat='$cat'");
$temp = mysql_fetch_array($result00);

$posts = $temp[0];

$total = (($posts - 1) / $num) + 1;
$total = intval($total);

$page = intval($total);

$page = intval($page);

if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;

$start = $page * $num - $num;
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start,$num",$db);
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Тебе указано на то, что ты передаешь неправильный параметр, почему - отладка скажет.

PS: для оформления кода тут есть специальные тэги.

PPS: Выведи запрос и посмотри что в нем.
 

keltanas

marty cats
PHP:
@$page = $_GET['page'];
...
$page = intval($total);
$page = intval($page);
Даже PHP знать не надо...
 

plahish

Новичок
$result00 = mysql_query("SELECT COUNT (*) FROM data WHERE cat='$cat'");
$temp = mysql_fetch_array($result00); ошибка здесь, а почему я что-то не могу понять, в $result00 ничего не попадает
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
astati
Предствь себе нет, не {$cat} и даже не {$dog}
Надо пойти и прочитать про человеческий эскейпинг данных в запросах

plahish
А тебе я уже сказал что сделать. Берешь свой запрос, выводишь его через echo на экран, копируешь, вставляешь в phpMyAdmin и вуаля, увидишь в чем ошибка.
 

koctik1

Новичок
Просто вся эта постраничка взята у Вас из "поповского" метода с выборкой полей из таблиц options, data с полем cat и всего того подобного относящегося к всей странице и сам код указали не полностью. Конечно со всем этим надо практиковаться сначала на компе виртуальным вебсервером.
 

plahish

Новичок
в myadmin на запрос mysql_query("SELECT COUNT (*) FROM data WHERE cat='$cat'") выдаёт ошибку
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("SELECT COUNT (*) FROM data WHERE cat='$cat'")' at line 1
 

plahish

Новичок
вроде бы нет вот текст всей страницы
<? include ("blocks/bd.php");
if (isset($_GET['cat'])) {$cat = $_GET['cat'];}
if (!isset ($cat)) {$cat = 1;}
$result = mysql_query("SELECT * FROM categories WHERE id='$cat'",$db);

if (!$result)
{
echo "<p>запрос на выборку данных из базы не прошёл. Напишите об этом админисратору [email protected]<br><strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)
{
$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 http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><? echo "Заметки категории - $myrow[title]";?></title>
<link href="*" rel="stylesheet" type="text/css">
<link href="style.css" rel="stylesheet" type="text/css">
<meta name="keywords" content="<? echo $myrow["meta_k"];?>">
<meta name="description" content="<? echo $myrow["meta_d"];?>">


</head>

<body>
<table width="690" border="0" align="center" bgcolor="#FFFFFF" class="main_border">
<? include ("blocks/header.php");?>
<tr>
<td valign="top"><table width="100%" border="0">
<tr>
<? include ("blocks/lefttd.php"); ?>
<td valign='top'><?


echo $myrow["text"];


$num = 2;

@$page = $_GET['page'];

$result00 = mysql_query("SELECT COUNT (*) FROM data WHERE cat='$cat'");
echo "$result00";
$temp = mysql_fetch_array($result00);

$posts = $temp[0];

$total = (($posts - 1) / $num) + 1;
$total = intval($total);

$page = intval($total);

$page = intval($page);

if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;

$start = $page * $num - $num;
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start,$num",$db);



$result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start,$num",$db);




if (!$result)
{
echo "<p>запрос на выборку данных из базы не прошёл. Напишите об этом админисратору [email protected]<br><strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);



do
{
printf ("<table align='center' class='post'>

<tr>
<td class='post_title'>
<p class='post_name'><img class='mini' align='left' src='%s'> <a href='view_post.php?id=%s'>%s</a></p>
<p class='post_adds'> Дата добавления: %s</p>
<p class='post_adds'> Автор урока: %s</p></td>
</tr>

<tr>
<td>%s <p class='post_view'>Просморов: %s</p></td>
</tr>

</table><br><br>",$myrow["mini_img"],$myrow["id"],$myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"],$myrow["view"]);

}

while($myrow = mysql_fetch_array($result));


}

else
{
echo "<p>информация по запросу не может быть извлечена в таблице нетзаписей</p>";
exit();
}


?>






</td>
</tr>
</table></td>
</tr>
<tr>
<? include ("blocks/footer.php"); ?>
</tr>
</table>
</body>
</html>
 

Andkorol

Новичок
Значит в phpMyAdmin ввел не сам запрос (SELECT COUNT (*) FROM data WHERE cat='42') – а прям вместе с mysql_query, на что и ругается.
Читай внимательно http://phpfaq.ru/debug –> Быстрые рекомендации –> п.2
Выполни его – и выведенный на экран запрос выполни в phpMyAdmin.
 

keltanas

marty cats
plahish
Выколи себе глаза и включи голову.
Зачем трижды объявлять одну и ту же переменную?
И ознакомься с правилами повнимательнее.
 

plahish

Новичок
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) FROM data WHERE cat='$cat' LIMIT 0, 30' at line 1

вот такая вот ошибка получается((
 

keltanas

marty cats
plahish
PHP:
WHERE cat='$cat'
Как ты думаешь, откуда PMA должен знать, чему у тебя равна $cat?
 

plahish

Новичок
а по курсам попова точно так же но у него всё работает а у меня нет
 
Сверху