> 백엔드 개발 > PHP 문제 > PHP에서 일괄 삭제

PHP에서 일괄 삭제

PHPz
풀어 주다: 2023-05-07 12:02:07
원래의
683명이 탐색했습니다.

PHP 애플리케이션에서 데이터베이스 운영은 일반적인 작업입니다. 데이터베이스에서 여러 데이터 행을 삭제해야 하는 상황이 많이 있습니다. 일괄 삭제입니다. 이 기사에서는 PHP에서 대량 삭제 작업을 구현하는 방법을 보여 드리겠습니다.

  1. 데이터베이스에 연결

먼저 데이터베이스에 연결해야 합니다. 다음 기능을 사용하세요:

$conn = mysqli_connect("localhost", "my_user", "my_password", "my_db");
로그인 후 복사

이것은 "my_db"라는 데이터베이스에 연결됩니다. 이를 자신의 데이터베이스 이름으로 변경하고 올바른 사용자 이름과 비밀번호를 제공해야 합니다.

  1. 선택한 데이터 행 가져오기

일괄 삭제 전에 사용자가 선택한 데이터 행을 가져와야 합니다. 이 프로세스를 위해서는 HTML 양식과 일부 JavaScript 코드를 사용해야 합니다.

다음은 샘플 HTML 양식입니다.

<form method="post" id="deleteForm">
  <table>
    <thead>
      <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Delete</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>1</td>
        <td>John</td>
        <td><input type="checkbox" name="ids[]" value="1"></td>
      </tr>
      <tr>
        <td>2</td>
        <td>Jane</td>
        <td><input type="checkbox" name="ids[]" value="2"></td>
      </tr>
      <tr>
        <td>3</td>
        <td>Bob</td>
        <td><input type="checkbox" name="ids[]" value="3"></td>
      </tr>
    </tbody>
  </table>
  <button type="submit">Delete</button>
</form>
로그인 후 복사

이 양식에는 각각 고유한 값(행 ID)이 있는 확인란 열이 있습니다. 사용자가 삭제할 데이터 행을 선택하면 해당 행의 ID가 "ids[]"라는 양식 요소에 추가됩니다. 여러 값을 선택하므로 이름은 배열입니다.

이제 사용자가 선택한 값을 가져와 백그라운드에서 PHP 스크립트에 전달하는 JavaScript 코드를 작성해야 합니다.

document.getElementById('deleteForm').addEventListener('submit', function(event) {
  event.preventDefault();
  var selected = document.getElementsByName('ids[]');
  var ids = [];
  for (var i = 0; i < selected.length; i++) {
    if (selected[i].checked) {
      ids.push(selected[i].value);
    }
  }
  // Send selected ids to PHP script for processing
  var request = new XMLHttpRequest();
  request.open('POST', 'delete.php', true);
  request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  request.onload = function() {
    if (request.status >= 200 && request.status < 400) {
      // Success
      console.log(request.responseText);
    } else {
      // Error
      console.log('Error');
    }
  };
  request.onerror = function() {
    // Connection error
    console.log('Connection Error');
  };
  request.send('ids=' + JSON.stringify(ids));
});
로그인 후 복사

이 코드는 사용자가 "삭제" 버튼을 클릭할 때 실행되는 "제출" 이벤트 리스너를 설정합니다. 먼저 "ids[]"라는 이름의 모든 확인란을 가져옵니다. 다음으로 사용자가 선택한 행 ID를 포함하는 배열을 만듭니다. 그런 다음 AJAX를 사용하여 식별자 배열을 "delete.php"라는 PHP 스크립트로 보냅니다. 마지막으로 스크립트가 응답을 반환하면 콘솔에 응답 내용을 인쇄합니다.

  1. 삭제 요청 처리

이제 요청을 처리하기 위한 PHP 코드를 작성해야 합니다. 위의 JavaScript 코드에서는 식별자 배열을 JSON 문자열로 스크립트에 보냅니다. PHP에서는 다음 코드를 사용하여 JSON 문자열을 PHP 배열로 디코딩할 수 있습니다.

$ids = json_decode($_POST['ids']);
로그인 후 복사

다음으로 루프를 사용하여 각 데이터 행을 삭제해야 합니다.

foreach ($ids as $id) {
  $sql = "DELETE FROM users WHERE id=$id";
  mysqli_query($conn, $sql);
}
로그인 후 복사

이 루프는 각 ID를 반복하고 SQL 쿼리를 사용합니다. "users" 테이블의 해당 행.

  1. 전체 코드 예

전체 PHP 스크립트는 다음과 같습니다.

로그인 후 복사

이 스크립트에서는 먼저 데이터베이스에 연결한 다음 식별자 배열을 PHP 배열로 디코딩합니다. 다음으로 루프를 사용하여 각 데이터 행을 삭제합니다. 마지막으로 성공 메시지를 출력합니다.

  1. 요약

이 기사에서는 PHP에서 대량 삭제 작업을 구현하는 방법을 배웠습니다. 우리는 HTML 양식과 JavaScript 코드를 사용하여 사용자가 선택한 데이터 행을 가져온 다음 PHP 코드를 사용하여 요청을 처리합니다. 대량 삭제는 종종 필요한 기능이며, PHP 애플리케이션에서는 우리가 다룬 기술을 사용하여 쉽게 구현할 수 있습니다.

위 내용은 PHP에서 일괄 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿