2013-09-25 56 views
0

我想確保在運行while循環之前有結果,但是我嘗試的所有方法都似乎刪除了第一個結果。如何在while循環之前檢查php mysqli_fetch_array是否爲空

$nearbyResult = mysqli_query($con,$sqlNearby); 

if(mysqli_fetch_array($nearbyResult) == 0) { 
    echo '<p>No results found, <a href="/add.php">Add your property here</a>.</p>'; 
} else { 
    while($rowNearby = mysqli_fetch_array($nearbyResult)) { 
    } 
} 
+0

如果你只是有一個循環,你可以獲取結果如果它們沒有被提取的記錄,它將不會進入循環。在循環之前不需要檢查它是否爲空。 – bestprogrammerintheworld

+0

'if(mysqli_num_rows($ con)){/ *如果返回行,則執行代碼* /} else {echo「Nothing to show!」;}' – Steven

回答

2

這條線將你的結果集的第一行,並在bin不幹了:

if(mysqli_fetch_array($nearbyResult) == 0) { 

更改爲:

if(! mysqli_num_rows($nearbyResult)) { 

,並檢查您刻着函數返回:

if(! $nearbyResult = mysqli_query($con,$sqlNearby)) { 
    echo "Mysql error: " . mysqli_error($con); 
} 
+1

可能不應該在某些數據中間頁面回顯正確訪問代碼,但是..檢查您的數據返回... – Zak

0

嘗試爲您的if語句的一部分分配結果給一個變量返回。如果mysqli_fetch_array()沒有結果集,它將返回false。

if($rowNearby = mysqli_fetch_array($nearbyResult)) { 
    //There was a result, work with it here 
    doStuffWith($rowNearby); 
} else { 
    //No records in your result set, handle as desired 
} 
相關問題