PHP 데이터베이스 작업: 단계를 통해 목록 표시 만들기

이전 장에서는 "데이터베이스 연결 8단계"에 따라 성공적으로 사용자 등록을 완료했습니다.

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

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

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가 true가 됩니다. 따라서 $result 뿐만 아니라 구현 시 판단 단계를 하나 더 추가해야 합니다. 또한 쿼리된 행 수를 결정합니다.

행 수를 쿼리하려면 mysqli_num_rows를 사용하면 됩니다. 이 함수를 사용하려면 $result 쿼리의 결과 변수가 전달되어야 합니다.

결과가 있으면 목록이 표시됩니다. 결과가 없으면 프롬프트를 생성할 수 있습니다.

코드 조각은 다음과 같습니다.

if($result && mysqli_num_rows($result)){
    //显示列表代码段
}else{
    //提示没有结果的代码段
}

4. 루프 표시 데이터

모든 결과를 표시해야 합니다. 목록의 형태. 테이블의 행과 열은 데이터 테이블의 행과 열과 동일합니다. 표시된 것은 표시하기 쉽습니다.

먼저 테이블을 선언하고 반복될 때마다 한 행씩 출력합니다. 각 열에 결과를 표시합니다.

사용된 함수는 연관 배열을 반환하는 mysqli_fetch_assoc입니다.

결과 세트를 읽고 뒤로 한 번 이동하는 함수입니다. 읽은 후 결과가 없으면 bool 값 false가 반환됩니다. 따라서 우리는 mysqli_fetch_assoc과 협력하기로 결정했습니다.

각 루프의 결과는 $row에 할당되며 $row는 연관 배열입니다. 따라서 이 루프에서 행과 열을 모두 표시할 수 있습니다.

rree

5. 편집 및 삭제 제어 추가

1. 삭제 시 단일 선택 삭제와 다중 선택 삭제로 구분합니다. .

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

페이지에서 삭제 및 편집을 구현하기 위해 이전 단계에서 코드에 몇 가지 작은 항목을 추가했습니다.

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

2015-10-13_561c8906de39b.png

몇 가지 핵심 사항이 있습니다. 구현 프로세스:

1. 삭제 또는 편집을 선택할 때 어떤 사용자가 편집 또는 삭제되는지 알 수 있도록 get 메소드를 사용하여 ID를 전달해야 합니다.

2. 다중 선택 삭제 시 여러 사용자를 전달해야 합니다. 따라서 양식 양식과 게시 메소드를 사용하여 이 사용자 ID 배치를 제출할 수 있습니다.

단일 선택 삭제의 경우 delete.php에 따라 ID와 값을 추가하여 클릭 시 삭제 요청을 할 수 있습니다.

  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>';

edit.php에 ?를 추가하고 클릭하면 어떤 사용자를 편집해야 하는지 알 수 있습니다.

echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>';

다중 선택 삭제의 경우 HTML에서 확인란을 사용해야 합니다. 여러 사용자 ID를 전달할 때 이름 뒤에 id[]를 추가해야 합니다. 양식을 사용하여 테이블을 래핑하고 테이블 외부에 제출 태그를 추가하여 다중 선택 삭제를 수행합니다.

echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>';

코드는 다음과 같습니다.

<form action="delete.php" method="post">
echo '<td><input type="checkbox" name="id[]" value="' . $row['id'] . '" /></td>';
echo '<input type="submit" value="删除" />';
echo '</form>';

6. 데이터베이스 연결을 닫습니다

작업이 끝난 후 데이터베이스, 데이터베이스 연결을 닫습니다.

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>';

우리가 구현한 사용자 목록 list.php 코드는 다음과 같습니다.

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); ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~