목록 표시를 구현하는 PHP...LOGIN

목록 표시를 구현하는 PHP 개발 기본 튜토리얼

이전 장의 단계를 따라 성공적으로 사용자 등록을 완료했습니다.

백그라운드 사용자 목록 표시를 만들어 보겠습니다. 실제 관리 과정에서는 백엔드를 통해 사용자의 비밀번호 및 사용자 관련 정보를 개별적으로 수정할 수 있습니다.

백그라운드에서는 모든 사용자가 사용자 목록인 테이블에 표시되어야 합니다.


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. 편집 및 삭제 제어 추가

  • 삭제할 때 단일로 나눕니다. 선택 삭제 및 다중 선택 삭제.

  • 편집 시 사용자를 선택합니다

이전 단계의 코드에서 페이지에 몇 가지 작은 항목을 추가하고 삭제를 구현했습니다. 그리고 편집.

구체적인 구현 과정을 추론하기 위해 실제 렌더링을 살펴보겠습니다.

117.png

여러 측면이 있습니다. 구현 과정에서 핵심 사항:

  • 삭제 또는 편집을 단일 선택하는 경우 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);


다음 섹션
<?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);
코스웨어