<?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<<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>
EOD;
}
}
}
?>我想要的结果是$row['id']==$value 复选框就打上"√",其它不相等的就直接显示出来!
现在的问题是复选框能上"√",但那些没打上"√"的不会显出来,如果在whiel循环里多加一条echo<<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>
EOD;那他就会重复显示;
希望能各位朋友帮个忙PHP根据条件循环显示
$checked = $row['id']==$value ? 'checked' : '';
echo<<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" $checked/> $row[name]</label>
EOD;
}
if($row['id']==$value){
echo<<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>
EOD;
}else{
echo<<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" /> $row[name]</label>
EOD;
}
这怎么会重复的。。
就一个条件,要么是要么否。。
因为有丙次的盾环在那里: foreach 与WHILE 循环while 循环一次, foreach 要循环4次因为$authority数组有4个值,在这4个值里面只有一个值是跟$id配置的,如果你在IF里加入ELSE 那他就会同一记录出现重3次IF ELSE里的值
$hasValue = false;
foreach($authority as $value){
if($row['id']==$value){
$hasValue = true;
}
}
if($hasValue){
echo 'yes';
}else{
echo 'no';
}
}暂时只想到这个办法,不知有没有改进版的
$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 = <<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>
EOD;
break;
}else{
$pd = "false";
}//if end
$cc=$cc.$cc; }//foreach end
if($pd == "true"){
echo $cc; }else{
echo <<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" /> $row[name]</label>
EOD;
}
}
?>