странные результаты внутри оператора switch - PullRequest
0 голосов
/ 10 декабря 2018

Заранее спасибо тем, кто уделит время рассмотрению моего вопроса.Я получаю результаты из таблицы, описывающей деятельность подрядчика.Существует большое количество полей True / False, и я стараюсь отображать только те, которые являются истиннымиЯ создаю массив field_name => field_type и соответствующим образом анализирую отображение.(извиняюсь за большой фрагмент кода.)

$result = $mysqli->query($visitsSQL);
if ( $result->num_rows == 0 ){ // Visit records don't exist
    $_SESSION['message'] = "Cannot find any unpaid visits";
    header("location: error.php");
}
else { // unpaid visits exist
    $fields= array();
    while ($finfo = mysqli_fetch_field($result)){
    $fields [$finfo->name]= $finfo->type ; //this array holds field names -> field types    
    }  //finish fetching keys and types
    echo "<br>";
    echo "<br>Begin visit records<br>";
    echo "<div class='review_row'> </div>"; //this puts a thin line to separate visits

    while ($visit = $result->fetch_assoc()) {  //here's where each visit is compiled and sent to screen

        echo "<div class='review_row'>";  //this puts a thin line on the bottom to separate visits

     foreach ($fields as $k => $v) { 

        $field_name = $k;
        $field_type = $v;
        $field_data = $visit[$field_name];

        switch ($field_type) {

            case 1:   //The field is a True / False field
                if ($field_data ==1){  //show the field only if the value is set to True
                   echo "I am a YES/NO field called " . $field_name . " <br>";  //This line is a test 
                   echo "<span style='color: #009999;> - " . $field_name . "</span><br>";              
                }
                break;
            case 4:  //The field is a double numeric
                   if ($field_data != null) {       //show the field only if the value is set to True             
                echo "<span style='color: #b38f00';>" . $field_name . "</span>  " . $field_data . "<br>";  
                   }
                break;
            case 253: //A text field
                   if ($field_data != null) {                    
                echo "<span style='color: #b38f00';>" . $field_name . "</span>  " . $field_data . "<br>";  
                   }
                break;
            case 254: //a Datetime field
                   if ($field_data != null) {                    
                echo "<span style='color: #b38f00';>" . $field_name . "</span>  " . $field_data . "<br>";  
                   }
                break;
            default: { //field type is not represented above
              // do nothing so far  I take care of each field type above 
            }             
        }  //end of switch
    }  //end of foreach 
}  //end of while loop for the query results
echo "</div>";

} // конец if / else, определяющий, есть ли записи для отображения

Странные результаты возникают в операторе "switch"где "случай 1".Моя текущая запись теста содержит 7 полей ДА / НЕТ, все значения которых установлены на 1. Они

  • Готовые вечерние блюда
  • Уборка чистых блюд вечерних блюд
  • Покупкидля бакалеи
  • Стирать и складывать одежду
  • Стирать постельное белье
  • Пылесосить ковры
  • Подметать кухонный пол

Я должен получить два"echo" для каждого "field_type = 1": (1) мое тестовое эхо и (2) то, что я в итоге хочу отобразить, но по какой-то причине они отображаются поочередно - см. изображение ниже.Я боролся с этим в течение двух дней, пытаясь также выполнить синтаксический анализ «если / потом», но я придумываю результат типа «каждую секунду».

screenshot of output from query

Спасибо за любые мысли или указания.

1 Ответ

0 голосов
/ 10 декабря 2018

Я нашел проблему и исправил ее.Это было связано с тегами "span ...".Я заменил встроенный «style = ...» классом.Я установил цвет в классе, а затем удалил настройки с помощью раздела "class: after".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...