当我在里面创建三个条件时,但只有两个可见。
<?php
$ga= mysql_query("Select * from galeri");
while ($v=mysql_fetch_object($ga)) {
if ($v->video==NULL){ ?>
<a href="images/galeri/<?php echo $v->foto?>" data-caption="<?php echo $v->judul?> - <?php echo tgl($v->tgl) ?>" data-fit="cover" data-thumb = "images/galeri/<?php echo $v->foto?>"></a>
<?php }
else if ($v->foto==NULL AND $v->linkfoto==NULL) { ?>
<a href="<?php echo $v->video ?>" data-fit="cover" data-caption="<?php echo $v->judul?> - <?php echo tgl($v->tgl) ?>" ><?php echo $v->judul?> - <?php echo tgl($v->tgl) ?></a>
<?php } else { ?>
<img src="<?php echo $v->linkfoto?>" data-caption="<?php echo $v->judul?> - <?php echo tgl($v->tgl) ?>" data-fit="cover" data-thumb = "<?php echo $v->linkfoto?>">
<?php } }?>
您可以在上图中看到“linkfoto”字段包含1
为什么条件三else
没有出现?
答案 0 :(得分:3)
忽略其他基本格式结构或代码的其他潜在问题,即
行else if ($v->foto=NULL && $v->linkfoto==NULL) { ?>
需要第二个=
标志。您使用单个等号将NULL
分配给$v->foto
。
更正应该是:
else if ($v->foto == NULL && $v->linkfoto == NULL) { ?>
答案 1 :(得分:2)
行[{1}}也是空的,因此第一次检查video
可能是真的,永远不会达到$v->video==NULL
。
要解决此问题,我建议使用else
检查是否在您要使用的变量上设置了值 - 不检查是否未设置所有其他变量。
if
这样做的好处是,如果您希望将来编辑代码,您知道可以在if ($v->foto != NULL) {
printf('<a href="images/galeri/%s" data-caption="%s - %s" data-fit="cover" data-thumb = "images/galeri/%s"></a>',
$v->foto, $v->judul, tgl($v->tgl), $v->foto);
} elseif ($v->video != NULL) {
//etc
} else {
}
中使用哪些变量 - 因为您检查了它们已被设置!
答案 2 :(得分:0)
你正在做else分配条件,我猜它应该是一个比较,做:
$v->foto == NULL
而不是:
$v->foto = NULL