2013-07-23 30 views
0

我使用此PHP代碼從我的數據庫中獲取價值。mysql查詢返回null時不應該[求助]

我的問題是,我得到空結果。

我檢查!empty($ result)和mysql_num_rows($ result),但仍然得到空結果。

我測試了的確切我在我的代碼中使用的同樣的查詢我的phpmyadmin和它的工作。

來自$response["SQL"]的迴音是「很好」的。

這是我的PHP代碼:

編輯

我加入這行來解決它:

$row = mysql_fetch_array($result); 

$result = mysql_query("SELECT * FROM workouts_wall WHERE workout_name = 'WO13' AND user = 'tomer2'") or die (mysql_error()); 


     // mysql inserting a new row 
     if (!empty($result)) 
     { 
      if (mysql_num_rows($result) > 0) 
      { 
       $response["SQL"] = "good"; 
      } 
      else 
      { 
        $response["SQL"] = "bad"; 
      } 
     } 

     else  
     { 
      $response["SQL"] = "bad"; 
     } 


     $response["is null?"] = $result; 
      // echoing JSON response 
      echo json_encode($response); 
+0

你檢查是否有錯誤? 'mysql_error()'可能會解決您的問題。 –

+0

mysql_error()不顯示任何錯誤。 – dasdasd

+0

哈,是的,我剛剛看到了'或死'的結尾...... –

回答

1

你不能只返回mysql_query結果。您必須獲取數據。

$data = array(); 
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    $data[] = $row; 

echo(json_encode($data)); 

//EDIT: Also a good idea when you are done... 
mysql_free_result($result); 
+0

當我嘗試從我的結果中獲取值時,我得到空值。 如果我做'$ result [「workout_name」]'並且回顯它,我得到空值 – dasdasd

+0

你不能做'$ result [「workout_name」]',你需要首先從你的數據中取出行,然後執行如'echo $ row [「workout_name」]' –

+0

我試過'$ row = mysql_fetch_array($ result))$ response [「check」] = $ row [「workout_name」];'我仍然爲空 – dasdasd

0

嘗試。希望它的工作:

$result = mysql_query("SELECT * FROM workouts_wall WHERE workout_name = 'WO13' AND user = 'tomer2'") or die (mysql_error()); 


    // mysql inserting a new row 
    if (!empty(mysql_fetch_array($result))) 
    { 
     if (mysql_num_rows(($result) > 0) 
     { 
      $response["SQL"] = "good"; 
     } 
     else 
     { 
       $response["SQL"] = "bad"; 
     } 
    } 

    else  
    { 
     $response["SQL"] = "bad"; 
    } 


    $response["is null?"] = $result; 
     // echoing JSON response 
     echo json_encode($response); 
0

它沒有行MySQL的結果是空。這是一個標準的mysql結果句柄,它實際上不包含任何行。這不是一個錯誤,它不是一個空字符串,它不是一個空數組......它是一個標準結果句柄,就像任何其他結果句柄一樣。

你的代碼應該是

$result = mysql_query($sql) or die(mysql_error()); // catch the REAL errors 
if (mysql_num_rows($result) == 0) { 
    ... result set is empty 
} 
+0

我試過了。我得到了虛假的'if(count($ result)== 0)' – dasdasd

+0

對不起,我的腦海裏。應該是mysql_num_rows,不算。 –