我有一個while循環遍歷從數據庫查詢返回的行。當字段爲空時PHP返回無行
查詢
$sql = "SELECT t.barcode AS barcode, t.code, t.brand, t.name, t.cost, t.price, t.vat, SUM(n.stock) AS stock
FROM t
INNER JOIN c.am ON t.code=am.code
INNER JOIN n ON t.code=n.code WHERE (n.name='X' OR n.name='Y')
AND t.code IN ($in)
GROUP BY t.code, t.name, t.cost, t.salesprice, t.vat";
$result = $mysqli->query($sql);
echo "<table id='maintable'><tr><th>Barcode</th><th>Name</th><th>Brand</th></tr>";
while($row = $result->fetch_array()) {
if(empty($row['barcode'])){
$barcode = "none";
}
$barcode = $row['barcode'];
$name = $row['name'];
$brand = $row['brand'];
echo "<td>" . $barcode . "</td>";
echo "<td>" . $name . "</td>";
echo "<td>" . $brand . "</td>";
}
echo "</table>";
的問題是,如果條碼是空的(而不是在數據庫表),得到顯示任何行。但是,如果有條形碼,則顯示該行。在我的示例中,我試圖檢查$ row ['barcode']是否爲空來分配一個字符串,以便該行仍然顯示,但不成功。
在表本身在數據庫中,條形碼具有空字段設置爲YES和默認字段設置爲NULL,所以我也嘗試:
if(is_null($row['barcode'])) { ..... };
但不成功。
某處,我讀了空可以等同於:「」,0和NULL,所以我想這是失敗,因爲檢查是否「空」是錯誤的做法? 任何幫助表示讚賞。
你正在執行的實際查詢是什麼? –
向我們展示完整的代碼片段與mysql查詢字符串請 – Alex