вывод картинков в таблицу

Тема в разделе "PHP", создана пользователем Zefvs, 12 мар 2011.

Модераторы: latteo
  1. Zefvs

    Zefvs

    Регистр.:
    11 авг 2009
    Сообщения:
    230
    Симпатии:
    20
    Помогите написать скрипт. Суть:
    есть цикл который выводит n-ое количество фотограций в цикле.
    необходимо выводить фотографии в таблицу таким образом чтобы количество фотографий в строке было постоянным.
    например как вконтакте, когда в разделе друзья выводится в строку 3 фотки, а строк уже столько сколько необходимо.

    например, есть 8 фоток и они должны быть в ячейках как показано на рисунке
    [​IMG]
     
  2. CnecHa3

    CnecHa3 Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    105
    Симпатии:
    20
    PHP:
    $n 30;
    $y 3;
    echo 
    '<table>';
    for(
    $i=1;$i<=$n;$i++){
    if(
    $i $y == 1) echo '<tr>';
    echo 
    '<td>'.$i.'</td>';
    if(
    $i $y == 0) echo '</tr>';
    }
    echo 
    '</table>';
     
  3. Zefvs

    Zefvs

    Регистр.:
    11 авг 2009
    Сообщения:
    230
    Симпатии:
    20
    если цикл начинать с $i= 0 то не работает
     
  4. VandJ

    VandJ

    Регистр.:
    8 апр 2008
    Сообщения:
    318
    Симпатии:
    113
    Как-то так
    PHP:
    $photo = array("1","2","3","4","5","6","7","8");
    echo 
    '<table border ="1"><tr>';
    for(
    $i=0;$i<count($photo);$i++) 
    {
       
    $a $a+1;    
       echo 
    '<td>'.$photo[$i].'</td>';
       if (
    $a==3) {$a 0; echo '</tr><tr>';}
    }
    echo 
    '</tr></table>';
     
  5. CnecHa3

    CnecHa3 Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    105
    Симпатии:
    20
    % - Вычисление остатка по модулю (к примеру: 5 % 2=1)
     
  6. Zefvs

    Zefvs

    Регистр.:
    11 авг 2009
    Сообщения:
    230
    Симпатии:
    20
    скрипт который выводит ники пользователей в столбик
    PHP:
                <?php
    require_once("inc_common.php");
    include(
    $engine_path."users_get_list.php");
    include(
    $engine_path."messages_get_list.php");
    set_variable("design");
    set_variable("c_design");
    set_variable("room");
    if (
    $c_design!="" and $design==""$design $c_design;
    if (!
    in_array($design$designes)) $design $default_design;
    include(
    $ld_engine_path."rooms_get_list.php");
    if (!
    in_array($room$room_ids))
            
    $room intval($room_ids[0]);
    $room intval($room_ids[0]);
    $out_users "";
    $users_in_room 0;
    for (
    $i=0$i<count($users); $i++) {
            
    $data explode("\t"$users[$i]);
            if (
    $data[10] == $room) {
                    if(
    intval(trim($data[USER_INVISIBLE])) != 1) {
                  
    $out_users .= "<a href=fullinfo.php?user_id=".$data[5].">".(( strstr$data[15], "font" ) ) ? $data[15] : $data[0])."</a> <br>";
                            
    $users_in_room++;
            }
            }
    }
    if(
    count($users) == or $users_in_room == 0) {$out_users_header =  "$w_nobody_in\n";}
            else {
                    
    $out_users_header = (count($room_ids)>1)? $w_in_room:$w_in_chat;
                    
    $out_users_header .= ": <b>$users_in_room</b> ".w_people($users_in_room).".\n";
            }
    ?>
    суть в том, чтобы эти ники выводились по 3 в строке (по аналогии с картинками, вывод картинок прикрутить будет не проблама по такому же принципу)
     
  7. CnecHa3

    CnecHa3 Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    105
    Симпатии:
    20
    PHP:
    <?php
    require_once("inc_common.php");
    include(
    $engine_path."users_get_list.php");
    include(
    $engine_path."messages_get_list.php");

    set_variable("design");
    set_variable("c_design");
    set_variable("room");

    if (
    $c_design!="" and $design==""$design $c_design;
    if (!
    in_array($design$designes)) $design $default_design;
    include(
    $ld_engine_path."rooms_get_list.php");

    if (!
    in_array($room$room_ids)) $room intval($room_ids[0]);

    $room intval($room_ids[0]);
    $out_users "";
    $users_in_room 0;

    $out_users .= '<table>';
    for(
    $i=1;$i<=count($users);$i++){
        
    $data explode("\t"$users[$i]);
        if (
    $data[10] == $room) {
            if(
    intval(trim($data[USER_INVISIBLE])) != 1) {
                if(
    $i $y == 1$out_users .= '<tr>';
                
    $out_users .= '<td><a href=fullinfo.php?user_id='.$data[5].'>'.(( strstr$data[15], "font" ) ) ? $data[15] : $data[0]).'</a></td>';
                if(
    $i $y == 0$out_users .= '</tr>';
                
    $users_in_room++;
            }
        }
    }
    $out_users .= '</table>'

    if(
    count($users) == or $users_in_room == 0) {
        
    $out_users_header =  "$w_nobody_in\n";
    }else {
        
    $out_users_header = (count($room_ids)>1)? $w_in_room:$w_in_chat;
        
    $out_users_header .= ": <b>$users_in_room</b> ".w_people($users_in_room).".\n";
    }
    ?>
    Если я всё верно понял, то будет так
     
  8. Zefvs

    Zefvs

    Регистр.:
    11 авг 2009
    Сообщения:
    230
    Симпатии:
    20
    к сожалению не работает, во-первых в цикл не попадает первый пользователь, потому что цикл начинается с 1, а во-вторых остальные выводятся в столбик

    в стоблик потому что забыл обьявить переменную $y = 3;
     
  9. CnecHa3

    CnecHa3 Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    105
    Симпатии:
    20
    Измени
    перед циклом for() добавь $y = 3;
    и это
    PHP:
    $data explode("\t"$users[$i]);
    на это
    PHP:
    $data explode("\t"$users[($i-1)]);
     
    Zefvs нравится это.