如何强制foreach显示div而没有数据库中的数据

时间:2013-11-18 22:10:04

标签: php mysql

我正在使用foreach从查询中使用LIMIT 8从MySQL检索数据,但是当我在foreach中显示数据时,由于MySQL数据库中没有足够的数据,因此会丢失块(div)。我想知道是否可以自动包含8个div甚至没有任何数据插入到这些div中,一旦有数据,它就可以更新块。

离。

块的css代码。

.g_body-first-left { background-color: #000; width: 200px; height: 300px; }

这就是我显示数据的方式。 PS:不需要包含查询,因为我只是想检索8个块。

foreach ($healthHighlighted as $data)
{   
    $highlighted_title      = $data['article_title'];
    $highlighted_content    = $data['article_content'];

    echo
    '
        <div class="g_body-first-left">

        </div>
    ';
}

所以我希望foreach能够显示

<div class="g_body-first-left">
</div>

无论是否有任何数据显示。

4 个答案:

答案 0 :(得分:2)

快速解决方案:

$cnt = 0;
foreach ($healthHighlighted as $data)
{   
    $highlighted_title      = $data['article_title'];
    $highlighted_content    = $data['article_content'];
    echo '<div class="g_body-first-left">...</div>';
    $cnt++;
}
while ($cnt++<8)
    echo '<div class="g_body-first-left"></div>';

答案 1 :(得分:0)

也许是这样的:

$block_count = 0;
foreach ($healthHighlighted as $data)
{   
    $highlighted_title      = $data['article_title'];
    $highlighted_content    = $data['article_content'];

    echo
    '
        <div class="g_body-first-left">

        </div>
    ';
    $block_count++;
}

for($i=0; $i<(8-$blockcount); $i++){
    echo
    '
        <div class="g_body-first-left">

        </div>
    ';
}

这是另一种快速解决方案,但它会起作用!

答案 2 :(得分:0)

for ($i = 0; $i < 8; $i++) {
    $data = current($healthHighlighted);
    next($healthHighlighted);

    $highlighted_title      = $data['article_title'];
    $highlighted_content    = $data['article_content'];

    echo '<div class="g_body-first-left">';
    if ($data) {
        echo $data; // your data rendering goes here
    }
    echo '</div>';
}

答案 3 :(得分:0)

如果您想准确插入8个div,请使用good'ol for而非foreach

for($i = 0; $i++; $i < 8)
{
    if(isset($healthHighlighted[$i]))
    {
        $highlighted_title      = $healthHighlighted[$i]['article_title'];
        $highlighted_content    = $healthHighlighted[$i]['article_content']; //i guess this has to 
    }
    echo
    '
        <div class="g_body-first-left">
        </div>
    ';
}