Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: через каждые 3 ссылки должна появляться <br/> - так правильно?
 
 автор: BlueWolf   (02.02.2011 в 22:08)   письмо автору
 
 

$i = 1; 
while($kat = mysql_fetch_array($q)) 

echo '<a href="index.php?id='.$kat['id'].'">'.$kat['name'].'</a> 
if(($i/3)==is_integer($i/3)){ 
echo '<br/>';} 
$i++; 
}


На другом форуме меня за такой код обзывают дибилом. Разве так if(($i/3)==is_integer($i/3)) не правильно?

  Ответить  
 
 автор: neadekvat   (02.02.2011 в 22:17)   письмо автору
 
   для: BlueWolf   (02.02.2011 в 22:08)
 

Давайте начнем с того, что вы сами хотели сделать? А "правильно"/"неправильно" оставим пока что.

  Ответить  
 
 автор: BlueWolf   (02.02.2011 в 22:19)   письмо автору
 
   для: neadekvat   (02.02.2011 в 22:17)
 

через каждые 3 ссылки должна появляться <br/>

  Ответить  
 
 автор: neadekvat   (02.02.2011 в 22:31)   письмо автору
 
   для: BlueWolf   (02.02.2011 в 22:19)
 

Ну, вы были близки к решению:
<?php
$i 
1;
while(
$kat mysql_fetch_array($q))
{
    echo 
'<a href="index.php?id='.$kat['id'].'">'.$kat['name'].'</a>';
        if (
is_int($i 3))
            echo 
'<br/>';
    
$i++;
}


P.S. is_integer - это алиас функции is_int.
P.P.S. Используйте решение приведенное Шляпой - по остатку проверять, конечно же, лучше. Забылся.

  Ответить  
 
 автор: Красная_шляпа   (02.02.2011 в 22:32)   письмо автору
 
   для: BlueWolf   (02.02.2011 в 22:08)
 

ну во-первых правильно, а во-вторых:

// <?php

$i 
1
while(
$kat mysql_fetch_array($q))  
{  
    echo 
'<a href="index.php?id='.$kat['id'].'">'.$kat['name'].'</a>';
    if (
$i == 0) {
        echo 
'<br>';
    }
    ++
$i;  
}


[поправлено модератором]

  Ответить  
 
 автор: Trianon   (02.02.2011 в 22:34)   письмо автору
 
   для: BlueWolf   (02.02.2011 в 22:08)
 

если бы Вы вместо is_integer написали intval , то это бы заработало.
Коряво несколько, но заработало.

Но в принципе, в таких случаях не пытаются смотреть на частное от деления.
Обычно смотрят на остаток.
Тем более, что для этого и операция в языке есть. $i % 3

  Ответить  
 
 автор: BlueWolf   (02.02.2011 в 22:40)   письмо автору
 
   для: Trianon   (02.02.2011 в 22:34)
 

У меня и с is_integer прекрасно работает=)
Спасибо за ответ.

  Ответить  
 
 автор: Trianon   (02.02.2011 в 23:11)   письмо автору
 
   для: BlueWolf   (02.02.2011 в 22:40)
 

Работает. Но
1. лишь в том случае, когда $i не начинается с нуля. Вернее - не включает нуль.
2. вследствие правил весьма запутанных, и уж всяко не по тем соображениям, по которым Вы этот код сочинили.
Кроме того, эти запутанные правила выполняются только в php. В других родственных языках этот код потерпит фиаско.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования