当我在内部创建三个条件时,只有两个条件是可见的。
<?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不出现?
发布于 2014-06-17 18:11:35
行中的video也是空的,所以第一个检查$v->video==NULL可能是true,并且永远不会到达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 {
}这样做的好处是,如果您希望在将来编辑您的代码,您可以知道您可以在if中使用哪些变量--因为您检查了它们是否已设置!
发布于 2014-06-17 18:10:07
忽略其他基本格式结构或代码中可能出现的其他问题,这一行内容如下
else if ($v->foto=NULL && $v->linkfoto==NULL) { ?>需要第二个=标志。您使用一个等号将NULL分配给$v->foto。
更正应是:
else if ($v->foto == NULL && $v->linkfoto == NULL) { ?>发布于 2014-06-17 18:11:49
如果是在“否则”条件下执行作业,我猜应该是比较,请执行:
$v->foto == NULL而不是:
$v->foto = NULLhttps://stackoverflow.com/questions/24270552
复制相似问题