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 :: while не стандартный цикл.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как бы сделать не строковый, а в строчку.
SofiaKit
Отправлено: 03 Июля, 2011 - 02:49:37
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Я обратила внимание, что цикл используется в большинстве случаев в табличной форме, и все больше и больше используется добавлением блоков не строчк4ами а друг за другом....

Как бы понятнее объяснить.... ну к примеру видео раздел на яндексе... там блок за блоком идет, т.е. появилась новая запись в бд, блок не спускается ниже, а идет дальше, правее... пока не достигнет предустановленного максимума (к примеру 8), как только максимум набран, создается новая таблица... хотя, может и заблуждаюсь... расскажите пожалуйста, как это осуществляется? очень интересно познать, догадаться сама не могу.
 
 Top
grefon
Отправлено: 03 Июля, 2011 - 03:41:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Это делается не средствами php а обычным css. Вариантов осуществления очень много. Вот Вам пример:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <style>
  2.    div {
  3.        background-color:#EDE7E0;
  4.        border:1px solid #999;
  5.        display:inline-block;
  6.        text-align:center;
  7.        height:100px;
  8.        width:200px;
  9.        margin:10px;
  10.    }
  11. </style>
  12. <?php
  13.  
  14. $max = 10; // Здесь задаем максимальное число блоков.
  15.  
  16. for ($i=1; $i<$max+1; $i++) {
  17.    echo '<div>Блок №'.$i.'</div>';
  18. }
  19.  
  20. ?>
  21.  


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
SofiaKit
Отправлено: 04 Июля, 2011 - 10:15:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




огромное Спасибо Подмигивание
 
 Top
SofiaKit
Отправлено: 05 Июля, 2011 - 12:54:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




поторопилась Хм ... в IE не работает, а вот в Firefox работает.

Есть еще варианты чтоб сделать чтоб и в IE работало?
 
 Top
vsll
Отправлено: 05 Июля, 2011 - 13:08:25
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




используйте таблицу, тоже что и grefon предложил, только в тело цикла: <tr><td>Блок №'.$i.'</td></tr>, ну и стили переписать под таблицу
 
 Top
Slavenin
Отправлено: 05 Июля, 2011 - 13:11:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




ох уж этот ие... вскройте страницу отладчиком и посмотрите просчитанный стиль для дива
 
 Top
grefon
Отправлено: 05 Июля, 2011 - 13:40:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




SofiaKit, ишак зверек удивительный. Его нужно носом тыкать, чтобы он нормально понимал человеческий язык.
Либо поставьте ему метатег для осознавания происходящего:
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="X-UA-Compatible" content="IE=8" />


Либо замените display:inline-block; на float:left; в стиле.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
SofiaKit
Отправлено: 05 Июля, 2011 - 14:53:09
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




grefon я ничего не поняла...

А можно-ли на страницу поставить проверку на браузеры? и если открывают через IE, то все нормально, а если через другие браузеры, перенаправлялось на страницу к примеру nonpage.php

По поводу таблицы что-то не получается. Все равно в ряд идут Белый флаг
 
 Top
vsll
Отправлено: 05 Июля, 2011 - 14:58:48
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




SofiaKit пишет:
По поводу таблицы что-то не получается. Все равно в ряд идут

код ваш дайте посмотреть
 
 Top
grefon
Отправлено: 05 Июля, 2011 - 16:39:45
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




SofiaKit пишет:
grefon я ничего не поняла...

Не понял
Либо:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <meta http-equiv="X-UA-Compatible" content="IE=8" />
  2. <style>
  3.    div {
  4.        background-color:#EDE7E0;
  5.        border:1px solid #999;
  6.        display:inline-block;
  7.        text-align:center;
  8.        height:100px;
  9.        width:200px;
  10.        margin:10px;
  11.    }
  12. </style>
  13. <?php
  14.  
  15. $max = 10; // Здесь задаем максимальное число блоков.
  16.  
  17. for ($i=1; $i<$max+1; $i++) {
  18.    echo '<div>Блок №'.$i.'</div>';
  19. }
  20.  
  21. ?>


Либо:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <style>
  3.    div {
  4.        background-color:#EDE7E0;
  5.        border:1px solid #999;
  6.        float:left;
  7.        text-align:center;
  8.        height:100px;
  9.        width:200px;
  10.        margin:10px;
  11.    }
  12. </style>
  13. <?php
  14.  
  15. $max = 10; // Здесь задаем максимальное число блоков.
  16.  
  17. for ($i=1; $i<$max+1; $i++) {
  18.    echo '<div>Блок №'.$i.'</div>';
  19. }
  20.  
  21. ?>


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
SofiaKit
Отправлено: 06 Июля, 2011 - 13:41:59
Post Id


Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




grefon ты как всегда лучший Спасибо Смущение

Vasiliya у меня все наоборот было Однако вот и не получалось.
(Добавление)
Нашла по этому поводу очень хороший пример, но уже с функцией:

Итак у нас есть два вида вывода информации в таблицу: горизонтальный и вертикальный (назовем их так).
Горизонтальный:
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |

Вертикальный:
| 1 | 4 | 7 |
| 2 | 5 | 8 |
| 3 | 6 | 9 |

Посему и алгоритма вывода у нас будет два. При выводе нам также нужно учитывать возможную не кратность числа выводимых полей к числу колонок, нам нельзя нарушать целостность таблицы (возможный пример: колонки в таблице 3, а записей 10, значит нужно вывести 2 лишних ячейки).

Код и примеры
Функция для вывода данных в горизонтальном направлении (Отобразить)
Функция для вывода данных в вертикальном направлении (Отобразить)
И то и другое в одном горшке (Отобразить)


Пример:
(параметры в обеих функция одинаковые, отличается лишь направление заполнения таблицы)
Возьмем за данные массив чисел:

пример для тех, кто выводит данные из БД (Отобразить)

Для того чтобы нарисовать табличку в 3 колонки:
PHP:
скопировать код в буфер обмена
  1. // Для горизонтального вывода
  2. echo '<table>'.drawTableH($data, 3, 0).'</table>';
  3.     // или так для общей функции
  4.     echo '<table>'.drawTable($data, 0, 3, 0).'</table>';
  5. // Для вертикального вывода
  6. echo '<table>'.drawTableV($data, 3, 0).'</table>';
  7.     // или так для общей функции
  8.     echo '<table>'.drawTable($data, 1, 3, 0).'</table>';


Число "0" в примерах (параметр $tabs) означает количество отступов в форматировании кода. Если не хотим красивостей, ставим false вместо нуля, и выводим таблицу в одну строку.

Автор скрипта kirik. (ссылку на источник давать не буду, чтоб н показалось рекламой) Подмигивание

(Отредактировано автором: 06 Июля, 2011 - 15:02:59)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB