Cоздание строк в таблице с помощью PHP

Тема в разделе "PHP", создана пользователем fafee, 22 фев 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. fafee

    fafee Постоялец

    Регистр.:
    4 окт 2008
    Сообщения:
    92
    Симпатии:
    0
    Добрый вечер. Есть код, который выводит превью обложек альбомов в таблицу, создавая новые строки. Код должен выводить по 5 картинок в строку и переходить на новую. Вместо этого 6 и последующие картинки выводятся в одну строку, и выходят за границы таблицы. У самого ничего не выходит - руки кривые( Буд рад, если кто-то подскажет как сделать корректный вывод.

    [​IMG]

    думаю что решение в этих строках

    PHP:
    {if $smarty.section.group_loop.last == true}<br>
                  </
    tr>
               </
    table>
                    {else}
             {
    cycle name="endrow_group" values=",,,,</tr></table>"}
                    {/if}
    весь код

    PHP:
    {if $total_groups != 0}
      <
    table cellpadding='0' cellspacing='0' width='100%' style='margin-bottom: 10px;'>
          <
    tr>
            <
    td class='header'>{$header_group2} ({$total_groups})</td></tr>
          <
    tr><td class='portal_box'>
            {
    section name=group_loop loop=$groups}
           {
    cycle name="startrow_group" values="
              <table cellpadding='0' cellspacing='0' align='left' height='140' width='100' border=1 align='center'>
                 <tr>,,,,"
    }
                    <
    td class='portal_member'>
                      <
    div align="center"  style="width:96px; height:80px; margin-top: -30px; border: 1px solid #A0A0A0; background: #eeeeee;">
                        <
    div align="center" style='width:96px; height:80px;'>
                        <
    a href='group.php?group_id={$groups[group_loop].group->group_info.group_id}'><img src='{$groups[group_loop].group->group_photo('./images/nophoto.gif')}' class='photo' width='{$misc->photo_size($groups[group_loop].group->group_photo('./images/nophoto.gif'),'75','75','w')}' border='0'></a>
                       </
    div>
                       <
    div align="center" style='width:96px; height:80px;'>
                       <
    a href='group.php?group_id={$groups[group_loop].group->group_info.group_id}'>{$groups[group_loop].group->group_info.group_title|truncate:20:"...":true}</a>
                      </
    div>
                      </
    div
                     </
    td>
                    {if 
    $smarty.section.group_loop.last == true}<br>
                  </
    tr>
               </
    table>
                    {else}
             {
    cycle name="endrow_group" values=",,,,</tr></table>"}
                    {/if}
           {/
    section}
          </
    td></tr>
      </
    table>
    {/if}

    спасибо
     
  2. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    PHP:
    $ar = array('1_фото','2_фото','3_фото','4_фото','5_фото','6_фото','7_фото','8_фото','9_фото','10_фото','11_фото');
    $c 5;
    $n = ($c>count($ar) || !(count($ar)%$c)) ? count($ar) : count($ar)+($c-count($ar)%$c);
    print 
    "<table cellpadding='2' cellspacing='1' bgcolor='#000'>\r\n";
    for (
    $i=0$i<$n$i++) {
      if (!(
    $i $c)) echo "\r\n<tr bgcolor='#fff'>\r\n";
     
    $td= isset($ar[$i]) ?  "<td>".$ar[$i]."</td>" :  "<td>&nbsp;</td>";
     echo  
    $td;
      if (!((
    $i+1) % $c)) echo "\r\n</tr>";
    }
    echo 
    '</table>';
    Дерзайте...
     
    fafee нравится это.
  3. Nikota

    Nikota Создатель

    Регистр.:
    11 фев 2009
    Сообщения:
    42
    Симпатии:
    2
    можно по другому поставить свитч case по счетчику который реагирует на 1 и на 5
    а остальное default , и после 5 го счетик обнулять
     
  4. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    Можно эту задачу решить версткой..если все картинки или обрамляющий их DIV одного размера... то всем картинкам или дивам дать float:left и все их обернуть дивом фиксированной ширины ..где его ширина = (размер выводимых картинок(дивов) + поля с обеих сторон ) * 5 (картинк в ряд)..и не забыть про обработку полей IE...
    .тогда 6 картинка автоматом перенесется на вторую строчку...т тд и тп....
     
  5. fafee

    fafee Постоялец

    Регистр.:
    4 окт 2008
    Сообщения:
    92
    Симпатии:
    0
    спасибо за решение.
    В итоге так и сделал, сам додумался. а что за фича с IE?
     
  6. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    приплюсовывает margin-ги и padding-ги
     
Статус темы:
Закрыта.