與此混淆的一點。請幫我調試這個代碼
基本上,我有一個表中的列,我想檢索該列中的值,爲特定的行。
我有一套工作的代碼,但不是在這種特殊情況下。
我有工作的代碼是這樣的:
$qry="SELECT * FROM logins WHERE username='$login' AND password='$password'";
$result=mysql_query($qry);
這顯然檢索特定的行,然後:
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID'] = $member['User ID'];
這成功地設置會話變量,從用戶的價值此行的id列。
所以這很好,工作。我想在我的新情況下使用的代碼是這樣的:
$qry = "SELECT * FROM vote WHERE Username = '" .$_SESSION['SESS_USERNAME']. "'";
$result = mysql_query($qry);
這得到基於當前用戶的行,然後:
while($row = mysql_fetch_array($result))
{
Print "<b>Name:</b> ".$row['Username'] . " <br>";
Print "<b>Vote:</b> ".$row['Vote'] . " ";
}
while循環工作正常,則顯示當前用戶名和他們的投票。顯然我覺得循環不是必需的,因爲我已經選擇了一行。去除循環破壞了它,所以我把它放回去了。沒什麼大不了的,如果能夠完成這項工作,我可以接受。
我注重的問題,是利用
$row['Username']
在這個if語句:
if($row['Username'] == "Admin") {
echo ("Win!<br />");
}
else {
echo "Failed!";
}
當從上面的循環打印,其打印:
Name, as Admin,
and vote, as 0.
如果我然後嘗試使用if語句進行驗證,我會要求它回覆Win!如果用戶名==管理員。
顯然這是真的,因爲它已經打印在行前,但是,它總是引起失敗!我不明白爲什麼。
我應該將$ row ['Username']設置爲其他變量嗎?
任何人都可以提供他們的指導嗎?
乾杯
編
將您的同時改爲if。 – pritaeas
你的循環不應該像你所顯示的那樣輸出。請仔細檢查您發佈的代碼 – Raptor
奇怪,它應該可以工作。像@pritaeas所說的,改變一個if和另一個顯示mysql_error()的方法。 – 2011-11-03 15:19:51