2015-03-19 13 views
0

Я хочу, чтобы извлечь данные из таблицы пользователя, используя имя пользователя, но он не может работать должным образом вот мой PHP код:Как восстановить данные с помощью JSON в MySQL андроида

<?php 

mysql_connect("xxx","xxx","xxx"); 
mysql_select_db("xxx"); 

$username = $_POST["name"]; 

$sql = mysql_query("select * from user where username = '$username'"); 

$flag["code"] = 0; 

$check = mysql_fetch_row($sql); 
if ($check > 0) 
{ 
    $flag["code"] = 1; 
    echo json_encode($flag);  

    while ($row= mysql_fetch_assoc($sql)) 
    { 
     $output[] = $row; 
    } 
} 

echo json_encode($output); 
mysql_close(); 

?> 

И вот мой Java-код:

try 
    { 
    JSONObject json = new JSONObject(result); 
    code = (json.getInt("code")); 

if (code == 1) 
{ 
    JSONArray array = new JSONArray(result); 

    for (int i = 0; i < array.length(); i++) 
    { 
     JSONObject jsonObject = array.getJSONObject(i); 
     firstname = jsonObject.getString("firstname"); 

     et.setText(firstname); 
    } 
} 
} 
catch (Exception e) 
{ 

} 

Вот результат:

try 
     { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is, HTTP.UTF_8),8); 
      StringBuilder sb = new StringBuilder(); 

      while ((line = reader.readLine()) != null) 
      { 
       sb.append(line+"\n"); 
      } 

      is.close(); 

      result = sb.toString(); 

      Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show(); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 

Там нет ошибки, но он не может получить никаких данных, что является проблемой?

+0

Где часть результата = ?? или какой результат результата? – lukesUbuntu

+0

Вы проверили, какой JSON возвращается вашим PHP-скриптом? –

+0

Я только что включил часть результата, и он говорит, что пустой –

ответ

0

Я просто решил результат проблема не работает, другими словами он не может получить данные по массиву и я просто поставить функцию массива теперь работает отлично :-)

1

Пожалуйста, верните объект json из php not Array У меня есть часть эха в json_encode (массив ('response' => $ output, 'code' => $ flag ["code"]));

<?php 

mysql_connect("xxx","xxx","xxx"); 
mysql_select_db("xxx"); 

$username = $_POST["name"]; 

$rs = mysql_query("select * from user where username = '$username'"); 


$flag["code"] = 0; 

$check = mysql_num_rows($rs); 
if ($check > 0) 
{ 
    $flag["code"] = 1; 


    while ($row= mysql_fetch_array($rs)) 
    { 
     $output[] = $row; 
    } 
} 

echo json_encode(array('response'=>$output,'code'=>$flag["code"])); //changed here 
mysql_close(); 

?> 

Сейчас в Java,

try 
    { 
    JSONObject json = new JSONObject(result); 
    code = (json.getInt("code")); 

if (code == 1) 
{ 
    JSONArray array = json.getJSONArray('response'); 

    for (int i = 0; i < array.length(); i++) 
    { 
     JSONObject jsonObject = array.getJSONObject(i); 
     firstname = jsonObject.getString("firstname"); 

     et.setText(firstname); 
    } 
} 
} 
catch (Exception e) 
{ 

} 

Если он не JSONObject JSon = новый JSONObject (результат); не требуется, потому что результат уже является json-объектом. просто удалите эту строку и измените все переменные json.

+0

вы должны использовать mysqli над mysql. но хорошее решение, это будет сказать ему, если hes получить результаты +1 – lukesUbuntu

+0

ничего не ответил ответ говорит null –

+0

вы можете сказать мне тип результата. Строка или JSONObject? –

Смежные вопросы