Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/351: Рейтинг темы: голосов - 351, средняя оценка - 4.60
252 / 8 / 0
Регистрация: 12.11.2009
Сообщений: 170
1

Notice: Undefined offset: Что он хочет?!

20.03.2011, 16:52. Показов 68693. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток всем!
Появилась у меня проблема при выполнении view_calendar.php выбрасывает ошибку.

PHP
1
2
Notice: Undefined offset: 1 in Q:\home\site\www\modules\calendar\view_calendar.php on line 167
Notice: Undefined offset: 2 in Q:\home\site\www\modules\calendar\view_calendar.php on line 167
Временно решил таким планом: в index.php прописал это
PHP
1
error_reporting(E_ALL & ~E_NOTICE);
Но это не решение...

в этой строке у меня такой код

PHP
1
    list($not_used_y, $not_used_m, $current_day)= explode("-", $date_array[$acc]['date']);
Что тут криво? Подскажите, пожалуйста.
Дело в том, что результат выводит, такой как надо, но перед ним выводит целый список таких строк.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2011, 16:52
Ответы с готовыми решениями:

Notice: Undefined offset
«Notice: Undefined offset: 1 in /var/www/mobidvor/data/www/mobidvor.ru/kiseli/parser.php on line 49...

Notice: Undefined offset
Столкнулся с весьма странной ситуацией Вот мой код: <?php $array = 0; $array = 1; $array =...

Notice: Undefined offset: 1 in
Notice: Undefined offset: 1 in C:\AppServ\www\11\bazar\podogrev.php on line 20 КОД: $fakes =...

Notice: Undefined offset
Имеется ряд ошибок: otice: Undefined offset: 0 in...

5
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
20.03.2011, 17:00 2
Цитата Сообщение от Columb Посмотреть сообщение
Что тут криво? Подскажите, пожалуйста.
Если в $date_array[$acc]['date'] не будет двух и более дефисов, то explode() выдаст массив короче 3 элементов. В результате последним переменным в list() не достанется значений. Вот оттуда и вылезает данный notice, ибо list() заведомо думает, что в принимаемом массиве достаточно элементов.
0
252 / 8 / 0
Регистрация: 12.11.2009
Сообщений: 170
20.03.2011, 17:20  [ТС] 3
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Если в $date_array[$acc]['date'] не будет двух и более дефисов, то explode() выдаст массив короче 3 элементов. В результате последним переменным в list() не достанется значений. Вот оттуда и вылезает данный notice, ибо list() заведомо думает, что в принимаемом массиве достаточно элементов.
$date_array[$acc]['date'] имеет формат 2011-03-02


Это раз.
Во вторых он при первом запуске работает нормально. но я потом с этого же скрипта передаю в него новую переменную и вылазит эта ошибка.
приблизительно выходит этак. вот код.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    if ($GET['cat'] == 'read') $y=date("Y");
        else $y=$GET['cat'] ;
        
    if ($GET['alb'] == 'read') $m=date("m");
        else $m=$GET['alb'] ;
    
    if (!isset($y) OR $y < 1970 OR $y > 2037) $y=date("Y");
    if (!isset($m) OR $m < 1 OR $m > 12) $m=date("m");
 
    include_once './libs/mysql.php';
    
    $res='';
    $rows='';
    $date_array = array(); 
    $arraycount=1;      
 
/*Получаем из базы данных все записи */
        
    $res = mysqlQuery("SELECT * 
                        FROM `". BG_DBPREFIX ."calendar`
                        WHERE YEAR(date)=".$y." AND MONTH(date)=".$m."
                        ORDER BY date ASC"
                        );
    if(mysql_num_rows($res) > 0)     // Если записи есть, вытаскиваем по одной в цикле 
        {                   
        while($rows = htmlChars(mysql_fetch_assoc($res))) // попутно обрабатывая функцией htmlChars() 
        {
            $date_array[$arraycount]['id']=$rows['id'];
            $date_array[$arraycount]['date']=$rows['date'];
            $date_array[$arraycount]['name']=$rows['name'];
            $date_array[$arraycount]['status']=$rows['status'];
            $arraycount++;
        };
        }
 
        $prev_y=date('Y',mktime (0,0,0,$m-1,1,$y));
        $prev_m=date('m',mktime (0,0,0,$m-1,1,$y));
        $next_y=date('Y',mktime (0,0,0,$m+1,1,$y));
        $next_m=date('m',mktime (0,0,0,$m+1,1,$y));
 
echo "<a href=\"".href('cat='.$prev_y,'alb='.$prev_m)."\">Prev</a>";
echo "<a href=\"".href('cat='.$next_y,'alb='.$next_m)."\">Next</a>";
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
20.03.2011, 18:10 4
Цитата Сообщение от Columb Посмотреть сообщение
но я потом с этого же скрипта передаю в него новую переменную и вылазит эта ошибка.
Сделайте var_dump() и посмотрите, что там на самом деле содержится.
1
252 / 8 / 0
Регистрация: 12.11.2009
Сообщений: 170
21.03.2011, 00:41  [ТС] 5
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Сделайте var_dump() и посмотрите, что там на самом деле содержится.
Сделал. И до определенного момента все нормально есть данные. а потом пишет ноль. Все правильно. я там работаю в цикле и сначала пока есть данные то ошибок нет. А потом я пытаюсь достать из массива не значения с несуществующими значениями.

Добавлено через 5 часов 20 минут
Проблему решил таким образом - добавил в конец цикла такую проверку

PHP
1
if (!empty($date_array[$acc+1]['date'])) $acc++;
2Vovan-VE Спасибо огромное, Ваш совет заглянуть в переменную через var_dump() действительно очень помог.
1
252 / 8 / 0
Регистрация: 12.11.2009
Сообщений: 170
22.03.2011, 02:38  [ТС] 6
Но это оказалось, тоже не все!) Если переменная пустая, то снова будет выводить Notice и всю "фигню")
Еще раз исправил и в начале добавил поверку!

PHP
1
2
3
4
5
6
$acc=1;
if (!empty($date_array[$acc]['date']) and $acc >= 1) 
{ 
Разные операции; 
if (!empty($date_array[$acc+1]['date'])) $acc++;
};
ЕЩЕ РАЗ!!! СПАСИБО Vovan-VE!
0
22.03.2011, 02:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2011, 02:38
Помогаю со студенческими работами здесь

Предупреждение - Notice: Undefined offset
Привет всем. Нужна помощь. Выбивает ряд предупреждений этого типа: Notice: Undefined offset: 125...

Ошибка - Notice: Undefined offset
Добрый день не найду ошибку Notice: Undefined offset: 0 in public function getAllSale(){...

Ошибка Notice: Undefined offset: 0
Добрый день! Я не опытный программист, требуется небольшая помощь в решении ситауции! Имеется...

Notice Undefined offset почему?
Здравствуйте. Пытаюсь удалить из массива дважды, но почему то Notice Undefined offset Хотя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru