Если, еще заявления в PHP - PullRequest
1 голос
/ 24 мая 2011

Проблема с написанием оператора if-else для спортивного сайта. Ключ должен отображать $game как W, L или Tie в зависимости от оценок, которые анализируются из таблицы MySQL из переменной с именем $row["result"]. Тип столбца в таблице - VARCHAR, а формат сохраняемых данных - $row["result"] = "A:B", где A - результат домашней команды, а B - результат соперника. Я сталкиваюсь с проблемой, когда пишу оператор if, я могу только правильно отобразить Wins (W) и Ties (Tie)!

Например, код:

<?php
$wl = $row["result"];
if ($wl[1] > $wl[3]) {
  $game = "W";
}
if ($wl[1] < $wl[3]) {
  $game = "L";
}
if ($wl[1] == $wl[3]) {
  $game = "Tie";
}
?>

$game будет выводиться правильно, когда $wl= A>B и A==B, но не A<B. У меня такое ощущение, что это как-то связано с тем, что PHP интерпретирует данные из $wl как не числа, а какой-то другой формат ...

Ответы [ 3 ]

4 голосов
/ 24 мая 2011

Попробуйте использовать «else if» вместо «if» в двух последних условиях «if».Также вы взорвали () 'результат?

$wl = explode(':', $row['result']);
$wl[0] = Score for team A
$wl[1] = Score for team B
1 голос
/ 24 мая 2011

Или здесь, если хотите загадочным образом

 $wl = explode(":",$row["result"]);
 $game = ($wl[0]>$wl[1])?"W":(($wl[0]<$wl[1])?"L":"TIE");
1 голос
/ 24 мая 2011

Я бы также рекомендовал использовать explode (), но для того, что вы используете, я думаю, вы должны ссылаться на $ wl [0] и $ wl [2], так как массив $ wl начинается с нулевого индекса.

...