Php 其他

Php 其他,php,Php,在下面的代码中,我想在天空晴朗时绘制image sun.png,在天空多云时绘制cloud,在其他情况下绘制variable…但是有些东西失败了…我总是得到image variable.png <?php if($sky == "clear" ) { echo '<img src="images/sun.png" width="40">'; } elseif ($sky == "cloudy" ){ echo '<img src="images/cloud

在下面的代码中,我想在天空晴朗时绘制image sun.png,在天空多云时绘制cloud,在其他情况下绘制variable…但是有些东西失败了…我总是得到image variable.png

<?php 
if($sky == "clear" ) {
  echo '<img src="images/sun.png" width="40">';
} 
elseif ($sky == "cloudy" ){
    echo '<img src="images/cloud.png" width="40">';
} 
else {
  echo '<img src="images/variable.png" width="40">';
}
?>
最后我解决了它,我的代码有一个错误,正确的代码是

  <?php 
if($data['sky']  == "clear" ) {
  echo '<img src="images/sun.png" width="40">';
} 
elseif ($data['sky'] == "cloudy" ){
    echo '<img src="images/cloud.png" width="40">';
} 
else {
  echo '<img src="images/variable.png" width="40">';
}
?>

使用switch语句可能会更清晰,然后您可以获得未满足条件的全部信息,并使用它来调试您的问题:

switch($sky){
    case 'clear':
        echo '<img src="images/sun.png" width="40">';
        break;
    case 'cloudy':
        echo '<img src="images/cloud.png" width="40">';
        break;
    default:
         echo '$sky is something unknown';
         var_dump($sky);
         break;

} 
开关($sky){
案例“明确”:
回声';
打破
“多云”情况:
回声';
打破
违约:
回声“$天空是未知的东西”;
var_dump($天空);
打破
} 

你的问题在变幻莫测的天空中。我下载了一些图片,并通过更改变量的值来用这段代码对其进行测试,结果一切正常

$sky = "cloudy";

if($sky == "clear" ) 
{
echo '<img src="sun.jpg" width="40">';
} 
elseif ($sky == "cloudy" ) 
{
echo '<img src="cloud.jpg" width="40">';
} 
else 
{
echo '<img src="variable.png" width="40">';
}
$sky=“多云”;
如果($sky==“clear”)
{
回声';
} 
elseif($sky==“多云”)
{
回声';
} 
其他的
{
回声';
}
请告诉我你从哪里得到天空值的代码


您的
$sky
变量包含什么?如果总是得到
else
块,则您的条件总是
false
$sky
包含什么?不是你认为它包含什么,而是它包含什么在你的if语句之前,你会看到它工作,所以你的
$sky
变量可能是空的$sky不是空的,有时是清晰的,有时是模糊的,但我总是得到image variable.png。我通过mysql获得$sky,这个变量在数据库中。你能用query发布你的整个代码吗?我使用这个代码@Jack Goodman$data\u query=mysqli\u query($conexionbd,'select*from
weather
where
data
=“2017-03-22”和(
num
=“1”或
num
=“2”)查询数据库或
num
=“3”);while($data=mysqli\u fetch\u assoc($data\u query)){?>在代码中的变量$sky进入第一个if语句之前,请您呼出它,让我知道它说了什么?感谢@Jack Goodman的帮助,最后我发现了代码中显示的错误乐于帮助:)
$sky = "cloudy";

if($sky == "clear" ) 
{
echo '<img src="sun.jpg" width="40">';
} 
elseif ($sky == "cloudy" ) 
{
echo '<img src="cloud.jpg" width="40">';
} 
else 
{
echo '<img src="variable.png" width="40">';
}