我的问题是,
我正在尝试遍历我的代码如果它找到'weekdag'正确的记录。我想我的代码卡住了,因为它在我的if语句中,但我确实需要它。解决办法是什么?
<?php
$i = 0;
while ($i <= 6) {
$weekdag = mysql_result($result, $i, "weekdag");
if ($i == 1) {
if ($weekdag == "1") {
echo "<td><input name='weekdag1' value='1' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag10' type='hidden' value='1'></td>";
$i++;
} else {
echo "<td><input type='checkbox' name='addweek' value='1' onChange='this.form.submit()'></td>";
}
if ($weekdag == "2") {
echo "<td><input name='weekdag2' value='2' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag20' type='hidden' value='2'></td>";
$i++;
} else {
echo "<td><input type='checkbox' name='addweek' value='2' onChange='this.form.submit()'></td>";
}
if ($weekdag == "3") {
echo "<td><input name='weekdag3' value='3' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag30' type='hidden' value='3'></td>";
$i++;
} else {
echo "<td><input type='checkbox' name='addweek' value='3' onChange='this.form.submit()'></td>";
}
if ($weekdag == "4") {
echo "<td><input name='weekdag4' value='4' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag40' type='hidden' value='4'></td>";
$i++;
} else {
echo "<td><input type='checkbox' name='addweek' value='4' onChange='this.form.submit()'></td>";
}
if ($weekdag == "5") {
echo "<td><input name='weekdag5' value='5' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag50' type='hidden' value='5'></td>";
$i++;
} else {
echo "<td><input type='checkbox' name='addweek' value='5' onChange='this.form.submit()'></td>";
}
if ($weekdag == "6") {
echo "<td><input name='weekdag6' value='6' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag60' type='hidden' value='6'></td>";
$i++;
} else {
echo "<td><input type='checkbox' name='addweek' value='6' onChange='this.form.submit()'></td>";
}
if ($weekdag == "7") {
echo "<td><input name='weekdag7' value='7' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag70' type='hidden' value='7'></td>";
$i++;
} else {
echo "<td><input type='checkbox' name='addweek' value='7' onChange='this.form.submit()'></td>";
}
}
}
答案 0 :(得分:2)
在第一个循环中,
$i = 0
并且它不会增加,因为if语句仅适用于$i=1
。
所以这是一个无限循环。
也许你需要:
if ($i == 1) {
//...
}
else
{
$i++;
}
答案 1 :(得分:0)
我在这看到两个挑战;
这就是我所做的
$i = 0;
while($i <= 6) {
$weekdag = mysql_result($result, $i, "weekdag");
$weekdag10 = $i * 10;
if($i == 1) {
if($weekdag == $i) {
echo "<td><input name='weekdag". $i ."' value='". $i ."' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag". $weekdag10 ."' type='hidden' value='". $i ."'></td>";
$i++;
} else {
echo "<td><input type='checkbox' name='addweek' value='". $i ."' onChange='this.form.submit()'></td>";
}
}
}
还没到那里。如果我很生气,我很抱歉。我会尝试进一步解释。我试图找到一个命中,例如我的$ i = 1.我想看看这个$ i = 1,其中有一些&#39; weekdag&#39;是隐藏的。例如,数字是3.所以我会找到它。如果weekdag = 1 {} else {},如果weekdag = 2 {} else {},如果weekdag = 3(是,它现在是循环!!!){} else {}。为什么我希望代码执行此操作,如果它找到了一个命中我不希望其余的在这种情况下为weekdag = 4,weekdag = 5,weekdag = 6,weekdag = 7将被执行
那么也许是这样的事情;
$weekdag = mysql_result($result, $i, "weekdag");
//A list of all available $weekdags
$arrWeekdags = array(1,2,3,4,5,6);
if( in_array($weekdag, $arrWeekdags) ) {
//We have found a match!
echo "<td><input name='weekdag". $weekdag ."' value='". $weekdag ."' type='checkbox' onChange='this.form.submit()' checked><input name='weekdag". ($weekdag * 10) ."' type='hidden' value='". $weekdag ."'></td>";
//Remove it from the list of available weekdags
unset($arrWeekdags[$weekdag]);
}
foreach($arrWeekdags as $intWeekdag) {
echo "<td><input type='checkbox' name='addweek' value='". $intWeekdag ."' onChange='this.form.submit()'></td>";
}
答案 2 :(得分:0)
你永远不会增加i
的值,所以它永远停留在0.尝试在循环的最后添加$i++;
:
if ($i == 1) {
//...
}
$i++;
并从条件语句中删除所有$i++;
。
答案 3 :(得分:0)
在结束之前增加$ i,每次都必须增加。
while ($i <= 6) {
if ($i == 1) {
....
}
$i++;
}