[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: таблица в цикле, смещение на ряд ниже.
dima4321
Продолжение вчерашней свистопляски ))

Всем привет.

В моем случае бывает так, что надо выводить по 20 ссылок. В одну строку это уже становится не айс. Поэтому надо в цикле сместиться вниз. т.е. расставить правильно tr и td. Нужное условие эт 5 ссылок в строку .

Пробывал сам, но уж больно становится громоздким код.) Может возможно простое решение. Например из одного цикла сделать два друг за другом.

Есть идеи. Кроме if ничего в голову не приходит )


<?

$total=20;
$i=1;
$page=3;
echo '<table border=1><tr>';
while($i<=$total)
{
echo '<td>';
if($i==$page)
{
echo "<a href='tracklist.php?name=$name&n=$i'><b>CD $i</b></a>     \n";
}
else
{
echo "<a href='tracklist.php?name=$name&n=$i'>CD $i</a>     \n";
}
echo '</td>';
$i++;
}
echo '</tr></table>';

?>


Заранее спасибо )



Спустя 14 минут, 28 секунд (26.02.2011 - 12:35) inpost написал(а):
if($i%5 == 0)
echo '</tr><tr>';

Спустя 43 минуты, 5 секунд (26.02.2011 - 13:18) dima4321 написал(а):
inpost

Выручил . С меня плюсик

Единственное , что если например общее кол-во кратное

то архитектура html получается такой:

</td></tr><tr></tr></table>

Надеюсь это не криминал )

Кстати никто не помнит, как отцентрировать ячейки тааблицы.

т.е. например 2 строки. Верхняя-- 5 ячеек нижняя --3 ячейки

Сделать это в виде треугольника заостренного вниз... мм ??? т.е. центрирование ??




<?
echo '<table border=1><tr>';
while($i<=$total)
{
echo '<td>';

if($i==$page)
{
echo "<a href='tracklist.php?name=$name&n=$i'><b>MP3 CD $i</b></a>     \n";
}

else
{
echo "<a href='tracklist.php?name=$name&n=$i'>MP3 CD $i</a>     \n";
}

echo '</td>';
if($i%5 == 0)
{
echo '</tr><tr>';
}
$i++;
}
echo '</tr></table>';

?>


Спустя 2 часа, 37 минут, 53 секунды (26.02.2011 - 15:56) inpost написал(а):
dima4321
ты вывод делай не в конце, а в начале, тогда такого не будет.
Тебе colspan & cellspan ?

Спустя 1 час, 36 минут, 48 секунд (26.02.2011 - 17:33) dima4321 написал(а):
inpost

Я пробывал как раз запихать сперва именно все в начало, но тогда получается криво



$total=9;
$i=0;
$page=2;
echo '<table border=1><tr>';
while($i<=$total)
{
if($i%5 == 0)
{
echo '</tr><tr>';
}
echo '<td>';

if($i==$page)
{
echo "<a href='tracklist.php?name=$name&n=$i'><b> CD $i</b></a>     \n";
}

else
{
echo "<a href='tracklist.php?name=$name&n=$i'> CD $i</a>     \n";
}

echo '</td>';

$i++;
}
echo '</tr></table>';



Остаются пустые ячейки в первой строке и т.п.

Попробуй код и увидишь.

По ходу мне действительно нужен colspan

Но в математике не силен, и городить огород не буду.

Спустя 2 часа, 54 минуты, 57 секунд (26.02.2011 - 20:28) inpost написал(а):
dima4321
Откуда эти данные выводятся?

Спустя 1 час, 54 минуты, 35 секунд (26.02.2011 - 22:23) uWeb написал(а):

Спустя 1 час, 40 минут, 26 секунд (27.02.2011 - 00:03) dima4321 написал(а):
Цитата (inpost @ 26.02.2011 - 17:28)
dima4321
Откуда эти данные выводятся?

Как откуда ))

Фактически это постраничная навигация для отдельного пункта.
Т.е. например группа modern talking

Представленный Цикл выводит ссылки на страницы (которые отображают в свою очередь альбомы.


Спустя 1 час, 33 минуты, 52 секунды (27.02.2011 - 01:37) inpost написал(а):
dima4321
из файла, из формы, из БД? Если из БД, то почему не циклом WHILE ?

Спустя 16 минут, 58 секунд (27.02.2011 - 01:54) dima4321 написал(а):
блин ))

inpost

Это же только часть скрипта.


Конкретно это цикл просто делает ссылки на этот же скрипт. Это же видно.

Согласно тому какое $name & n придут --- произойдет выборка из базы.


Спустя 11 минут, 40 секунд (27.02.2011 - 02:06) inpost написал(а):
dima4321
я не понимаю, почему пустое:
Смотрим результат:
0 1 2 3 4 (5%5)
5 6 7 8 9 (10%5)
10 11 12 13 14 (15%5)

Так что всё правильно выводит. Может данные $i начинаются с 1? тогда по другому:
while(true)
{
if($i == $MAX)
break;
if($i++%5 == 0)
echo '</tr><tr>';
echo "<td>LALALA</td>";
}

Спустя 9 часов, 28 минут, 8 секунд (27.02.2011 - 11:34) uWeb написал(а):
Просто увеличение переменной $i нужно ставить до того как произойдет вывод </tr><tr>.

Спустя 1 день, 3 часа, 28 минут, 8 секунд (28.02.2011 - 15:02) dima4321 написал(а):
Данные $i действительно начинались с 1.
В этом и была проблема.
inpost посмотрел твой код --для меня тяжело.

Поэтому ввел еще одну переменную

$i=0;
$k=1;
echo '<table border=1 bgcolor=#7CFC00><tr>';

while($k<=$total)
{

if($i%5 == 0)
{
echo '</tr><tr>';
}

if($k==$page)
{
echo "<td><a href='tracklist.php?name=$name&n=$k'><b>MP3 CD $k</b></a></td>     \n";
}

else
{
echo "<td><a href='tracklist.php?name=$name&n=$k'>MP3 CD $k</a></td>     \n";
}

$i++;
$k++;
}


_____________
Работаю за еду ! __))
И за плюсики !
Быстрый ответ:

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