如何根据下面显示的数据显示<div>?</div>

时间:2010-09-22 12:57:50

标签: php for-loop conditional

我必须根据DB

中提供的数据显示在下面的代码段
<div id="testimonial-row">
            <div id="testimonial">
                <ul>

                    <li>"Hello World"</li>
                </ul>
            </div>

            <div id="testimonial">
                <ul>

                    <li>"Hello World"</li>
                </ul>
            </div>

            <div id="testimonial">
                <ul>

                    <li>"Hello World"</li>
                </ul>
            </div>
        </div>

也就是说,每当数据计数(此处为hello world)大于3时,都应创建<div id="testimonial-row">,因此,如果数据计数为“16”,则<div id="testimonial-row">应创建6次,并在创建的6个<div>标记

中显示所有数据

那么有人可以告诉我如何实现for循环以在PHP中实现这一点吗?

3 个答案:

答案 0 :(得分:2)

如果我理解你的问题:

for($z=0;$z<16;$z++)
 {
        if($z==0) print '<div class="testimonial-row">';
        else if($z%3==0) print '</div><div class="testimonial-row">';
        print '<div class="testimonial"><ul><li>"Hello World"</li></ul></div>';
 }
 print '</div>';

答案 1 :(得分:1)

   echo '<div class="testimonial-row">';
    for ($i=1;$i<=$mysql_num_rows($res);$i++)
     {
        $row = mysql_fetch_array($res);
                echo '<div class="testimonial">';
                echo '  <ul>';
                echo '    <li>'.$row['field'].'</li>';
                echo '  </ul>';
                echo '</div>';

        if ($i%3 == 0) echo '</div><div class="testimonial-row">';
     }  
   echo '</div>';

你不应该使用id =“testimonial-row”或id =“testimonial”。而是使用class =“testimonial-row”。

答案 2 :(得分:0)

这是一些代码

$count = db_select_count...
$lastGroupCount = $count % 3;
$fullGroupCount = $count - lastGroupCount;
for ($i=0; $i<$fullGroupCount; $i++)
{
    output_testimonial_row_html(maybe_pass_an_id);
    for ($j=0; $j<3; $j++)
    {
        output_testimonial_html($count[$i*3+$j]);
    }
    close_div();
}

if ($lastGroupCount > 0)
{
    output_testimonial_row_html(maybe_pass_an_id)
    for ($j=0; $j<$lastGroupCount; $j++)
    {
        output_testimonial_html($count[$fullGroupCount*3+$j]);
    }
    close_div();
}