2016-05-22 41 views
-2
include("connect.php"); 

$SQL="SELECT * FROM promo "; 
$run=mysql_query($SQL,$con) or die ("SQL error"); 
$rec=mysql_fetch_array($run); 

首先,我想檢查這個查詢是否給出了空記錄。 如果它不輸出任何記錄,應打印「表中沒有記錄」 否則使用while循環打印所有記錄。 我可以使用while循環顯示記錄。困難的是檢查輸出是否爲空。檢查提取數組的空洞

請幫我做到這一點。謝謝

echo "<table border='1' align='center' >"; 
    echo "<tr> <th> Room ID </th> <th> Start Date </th> <th> End Date </th> <th> Promo Rate </th> </TR>"; 

    $run=mysql_query($SQL2,$con) or die ("SQL2 error"); 
    while($rec2=mysql_fetch_array($run)) 
     { 
     echo "<tr>"; 
     echo "<td>".$rec2['roomid']."</td>"; 
     echo "<td>".$rec2['startdate']."</td>"; 
     echo "<td>".$rec2['enddate']."</td>"; 
     echo "<td>".$rec2['rate']."</td>"; 
     echo "</tr>"; 
     } 

echo "</table>"; 
+0

所以運行'如果(空())'在while循環。 N.B .: NULL!=空應該有NULL值。或運行一個num_rows並檢查。或者數()很多方法來做到這一點。 –

+1

如果沒有行'mysql_fetch_array'返回'false'。 –

+0

請不要使用[mysql_'數據庫擴展名](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php),它不推薦使用 (永遠不會使用在PHP7中) 特別是,如果你只是學習PHP,花費你的精力學習'PDO'數據庫擴展。 [從這裏開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

回答

2

儘管您使用的是過時的API,它是過時和PHP7甚至去除,解決的辦法是檢查查詢返回的行數與mysql_num_rows

$SQL="SELECT * FROM promo "; 
$run = mysql_query($SQL,$con) or die ("SQL error"); 
if (0 < mysql_num_rows($run)) { 
    while($rec2=mysql_fetch_array($run)) 
     // echo your rows 
    } 
} else { 
    echo 'No rows found.'; 
} 

但最終 - 考慮轉向更新的API - mysqliPDO

+0

謝謝。有用... –

0

我會做這樣的說法:

$i=0; 
while($rec=mysql_fetch_array($run)) { 
    // print record 
    ++$i; 
} 
if($i==0) { 
    echo "no results"; 
}