select.php
$con = mysqli_connect(db연결);
mysqli_query($con, "set names utf8");
$query = "SELECT * FROM worklog order by workDate asc";
$res = mysqli_query($con,$query);
$rowCnt= mysqli_num_rows($res);
$result = array();
for($i=0;$i<$rowCnt;$i++){
$row= mysqli_fetch_array($res, MYSQLI_ASSOC);
//각 각의 row를 $arr에 추가
$result[$i]= $row;
}
$jsonData=json_encode($result);
echo "$jsonData";
mysqli_close($con);
보이는 php 파일로 안드로이드 스튜디오에서 연동하여 php파일로 select * from worklog [정렬]; 을 하여 데이터를 모두 가져왔습니다.
지금 로그인 기능을 합쳤는데 사용자에 따라 등록한 글만을 가져와야 하므로
select * from worklog where worker=? 로 수정 후 ? 에 해당하는 데이터를 바인드하여 worker(사용자)에 따른 데이터만 가져오고 싶습니다.
-----------안드로이드 스튜디오 내 연동 코드 -----------------------
public void clickLoad(View view){
// 서버의 php 파일에서 DB 데이터 받기
// Volley 라이브러리 사용
//서버 URL
String URL = "서버URL";
// worker라는 변수(사용자)를 get하여 저장
String worker = tv_name.getText().toString().trim();
// 결과 : JsonArray
JsonArrayRequest jsonArrayRequest= new JsonArrayRequest(Request.Method.POST, URL,null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
data.clear();
nAdapter.notifyDataSetChanged();
try {
for(int i=0;i<response.length();i++){
JSONObject jsonObject= response.getJSONObject(i);
String workDate = jsonObject.getString("workDate");
String workType = jsonObject.getString("workType");
String workSpace = onObject.getString("workSpace");
String memo = jsonObject.getString("memo");
String worker = jsonObject.getString("worker");
items.add(0,new Data(workDate,workType, workSpace, memo, worker)); // 첫 번째 매개변수는 몇번째에 추가 될지, 제일 위에 오도록
nAdapter.notifyItemInserted(0);
}
// Toast.makeText(MainActivity.this, String.valueOf(response.length()-1), Toast.LENGTH_SHORT).show();
if(response.length() == 0){
Toast.makeText(MainActivity.this, "근무표를 등록해주세요", Toast.LENGTH_SHORT).show();
}else{
forMake(response.length()-1);
}
// Toast.makeText(MainActivity.this, items.get(0).getWorkDate() , Toast.LENGTH_SHORT).show();
} catch (JSONException e) {e.printStackTrace();}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, "ERROR", Toast.LENGTH_SHORT).show();
}
});
//실제 요청 작업을 수행해주는 요청큐 객체 생성
RequestQueue requestQueue= Volley.newRequestQueue(this);
//요청큐에 요청 객체 생성
requestQueue.add(jsonArrayRequest);
}
php 코드에서 $worker = $_POST["worker"]; 를 추가하고 위 코드에서 String worker로 저장된 사용자 이름을 넘겨주면 될것 같은데 그 방법을 몰라서 몇시간에 삽질중입니다.
제가 접근 방법이 틀린건가요..? 도움 요청 드립니다.
JSONArrayRequest를 사용하는데 woker라는 String 변수의 값을 php로 넘기고 php에서 받아서 사용하는 방법을 모르겠습니다.