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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка картинок в таблицы 
V
    Опции темы
Anime
Дата 14.12.2006, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 88
Регистрация: 13.11.2006
Где: Киев

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



Вот скрипт он считывает файлы из директории в массив
Код

<?php
if ($handle = opendir('pics/sport')) {
   while (false !== ($file = readdir($handle))) { 
       if ($file != "." && $file != "..") {
       $files[]=$file;
       }
   }
 closedir($handle);
}

$sfiles=sizeof($files);//$sfiles=55 картинок

print "<table>\n";
for($s=0;$s<55;) {

for($i=0;$i<7;$i++) {
print "<tr>\n";
for($b=0;$b<4;$b++) {
print "<td>";
print "<img src=pics/sport/".$files[$s].">";
//print $s;
print "</td>\n";
$s++;
}
print "</tr>";
}
}
print "</table>\n";

?>


Он мне выдает вот такую ошибку.Почему?
Notice: Undefined offset: 55 in z:\home\mysite.ru\www\sport.php on line 28
Если вместо print "<img src=pics/sport/".$files[$s].">" поставить print $s то все норм
PM   Вверх
Mal Hack
Дата 14.12.2006, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Боже, какой ужас...
На кой черт умные люди придумали такую вещь, как "смещение индекса при матричном проходе вектора"...
На кой черт умные sizeof() или count() придумали?

55 картинок, а нумерация с нуля, следовательно, последний элемент - 54.
PM ICQ   Вверх
smartov
Дата 14.12.2006, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Anime, у тебя в массиве $files 55 элементов (номер последнего, как верно заметил Mal Hack - 54).
Циклы у тебя вложенные. Увеличение $s происходит в цикле третей вложенности, там и происходит попытка доступа к несуществующему элементу массива (тебе надо найти дебаггер и посмотреть как программа выполняется на смом деле, насколько я вижу код ты не совсем понимаешь суть циклов и как они работают).

Скрипт генерации таблицы должен быть таким (возможна ошибка, писал не проверяя):
Код

/**
 * тут твой код получения массива $files
 */

print "<table>\n";
$s = 0;
while ($s < count($files))
{
    print "<tr>\n";
    for ($i=0; $i<4; $i++) {
        print "<td>";
        print isset($files[$s]) ? "<img src=pics/sport/".$files[$s].">" : "&nbsp;";
        print "</td>\n";
        $s++;
    }
    print "</tr>\n";
}
print "</table>\n";

PM MAIL   Вверх
Mal Hack
Дата 14.12.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Какой тут к черту дебагер?
Есть же обычный прием программирования, когда надо поработать с вектором, как с матрицей. Смещение идет как $c_j * $i + $j
PM ICQ   Вверх
Anime
Дата 14.12.2006, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 88
Регистрация: 13.11.2006
Где: Киев

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



Цитата

смещение индекса при матричном проходе вектора

Вау наверно клевая штука smile
Цитата

55 картинок, а нумерация с нуля, следовательно, последний элемент - 54.

Честно скажу это я знал. Но у мя на компе отображалось число массив был последним 55. Незнаю любо мне показалось либо меня глючит наноч глядя. Посмортел на работе вроде нормально все 54. Приду посмотрю ещё раз...
Цитата

Anime, у тебя в массиве $files 55 элементов (номер последнего, как верно заметил Mal Hack - 54).
Циклы у тебя вложенные. Увеличение $s происходит в цикле третей вложенности, там и происходит попытка доступа к несуществующему элементу массива

Я знаю что увелечение происходит в третем вложенном цикле. Просто немог понять одну фигню как сделать, а теперь понил.В моём коде по идее тока не хватало 1ой строчки кода(см.ниже) А именно вот такое
Код

print isset($files[$s]) ? "<img src=pics/sport/".$files[$s].">" : "&nbsp;";

правда сказать незнал что так тож мона записать  smile if конструкцию
А то что $sfiles не в цикле $s условии так это я забыл переделать
А переменные $i и $b - я просто хотел контралировать столбцы и строки в таблице
Вот и все smile 
RESPECT у сем  smile 
P.S. и нет тута ужасов  smile 

Это сообщение отредактировал(а) Anime - 14.12.2006, 18:03
PM   Вверх
Mal Hack
Дата 14.12.2006, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Anime, твое решение равносильно тому, что аварийные службы, рыли бы землю до трубы не вертикально, а по пораболе сбоку...
PM ICQ   Вверх
americanets
Дата 18.12.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Mal Hack @  14.12.2006,  20:44 Найти цитируемый пост)
решение равносильно тому, что аварийные службы, рыли бы землю до трубы не вертикально, а по пораболе сбоку... 

по истине русское решение любой проблемы, мы не ищем простых путей smile


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Mal Hack
Дата 18.12.2006, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Цитата(americanets @  18.12.2006,  15:28 Найти цитируемый пост)
по истине русское решение любой проблемы, мы не ищем простых путей

Легких не значит бредовых..
PM ICQ   Вверх
Anime
Дата 21.12.2006, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 88
Регистрация: 13.11.2006
Где: Киев

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



Mal Hack, Каждому своё  smile 

Это сообщение отредактировал(а) Anime - 21.12.2006, 20:45
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1020 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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