2013-05-01 48 views
0

即時嘗試增加值1使用while循環條件,即時通訊開發測驗生成系統,但卡在這裏,沒有找到任何解決方案,請幫助,並告訴該怎麼辦....堅持代碼的PHP添加while循環條件

<?php 
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'"); 

$i = 1; 
while($rows=mysql_fetch_assoc($ques2)) 
{ 
$i++; 
$qech1=$rows['optiona']; 
$qech2=$rows['optionb']; 
$qech3=$rows['optionc']; 
$qech4=$rows['optiond']; 
$correct=$rows['correct']; 
?> 
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $qech1; ?>'><?php echo $qech1."<br>"; ?><br> 
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $qech2; ?>'><?php echo $qech2."<br>"; ?><br> 
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $qech3; ?>'><?php echo $qech3."<br>"; ?><br> 
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $qech4; ?>'><?php echo $qech4."<br>"; ?><br> 
<?php 
} 

?> 

你看過上面的代碼,它是$ i = 1;然後我在4個無線電領域也回覆$ i。它從數據庫中回收大約3個問題,每個問題有4個值,但所有3個問題的12個值中的所有值都具有相同的名稱,即1,它不是使用$ i ++遞增不知道爲什麼?

這裏出去放

<span style='font-size:18px;font-weight:550px; '>english</span><br><input type='radio' name='1' value='kjk'>kjk<br><br> 
<input type='radio' name='2' value='kjk'>kjk<br><br> 
<input type='radio' name='2' value='jkj'>jkj<br><br> 
<input type='radio' name='2' value='kjk'>kjk<br><br> 
<span style='font-size:18px;font-weight:550px; '>adnan </span><br><input type='radio' name='1' value='jhwjksahajsh'>jhwjksahajsh<br><br> 
<input type='radio' name='2' value='kjhjhjh'>kjhjhjh<br><br> 
<input type='radio' name='2' value='kjhkjjh'>kjhkjjh<br><br> 
<input type='radio' name='2' value='hjkjhj'>hjkjhj<br><br> 
<span style='font-size:18px;font-weight:550px; '>sdfsd</span><br><input type='radio' name='1' value='gfgf'>gfgf<br><br> 
<input type='radio' name='2' value='gfg'>gfg<br><br> 
<input type='radio' name='2' value='gfg'>gfg<br><br> 
<input type='radio' name='2' value='gf'>gf<br><br> 
+1

爲什麼你有兩個花括號$ i ++; }}? – dikirill 2013-05-01 20:21:44

+0

第二個屬於什麼? – 2013-05-01 20:21:53

+1

「while()'循環中的其餘代碼在哪裏?你有一個額外的'}',你的輸出有' ...'但這不在你的代碼中。您可能會將'$ i'重置爲丟失代碼中的某處。 – Sean 2013-05-01 20:24:29

回答

0

它沒有增加的原因是因爲你遞增後立即打電話$i

while ... { 
    $i++ 
    ... 
    ..name="$i"... 
} 

現在,它經過一次循環,下一次他們都將是3等

你需要的是更多的是foreach循環的打印所有名稱爲2。 我爲我的測試目的分配了基本值。我個人會取消分配$quech1 = $rows[optiona]。您可以使用循環來處理$rows的數組。

<?php 
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'"); 

while($rows=mysql_fetch_assoc($ques2)) 
{ 
    $rows['optiona'] = "optiona"; 
    $rows['optionb'] = "optionb"; 
    $rows['optionc'] = "optionc"; 
    $rows['optiond'] = "optiond"; 
    $correct=$rows['correct']; 
} 
$i = 0; 
foreach ($rows as $row){ 
    $i++;?> 
    <input type='radio' name='<?php echo $i; ?>' value='<?php echo $row; ?>'><?php echo $row."<br>"; ?> 
<?php } ?> 

你會從我的考察要素看,你現在越來越遞增名稱: names incrementing

不過,如果我沒有記錯。你不是通常希望所有的名字對於一組單選按鈕都是相同的嗎?你會想要唯一的ID。然後讓所有按鈕以相同的名稱組合在一起。這樣做使得只能選擇該組中的一個按鈕。如果這是你想實現什麼,使用修改後的代碼:

<?php 
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'"); 
$name = 1; 
while($rows=mysql_fetch_assoc($ques2)) 
{ 
    $rows['optiona'] = "optiona"; 
    $rows['optionb'] = "optionb"; 
    $rows['optionc'] = "optionc"; 
    $rows['optiond'] = "optiond"; 
    $name++; 
} 
$i = 0; 
foreach ($rows as $row){ 
    $i++;?> 
    <input type='radio' id='<?php echo $i; ?>' name='<?php echo $name; ?>'value='<?php echo $row; ?>'><?php echo $row."<br>"; ?> 
<?php } ?> 

唯一的變化是$i被分配到id現在。我們還會聲明一個$name計數器。我們將在while循環中增加它,以便每個按鈕選項只會增加一次。然後在該按鈕的name屬性中使用$name

這對我來說很有意義。但沒有更多的信息,我們並不真正知道你想要完成什麼。 :)

+0

雖然這是事實,但這並不能解決他的問題。開始時'$ i'是2,但下一個循環應該是3,然後是4,依此類推。 – 2013-05-01 21:52:47

+0

是的。我們說的是同樣的事情。我在正確的答案中投擲了這個東西。 – EnigmaRM 2013-05-01 21:54:36

+0

問題不是什麼是開始值,問題是,它不會做增量...它卡在兩個........它應該像2然後3然後4 ........ ..... – 2013-05-01 22:02:57

1

您可以使用Heredoc字符串來幫助您解決這個問題。我做了一個簡單的例子,以簡單的方式輸出你想要的東西。看看:

<?php 
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'"); 

$i = 1; 
while($rows=mysql_fetch_assoc($ques2)) 
{ 
$qech1=$rows['optiona']; 
$qech2=$rows['optionb']; 
$qech3=$rows['optionc']; 
$qech4=$rows['optiond']; 
$correct=$rows['correct']; 
echo <<<HTML 
    <input type='radio' name='$i' value='$qech1'>$qech1<br><br> 
    <input type='radio' name='$i' value='$qech2'>$qech2<br><br> 
    <input type='radio' name='$i' value='$qech3'>$qech3<br><br> 
    <input type='radio' name='$i' value='$qech4'>$qech4<br><br> 
HTML; 

$i++; 
} 
+0

不工作的人:( – 2013-05-02 11:55:11

+0

但你不想爲每個while循環的組合單選按鈕? – 2013-05-02 13:15:13

+0

我想組,有多個問題,1個問題有4個選項作爲您在上面的代碼中提到,這很好,但沒有做增量,它堅持所有5到6個問題到1,1,1,1 ...對於下一個問題沒有實際增加到2,2,2,2等... – 2013-05-03 14:01:29