Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: DB Error: no such field

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Появилась ошибка. Что то просит PEAR.
Seruy
Отправлено: 28 Августа, 2009 - 23:34:07
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




При открытии статистики любого пользователя сайта, вылетает ошибка: DB Error: no such field

Прошёлся по Рунету, вычитал это т.к., сайт использует PEAR:

This prints:

DB Error: no such field
To print out an error message and then quit, use PEAR_ERROR_DIE. You can also use the PEAR_ERROR_CALLBACK constant to run a custom function when an error is raised. This custom function can print out even more detailed information:

function pc_log_error($error_obj) {
error_log(sprintf("%s (%s)",$error_obj->message,$error_obj->userinfo));
}

$dbh->setErrorHandling(PEAR_ERROR_CALLBACK,'pc_log_error');
$sth = $dbh->query("SELECT aroma FROM zodiac WHERE element LIKE 'fire'");

Сама страничка privatecase.php, что должна выводить информауию выглядит так:

Спойлер (Отобразить)


Это страничка отрывает "Личное дело" (зарегистрированных пользоваталей) , кто сколько нафлудил, публикаций оставил и т.д.

Есть надежда узнать что он просит?

(Отредактировано автором: 29 Августа, 2009 - 10:17:07)

 
 Top
Champion Супермодератор
Отправлено: 29 Августа, 2009 - 08:47:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Нашел, на какой строке ошибка происходит?
(Добавление)
В общем найди, там наверняка запрос к БД, и в нём участвует поле, которого нет в таблице.
 
 Top
Seruy
Отправлено: 29 Августа, 2009 - 10:21:33
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




Если я правильно пошёл запрос:

CODE (text):
скопировать код в буфер обмена
  1.        $DB = Registry::instance()->DB;
  2.  
  3.         // first get violation types
  4.  
  5.         $evaltypes = $DB->getAll("SELECT `id`, `description`, `points` FROM ".PREFIX."evaluation_types ORDER BY `id` ASC");
  6.  
  7.         //second get list of violations
  8.  
  9.         $evaluations = $DB->getAll("
  10.                 SELECT
  11.                 `e`.`id`,
  12.             `e`.`date`,
  13.             `e`.`comment`,
  14.                 `e`.`publication_link`,
  15.             `u`.`username` AS `investigated`,
  16.             `et`.`description`,
  17.                 `et`.`points`,
  18.             `m`.`username` AS `moderator`
  19.             FROM
  20.             `".PREFIX."evaluations` e,
  21.             `".PREFIX."users` u,
  22.             `".PREFIX."users` m,
  23.             `".PREFIX."evaluation_types` et
  24.                     WHERE
  25.             `e`.`user_id`=`u`.`id`
  26.             AND
  27.                 `e`.`evaluation_type_id`=`et`.`id`
  28.             AND `e`.`moderator_id` = `m`.`id`
  29.             AND `u`.`id`='".request("user_id")."';");
  30.        //print_r($evaluations);
  31.         $total_points = 0;
  32.         if ($evaluations)
  33.         {
  34.                 for($i=0;$i<count($evaluations);$i++)
  35.                 {
  36.                 $total_points += $evaluations[$i]["points"];
  37.                 }
  38.         }
  39.  
  40.         $actions = $DB->getAll("SELECT `more_or_less`, `than_value`, `move_to_usergroup` FROM `".PREFIX."action_list`;");
  41.         $usergroups = $DB->getAll("SELECT `id`, `title` FROM ".PREFIX."usergroups ORDER BY `id` ASC");
  42.  
  43.         $Template = Registry::instance()->Template;
  44.         $Template->assign('total_points', $total_points);
  45.         $Template->assign('user_id', request('user_id'));
  46.         $Template->assign('evaluations', $evaluations);
  47.         $Template->assign('evaltypes', $evaltypes);
  48.         $Template->assign('action_report', $action_report);
  49.         $Template->assign('actions', $actions);
  50.         $Template->assign('usergroups', $usergroups);


а уже как возмёт инфу с БД то уже формирование в тимплейт страницу:

CODE (text):
скопировать код в буфер обмена
  1.         $Template->display('privatecase.tpl');


Ща сгляну что там в БД. Жаль логги не пишет БД об ошибке, сразу бы узнать на чём затык.

(Отредактировано автором: 29 Августа, 2009 - 10:30:46)

 
 Top
Champion Супермодератор
Отправлено: 29 Августа, 2009 - 12:06:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




выведи получающийся запрос на экран и выполни его в СУБД
 
 Top
Seruy
Отправлено: 30 Августа, 2009 - 11:35:26
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




Champion пишет:
выведи получающийся запрос на экран и выполни его в СУБД


Впринципе я понимаю о чём речь, но это выше моих знаний, хотя я бекаплюсь но чёт не то сделаю и боюсь напортачу. Я думаю кто разбирается надо с тем связаться с большой получки Улыбка и он всё поправит на договорную цену. А так я чуствую не сделаю или буду пол года так ещё делать Улыбка

(Отредактировано автором: 30 Августа, 2009 - 11:36:08)

 
 Top
Champion Супермодератор
Отправлено: 30 Августа, 2009 - 11:54:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




вывести - это вставить echo в нужное место. Потом надо скопировать и вставить PMA или чем ты еще пользуешься. Если это SELECT, ничего плохого не произойдет. Он только читает и ничего не меняет.
А тем более запрос даже не выполняется, а выдает ошибку. Ничего плохого тем более не произойдет))
 
 Top
Seruy
Отправлено: 30 Августа, 2009 - 18:11:54
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




Champion пишет:
вывести - это вставить echo в нужное место. Потом надо скопировать и вставить PMA или чем ты еще пользуешься. Если это SELECT, ничего плохого не произойдет. Он только читает и ничего не меняет.
А тем более запрос даже не выполняется, а выдает ошибку. Ничего плохого тем более не произойдет))


Обязательно попробую завтра на работе и отпишусь. Спасибо за помощь Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« PEAR и PECL »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB