[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как выводить при помоши [b][u]php do while[/u][/b]
elik546
Как выводить при помоши php do while таблицу с разноцветными строками? Например одна строка серая другая белая и так по кругу до последнего урока на MySQL базе.

do {
printf ("<table width='600' align='center' cellpadding='0' cellspacing='0' valign='top'>
<tr>
<td><a href='view_img.php?id=%s'>%s</a><br>%s</li></td>
</tr>
</table><br>"
, $myrow['id'],$myrow['title'],dateconv($myrow['date']));
}
while ($myrow = mysql_fetch_array ($result));




Спустя 10 минут, 29 секунд (15.10.2010 - 07:43) sergeiss написал(а):
Цитата (elik546 @ 15.10.2010 - 08:33)
Как выводить при помоши php do while таблицу с разноцветными строками?

Ответ простой и однозначный: никак! Потому что надо выводить при помощи цикла while: http://phpforum.ru/index.php?showtopic=21916. Прочитай по ссылке ВНИМАТЕЛЬНО и забудь про Попова!
А посредством цикла while для четных строк назначаем один стиль, для нечетных - другой.

Спустя 14 минут, 38 секунд (15.10.2010 - 07:58) arvitaly написал(а):
($a = !$a) ? 'class="red"' : 'class="green'

Спустя 1 час, 15 минут, 33 секунды (15.10.2010 - 09:13) twin написал(а):
arvitaly
чет не понял идеи... Всегда так делали
!($a % 2) ? 'class="red"' : 'class="green'

а как по твоему?

Спустя 7 минут, 4 секунды (15.10.2010 - 09:20) linker написал(а):
twin
Хитро, а главное быстрее работает. Смотри, ! имеет больший приоритет чем =, допустим $a = 0, тогда условие !$a дает true, присваивается это true переменной $a и выводится 'class="red"', при следующей итерации !$a дает false, т.к. !true = false, теперь выведется 'class="green', а $a будет иметь значение false и т.д.

Спустя 5 минут, 8 секунд (15.10.2010 - 09:25) twin написал(а):
Прикольно))) Такого не видел еще. Весьма оригинольно, овация. smile.gif

Спустя 1 минута, 48 секунд (15.10.2010 - 09:27) sergeiss написал(а):
Господа, вы всё правильно говорите smile.gif
Но автор темы должен понять, что надо изначально правильную структуру сделать (в данном случае цикл), а потом уже дополнения всякие. Поэтому я на его вопрос и ответил "низзя". Чтобы базис, фундамент привел в порядок. Не люблю обсуждать тонкости, когда в общей структуре бардак полный.

Спустя 11 минут, 47 секунд (15.10.2010 - 09:39) twin написал(а):
Есть еще способ
!($a & 1) ? 'class="red"' : 'class="green';

не поленился, измерил. Все таки !($a % 2) быстрее всех работает. smile.gif
Это фигня конечно, просто любопытно стало.

Спустя 1 минута, 5 секунд (15.10.2010 - 09:40) twin написал(а):
sergeiss
Ну ты же отправил его в нужном направлении. Могу я в догонку дать ссыль)))

Спустя 6 минут, 49 секунд (15.10.2010 - 09:47) arvitaly написал(а):
Покажите, пожалуйста, ваш бенчмарк

Спустя 1 минута, 42 секунды (15.10.2010 - 09:49) twin написал(а):
set_time_limit(0);
$w = 100;
while(--$w)
{
$s = microtime(true);

for($a = 0; $a < 10000; ++$a)
$b = !($a & 1) ? 'class="red"' : 'class="green';

$v1 += (microtime(true) - $s);

$s = microtime(true);

for($a = 0; $a < 10000; ++$a)
$b = !($a % 2) ? 'class="red"' : 'class="green';

$v2 += (microtime(true) - $s);


$s = microtime(true);

for($a = 0; $a < 10000; ++$a)
$b = ($i = !$i) ? 'class="red"' : 'class="green';

$v3 += (microtime(true) - $s);
}

echo $v1 / 100, '<br>', $v2 / 100, '<br>', $v3 / 100;

Спустя 18 минут, 31 секунда (15.10.2010 - 10:07) arvitaly написал(а):
У меня
1. &
2. !
3. %

Но & и % будут работать только при +1 инкременте, и использовать несколько раз их результат нельзя.
А ! тормозит из за записи в оперативку. & и % отрабатываются чисто процом.

Спустя 3 минуты, 59 секунд (15.10.2010 - 10:11) twin написал(а):
Ну вообще почти одинаково. А фишка прикольная, взял на карандашик, спасибо)
Обожаю такие оригинальные штучки.
Быстрый ответ:

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