Помогите плиз! Не знаю как задать условие if чтобы в зависимости от него выводился свой код для каждой из строк. Нужно чтоб в зависимости от значения $row["Status"] в строке выводился разный код, а получается что while проходит сразу по всем строкам, находит все значения $row["Status"] и применяет для всех строк сразу: <?php while ($row = $results->fetch_assoc()) : ?> <?php if ($row["Status"] = 'to-ship') : ?> <div class="orders1"></div> <?php elseif ($row["Status"] = 'cancelled') : ?> <div class="orders2"></div> <?php endif; ?> <?php endwhile; ?>
PHP: <?php #вариант 1 while ($row = $results->fetch_assoc()) { $class = 'orders-general'; if ($row["Status"] == 'to-ship') { $class = 'orders-to-ship'; } elseif ($row["Status"] == 'cancelled') { $class = 'orders-cancelled'; } echo '<div class="orders '. htmlspecialchars($class) .'"></div>'; } #вариант 2 while ($row = $results->fetch_assoc()) { switch ($row["Status"]) { case 'to-ship': $class = 'orders-to-ship'; break; case 'cancelled': $class = 'orders-cancelled'; break; default: $class = 'orders-general'; } echo '<div class="orders '. htmlspecialchars($class) .'"></div>'; } #вариант 3, правильный // список статусов и соответствующих им классов $classes = [ 'to-ship' => 'orders-to-ship', 'cancelled' => 'orders-cancelled', ]; // дефолтное значение $classDefault = 'orders-general'; while ($row = $results->fetch_assoc()) { $class = isset($classes[$row["Status"]]) ? $classes[$row["Status"]] : $classDefault; echo '<div class="orders '. htmlspecialchars($class) .'"></div>'; } прям хоть закрепляй
@igordata, если не секрет, зачем ты пропускаешь через htmlspecialchars строку, которая гарантированно не содержит ничего для этой функции интересного?
Это просто идеальный пример для малышей, вот я и вкрячил всё сразу, что в голову пришло. Не думал об этом.