За последние 24 часа нас посетили 63203 программиста и 1738 роботов. Сейчас ищут 853 программиста ...

Как вывести картинки в 2 столбца

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

  1. kilroy

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

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    Есть галерея картинок, тумбы которых выводятся в одну строчку.
    Надо сделать так что бы тумбы выводились в два столбца по 6 тумбов в каждом.
    Вот код который работает ,но неправельно(
    PHP:
    1.  
    2. <?
    3. for ($itwo = 0; $itwo <= 12; $itwo +=2)
    4.  
    5. if   ($row_foto['id'] == $itwo)
    6. {
    7. echo "<br/>";
    8. }
    9.  
    10. ?>
    11.  
    В данном случае я брал id тумбов которые хранятся в БД, но дело в том что допустим при удалении записи мы теряем id, т.е. четное либо нечетное число и получается фигня(
    Алгоритм я сделал такой, что после каждой четной записи(тумбы) вставляется "<br/>" .
    *тумбы - thumbs
     
  2. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Такая тема уже была. На форуме есть и работает поиск.
     
  3. kilroy

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

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    Что то тяжко у меня с поиском. Нашел один топик, но что то там немного не то.
     
  4. TROODON

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

    С нами с:
    4 ноя 2007
    Сообщения:
    112
    Симпатии:
    0
    строишь массив

    и дальше циклом
    если и равно 7 то пишешь бр и выводишь картинки дальше

    ЗЫ чтобы вывести в 2 ряда я юзал вот что

    стоится массив делится число строк в нём пополам и потом цикл

    если и = округлённой до целого половины числа строк массива то переносится на следуйщий столбец
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Для идентификаторонезависимой выборки используйте LIMIT
    Для столбцового представления данных я бы посоветовал использовать таблицу, но если хотите <br>, то можно и так

    PHP:
    1.  
    2. <?php
    3. $i = 1;
    4. whlie($row = fetch_array...) {
    5.   echo ...$row[...]...;
    6.   $i++;
    7.   if ($i == 3) {
    8.      echo "<br>";
    9.      $i = 1;
    10.   }
    11. }
    12. ?>
     
  6. kilroy

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

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    Вот полный код
    PHP:
    1.  
    2. <?php do { ?>
    3.  
    4. <a href="foto.php?foto=<?php echo $row_foto['id']; ?>
    5. &catid=<?php echo $row_foto['catid'];?>
    6. &pageNum_foto=<?php echo $_GET['pageNum_foto'];?>"><img src="<?php echo $row_foto['urlthumb'];?>" alt="" width="70" height="54" class="thumbs"/></a>
    7.  
    8. <?
    9. for ($itwo = 0; $itwo <= 30; $itwo +=2)
    10.  
    11. if   ($row_foto['id'] == $itwo)
    12. {
    13. echo "<br/>";
    14. }
    15.  
    16. ?>
    17. <?php } while ($row_foto = mysql_fetch_assoc($foto)); ?>
    18.  
    TROODON - т.е. у меня получаеться цикл в цикле. Поэтому твой вариант не прокатит, ибо тогда в цикле вайл пройдет полностью весь твой цикл который будет вставлять <br/> n-раз после каждой картинки . Или я не прав?
    А можно сделать так - посчитать кол-во записей, создать массив этих записей и потом уже обращатся к ним, т.е. сравнивать четное/нечетное число?

    Вместо вот этого $row_foto['id'](это то что в цикле for) у меня был бы массив записей со значениями 0,1,2....n.
    В "главный" цикл вайл который поочередно выводит значения $row_foto надо как то впихнуть массив который бы так же поочередно выводился.
    эээ, я в правельном направлении?
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Мой пост обойден стороной, что-ли?
     
  8. kilroy

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

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    Страничку не обновлял и не увидил поэтому)
    Сенькс)

    * у тя там вместо while написанно whlie , для начинающих это может быть критично :)
     
  9. kilroy

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

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    Всем огромное спасибо за помощЪ.
    Есть есче вот что, когда я использовал пример от Krekerа ,то почему то не выводилась самая первая запись на страницу из БД ну и если перейдешь на след страницу то тоже не выводилась первая запись на страницу.
    Наверное дело в цикле, он каким то образом "пропускал"/"не выводил" первую запись.

    Вот как сделал, все работает ))
    PHP:
    1.  
    2. <?php $i = 0; do { ?>
    3.  <a href="foto.php?foto=<?php echo $row_foto['id']; ?>
    4. &pageNum_foto=<?php echo $_GET['pageNum_foto'];?>"><img src="<?php echo $row_foto['urlthumb'];?>"  width="70" height="54" class="thumbs"/></a>
    5. <?
    6.    $i++;
    7.    if ($i == 2) {
    8.      echo "<br/>";
    9.      $i = 0;
    10.    }
    11. ?>
    12.  <?php } while ($row_foto = mysql_fetch_assoc($foto)); ?>
    13.  
     
  10. md5

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

    С нами с:
    29 янв 2007
    Сообщения:
    250
    Симпатии:
    0
    а остаток от деления в 5 классе проходят
     
  11. kilroy

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

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    а при чом здесь остаток от деления?? поясните.
     
  12. nws

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

    С нами с:
    21 авг 2007
    Сообщения:
    48
    Симпатии:
    0
    Код (Text):
    1. а при чом здесь остаток от деления?? поясните.
    while ...
    $k = 0;
    if (($k++ % 2) == 0 ) {
    <tr>
    .....

    }else{
    </tr>
    }