2011-10-14 135 views
2

我有一个android应用程序,从我的mysql数据库请求数据。这工作正常,但当我尝试发送一个参数多少项检索我什么也没有得到。从android应用程序发送参数到服务器

这是我的Java代码:

 result = ""; 
     client = new DefaultHttpClient(); 
     post = new HttpPost("http://www.XXX.XXXX.XX/XX.php"); 

     nameValuePairs = new ArrayList<NameValuePair>(); 
     nameValuePairs.add(new BasicNameValuePair("itemsToGet", itemsToGet)); 

     try { 
      post.setEntity((new UrlEncodedFormEntity(nameValuePairs))); 
      response = client.execute(post); 
      entity = response.getEntity(); 
     inputStream = entity.getContent(); 
    } catch (UnsupportedEncodingException e) { 
      Log.e(TAG, e.toString()); 
     } catch (ClientProtocolException e) { 
      Log.e(TAG, e.toString()); 
     } catch (IOException e) { 
      Log.e(TAG, e.toString()); 
     } 

     try { 
      bufferedReader = new BufferedReader(new InputStreamReader(inputStream ,"iso-8859-1"), 8); 
      stringBuilder = new StringBuilder(); 
      String line = null; 

      while((line = bufferedReader.readLine()) != null) { 
       stringBuilder.append(line + "\n"); 
      } 
      inputStream.close(); 

      result = stringBuilder.toString(); 

      } catch (UnsupportedEncodingException e) { 
      Log.e(TAG, e.toString()); 
     } catch (IOException e) { 
      Log.e(TAG, e.toString()); 
     } 

     try { 
      JSONArray jsonArray = new JSONArray(result); 

      for(int i = 0; i < jsonArray.length(); i++) { 
       JSONObject object = jsonArray.getJSONObject(i); 
       Log.i(TAG, object.getString("namn") + " " + i); 
     } 
     } catch (JSONException e) { 
      Log.e(TAG, e.toString()); 
    } 

这是我的服务器端的PHP代码:

<?php 
mysql_connect("XXX.XXX.com", "XXX", "XXX") or die(mysql_error()); 
mysql_select_db("XXXXXXX") or die(mysql_error()); 

$data = mysql_query("SELECT * FROM artikel") or die(mysql_error()); 
$itemsToGet = intval($_POST['itemsToGet']); 
$counter = 0; 

while($info = mysql_fetch_array($data) && $counter < $itemsToGet) 
{ 
    $databaseInfo[] = $info; 
    $counter++; 
} 

print(json_encode($databaseInfo)); 

>

+1

你尝试把你的PHP打印命令,看看你实际上得到连接?您是否通过除Android以外的其他方式验证了此作品? – Jack

+0

如果我不发送参数并遍历整个数据库,它可以正常工作。我可以打印出logcat中的所有数据。到目前为止,我只用过它尝试过,是的。 – plast

回答

0

我解决它? while循环中的条件不正确。

while($info = mysql_fetch_array($data) && $counter < $itemsToGet) 

应该

while(($info = mysql_fetch_array($data)) && ($counter < $itemsToGet)) 
相关问题