我有一組數據庫結果,其中一些列有空字段。我運行此查詢:奇怪的結果使用PHP while循環運行在mysql_fetch_array()
SELECT * FROM `data` WHERE category = '$category' ORDER BY name
多數民衆贊成輸出結果的PHP是這樣的(大大簡化版本):
while ($qValues = mysql_fetch_array($result)) {
if ($qValues["licence"] != "") {
$lice = 'Licence: ' . $qValues["licence"];
}
if ($qValues["publisher"] != "") {
$pub = 'Publisher: ' . $qValues["publisher"];
}
}
發生了什麼事時,上一行是否有出版商,但目前行沒有發佈者(不爲空,空字符串)它正在輸出前一行的數據。
我不知道這是怎麼發生的,因爲在我看來,mysql_fetch_array
有一個網格中的數據,while循環將其內部計數器逐行推進。我不明白如果一行數據可能流入下一行,如果該行包含空字符串。
這裏發生了什麼?
@i_Conica如果我想查看「食物N」物品類別中的所有數據,該怎麼辦? –
邁克B,我不明白你的問題?我的問題是,如果循環的新迭代包含一個新的字符串,如果它包含一個空字符串,它仍然存儲以前的迭代(數據庫行)的數據,則該循環的新迭代只覆蓋前一個循環的數據。 –
@ i-CONICA,如果它有單引號,你會希望避開該類別。 –