2017-07-29 37 views
0

我對使用Postgress比較新,所以我試圖在不使用PDO語句的情況下得到結果。 我的代碼如下,現在我成功地與數據庫建立了連接,執行時我的網頁沒有任何結果。在進一步的檢查中,我注意到while循環沒有執行我知道這不是我的查詢語句的邏輯錯誤,因爲我在數據庫上運行了相同的查詢並返回值。我的postgress查詢語句的結果沒有值?

我認爲問題是在while循環中,但我無法理解。對數據庫的這個查詢返回了43個結果。

$query = "SELECT * FROM property WHERE latitude BETWEEN " .$lat1 ." AND " .$lat2 ." AND longitude BETWEEN " .$lng1 ." AND " .$lng2; 

     $result = pg_query($db, $query); 
     if (!$result) { 
      echo "Problem with query " . $query . "<br/>"; 
      echo pg_last_error(); 
      exit(); 
     } 



     pg_result_seek($result,0); 
     while($myrow = pg_fetch_assoc($result)) { 
      echo "reached"; 
      printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", $myrow['p_id'], htmlspecialchars($myrow['type']), htmlspecialchars($myrow['latitude']), htmlspecialchars($myrow['longitude'])); 
      printf ("<br>"); 

又再次重申,結果數組不爲空,因爲它不拋出一個錯誤的消息,我覺得這是一個問題只與while語句。

+0

您的來電'pg_query'之前,添加一個'回聲$查詢;'讓我們知道它顯示了什麼。這可能是'lat1> lat2'或'lng1> lng2' ... – joanolo

回答

-1

嘗試增加qoutes(')

所以:

$query = "SELECT * FROM property WHERE latitude BETWEEN '" .$lat1 ."' AND '" .$lat2 ."' AND longitude BETWEEN '" .$lng1 ."' AND '" .$lng2 . "'"; 

讓我們知道,如果它幫助

+0

nope did not工作,並且我沒有引號運行在數據庫上的聲明,但它仍然工作我也嘗試添加括號,也沒有工作。該網頁是完全空白的,也不會迴應到達。 –