Android / MySQL: удалить данные из базы данных MySQL из ListView. - PullRequest
0 голосов
/ 15 января 2020

В настоящее время я создал приложение, которое содержит представление списка. Я использую библиотеку «com.baoyz.swipemenulistview: library: 1.3.0» для отображения моего списка данных.

В этом представлении списка я добавляю функцию для удаления данных. Если пользователь хочет удалить один элемент из списка, просто проведите пальцем справа налево, и появится кнопка «Удалить».

Теперь я уже закодировал кнопку удаления, чтобы выбрать элемент Пользователь удалит. Проблема в том, что после того, как пользователь нажмет кнопку «Удалить», появится сообщение «Элемент удален». Но если пользователь открывает список обратно, он не удаляется. Я не знаю почему. ниже мой код:

JAVA

    listView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
            switch (index) {
                case 0:
                    String report_id = null;

                    deleteTask(report_id);

                    Toast.makeText(TaskList.this,"Item deleted",Toast.LENGTH_SHORT).show();

                    Intent intent = new Intent(TaskList.this, Home.class);
                    startActivity(intent);
                    break;
            }
            // false : close the menu; true : not close the menu
            return false;
        }
    });

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            TaskClass taskClass = taskClassArrayList.get(position);

            Intent intent = new Intent(TaskList.this, TaskUpdateBefore.class);
            intent.putExtra("task", taskClass);
            startActivity(intent);
        }

    });

    retrieveJSON();

}


private void deleteTask(final String report_id) {

    showSimpleProgressDialog(this, "Loading...","Please wait",true);
    StringRequest stringRequest=new StringRequest(Request.Method.POST, URLs.URL_DELETE_TASK, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            Toast.makeText(TaskList.this,response, Toast.LENGTH_LONG).show();

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    }){
        @Override
        protected Map<String, String> getParams()  {
            Map<String,String>parms=new HashMap<String, String>();
            parms.put("report_id",report_id);
            return parms;
        }
    };
    RequestQueue requestQueue= Volley.newRequestQueue(getApplicationContext());
    requestQueue.add(stringRequest);

}

delete_task. php

<?php
require_once "../config/configPDO.php";

$report_id = $_POST['report_id'];


$sql = "DELETE ot_report WHERE report_id = '$report_id'";
$query = $conn->prepare($sql);
$query->execute();

if($query){
    echo "Data Save!";
}else{
    echo "Error!! Not Saved";
}

?>  

Может кто-нибудь помочь мне. Pleaseee

1 Ответ

0 голосов

Забыл ключевое слово "FROM". Это синтаксис для sql запроса на удаление

DELETE FROM ot_report WHERE report_id = '$report_id';

Android

TaskClass taskObject = (TaskClass) listView.getItemAtPosition(position); 
reportId = taskObject.getId()//your field;
deleteTask(reportId);
...