我在php mysql中有一个简单的挑战。我是php的新手,并试图编写一些代码。
以下是我的代码:
$checked1 = $row['rmc_induction_softskill'];
$checked2= $row['rmc_induction_neo'];
$checked3 = $row['rmc_induction_itil'];
$checked4 = $row['rmc_induction_hr_induction'];
$checked5 = $row['rmc_induction_vmware'];
$checked6 = $row['rmc_induction_lss'];
我希望运行一个循环并以一对一的方式运行单个html行,其中包含上述所有变量名称。例如,我想要$ checked1 == 1,$ checked2 == 1.我尝试过以下代码,但每次循环都无法获得$ checked1
for ($i=1; $i<=33; $i++){
$checked = checked{$i};
echo $checked;
<td align="center" bgcolor="#E6E6FA"> <input type="checkbox" id="<?php echo $i.$rows['emp_id']; ?>" name="Emails[]" value="<?php echo $i.";".$concatenated_string; ?>" <?php if ($checked == 1) echo "checked" ; ?> onclick="check(<?php echo $i.$rows['emp_id']; ?>);" /></td>
答案 0 :(得分:2)
您可以只使用var的名称分配变量:
$check0 = 1;
$check1 = 0;
$check2 = 1;
$check3 = 1;
for($i = 0; $i < 4; $i++) {
$var = "check$i";
echo ($$var == 1 ? 'true' : 'false') . '<br />';
}
我希望这是你要做的。
答案 1 :(得分:0)
我很难理解你正在尝试做什么,但这里有一个关于你可以做什么的通用建议......
$checked[1] = $row['rmc_induction_softskill']
$checked[2] = $row['rmc_induction_neo']
....etc
for ($i=0;$i<sizeof($checked);$i++) {
echo $checked[$i];
}
不知道这是否是您正在寻找的,所以如果您需要更具体的内容并添加一些额外信息,请告诉我,以便我知道您想要做的更好。
答案 2 :(得分:0)
您无法使用选中{$ i}来模拟checked1或checked2或... 你要做的是将所有内容放入具有键值的数组中 配对,然后根据列表的索引恢复它们。我相信你的 MySQL读取返回一个键值对数组,以便您可以遍历它, 但是如果要选择特定字段,则可以创建数组 在PHP中并推送其中的项目。让我举个例子:
// insert into the checked array. Insert all those fields/rows that you want
$checked = array($row['rmc_induction_softskill'], $row['rmc_induction_neo'], $row['rmc_induction_itil']);
for ($i=1; $i<=count($checked); $i++){
$checkedTemp = checked[$i];
echo $checkedTemp;
<td align="center" bgcolor="#E6E6FA"> <input type="checkbox" id="<?php echo $i.$rows['emp_id']; ?>" name="Emails[]" value="<?php echo $i.";".$concatenated_string; ?>" <?php if ($checkedTemp == 1) echo "checked" ; ?> onclick="check(<?php echo $i.$rows['emp_id']; ?>);" /></td>
这是一种做法。根据您插入数组的顺序,您也可以将其删除。
答案 3 :(得分:0)
这是我能想到的最接近的
<?php
$rows['emp_id'] = 333;
$concatenated_string = "hello";
$checked1 = 1;// $row['rmc_induction_softskill'];
$checked2= 1;//$row['rmc_induction_neo'];
$checked3 = 0;//$row['rmc_induction_itil'];
$checked4 = 1;//$row['rmc_induction_hr_induction'];
$checked5 = 0;//$row['rmc_induction_vmware'];
$checked6 = 0;//$row['rmc_induction_lss'];
for ($i=1; $i<=6; $i++)
{
$checked = ${'checked'.$i};
echo $checked;
echo '
<td align="center" bgcolor="#E6E6FA">
<input type="checkbox" id="'.$i.$rows['emp_id'].'" name="Emails[]" value="'.$i.';'.$concatenated_string.'" '.($checked == 1)?'checked':''.' onclick="check('.$i.$rows['emp_id'].');" />
</td>';
}
?>
答案 4 :(得分:0)
以下是我的问题的答案。亚历克斯的帮助:
将数据库中的变量或数据放入数组中。如下所示。
$checked = array($row['rmc_induction_softskill'], $row['rmc_induction_neo'], $row['rmc_induction_itil']);
将循环放在创建的数组上,使用数组计数来获取总数。
for ($i=0; $i<=count($checked); $i++){
$checkedTemp = $checked[$i];
echo $checkedTemp;