JSON、php和mysql

JSON、php和mysql,php,android,mysql,json,Php,Android,Mysql,Json,我努力完成我的项目 这是我的节目 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.Activi

我努力完成我的项目

这是我的节目

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;
}
   }


}
import java.util.ArrayList;
导入org.apache.http.NameValuePair;
导入org.apache.http.message.BasicNameValuePair;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
公共类搜索扩展了活动{
文本视图错误,br2;
编辑文本namjal2;
字符串i,返回字符串2;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
br2=(TextView)findViewById(R.id.berita2);
namjal2=(EditText)findViewById(R.id.namjalSearch);
}
公共无效clickHandler(视图){
意图a=无效;
开关(view.getId()){
案例R.id.find:
ArrayList后参数=新的ArrayList();
add(新的BasicNameValuePair(“nama_jalan”,namjal2.getText().toString());
/*字符串valid=“1”;*/
字符串响应=null;
试一试{
响应=CustomHttpClient.executeHttpPost(“http://10.0.2.2/android/searchInfo.php“,后参数);
字符串结果=response.toString();
//解析json数据
试一试{
returnString2=“”;
JSONArray jArray=新JSONArray(结果);

对于(int i=0;i您从数据库获取的数据不是UTF-8编码,因此
json\u encode
返回
null
而不是json对象。

每当解析json数据时,只要确保(检查是否)数据的单个/数组不是空的。如果不检查它,将抛出空指针异常。

请不要在新代码中使用mysql函数。它们不再被维护,并且已经开始了弃用过程。请参见红色框?了解准备好的语句,改为使用PDO或MySQLi-本文将帮助您决定使用哪个。I如果您选择PDO,这里有一个很好的教程。那么我应该编写什么代码来获取JSON对象?您能告诉我应该做什么吗?先生,我将非常感激。在将其添加到
$output
之前,请先迭代
$row
,然后使用
iconv
将您的编码转换为UTF-8
<?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();
?>