[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кол-во картинок на строку
bugmenot
Идея скрипта такая - надо выводить по 5 картинок на строку.
Косяк в том, что тут цикл в цикле.
Если закрываю оба цикла, то ругается на второй endwhile. Если не пишу 2 endwhile, получается бесконечный цикл.
PHP
<?php
include("./upload/config.php");
$query "SELECT * FROM tpics";
$result mysql_query($query);
while (
$cellid != 5)
{
    while (
$row mysql_fetch_array($result)) :
     echo 
'<td height="170" width="170" align="center">
     <a href=info.php?id='
.$row["id"].'><img src=/upload/files/tn/'.$row["imgname"].'></a></td>'
     
$cellid=$cellid+1;
    endwhile;
}


echo 
'<br>'.$cellid;




Спустя 1 час, 6 минут, 32 секунды (9.03.2009 - 04:40) kirik написал(а):
Попробуй так:
PHP
$rows 0;
$query "SELECT `id`, `imgname` FROM tpics";
$result mysql_query($query);
while(
$row mysql_fetch_array($result))
{
    if(
$i%== 0)
        echo 
'
    <tr>'
;

    echo 
'
        <td height="170" width="170" align="center">
            <a href=info.php?id='
.$row['id'].'><img src=/upload/files/tn/'.$row['imgname'].'></a>
        </td>'
;

    if(
$i%== 4)
        echo 
'
    </tr>'
;

    
$rows++;
}
mysql_free_result($result);

только подумай, как сделать, если последний проход выдаст не 5 картинок (тогда tr не закроется)

Спустя 7 часов, 6 минут, 12 секунд (9.03.2009 - 11:46) Семён написал(а):
У меня была похожая как-то задача только нужно было вывести картинки в колонки... и там была регулировка по сколько в каждой ячейке..... потратил на закрывание / открывание табличных <tr> <td> около часа...
Если просто вывод на строку, то не проще использовать <br/> ?

Спустя 2 минуты, 52 секунды (9.03.2009 - 11:49) bugmenot написал(а):
kirik
терь выводит по 1 картинке в строчку. blink.gif

Спустя 1 час, 8 минут, 49 секунд (9.03.2009 - 12:58) Sylex написал(а):
bugmenot
так думай головой!

PHP
$rows 0;
$query "SELECT `id`, `imgname` FROM tpics";
$result mysql_query($query);
while(
$row mysql_fetch_array($result))
{
    if(
$rows%== 0)
        echo 
'
    <tr>'
;

    echo 
'
        <td height="170" width="170" align="center">
            <a href=info.php?id='
.$row['id'].'><img src=/upload/files/tn/'.$row['imgname'].'></a>
        </td>'
;

    if(
$rows%== 4)
        echo 
'
    </tr>'
;

    
$rows++;
}
mysql_free_result($result);

Спустя 7 минут, 58 секунд (9.03.2009 - 13:06) bugmenot написал(а):
Sylex
у мну особенность - я могу думать головой только если код писал я rolleyes.gif
Пасибо wink.gif

Спустя 4 минуты, 26 секунд (9.03.2009 - 13:10) Sylex написал(а):
bugmenot
т.е. ты хочешь чтобы делали все за тебя? Ты так никогда ничему не научишься! smile.gif

что значит знак % в данном коде, а?

Спустя 13 минут (9.03.2009 - 13:23) bugmenot написал(а):
Sylex
Вродь если остаток равен...

Нет, не хочу. Но я понимаю только свой код %)

Спустя 8 часов, 29 минут, 59 секунд (9.03.2009 - 21:53) kirik написал(а):
Цитата (bugmenot @ 9.03.2009 - 05:06)
я могу думать головой только если код писал я rolleyes.gif

Вот проблема тоже! Перепиши! wink.gif

Вот тебе еще подсказка (уже полностью рабочая, с закрытием последнего tr):
PHP
$total 17// Количество элементов
$inrow 5// Количество колонок

// -------------
$empty 0// Количество пустых ячеек

while(($empty+$total)%$inrow// Считаем сколько ячеек не хватает, чтобы заполнить последний ряд
    
$empty++;

echo 
'<table border="1">';
for(
$i 0$i $total+$empty$i++)
{
    if(
$i%$inrow == 0)
        echo 
"\n\t<tr>";

    echo (
$i $total) ? "\n\t\t<td>{$i}</td>" "\n\t\t<td>--</td>";

    if(
$i%$inrow == $inrow-1)
        echo 
"\n\t</tr>";

}
echo 
"\n</table>";


Тебе нужно лишь применить это к своему коду wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.