热搜:NVER node 开发 php

根据条件循环复框,麻烦各位朋友帮我看一下应该怎样改

2024-09-14 17:45:02
根据条件循环复框,麻烦各位朋友帮我看一下应该怎样改

PHP根据条件循环显示

 <?php $sql = "SELECT `id` , `name`FROM `interior_authority`";$row['authorityid']= "a,b,c,d,e";//这个是值是为了方便查看加上去,原本这个值是从数据库里读取出来的。$authority = explode(",",$row['authorityid']);//$row数组$row[id]值分别为"a,b,c,d,e,f,c",这值也是为了方便查看加上去的,原值是从数据库读取出来的。$sql = mysql_query($sql,$conn); while($row = mysql_fetch_array($sql)){	 foreach($authority as $value){		 if($row['id']==$value){			echo<< $row[name]EOD;		 }	}} ?>

我想要的结果是$row['id']==$value 复选框就打上"√",其它不相等的就直接显示出来!
现在的问题是复选框能上"√",但那些没打上"√"的不会显出来,如果在whiel循环里多加一条
echo<< $row[name]EOD;

那他就会重复显示;
希望能各位朋友帮个忙


回复讨论(解决方案)

foreach($authority as $value){  $checked = $row['id']==$value ? 'checked' : '';  echo<< $row[name]EOD;}

你只让程序显示了相等的情况,没让程序显示不相等的情况

if($row['id']==$value){            echo<< $row[name]EOD;         }else{echo<< $row[name]EOD;}

你只让程序显示了相等的情况,没让程序显示不相等的情况

if($row['id']==$value){            echo<< $row[name]EOD;         }else{echo<< $row[name]EOD;}
这样每遍历一次数组,他就会重复,这个我试过不行

if($id==$value){}else{}
这怎么会重复的。。
就一个条件,要么是要么否。。

if($id==$value){}else{}
这怎么会重复的。。
就一个条件,要么是要么否。。

因为有丙次的盾环在那里: foreach 与WHILE 循环

while 循环一次, foreach 要循环4次因为$authority数组有4个值,在这4个值里面只有一个值是跟$id配置的,如果你在IF里加入ELSE 那他就会同一记录出现重3次IF ELSE里的值

foreach($mysqlResult as $row){	$hasValue = false;	foreach($authority as $value){         if($row['id']==$value){           $hasValue = true;         }    }    if($hasValue){    	echo 'yes';    }else{    	echo 'no';    }  }


暂时只想到这个办法,不知有没有改进版的

问题解决,解决代码如下,谢谢热心的朋友提醒

 <?php $sql = "SELECT `id` , `name`FROM `interior_authority`";$authority = explode(",",$row['authorityid']);$sql = mysql_query($sql,$conn); while($row = mysql_fetch_array($sql)){	 $cc="";	foreach($authority as $value){		 if($row['id']==$value){			 $pd = "true";			$cc = << $row[name]EOD;			break;		 }else{			 $pd = "false";		 }//if end		 $cc=$cc.$cc;	}//foreach end	if($pd == "true"){		echo $cc;	}else{			echo << $row[name]EOD;	}	} ?>

版主的这个方法,不但会重复就连那个选择口也不会出来,不过还是谢谢你的热心