2012-04-04 59 views
0

試圖讓我的PHP腳本返回一些SQL表查詢。這裏是我的腳本,因爲它代表現在:我的PHP正在返回錯誤信息?

<?php 

define("DB_HOST", "localhost"); 
define("DB_USER", "*"); 
define("DB_PASSWORD", "*"); 
define("DB_DATABASE", "*"); 

mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
mysql_select_db(DB_DATABASE); 


if (isset($_POST['tag']) && $_POST['tag'] != '') { 
    $tag = $_POST['tag']; 
    echo $tag; 
if ($tag == 'question') { 
    $category = $_POST['category']; 
    $response=mysql_query("select * from QUESTIONS where CATEGORY like '$category'"); 
    return $category; //just doing this, rather than $response to see if it works 
} 
} 
?> 

這裏還有一個與此相關的Android的代碼:

public JSONObject getQuestionsJSONFromUrl(String url, List<NameValuePair> params) { 

    // Making HTTP request 
try { 
     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 
     httpPost.setEntity(new UrlEncodedFormEntity(params)); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent(); 

    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      Log.v("while", line); 
      sb.append(line + "\n"); 
      //Log.v("err", line); 
     } 
     is.close(); 

以及調用getQuestionsJSON方法...:

private static String question_tag = "question"; 
public JSONObject getQuestions(String category) { 
    List<NameValuePair> params = new ArrayList<NameValuePair>(); 
    params.add(new BasicNameValuePair("tag", question_tag)); 
    params.add(new BasicNameValuePair("category", category)); 
    //JSONObject json; 
    JSONObject questionsList = jsonParser.getQuestionsJSONFromUrl(questionURL, params); 
    //return json 
    return null; 
} 

這裏是Log.v()的LogCat,我在getQuestionsJSON ...()方法中有:

04-04 20:41:58.721: V/while(933): question 

所以我真的不明白爲什麼這是返回'問題',而不是我運行getQuestions()時傳遞的字符串?

+0

回聲$標籤;回覆你的'問題' – marcinj 2012-04-04 21:01:17

回答

2

在PHP文件,你有

echo $tag; 

而且它是響應請求。

這應返回MySQL的響應:

if (isset($_POST['tag']) && $_POST['tag'] != '') { 
    $tag = $_POST['tag']; 
    if ($tag == 'question') { 
     $category = $_POST['category']; 
     $response=mysql_query("select * from QUESTIONS where CATEGORY like '$category'"); 

     $rows = array(); 
     while($r = mysql_fetch_assoc($response)) { 
      $rows[] = $r; 
     } 
     print json_encode($rows); 
    } 
} 
+0

這有幫助,但它沒有解決它。現在日誌返回; 04-04 21:11:32.791:V/while(1188):資源ID#2。 以下是簡單查詢中的輸出結果:{「category」:「elections」,「id」:「0」,「title」:「11月份總統選舉中誰會投票?」,「發佈」 : 「2012-04-02」, 「結束日期」: 「2012-04-30」, 「的responseType」: 「0」} { 「類別」: 「選舉」, 「ID」: 「2」, 「標題」: 「問題標題,女士和男士」,「已發佈」:「2012-04-02」,「enddate」:「2012-04-30」,「responsetype」:「1」} – Davek804 2012-04-04 21:14:12

+0

我已更新我的答案。響應現在在JSON中。 – 2012-04-04 21:26:27

+0

謝謝Jaroslaw!這將被標記爲正確的,我將很快發佈另一篇文章。如果你願意多出一點手,我相信你會得到另一個正確的迴應代表增益:)我會在發佈時將它鏈接到這裏。 – Davek804 2012-04-04 21:30:23