2013-11-18 2 views
1

Я использую foreach для извлечения данных из MySQL с помощью LIMIT 8 в запрос, хотя, когда я отображаю данные внутри foreach, есть блоки (div), отсутствующие поскольку данных в базе данных MySQL недостаточно. Я хотел бы знать, возможно ли авто включать 8 разделов, даже если в эти div не вставлены никакие данные, и как только есть данные, тогда они могут обновлять блоки.Как заставить foreach отображать div без данных из базы данных

ex.

Код 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> 
    '; 
} 

Так что я хотел бы для Еогеасп для отображения

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

независимо, если есть какие-либо данные, которые будут отображаться или нет.

ответ

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>'; 
+0

Теперь я понимаю, что именно происходит, который довольно прост для понимания, но идеально, спасибо за ваше время , – iBrazilian2

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> 
    '; 
} 

Это быстрое решение, как другие, но это будет работать!

+1

он не будет работать, так как вы будете отображать ту же сумму пустого блока, что и заполненные, но проблема - OP нуждается в отображении 8 в целом, проверьте свой код, когда нет данных из db вообще –

+0

Хорошо, исправлено! – arielcr

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>'; 
} 
0

Если вы хотите вставить ровно 8 дивы затем использовать 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> 
    '; 
} 
Смежные вопросы