这可能是介于PHP和SQL之间的东西之一。
基本上,我有一个页面,根据记录的人显示一些更新字段,例如:
<?php if ($row_Users['UserID']=="101"){ ?>
<input <?php if (!(strcmp($row_lodges['101_finalist'],"Yes"))) {echo "checked="checked"";} ?> type="checkbox" name="101_finalist" value="Yes"/>
<input type="text" class="rankfield" name="101_rank" value="<?php echo($row_lodges['101_rank']); ?>" />
<?php } ?>
<?php if ($row_Users['UserID']=="102"){ ?>
<input <?php if (!(strcmp($row_lodges['102_finalist'],"Yes"))) {echo "checked="checked"";} ?> type="checkbox" name="102_finalist" value="Yes"/>
<input type="text" class="rankfield" name="102_rank" value="<?php echo($row_lodges['102_rank']); ?>" />
<?php } ?>
我遇到的问题是,如果User101登录并更新字段101_finalist和101_rank,它会用一个空字符串覆盖102_finalist和102_rank。
是否可以防止每个用户看到其他用户的其他字段,并防止这些其他用户的现有值不被覆盖?
希望这是有道理的!
谢谢。
您会想要做这样的事情。这基本上就是@taco所说的:
<?php
// Set's the default user logged in
$_def = ($row_Users['UserID'] == "101")? '101': '102'; ?>
<input <?php if (!(strcmp($row_lodges[$_def.'_finalist'],"Yes"))) { ?>checked="checked"<?php } ?> type="checkbox" name="<?php echo $_def; ?>_finalist" value="Yes"/>
<input type="text" class="rankfield" name="<?php echo $_def; ?>_rank" value="<?php echo ($_def == '101')? $row_lodges['101_rank']:$row_lodges['JA_rank']; ?>" />
您可以执行类似的操作
<?php
$userid = $row_Users['UserID'];
$finalist = $userid."_finalist";
$rank = $userid."_rank";
?>
<input <?php if (!(strcmp($row_lodges[$finalist],"Yes"))) {echo "checked="checked"";} ?> type="checkbox" name="101_finalist" value="Yes"/>
<input type="text" class="rankfield" name="101_rank" value="<?php echo($row_lodges[$rank]); ?>" />