2011-02-22 36 views
0

我已經寫了一些PHP代碼是否有返回的結果,將返回一個值,並返回0,如果不返回任何結果。但是,該功能非常繁瑣且難以解析。我想知道是否有更簡潔的方式來重寫我的代碼。提前致謝!清潔PHP SQL查詢的0值時,沒有結果存在

$last_question_sql="SELECT DISTINCT QUESTION_ID 
       FROM branching_survey_responses 
       WHERE QUESTION_ID=(SELECT Max(QUESTION_ID) 
          branching_survey_responses 
          WHERE CUSTOMER_ID=232 
         AND SET_ID=2) 
       AND CUSTOMER_ID=232 
       AND SET_ID=3"; 

     $last_question_result=mysql_query($last_question_sql); 

     if($last_question_status=mysql_fetch_assoc($last_question_result)){ 
      $last_question=$last_question_status['QUESTION_ID']; 
     } 
     else{ 
      $last_question= 0; 
     } 
+2

有什麼難以解析的呢?對我來說看起來很簡單。如果一切正常,只是將其記錄下來(尤其是如果你遇到問題解析它。 – ehudokai 2011-02-22 23:54:29

+0

如果你只需要做出bolean檢查使用COUNT()是比較快,然後選擇 – 2011-02-22 23:58:47

+0

它不只是一張支票,我想確切價值。我只是想看看是否有人有更好的辦法知道。 – Spencer 2011-02-23 00:00:18

回答

0

編輯:

我不知道,但如果你正在使用拿回最後插入項目的代碼,你可以只使用mysql_insert_id()例如:

INSERT查詢已成功後執行您可以檢索最後一個ID喜歡

$last_question = mysql_insert_id(); 

function last_question($cid, $sid1, $sid2) 
{ 
    $question = 0; 
    $result = mysql_query(
    "SELECT DISTINCT QUESTION_ID 
    FROM branching_survey_responses 
    WHERE QUESTION_ID=(SELECT Max(QUESTION_ID) branching_survey_responses 
    WHERE CUSTOMER_ID={$cid} 
    AND SET_ID={$sid1}) 
    AND CUSTOMER_ID={$cid} 
    AND SET_ID={$sid2}"); 
    if ($status = mysql_fetch_assoc($result)) { 
    $question = $status['QUESTION_ID']; 
    } 
    return $question; 
}