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

Форум PHP

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

 

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

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

тема: Ошибка
 
 автор: OLi   (14.10.2012 в 01:18)   письмо автору
 
 

<? echo '<pre>'var_dump($result[0]['title']); die(); //выдает  string(18) "Белорусия" ?>



<? return (string)$result[0]['title']; //выдает A PHP Error was encountered
SeverityNotice
Message
Undefined offset0
Filename
models/countries_model.php
Line Number
36?>


В чем подвох?

  Ответить  
 
 автор: speedsoft   (14.10.2012 в 14:56)   письмо автору
 
   для: OLi   (14.10.2012 в 01:18)
 

Покажите побольше кода, там где вы делаете вар-дамп и там где return. т.к. тут ошибки я не вижу, но знаю по опыту, что глаз может замылиться и просто вызываешь в одном месте, а дампишь другое.

  Ответить  
 
 автор: OLi   (14.10.2012 в 15:41)   письмо автору
 
   для: speedsoft   (14.10.2012 в 14:56)
 

<? 
 
function Get_Regions($id_region=''

     {
             
             if (!empty(
$id_region)) { $id_region=$id_region; } else { $id_region $this->session->userdata("region"); }


             
$id_region = !empty($id_region) ? $id_region 3;
                        
$this->db->order_by('title');
            
$result $this->db->get_where('regions',array('id_region' => $id_region ))->result_array();
echo 
'<pre>'var_dump($result[0]['title']); die(); //выдает  string(18) "Белорусия" 
             
return (string)$result[0]['title'];  //Строка 36, где возникает ошибка
            
     
}

?>

  Ответить  
 
 автор: speedsoft   (14.10.2012 в 15:50)   письмо автору
 
   для: OLi   (14.10.2012 в 15:41)
 

Действительно странно, если ошибка именно здесь.

Вряд ли конечно, но попробуйте 2а варианта
1)
return $result[0]['title']; 

2)
return (string)($result[0]['title']);

  Ответить  
 
 автор: OLi   (14.10.2012 в 16:00)   письмо автору
 
   для: speedsoft   (14.10.2012 в 15:50)
 

Не помогло.

<?]var_dump($result[0]['title']); die(); //Выводит  string(18) "Белорусcия"
             
return (string)($result[0]['title']); // а здесь уже выдает ошибку?>


Структура массива такая:

<? array(1) { [0]=> array(2) { ["id_region"]=> string(1"3" ["title"]=> string(18"Белоруссия" } } ?>

  Ответить  
 
 автор: speedsoft   (14.10.2012 в 16:04)   письмо автору
 
   для: OLi   (14.10.2012 в 16:00)
 

видно ошибка все-таки где-то в другом месте. воссоздал ваш массив

<?  
 
function Get_Regions($id_region=''){ 
              
$result =array(0=>array("id_region"=>"3","title"=>"Белоруссия"));

echo 
'<pre>'var_dump($result[0]['title']);  //выдает  string(18) "Белорусия"  
             
return (string)$result[0]['title'];  //Строка 36, где возникает ошибка 
             
     

echo 
Get_Regions();
     
?>


и все нормально вывелось и в вардампе и return

  Ответить  
 
 автор: OLi   (14.10.2012 в 16:09)   письмо автору
 
   для: speedsoft   (14.10.2012 в 16:04)
 

Странно. запросы выше, где формируется $result выполняется и возвращает 1 запись..не понимаю..

  Ответить  
 
 автор: Enter   (14.10.2012 в 22:37)   письмо автору
 
   для: OLi   (14.10.2012 в 16:09)
 

Нужно смотреть файл models/countries_model.php и строку 36.

  Ответить  
 
 автор: OLi   (14.10.2012 в 23:51)   письмо автору
 
   для: Enter   (14.10.2012 в 22:37)
 

Решил. Функция вызывалась 2 раза. Для первого нормально для второго с ошибкой.
Сделал так:

<? function Get_Regions($id_region ''

     {
         if (
$this->session->userdata("region") == false && !empty($id_region)) {

             
$id_region $id_region;
         } 
         else
         {

         
$id_region $this->session->userdata("region");    
         
         } 

         if (empty(
$id_region)) { $id_region 3; }

             
             
$this->db->order_by('title');
            
$results $this->db->get_where('regions',array('id_region' => $id_region))->result_array();
            return 
$results[0]['title'];
            
     }
?>

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

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