Как отобразить <div>согласно счетчику данных, показанному ниже? - PullRequest
0 голосов
/ 22 сентября 2010

Я должен отобразить ниже фрагмент в соответствии с данными, доступными в БД

<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>

То есть <div id="testimonial-row"> должен создаваться каждый раз, когда число данных (здесь, привет мир) становится больше 3, следовательно, таким образом, если число данных равно "16", должно быть создано <div id="testimonial-row"> 6 раз со всеми данными, отображаемыми в созданных 6 <div> тегах

Так может кто-нибудь сказать мне, как реализовать цикл for, чтобы это произошло в PHP?

Ответы [ 3 ]

2 голосов
/ 22 сентября 2010

Если я правильно понимаю ваш вопрос:

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 голос
/ 22 сентября 2010
   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".

0 голосов
/ 22 сентября 2010

Вот код

$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();
}
...