2012-11-17 8 views
0
난 내 프로젝트를 완료하려고

JSON, PHP와 MySQL

이 내 프로그램

import java.util.ArrayList; 

import org.apache.http.NameValuePair; 
import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 




import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Search extends Activity { 

    TextView error,br2; 
    EditText namjal2; 
    String i,returnString2; 


    /** Called when the activity is first created. */ 

    @Override 


    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.search); 

     br2=(TextView)findViewById(R.id.berita2); 
     namjal2=(EditText)findViewById(R.id.namjalSearch); 




    } 

    public void clickHandler(View view){ 
    Intent a = null; 
    switch (view.getId()){ 
    case R.id.find: 

ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>(); 

postParameters.add(new BasicNameValuePair("nama_jalan", namjal2.getText().toString())); 


/*   String valid = "1";*/  

     String response = null; 

     try { 

      response = CustomHttpClient.executeHttpPost("http://10.0.2.2/android/searchInfo.php", postParameters); 


      String result = response.toString(); 
      //parse json data 

       try{ 
         returnString2 = ""; 


       JSONArray jArray = new JSONArray(result); 
         for(int i=0;i<jArray.length();i++){ 

           JSONObject json_data = jArray.getJSONObject(i); 
           Log.i("log_tag","id_kepadatan: "+json_data.getInt("id_kepadatan")+ 
             ", username: "+json_data.getString("username")+ 
             ", nama_jalan: "+json_data.getString("nama_jalan")+ 
             ", status: "+json_data.getString("status")+ 
             ", tanggal: "+json_data.getString("tanggal")+ 
             ", waktu: "+json_data.getString("waktu")+ 
             ", keterangan: "+json_data.getString("keterangan") 
          ); 

           //Get an output to the screen 
           returnString2 += "\n" + json_data.getString("nama_jalan") + " mengalami "+ json_data.getString("status")+ " pada "+ json_data.getString("tanggal")+ " waktu "+ json_data.getString("waktu")+ " karena "+ json_data.getString("keterangan"); 
         } 
       } 


       catch(JSONException e){ 
         Log.e("log_tag", "Error parsing data "+e.toString()); 
       } 

       try{ 


       br2.setText(returnString2); 


       } 


       catch(Exception e){ 

       Log.e("log_tag","Error in Display!" + e.toString());;   

       } 

     } 

       catch (Exception e) { 

      Log.e("log_tag","Error in http connection!!" + e.toString());  

     } 
     break; 

    case R.id.back: 
     a = new Intent(this, Menu.class); 
     startActivity(a); 
     break; 
} 
    } 


} 

이며,이 내 searchInfo.php

<?php 
    date_default_timezone_set('asia/jakarta'); 
    $skrg = time(); 
    $tgl = date("dmY",$skrg); 

$conn = mysql_connect("localhost","root",""); 
    mysql_select_db("proyek akhir"); 

$query = "SELECT * FROM kepadatan WHERE nama_jalan = '". $_POST["nama_jalan"]."' AND tanggal ='$tgl'"; 
$result = mysql_query($query); 
while($row=mysql_fetch_assoc($result)) 
$output[]=$row; 
print(json_encode($output)); 
mysql_close(); 
?> 

와 나는 그것을 에뮬레이터에 배포 할 때

"org.json.JSONObj 유형의 데이터 org.json.jsonexception 값을 파싱하는 중 오류가 발생했습니다. ect $ 1을 JSONArray로 변환 할 수 없습니다. "

누구에게 이런 일이 발생했는지 알 수 있습니까? 데이터베이스가 아닌에서이 내 마지막 프로젝트이며, 나는 단지이 완료 일일을 가지고 있기 때문에

내가 정말 ....이 필요 ... 가져온 당신에게

+0

새 코드에서 mysql_ * 함수를 사용하지 마십시오. 그들은 더 이상 유지 보수되지 않으며 비추천 프로세스가 시작되었습니다. 빨간 상자 보이니? 대신 준비된 문에 대해 배우고 PDO 또는 MySQLi를 사용하십시오.이 기사는 어떤 결정을 내리는 데 도움이됩니다. PDO를 선택한 경우 다음은 좋은 자습서입니다. – Sergey

+0

[Bobby Tables에 새로운 가장 친한 친구가있다] (http://xkcd.com/327/) – PeeHaa

답변

0

데이터를 감사 나에게

도와주세요 UTF-8 인코딩이므로 json_encode은 JSON 객체 대신 null을 반환합니다.

+0

그리고 JSON 개체를 얻기 위해 내가 작성해야하는 코드는 무엇입니까? 내가 뭘해야하는지 말해 주시겠습니까? – Safarudin

+0

전에'$ row'를 반복하여'$ output'에 추가하고'iconv'를 사용하여 인코딩을 UTF- 8 –

0

Json 데이터를 구문 분석 할 때마다 데이터의 단일/배열이 null이 아닌지 확인하십시오. 체크하지 않으면 NULL 포인터 예외가 발생합니다.