|
|
|
| день добрый, ни как не могу понять причину ошибки. ТО работает, ТО выдает ошибку, то есть загружаю страницу и просто обновляю, выдает ошибку хаотично,
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in D:\server\xampp\www\terra\vew.php on line 23
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in D:\server\xampp\www\terra\vew.php on line 37
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\server\xampp\www\terra\vew.php on line 43
|
вот часть кода
<?php require_once('Connections/terra.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];
?>
<?php
if (!isset($_GET['id_art'])) header("Location: index.php");
$maxRows_vew_art = 6;
$pageNum_vew_art = 0;
if (isset($_GET['pageNum_vew_art'])) {
$pageNum_vew_art = $_GET['pageNum_vew_art'];
}
$startRow_vew_art = $pageNum_vew_art * $maxRows_vew_art;
$colname_vew_art = "-1";
if (isset($_GET['id_art']))
{
$colname_vew_art = (get_magic_quotes_gpc()) ? $_GET['id_art'] : addslashes($_GET['id_art']);
if (($colname_vew_art=='1') or ($colname_vew_art=='2') or ($colname_vew_art=='3'))
{
$tmp_q="SELECT * FROM catalog WHERE id_cat = ".$colname_vew_art." ORDER BY id ASC";
$tmp_qw = mysql_query($tmp_q);
$s=array();
while($row_tmp_qw = mysql_fetch_assoc($tmp_qw))//23 строка
{
$s[]=($row_tmp_qw['id']);
}
$comma_select = implode(",", $s);
$query_vew_art = sprintf("SELECT * FROM parent WHERE id_cat IN (".$comma_select.") AND hide='show' ORDER BY id_parent ASC", $colname_vew_art);
}
else $query_vew_art = sprintf("SELECT * FROM parent WHERE id_cat = %s AND hide='show' ORDER BY id_parent ASC", $colname_vew_art);
}
mysql_select_db($database_terra, $terra);
//$query_vew_art = sprintf("SELECT * FROM parent WHERE id_cat = %s ORDER BY id_parent ASC", $colname_vew_art);
$query_limit_vew_art = sprintf("%s LIMIT %d, %d", $query_vew_art, $startRow_vew_art, $maxRows_vew_art);
$vew_art = mysql_query($query_limit_vew_art, $terra);// or die(mysql_error());
$row_vew_art = mysql_fetch_assoc($vew_art);//37 строка
if (isset($_GET['totalRows_vew_art'])) {
$totalRows_vew_art = $_GET['totalRows_vew_art'];
} else {
$all_vew_art = mysql_query($query_vew_art);
$totalRows_vew_art = mysql_num_rows($all_vew_art);//43 строка
}
$totalPages_vew_art = ceil($totalRows_vew_art/$maxRows_vew_art)-1;
$queryString_vew_art = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_vew_art") == false &&
stristr($param, "totalRows_vew_art") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_vew_art = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_vew_art = sprintf("&totalRows_vew_art=%d%s", $totalRows_vew_art, $queryString_vew_art);
?>
|
как я понял проблема в 23 строке, 37 и 43 последствия того
цитата из другого форума
Вам движок говорит, что передано булево выражение (правда или ложь). получается, что ошибка в запросе.
|
в чем проблема, помогите разобраться пжста. | |
|
|
|
|
|
|
|
для: bab-nike
(09.09.2011 в 21:55)
| | все понял, вот проблема.
$query_vew_art = sprintf("SELECT * FROM parent WHERE id_cat IN (".$comma_select.") AND hide='show' ORDER BY id_parent ASC", $colname_vew_art);
|
во я лоханулся, 3 дня голову ломаю и только сейчас догнал.
Сорри, тема закрыта.
=====
Хотя нет, тоже самое:(
=======
очистил кеш, перестал ошибку выдавать, может и из за этого... | |
|
|
|
|
|
|
|
для: bab-nike
(09.09.2011 в 21:55)
| | Для того, чтобы не гадать, любые MySQL-запросы необходимо обрабатывать на предмет ошибок. PHP и MySQL - это разные среды, если в одной из них происходит ошибка, то вторая среда ничего не знает о ней и не может вас автоматически предупредить о возникновении ошибки. Поэтому такую обработку следует проводить явно. Тем более, когда запросы формируются динамически, с использованием PHP-переменных
<?php
...
$tmp_qw = mysql_query($tmp_q);
if(!$tmp_qw) exit("Ошибка - ".mysql_error().", ".$tmp_q);
...
?>
| В этом случае сразу станут видны ошибки MySQL и запрос. Добавьте такие обработчики в ваш скрипт, что теперь выводится? | |
|
|
|
|
|
|
|
для: cheops
(10.09.2011 в 13:28)
| | спасибо, есть результат, вот ошибка.
Ошибка - No database selected, SELECT * FROM catalog WHERE id_cat = 2 ORDER BY id ASC
|
перекинул mysql_select_db($database_terra, $terra); в начало страницы, точнее перед условием
if (isset($_GET['id_art']))....
|
и проблема исчезла.
Примного благодарен за помощь:) | |
|
|
|