2012-05-29 3 views
1

Я хочу отображать мои флажки таким образом, чтобы после подсчета 4-х отдыха в следующей строке до 4, а затем снова ломался в следующей строке. Ниже я код, который я пытался, но не успех -Строка прерывания после подсчета 4

<?php 
    $i=1; 
    while($row=mysql_fetch_array($result)) { 
    if($i<5) { 
?> 
     <input type="checkbox" id="<?=$row['CategoryName']?>" name="<?=$row['CategoryName']?>" /><?=$row['CategoryName']?> 
<? 
     $i++; 
    } 
?> 
    <br /> 
<?php 
    $i=1; 
    } 
?> 
+0

можете ли вы определить код для лучшей читаемости? –

+0

@barts Готово. Вероятно, причиной ошибки была (плохая) ошибка. – Sirko

+0

удивлен тем, как несколько предложенных ответов используют%. Похоже, такая очевидная по модулю проблема. почему это? –

ответ

0

ли это так: -

<?php 
    $i=1; 
    while($row=mysql_fetch_array($result)) 
    { 
     if($i<5) 
     {       
?> 
<input type="checkbox" id="<?=$row['CategoryName']?>" name="<?=$row['CategoryName']?>" /><?=$row['CategoryName']?> 
<?php 
     $i++; 
     } 
     else { 
    ?> 
    <br /> 
    <?php 
     $i=1; 
     } 
    }  
?> 
+0

Thx для кода, отлично работает для меня (возможно, некоторые люди разместили лучше зол, но он нажал для меня так, чтобы отметить галочку ур зол, как принято) :) – swapnesh

1

Использование if (fmod($i, 4) == 0) вместо if ($i < 5)

1

Попробуйте это:

$i=0; 
while($row=mysql_fetch_array($result)) { 
    $i++; 
    echo '<input type="checkbox" id="'.$row['CategoryName'].'" name="'.$row['CategoryName'].'" />'.$row['CategoryName']; 
    if($i % 4 == 0) { 
     echo '<br />'; 
    } 
} 
+0

В первый ряд будет помещен один элемент. – alexn

+0

@alexn Отредактировано и отремонтировано код ... Спасибо за указание. – shadyyx

1

Для этого вы можете использовать оператор modulo. Пример:

<?php 
for($i = 0; $i < 20; $i++) { 
    echo $i . "&nbsp;"; 
    if ($i % 4 == 3) 
     echo "<br />"; 
} 

Урожайность

0 1 2 3 
4 5 6 7 
8 9 10 11 
12 13 14 15 
16 17 18 19 
3

Я предлагаю это:

<?php 
$i=0; 
while($row=mysql_fetch_array($result)) 
{ 
    ?> 
    <input type="checkbox" id="<?=$row['CategoryName']?>" name="<?=$row['CategoryName']?>" /><?=$row['CategoryName']?> 
    <?php 
    $i++ 
    if ($i % 4 == 0) echo '<br />'; 
    } 
?> 
+0

Это положит один элемент в первой строке – alexn

+0

'if ($ i% 4 == 0 && $ i> 1) echo '
';' then .. – Salman

+0

Nice делает его очень легким, поддерживается :) – swapnesh

1

Привет Пожалуйста, попробуйте Приведенный ниже код

<?php 
    $i=1; 
    while($row=mysql_fetch_array($result)) { 
    if($i<5) { 
?> 
    <input type="checkbox" id="<?php echo $row['CategoryName']; ?>" 
     name="?=$row['CategoryName']?>" /> 
<?php 
    echo $row['CategoryName']; 
    $i++; 
    }else{ 
?> 
<br /> 
<?php 
$i=1; 
} 
} 
?> 

благодаря

1
$i = 1; 
for($x = 0; $x < 20; $x++) { 
echo "your element here"; 
if($i%4==0){ 
echo "</br>"; 
} 
$i++; 
} 

С уважением: TechNew.In

1

У вас есть много ответов с готовыми решениями, поэтому вместо того, чтобы писать больше кода, я предложу вам систематическую подход:
Начать с алгоритмом написания, затем напишите код.

  1. Я хочу перебирать мой набор данных:

    // while row 
        // echo input 
    // end while 
    
  2. Я хочу разрыв строки после заданного количества входов:

    // break_after = 4 
    // initiate counter (counter = 0) 
    // while row 
        // increment counter 
        // echo input 
        // if counter == break_after 
         // echo linebreak 
         // reset counter 
    // end while 
    
  3. Replace комментарии с кодом:

    die('Piece of cake...'); 
    

    (Я сказал, что не буду писать код. Вы уже знаете, как это сделать.)

+0

Приятные мысли поделиться,) – swapnesh

Смежные вопросы