Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Invalid argument supplied, выдает следующию ошибку 
V
    Опции темы
Антоннио
Дата 12.3.2010, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.4.2008
Где: Киев

Репутация: -2
Всего: -2



 Необходимо добавить различное описание рубрик в rrs-расписке, ранее было для всех рубрик одиннаковые тэги <description> сейчас необходимо поменять...начал разбирать код - нашел массив $data - в котором формируется описание каждой рубрики - решил в его структуру добавить последним элементом описание по каждой рубрике...все было бы нормально - если не ошибка которая мне выдалась :

 Invalid argument supplied for foreach() in rss.php line 41

.

Показываю саму дату, где и что я менял

ДО :
Код

public $data = array(
        array('Болезни и Лечение', 
            '/health/articles/:id.html', 'ID', 'Title', 'Text', 'Date', null, null,
            'ArticleDAO', 'health', 'getLastArticles', 3, 800), 
        array('Здоровый Образ Жизни', 
            '/coolhealth/articles/:id.html', 'ID', 'Title', 'Text', 'Date', null, null,
            'ArticleDAO', 'ch', 'getLastArticles', 3, 800),
        array('Скорая Справочная', 
            '/handbook/articles/:id.html', 'ID', 'Title', 'Text', 'Date', null, null,
            'ArticleDAO', 'encyclop', 'getLastArticles', 3, 800),
        array('Likar для Профи', 
            '/profi/articles/:id.html', 'ID', 'Title', 'Text', 'Date', null, null,
            'ArticleDAO', 'profi', 'getLastArticles', 3, 800),
        array('Новости из Украины', 
            '/news/:id.html', 'id', 'title', 'body', 'ndate', 'ntime', null,
            'NewsDAO', null, 'getLastNewsWithText', 1, 5),
        array('Новости со всего мира', 
            '/news/:id.html', 'id', 'title', 'body', 'ndate', 'ntime', null,
            'NewsDAO', null, 'getLastNewsWithText', 0, 5),
        array('Консультации', 
            '/consult/questions/:id.html', 'ID', 'Question', 'Question', 'Posted', null, 'Doctor',
            'ConsultDAO', null, 'getLastQuestions', 5, null),
        array('Форум для всех', 
            '/forum/theme:id.html', 'id', 'name', 'text', 'date', null, null,
            'ForumDAO', null, 'getThemesForIndex', 5, 400),
        array('Отзывы раздела адресов', 
            '/addresses/0/0/0/:id.html', 'id', 'name', 'review', 'date', null, null,
            'ReviewsDAO', null, 'getLastReviews', 5, null),
    );


после :

Код

public $data = array(
        array('Болезни и Лечение', 
            '/health/articles/:id.html', 'ID', 'Title', 'Text', 'Date', null, null,
            'ArticleDAO', 'health', 'getLastArticles', 3, 800, 'des1'), 
        array('Здоровый Образ Жизни', 
            '/coolhealth/articles/:id.html', 'ID', 'Title', 'Text', 'Date', null, null,
            'ArticleDAO', 'ch', 'getLastArticles', 3, 800, 'des2'),
        array('Скорая Справочная', 
            '/handbook/articles/:id.html', 'ID', 'Title', 'Text', 'Date', null, null,
            'ArticleDAO', 'encyclop', 'getLastArticles', 3, 800, 'des3'),
        array('Likar для Профи', 
            '/profi/articles/:id.html', 'ID', 'Title', 'Text', 'Date', null, null,
            'ArticleDAO', 'profi', 'getLastArticles', 3, 800, 'des4'),
        array('Новости из Украины', 
            '/news/:id.html', 'id', 'title', 'body', 'ndate', 'ntime', null,
            'NewsDAO', null, 'getLastNewsWithText', 1, 5, 'des5'),
        array('Новости со всего мира', 
            '/news/:id.html', 'id', 'title', 'body', 'ndate', 'ntime', null,
            'NewsDAO', null, 'getLastNewsWithText', 0, 5, 'des6'),
        array('Консультации', 
            '/consult/questions/:id.html', 'ID', 'Question', 'Question', 'Posted', null, 'Doctor',
            'ConsultDAO', null, 'getLastQuestions', 5, null, 'des7'),
        array('Форум для всех', 
            '/forum/theme:id.html', 'id', 'name', 'text', 'date', null, null,
            'ForumDAO', null, 'getThemesForIndex', 5, 400, 'des8'),
        array('Отзывы раздела адресов', 
            '/addresses/0/0/0/:id.html', 'id', 'name', 'review', 'date', null, null,
            'ReviewsDAO', null, 'getLastReviews', 5, null, 'des9'),
    );


и собственно 41-ую строку где вылетает эта ошибка :

Код

 foreach($data as $a) {    
        if ($a[13]) {
           foreach($a[13] as $item) {  #41-ая строка
                $link = str_replace(":id", $item[$a[2]], $a[1]);                
                $articleText = $item[$a[4]]."...";


помогите решить проблему, так чтобы можно было поменять струтуру даты...
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 12.3.2010, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



В $a[13] лежит текст а ты к нему как к массиву обращаешься.

Это сообщение отредактировал(а) azesmcar - 12.3.2010, 14:00
PM   Вверх
Ипатьев
Дата 12.3.2010, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



$a[13], насколько я вижу, не массив и не должен быть массивом. С какой стати тут цикл foreach?
PM MAIL   Вверх
Антоннио
Дата 12.3.2010, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.4.2008
Где: Киев

Репутация: -2
Всего: -2



Цитата(Ипатьев @ 12.3.2010,  13:59)
$a[13], насколько я вижу, не массив и не должен быть массивом. С какой стати тут цикл foreach?

от чего же до этого все работало - я ведь добавил 'des{index}' последним элементом - то есть 14-ым...
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 12.3.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Цитата(Антоннио @  12.3.2010,  14:04 Найти цитируемый пост)
от чего же до этого все работало - я ведь добавил 'des{index}' последним элементом - то есть 14-ым... 

В php массивы индексируются с нуля, но даже в этом случае в $a[13] у тебя массива никак не будет.
PM   Вверх
Антоннио
Дата 12.3.2010, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.4.2008
Где: Киев

Репутация: -2
Всего: -2



Цитата(azesmcar @ 12.3.2010,  14:06)
Цитата(Антоннио @  12.3.2010,  14:04 Найти цитируемый пост)
от чего же до этого все работало - я ведь добавил 'des{index}' последним элементом - то есть 14-ым... 

В php массивы индексируются с нуля, но даже в этом случае в $a[13] у тебя массива никак не будет.

 Я все понимаю, что с нуля...только вот не могу понять от чего тут ошибка?
скажите что нужно сделать чтобы оставить 'des{index}' а ошибка ушла - может тогда пойму что не так...
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 12.3.2010, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Цитата(Антоннио @  12.3.2010,  14:09 Найти цитируемый пост)
 Я все понимаю, что с нуля...только вот не могу понять от чего тут ошибка?

как тут еще объяснить? на пальцах подсчитай, в $a[13] лежит ТЕКСТ. Например 'des9'. Это текст а не массив, foreach не работает с текстом.
запусти код и проверь если не веришь на слово, непонятно чего ты хочешь добиться
Код

<?php
    $a = 'des';
    foreach ($a as $i) {
        echo $i;
    }
?>

PM   Вверх
bars80080
Дата 12.3.2010, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Антоннио @  12.3.2010,  13:09 Найти цитируемый пост)
 Я все понимаю, что с нуля...только вот не могу понять от чего тут ошибка?

Цитата(Антоннио @  12.3.2010,  13:04 Найти цитируемый пост)
от чего же до этого все работало - я ведь добавил 

в коде забито

foreach($data as $a) {    
        if ($a[13]) {
           foreach($a[13] as $item)

что переводится как: при переборе элементов $data, если есть элемент #13, то разобрать его как массив.
до сих пор этого элемента не было, потому и ошибок не было
PM MAIL WWW   Вверх
azesmcar
Дата 12.3.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Цитата(bars80080 @  12.3.2010,  15:05 Найти цитируемый пост)

что переводится как: при переборе элементов $data, если есть элемент #13, то разобрать его как массив.
до сих пор этого элемента не было, потому и ошибок не было 

Должно было быть предупреждение - undefined offset, видимо просто показ предупреждений отключен.
PM   Вверх
Антоннио
Дата 12.3.2010, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.4.2008
Где: Киев

Репутация: -2
Всего: -2



 Выкупил проблемы, всем спасибо за советы!;)
нужно было добавить перед полем 'des' пустое поле с параметром null - просто там архитектура движка такая, что дописывалось в выбранную  тематику 13-ый элемент - массив из всех статей..таким образом где был не пустой 13-ый елемент - его обрабатывали =).
 Я добавил 13-ый элемент null - абсолютно всем - и после него добавил 14-ый елемент 'des', таким образом записывались данные в 13-ый елемент smile
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0948 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.