마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 php db 통신 질문 드립니다.

0 추천
package com.example.sangjun.nulsecall;



import android.app.LauncherActivity;
import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.AsyncTask;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import java.io.IOException;
import java.util.ArrayList;


public class p_regist extends AppCompatActivity {
    Button regist;
    EditText etId, etPass, etName, etDx, etNurse;
    private final String SERVER_ADDRESS = "http://172.30.1.26:80";
    String id, password, name, dx, nurseName, role;



    ArrayList<PatientInfo> listitem = new ArrayList<PatientInfo>();
    LauncherActivity.ListItem Item;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_p_regist);




        etId = (EditText) findViewById(R.id.editText5);
        etPass = (EditText) findViewById(R.id.editText6);
        etName = (EditText) findViewById(R.id.editText15);
        etDx = (EditText) findViewById(R.id.editText17);
        etNurse = (EditText) findViewById(R.id.editText16);

       id = etId.getText().toString();
       password = etPass.getText().toString();
       name = etPass.getText().toString();
       dx = etDx.getText().toString();
       nurseName = etNurse.getText().toString();

       role = "2";
        Log.d("name",name);
        regist = (Button) findViewById(R.id.button10);


        regist.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            InsertData task1 = new InsertData();
            Log.d("어디","1");
                Log.d("name123",name);
            task1.execute(new String[]{"http://165.194.34.207:80/patientInfo.php"});
                Log.d("어디", "2");

                //   String url = "165.194.34.204/patient?id="+id+"$pass="+pass+"$name="+name+"$dx="+dx+"$nurse="+nurse+"$role="+role;

            }
        });


    }
    private class InsertData extends  AsyncTask<String,Void,Boolean>{
        ProgressDialog dialog = new ProgressDialog(p_regist.this);


        protected void OnPreExecute() {
            dialog.setMessage("Sending Data.... ");
            dialog.show();   ////우선수행
            Log.d("어디", "3");

        }
        @Override
        protected Boolean doInBackground(String... urls) {
////백그라운드 수행 주소 받아서 post방식으로 전송
            Log.d("어디","4");
            for (String url : urls) {
                Log.d("password",password);

                try {
                    ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();

                    pairs.add(new BasicNameValuePair("id",id));
                    pairs.add(new BasicNameValuePair("password", password));
                    pairs.add(new BasicNameValuePair("name", name));
                    pairs.add(new BasicNameValuePair("dx", dx));
                    pairs.add(new BasicNameValuePair("nurseName", nurseName));
                    pairs.add(new BasicNameValuePair("role", role));
                    Log.d("id",id);


                    ////// 입력하는 3개 요소를 namevaluepair 형식으로 만들어 전송한다.
                    HttpClient client = new DefaultHttpClient();
                    HttpPost post = new HttpPost(url);
                    post.setEntity(new UrlEncodedFormEntity(pairs));
                    HttpResponse response = client.execute(post);
                } catch ( ClientProtocolException e) {
                    Toast.makeText(p_regist.this, e.toString(), Toast.LENGTH_LONG).show();
                    Log.d("id2", id);
                    return false;
                } catch (IOException e){
                    Log.d("어디",e.toString());
                    Log.d("id42", id);

                    e.printStackTrace();
                    Toast.makeText(p_regist.this, e.toString(), Toast.LENGTH_LONG).show();
                    return false;
                }

            }

            return true;

        }

        protected void onPostExecute(Boolean result) {

            if(result == true) {
                Log.d("어디","5");
                Log.d("id72", id);

                Toast.makeText(p_regist.this, "Insert Success",Toast.LENGTH_LONG).show();
            }else{

                Toast.makeText(p_regist.this, "Error",Toast.LENGTH_LONG).show();

            }
            dialog.dismiss();
        }




    }
}

이게 안드로이드 스튜디오 코드이고요!!

<head>
<meta http-equiv = "content-Type" content = "text/html" charset = "utf-8">
</head>
<?

$id = $_POST['id'];
$password = $_POST['password'];
$name = $_POST['name'];
$dx = $_POST['dx'];
$nurseName = $_POST['nurseName'];
$role = $_POST['role'];

//$sql = "insert into ".$table." (id, pw, name, email, date) values('$id', '$pw', '$name', '$email', '$date')";
$qry = "insert into patientinfo (id, password, name, dx, nurseName, role) values('$id', '$password', '$name', '$dx', '$nurseName', '$role');";
$result = mysqli_query($connect,$qry) or die();

print(json_encode($flag));

//mysql_close($connect);
?>

이게 php코드 입니다. connect는 보안상 지웠구요 

근데 이코드가 돌아가긴 잘돌아가는데 데이터 베이스에 들어갈 때 마지막 String을 직접 넣어준 2만들어가지

EditText로 받아온 값이 안들어가더라고요 중간중간 LOG도 찍어봤는데 무슨이유인지 String 변수는 안나오고요 

확인한번만 부탁드리겠습니다ㅠㅠ

익명사용자 님이 2015년 11월 30일 질문

1개의 답변

0 추천
 
채택된 답변
id = etId.getText().toString();

       password = etPass.getText().toString();

       name = etPass.getText().toString();

       dx = etDx.getText().toString();

       nurseName = etNurse.getText().toString();

를 onclick 안에 넣으세요
aucd29 (218,390 포인트) 님이 2015년 11월 30일 답변
...