если переменная в моем цикле while пуста, выведите 0 вместо ничего - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть следующий цикл:

    while($row = mysql_fetch_assoc($result)) {
    <some code>
     if ($user)
                echo '<li><a href="mahjong.php?layout='.$row['LayoutName'].'"><img src="images/layouts/'. $row['LayoutName'].'.png" alt="" /> <img src="images/'. $row['Stars'].'.png" alt="" /></a>
                        <div class="info">
                            <h2>'.$row['LayoutName'].'</h2>
                            <p>'.$row['LayoutTiles'].' Tiles, '.$row['LayoutLayers'].' Layers</p>
                            <hr size=2 color="white"> 
                            <p>Score: '.$row['Score'].'</p> 
                            <p>Time:&nbsp;&nbsp;'.$row['Time'].'</p>
                        </div>
                      </li>';
            else 
    <some more code> 
}

Этот цикл while работает отлично, но иногда некоторые переменные не имеют данных.Это правильно, потому что в базе данных просто ничего нет.Если это произойдет, это ничего не показывает.Я хочу, чтобы, если переменная пуста, она отображала 0.

Пример $row['Score'] = пусто -> 0

Спасибо,

пс, возможночто $row['Time'] имеет значение, а $row['Score'] нет !!

Ответы [ 5 ]

5 голосов
/ 27 декабря 2011

В последних версиях PHP вы можете использовать $row['Score'] ?: 0 и т. Д.

2 голосов
/ 27 декабря 2011

Вы можете сделать что-то вроде этого:

'<p>Score: '.(empty($row['Score'])?"0":$row['Score']).'</p> '

Надеюсь, это поможет!

1 голос
/ 27 декабря 2011

Если вы хотите оставить код как есть, вы можете использовать метод sql coalesce:

select coalesce(score, 0) as score from table

coalesce возвращает первый ненулевой параметр.

0 голосов
/ 27 декабря 2011
if ($row['score']==""){
 echo "0"; 
 }

Используйте это в вашем теге p после оценки

0 голосов
/ 27 декабря 2011

Я бы создал вспомогательную функцию:

function valueOrZero($value) {
    if(!empty($value)) {
        return $value;
    }
    return 0;
}

И использовал бы это в вашем представлении для каждой строки $ ['variable'], например, <p>Score: '.valueOrZero($row['Score']).'</p>.

Изменить: изменена логика.

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