У меня есть PHP-код, который подключается к MySql и кодирует данные в JSON. Позже я буду фильтровать его и получить конкретный объект JSON. Он работал нормально, когда я использовал один объект NameValuePair, но теперь я хочу использовать переменные, такие как имя пользователя и пароль. Теперь я получаю это предупреждение в logcat Ошибка анализа данных .org.json.JSONException: Значение null типа org.json.JSONObject $ 1 не может быть преобразовано в JSONArray.Android NameValuePair send values
Как изменить код, который может работать правильно?
$q=mysql_query("SELECT username, firstname, lastname, email, phone1, skype, city, description FROM mdl_user WHERE username LIKE '$username' AND password LIKE '$password'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
код, который посылает запрос:
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("usern",""+usr));
nameValuePairs.add(new BasicNameValuePair("passw",""+psw));
InputStream is = null;
String result = "";
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://ik.su.lt/~jbarzelis/Bdarbas/getUserInfo.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
Отредактировано
$username = mysql_real_escape_string($_REQUEST['usern']);
$password = mysql_real_escape_string($_REQUEST['passw']);
$q=mysql_query("SELECT username, firstname, lastname, email, phone1, skype, city, description
FROM mdl_user WHERE username LIKE '$username' AND password LIKE '$password'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
Это был не весь код. Отредактировано выше. – LTnewbie
Теперь мое сообщение не имеет смысла, поэтому я его удалю :) –
Но вы все же должны использовать «=», чем «LIKE» в авторизации. И попробуйте hardcoding ваше имя пользователя и пароль, чтобы проверить, выводит ли он ваш результат. Если это произойдет, и проблема исчезнет, то у вас возникнет проблема с отправкой данных на php-скрипт, а не с получением –