处理部分中的项目列表

I want 3 item per div (the sample has a total of 7 items) like this:

<div>
  <item/>
  <item/>
  <item/>
</div>
<div>
  <item/>
  <item/>
</div>

But I can't do

while($r = mysql_fetch_array($q){
    ?><item/><?
}

if(++$i%3==1){ 
    //blabla:) 
}

Because it incorrectly prints out

<div>
  <item/>
  <item/>
  <item/>
</div>
<div>
  <item/>
...

How do I correctly print out the items in blocks of 3?

You were most of the way there.

$result = mysql_query("SELECT ....");

$recordCounter = 0;
$record = mysql_fetch_assoc($result);
while ($record) {
    if ($recordCounter % 3 == 0) {
?>
    <div class="item-block">
<?php
    }
?>
        <div class="item"></div>
<?php
    $record = mysql_fetch_assoc($result);
    $recordCounter++;

    if ($record === false || $recordCounter % 3 == 0) {
?>
    </div>
<?php
    }
}

mysql_free_result($result);

somewhat shortened :))

<div class="items">
<?  $q = mysql_query("SELECT * FROM table ");
    $i=1;
    while($r = mysql_fetch_array($q))
    {
      ?><item /><?
      if($i%4==0){?></div><div class="item"><? }?>
    <? $i++;
    }?>
</div>

Here is another option, maybe there are too much php tags =)

<?php
$items = array(1,2,3,4,5,6,7,8);
$count = 1;
?>

<html>
<body>
<?php foreach ($items as $item) : ?>
    <?php if ($count == 1) : ?>
        <div>
    <?php endif; ?>
    <p><?php echo $item; ?></p>
    <?php if ($count == 3) : ?>
        </div>
        <?php $count = 0; ?>
    <?php endif; ?>
    <?php $count++; ?>
<?php endforeach; ?>
</body>
</html>