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 :: Как вывести результат запроса в несколько равных столбцов [2]
Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Друзья, я позволю себе влезть в ваше обсуждение со своей похожей на описываемую ecipuser-ом проблемой и надеюсь, что мы все вместе сможем ее решить....
Так вот, передо мной также втала проблема разместить на листе в таблице логотипы. По три в ряд. Но, мне кажется, я сделал это очень нерационально. У меня есть таблица "producers", с уникальным полем "id" и полем "logo" со ссылкой на файл с изображением (IMG/1.gif). Вот как выглядит мой иррациональный код:
Помогите, пожалуйста, его автоматизировать. Я не очень усвоил про проверку кратности, высказанную JustUserR.
valenok
Отправлено: 29 Июня, 2009 - 21:22:45
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Он имел в виду что после каждого третего логотипа нужно ставить перевод строки.
Тебе же остается считать какой логотип является третим, шестым и т.д.
Является ли число кратным трем можно проверить остатком деления на три оператором %
3%3 =0
4%3 = 1
5%3 = 2
6%3=0
Каждый раз когда остаток 0 - нужно делать перевод строки.
----- Truly yours, Sasha.
carakurt
Отправлено: 29 Июня, 2009 - 22:30:10
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Наконец-то я понял эту функцию! Спасибо большое! Буду эксперементировать!
JustUserR
Отправлено: 30 Июня, 2009 - 02:20:16
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
carakurt К слову сказать очень распространенная проверка по кратности
Зачатсую с помощью нее в таблице нечетные строки выделяют одим цветом а четные другим чтобы яснее было видно строку и вообще красивее было
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
carakurt
Отправлено: 10 Июля, 2009 - 22:19:50
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
JustUserR, спасибо Вам большое! Я так понимаю, что вообще этой функции, проходимой в 7-8 классах средней школы есть достаточно много применений в программировании.
Хочу задать в продолжение моего кода вопрос, не совсем относящийся к данной теме, но все же...
Я воспользовался, предложенной JustUserR функцией проверки кратности, но тут у меня возникла трудность с конструкцией DO WHILE, воспользоваться которой я уже не могу, а цикл WHILE из-за моего, пока что, низкого уровня владения PHP выдает результат начиная лишь со второй строки... чтобы стало понятнее вот код:
Т.е., как вы видите, перед началом цикла WHILE я единожды вывожу первое, содержащиеся в массиве изображение. Подскажите, пожалуйста, рационально ли это или же я могу так написать код, чтобы цикл WHILE выводил массив с самой первой строки?
valenok
Отправлено: 11 Июля, 2009 - 03:17:49
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
ТЫ можешь. И мы в тебя верим.
----- Truly yours, Sasha.
carakurt
Отправлено: 11 Июля, 2009 - 10:38:48
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
valenok пишет:
ТЫ можешь. И мы в тебя верим.
Спасибо тебе! Мне стало намного легче...но может быть можно дать мне направление мысли...некую нить Ариадны, чтобы я не сбился с пути истинного!
valenok
Отправлено: 11 Июля, 2009 - 14:47:39
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
carakurt Попробуйте такой код - я еще добавил условие чтобы не выводилсоь пустой строки в начале и переход срабатывал только на 3 столбце (Как и должно быть
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
carakurt
Отправлено: 13 Июля, 2009 - 09:25:39
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
JustUserR, спасибо Вам большое за код! Буду вникать и разбираться! valenok, спасибо за ссылку!
carakurt
Отправлено: 19 Июля, 2009 - 12:30:47
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Уважаемый, JustUserR! Обращаюсь к Вам за помощью в очередной (надеюсь последний) раз с этой нескончаемой шарманкой! Досконально разобрал Ваш код, но, пока не хватает знаний для его окончательной доработки.
Итак, в цикле FOR начинают выводиться данные, полученные из массива. Причем, благодаря введению в действия дополнительной переменной $i, вывод начинается с индекса 0. Замечательно!
После вывода первой ячейки таблицы происходит проверка удовлетворения условиям оператоа IF. Так как у нас на данный момент времени $i==0, то перевода строки не происходит и цикл возвращается в начало, увеличивая на единицу значение переменной $i. И так продолжается пока значение переменной $i не будет равно 3. Тогда произойдет перевод строки и таблица продолжит заполняться и далее.
НО!!! Из-за того, что первый индекс = 0, то ячеек в строке будет не 3, как я мечтаю, а 4, что портит мне всю малину. Если же я убераю дополнительное условие оператора IF, где переменная $i не должна быть равна 0, то количество ячеек в таблице становится необходимым, т.е. равняется 3, но первая строка, что естественно, содержит только одну ячейку - изображение с индексом 0, а затем происходит перенос строки. Т.е. либо пение, либо танцы, а вот так чтобы УУУУХ и все сразу - не происходит! (Добавление)
ВСЕ!!! Ура!!! Спасибо, друзья большое за то, что наставили меня на путь истиный! Поддался таки мне каменный цветок! Все получилось с помощью цикла DO WHILE
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
carakurt Да я рад за вас что вы наконецто разобрались с этой темой
На будущее могу сказать что можно было сделать проверку ($i+1)%3==0 тогда бы эффект был бы тот же и не было бы пустой строки
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
carakurt
Отправлено: 19 Июля, 2009 - 15:29:35
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Не совсем понял Вас, JustUserR. Если не сложно, объясните куда можно было бы вставить эту проверку?
JustUserR
Отправлено: 20 Июля, 2009 - 17:00:58
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
carakurt
Отправлено: 20 Июля, 2009 - 20:32:37
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
JustUserR, спасибо Вам огромное за поддержку, помощь и участие! Возьму себе эти приемы на заметку!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.