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<<<EOD<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>EOD; } }} ?>
echo<<<EOD<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>EOD;
foreach($authority as $value){ $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<<$row[name]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<<$row[name]EOD;}
どうすればよいですかこれは繰り返されるでしょうか? 。
条件は 1 つだけ、「はい」または「いいえ」のいずれかです。 。
これをどのように繰り返すことができますか。 。
条件は 1 つだけ、「はい」または「いいえ」のいずれかです。 。
そこには C 回のシールドリングがあるため: foreach ループと WHILE ループ
1 回ループする間、foreach は 4 回ループする必要があります。これは、$authority 配列には 4 つの値があり、これら 4 つの値のうち 1 つの値だけが $ で構成されているためです。 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 = <<<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; } } ?>