2013-03-07 74 views
0
<!DOCTYPE html> 
<html> 
<head> 
<title>Talenquiz2</title> 
</head> 
<body> 


<?php 

if (isset($_GET["controleer"])) 
    { 
    $vraag = $_GET["vraag"]; 
    $juistantwoord = $_GET["juistantwoord"]; 
    $foutantwoord1 = $_GET["foutantwoord1"]; 
    $foutantwoord2 = $_GET["foutantwoord2"]; 
    $con = mysql_connect("localhost","root",""); 
    mysql_select_db("dbproject", $con); 
    $result = mysql_query("SELECT * FROM tblquizvragen"); 
    while($row = mysql_fetch_array($result)) 
    { 
    if ($row['vraag'] == $vraag) 
    { 
    if ($row['juistantwoord'] == $juistantwoord) 
    { 
    echo "Juist!<br />"; 
    } 
    else 
     { 
     echo "Fout!<br />"; 
     } 
    } 
    } 
    mysql_close($con); 
    echo "\n<hr />\n"; 
    } 

$aantalvragen=1; 
$con = mysql_connect("localhost","root",""); 
mysql_select_db("dbproject", $con); 
$result = mysql_query("SELECT * FROM tblquizvragen WHERE id='". $aantalvragen . "';"); 
$row = mysql_fetch_array($result); 

該程序是一個測驗,它會詢問3個chckbox的5個問題1是corect和2是不正確的。複選框和文本不想顯示值

for ($aantalvragen=1; $aantalvragen<=5; $aantalvragen++) 
{ 
$row = mysql_fetch_array($result); 
} 

她,我林

$vraag = $row['vraag']; 
$juistantwoord = $row['juistantwoord']; 
$foutantwoord1 = $row['foutantwoord1']; 
$foutantwoord2 = $row['foutantwoord2']; 


mysql_close($con); 
?> 




<form> 

它doensn't顯示在瀏覽器中的行的值,僅顯示一個開放的文本和開放的複選框。

<input type="text" name="vraag" value="<?php echo $vraag; ?>" /><br /> 
<input type="checkbox" name="juistantwoord" value="<?php echo $juistantwoord; ?>" /><br  /> 
<input type="checkbox" name="foutantwoord1" value="<?php echo $foutantwoord1; ?>" /><br /> 
<input type="checkbox" name="foutantwoord2" value="<?php echo $foutantwoord2; ?>" /><br /> 

<input type="submit" value="Controleer je antwoord" name="controleer" /> 
</form> 
</body> 
</html> 
+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-03-07 19:42:20

回答

1

你的代碼是不正確的從數據庫中

for(...) { 
    $row = mysql_fetch_array(...); 
} 

您只需循環超過5行結果的獲取,不論有多少可能,並指定該行數組$行..但是對於每一行都沒有使用它們。所以你最終搗毀第一個n-1行,並退出循環,只保存行n

如果您錯誤預計了多少行數據,則您的5項循環可能只有4項結果集要處理,最後一行$row1值將爲布爾FALSE msyql_fetch在沒有更多數據時返回。

嘗試這樣代替:

while($row = mysql_fetch_assoc($result)) { 
    echo ..... your stuff here ... 
} 

更爲可靠,不依賴於有是可行的已知數量,並不會輸出任何東西,如果沒有數據的。