За последние 24 часа нас посетили 15617 программистов и 1552 робота. Сейчас ищут 886 программистов ...

Из горизонтального в вертикальный...

Тема в разделе "PHP для новичков", создана пользователем EvelRus, 31 мар 2008.

  1. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    HTML:
    1.  
    2. <table border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse" width="100%">
    3. <tr>
    4.  
    PHP:
    1. <?
    2. $dir = $_GET['dir'];
    3. $dir = opendir ("./$dir");
    4. while($file = readdir($dir))
    5. {
    6. if ($file == '.')
    7. {
    8.  unset($file);
    9. }
    10. if ($i/3==$i%3)
    11. {
    12. ?>
    13.  
    HTML:
    1.  
    2. </tr>
    3. <tr>
    4.  
    PHP:
    1.  
    2. <?
    3. }
    4. echo '<th><a href="?dir='.$file.'">'.$file.'</a></th>';
    5. $i++;
    6. }
    7. ?>
    8.  
    HTML:
    1. </tr>
    PHP:
    1.  
    2. <?
    3. closedir($dir);
    4. ?>
    HTML:
    Вот такой код... Как сделать так, что бы файлы грузились не столбик, а не в линию?:)))
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Ничего не понятно. Тебе надо сделать таблицу? Чтобы ячейки заполнялись циклом, а сейчас они просто формируют таблицу с одним столбцом?
     
  3. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    мне до как в нортоне!
    В три колонки все каталоги и файлы....
    Сверху вниз... потом вторая колонка... сверху вниз и потом третья
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Ищь ты, чего захотел :) Тут без двух циклов не обойтись.
    Сначала вычисляешь, сколько тебе нужно строк на странице ($size). Потом сканируешь директорию и набиваешь три массива:

    while (bla-lba)
    if ($i < $size) {
    $firstarray

    }
    else if ($i > $size & $i < $size*2) {
    $secarray
    }
    else {
    $thirdarray;
    }

    Потом формируешь таблицу:
    for ($i=0 .... ) {
    echo '<tr><td>'.$firstarray[$i].'</td><td>'.$secarray[$i].'</td><td>'.$thirdarray[$i].'</td></tr>';
    }

    Что-то мне подсказывает, что все можно организовать одной итерацией, но я сейчас вообще не в состоянии думать...
    P.S. извиняюсь, за корявость поста.
     
  5. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Nemo
    делаешь Norton-online? Давай, кто быстрее? %))
     
  6. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    antonn Ага... ты прав :))))
    Я туда, правда, закину контент с 386.by.ru

    И соревноваться не особо хочу ;)
    Для души делаю :)
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Nemo
    Ну чего, нашел более оптимальный способ?
     
  8. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
  9. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Как данные представлены?
    PHP:
    1. print_r($data);
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    :lol:
    PHP:
    1. <?php
    2.  
    3. echo '<table border="1">';
    4. $dir = scandir("./");
    5. $sizall = sizeof($dir);
    6. $stolb = ceil($sizall/3);
    7. for ($i = 0; $i < $stolb; $i++) {
    8.     echo '<tr><td>'.$dir[$i].'</td><td>'.@$dir[($i+$stolb)].'</td><td>'.@$dir[($i+2*$stolb)].'</td></tr>';
    9. }
    10. echo '</table>';
    11.  
    12. ?>