2013-02-14 3 views
0

Я в настоящее время работаю с базой данных, которая содержит следующую структуру таблицы:Неправильного DIV форматирования при обработке запроса SQL

round | current 
=============== 
P  | 0 
1  | 1 
2  | 0 
3  | 0 
4  | 0 
A  | 0 

Я пытаюсь написать PHP код, который будет выводить «зажженную вверх круг» для каждая строка, в которой ток равен единице. Таким образом, с приведенной выше таблицей 1 будет освещено, потому что ток равен 1 - остальные остальные раунды будут представлены серыми кругами.

Я включил пример здесь: http://i.imgur.com/GYvUdii.png

Однако трудность у меня прямо сейчас, что мой код выводит это: http://i.imgur.com/Q41kBnM.png, когда его только предназначены для возвращения одной строки, как указано выше.

Я включил выход HTML здесь: http://jsfiddle.net/pn8BW/

Это PHP/MySQL я использую сейчас. Был бы признателен за помощь в этом, потому что я работал на него в течение часа :-(:

<?php 
     $sql = "SELECT * from ts_rounds"; 
     $result = $pdo->query($sql); 
$circleSize = array ('circle_small', 'circle'); 
$rounds = ''; 
foreach ($result as $row) { 

    switch ($row['round']) { 
     case 'P': 
      $rounds .= '<div id="r0" class="'.$circleSize[$row['current']].'"><h3>P</h3></div>'; 
     case '1': 
      $rounds .= '<div id="r1" class="'.$circleSize[$row['current']].'"><h3>1</h3></div>'; 
     case '2': 
      $rounds .= '<div id="r2" class="'.$circleSize[$row['current']].'"><h3>2</h3></div>'; 
     case '3': 
      $rounds .= '<div id="r3" class="'.$circleSize[$row['current']].'"><h3>3</h3></div>'; 
     case '4': 
      $rounds .= '<div id="r4" class="'.$circleSize[$row['current']].'"><h3>4</h3></div>'; 
     case 'A': 
      $rounds .= '<div id="r5" class="'.$circleSize[$row['current']].'"><h3>A</h3></div>'; 
    } 
} 
echo $rounds; 
     ?> 

ответ

5

Вы забыли break; в вашем switch:

case 'P': 
    $rounds .= '<div id="r0" class="'.$circleSize[$row['current']].'"><h3>P</h3></div>'; 
    break; 
2

Я думаю, что вы хотите break; перед каждым последующее условие протестируйте в switch, например.

case 'P': 
     $rounds .= ... ; 
     break; 
    case '1': 
     $rounds .= ... ; 
     break; 

Без break;, логика е низкое будет «проваливаться» до следующего действия.

Смежные вопросы