Отправить параметр на сервер из приложения Android

#php #android #parameters #send

#php #Android #параметры #Отправить

Вопрос:

У меня есть приложение для Android, которое запрашивает данные из моей базы данных mysql. Это работает нормально, но когда я пытаюсь отправить параметр для определения количества элементов для извлечения, я ничего не получаю.

Это мой 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 ) amp;amp; $counter < $itemsToGet)
{
    $databaseInfo[] = $info;
    $counter  ;
}

print(json_encode($databaseInfo));
  

?>

Комментарии:

1. Вы пытаетесь ввести команды печати в свой php, чтобы увидеть, действительно ли вы подключаетесь? Вы убедились, что это работает другими способами, кроме Android?

2. Если я не отправляю параметры и не перебираю всю базу данных, все работает нормально. Я могу распечатать все данные в logcat. Пока я пробовал это только с Android, да.

Ответ №1:

Я решил это. Условие в цикле while было неверным.

 while($info = mysql_fetch_array( $data ) amp;amp; $counter < $itemsToGet)
  

Это должно быть

 while(($info = mysql_fetch_array( $data )) amp;amp; ($counter < $itemsToGet))