Условный стиль PHP на основе значения переменной

1

У меня есть код PHP, который выполняет и выбирает 10 строк из таблицы SQL. Один столбец, называемый result может содержать значение выигранного или потерю.

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "<div class = 'logrow'> <img src ='". $row["url"] ."'</img> <p class = 'logtext'>". $row["name"] ." bet $". $row["amount"] ." with a ".  $row["chance"] ."% chance and ". $row["result"] .". </p> </div>";
    }

Как я мог бы сделать что-то, что бы эхо значения из каждой строки, как указано выше, но для эха другого оператора для каждой строки, где значением result является потеря. Например, чтобы добавить встроенный стиль для цвета фона.

Так, например, скажем, у меня есть 10 строк - 9 из них имеют $row["result"] как выигранные, поэтому они должны быть эхом, как указано выше. Но 1 строка имеет значение $row["result"] как потерю, следует применять другое эхо. Возможно, с встроенным стилем или, возможно, с переменной, вставленной в этот стиль.

Я знаю, что это очень специфично и может быть неясно, поэтому заранее.

  • 0
    просто используйте if ... if($row["result"] == 'won') . Тогда вы повторяете что-то другое в if, чем в else ...
  • 0
    Будет ли это работать для каждого ряда, если их более одного? Я всегда, хотя while () должен был быть использован здесь. Если нет, можете ли вы сделать это ответом, чтобы я мог пометить вопрос как ответивший. ТИА
Показать ещё 2 комментария
Теги:

2 ответа

3
Лучший ответ

Основываясь на значении в $ row ["result"] (won/loss), создайте класс и используйте его в эхом

css:
    .won{background-color::blue}
    .loss{background-color::red}

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "<div class = 'logrow ". $row["result"] ."'> <img src ='". $row["url"] ."'</img> <p class = 'logtext'>". $row["name"] ." bet $". $row["amount"] ." with a ".  $row["chance"] ."% chance and ". $row["result"] .". </p> </div>";
    }
  • 0
    Удивительно. никогда не думал об этом. Хороший человек :-)
1

Попробуйте это, изменив имена классов.

<?php 
 $status = $row['result'];
 $classname = 'won';
 if($status == 0){
   $classname = 'fail';
 }
?>
<div class = 'logrow <?php echo $classname ?> '> <img src ='". $row["url"] ."'</img> <p class = 'logtext'>". $row["name"] ." bet $". $row["amount"] ." with a ".  $row["chance"] ."% chance and ". $row["result"] .". </p> </div>";

Теперь определите классы для won и fail под таблицей стилей.

<style type="text/css">
.won{ color: green; }
.fail{ color: red; }
</style>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню