이전 장의 단계를 따라 성공적으로 사용자 등록을 완료했습니다.
백그라운드 사용자 목록 표시를 만들어 보겠습니다. 실제 관리 과정에서는 백엔드를 통해 사용자의 비밀번호 및 사용자 관련 정보를 개별적으로 수정할 수 있습니다.
백그라운드에서는 모든 사용자가 사용자 목록인 테이블에 표시되어야 합니다.
1. 데이터베이스 접속, 오류 판단, 문자셋 설정
접속, 오류 판단, 문자셋 선택이 모두 위에서 언급한 음성. 이전 규칙의 첫 번째 단계는 mysqli_connect를 사용하여 데이터베이스에 연결하는 것입니다. 첫 번째 섹션에서 말했듯이 네 번째 매개변수에 라이브러리 선택을 추가할 수 있습니다. 나중에 데이터베이스를 다시 선택하기 위해 더 이상 mysqli_select_db 함수를 사용할 필요가 없습니다.
반환된 유형은 연결 리소스입니다. 어떤 연결을 작동하고 있는지 확인하려면 mysqli_errno, mysqli_error 및 mysqli_set_charset의 리소스를 전달해야 합니다.
$conn = mysqli_connect('localhost', 'root', 'secret', 'book'); if (mysqli_errno($conn)) { mysqli_error($conn); exit; } mysqli_set_charset($conn, 'utf8');
2. SQL 문 준비 및 보내기
우리가 쿼리해야 할 것은 사용자 ID, 사용자 이름, 시간 및 IP를 찾는 것입니다. 내림차순으로 정렬하려면 ID 기준 순서를 사용하세요.
인간의 생각에 따르면 사람들은 일반적으로 최신 등록 사용자를 보는 것을 좋아합니다. ID는 자동으로 증가합니다. 즉, ID가 클수록 신규 사용자가 더 많이 등록됩니다. 따라서 SQL 문을 작성할 때 id desc를 기준으로 order를 작성합니다.
$sql = "select id,username,createtime,createip from user order by id desc"; $result = mysqli_query($conn, $sql);
3. 판단 결과
SQL 문이 올바른 경우 결과 변수 $result는 사실이다. 따라서 $result 뿐만 아니라 구현 시 판단 단계를 하나 더 추가해야 합니다. 또한 쿼리된 행 수를 결정합니다.
행 수를 쿼리하려면 mysqli_num_rows를 사용하면 됩니다. 이 함수를 사용하려면 $result 쿼리의 결과 변수가 전달되어야 합니다.
결과가 있으면 목록이 표시됩니다. 결과가 없으면 프롬프트를 생성할 수 있습니다.
코드 스니펫은 다음과 같습니다.
if($result && mysqli_num_rows($result)){ //显示列表代码段 }else{ //提示没有结果的代码段 }
4. 루프 표시 데이터
우리는 모든 결과가 필요합니다. 목록 형식으로 표시하세요. 테이블의 행과 열은 데이터 테이블의 행과 열과 동일합니다. 표시된 것은 표시하기 쉽습니다.
먼저 테이블을 선언하고 반복될 때마다 한 행씩 출력합니다. 각 열에 결과를 표시합니다.
사용된 함수는 연관 배열을 반환하는 mysqli_fetch_assoc입니다.
결과 세트를 읽고 뒤로 한 번 이동하는 함수입니다. 읽은 후 결과가 없으면 bool 값 false가 반환됩니다. 따라서 우리는 mysqli_fetch_assoc과 협력하기로 결정했습니다.
각 루프의 결과는 연관 배열인 $row에 할당됩니다. 따라서 이 루프에서 행과 열을 모두 표시할 수 있습니다.
echo '<table width="800" border="1">'; while ($row = mysqli_fetch_assoc($result)) { echo '<tr>'; echo '<td>' . $row['username'] . '</td>'; echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>'; echo '<td>' . long2ip($row['createip']) . '</td>'; echo '</tr>'; } echo '</table>';
5. 편집 및 삭제 제어 추가
삭제할 때 단일로 나눕니다. 선택 삭제 및 다중 선택 삭제.
편집 시 사용자를 선택합니다
이전 단계의 코드에서 페이지에 몇 가지 작은 항목을 추가하고 삭제를 구현했습니다. 그리고 편집.
구체적인 구현 과정을 추론하기 위해 실제 렌더링을 살펴보겠습니다.
여러 측면이 있습니다. 구현 과정에서 핵심 사항:
삭제 또는 편집을 단일 선택하는 경우 get 메소드를 사용하여 ID를 전달해야 어떤 사용자인지 알 수 있습니다. 수정 또는 삭제되었습니다.
여러 선택 항목을 삭제할 경우 여러 사용자를 전달해야 합니다. 따라서 양식 양식과 게시 메소드를 사용하여 이 사용자 ID 배치를 제출할 수 있습니다.
단일 선택 삭제의 경우 delete.php에 따라 id와 값을 추가하여 클릭 시 삭제 요청을 할 수 있습니다.
echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>';
edit.php에 ?를 추가하고 클릭하면 어떤 사용자를 편집해야 하는지 알 수 있습니다.
echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>';
다중 선택 삭제의 경우 HTML에서 확인란을 사용해야 합니다. 여러 사용자 ID를 전달할 때 이름 뒤에 id[]를 추가해야 합니다. 양식을 사용하여 테이블을 래핑하고 테이블 외부에 제출 태그를 추가하여 다중 선택 삭제를 수행합니다.
<form action="delete.php" method="post"> echo '<td><input type="checkbox" name="id[]" value="' . $row['id'] . '" /></td>'; echo '<input type="submit" value="删除" />'; echo '</form>';
코드는 다음과 같습니다.
echo '<form action="delete.php" method="post">'; echo '<table width="800" border="1">'; while ($row = mysqli_fetch_assoc($result)) { echo '<tr>'; echo '<td><input type="checkbox" name="id[]" value="' . $row['id'] . '" /></td>'; echo '<td>' . $row['username'] . '</td>'; echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>'; echo '<td>' . long2ip($row['createip']) . '</td>'; echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>'; echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>'; echo '</tr>'; } echo '</table>'; echo '<input type="submit" value="删除" />'; echo '</form>';
6. 데이터베이스 연결을 닫습니다
데이터베이스 운영을 마쳤습니다. 데이터베이스 연결을 닫습니다.
mysqli_close($conn);
우리가 구현한 사용자 목록 list.php 코드는 다음과 같습니다.
<?php $conn = mysqli_connect('localhost', 'root', 'secret', 'book'); if (mysqli_errno($conn)) { mysqli_error($conn); exit; } mysqli_set_charset($conn, 'utf8'); $sql = "select id,username,createtime,createip from user order by id desc"; $result = mysqli_query($conn, $sql); if ($result && mysqli_num_rows($result)) { echo '<table width="800" border="1">'; while ($row = mysqli_fetch_assoc($result)) { echo '<tr>'; echo '<td>' . $row['username'] . '</td>'; echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>'; echo '<td>' . long2ip($row['createip']) . '</td>'; echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>'; echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>'; echo '</tr>'; } echo '</table>'; } else { echo '没有数据'; } mysqli_close($conn);