Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ошибка mysql_fetch_assoc() ... boolean given...
 
 автор: bab-nike   (09.09.2011 в 21:55)   письмо автору
 
 

день добрый, ни как не могу понять причину ошибки. ТО работает, ТО выдает ошибку, то есть загружаю страницу и просто обновляю, выдает ошибку хаотично,
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 в 22:00)   письмо автору
 
   для: 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 дня голову ломаю и только сейчас догнал.
Сорри, тема закрыта.
=====
Хотя нет, тоже самое:(
=======
очистил кеш, перестал ошибку выдавать, может и из за этого...

  Ответить  
 
 автор: cheops   (10.09.2011 в 13:28)   письмо автору
 
   для: 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 и запрос. Добавьте такие обработчики в ваш скрипт, что теперь выводится?

  Ответить  
 
 автор: bab-nike   (11.09.2011 в 10:17)   письмо автору
 
   для: 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']))....

и проблема исчезла.
Примного благодарен за помощь:)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования