リスト表示

1. データベースへの接続、エラーの判断、文字セットの設定

接続、エラーの判断、文字セットの選択はすべて上記で説明しました。古いルールでは、最初のステップは mysqli_connect を使用してデータベースに接続することです。最初のセクションで述べたように、4 番目のパラメータにライブラリの選択を追加できます。後でデータベースを再度選択するために 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 です。そして、order by id を使用して降順に並べ替えます。

人間の考え方によれば、人々は一般に登録ユーザーの最新のバッチを見ることを好みます。 ID は自動的に増加します。つまり、ID が大きいほど、より多くの新規ユーザーが登録されます。したがって、SQL ステートメントを記述するときは、ID による順序を記述します。

$sql = "select id,username,createtime,createip from user order by id desc";
$result = mysqli_query($conn, $sql);

3. 判定結果

SQL文が正しく、結果変数$resultがtrueである限り、クエリの結果はtrueとなります。したがって、$result だけでなく、実装時にもう 1 つの判断ステップを追加する必要があります。さらに、クエリされる行数を決定します。

行数をクエリするには、mysqli_num_rows を使用できます。この関数では、$result クエリの結果変数が渡される必要があります。

結果がある場合はリストが表示されます。結果がない場合はプロンプトが生成されます。

コードスニペットは次のとおりです:

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

4. データのループ表示

すべての結果をリストの形式で表示する必要があります。テーブルの行と列はデータテーブルの行と列と同じです。簡単に表示できます。

まずテーブルを宣言し、ループするたびに1行を出力します。結果を各列に表示します。

使用される関数は mysqli_fetch_assoc で、連想配列を返します。

この関数は結果セットを読み取り、一度後方に移動します。読み込み結果がない場合はブール値 false を返します。したがって、mysqli_fetch_assoc と連携するために while を選択します。

各ループの結果は $row に代入され、$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. 編集と削除のコントロールを追加します

1. 削除する場合、単一選択削除と複数選択削除に分けられます。

2. 編集時にユーザーを選択します

ページでの削除と編集を実現するために、前のステップのコードにいくつかの小さな点を追加しました。

具体的な実装プロセスについて推論するために、実際のレンダリングを見てみましょう。結果は次のとおりです:

QQ截图20161010100211.png

実装プロセスにはいくつかの重要なポイントがあります:

1. 削除または編集を選択するときは、どのユーザーが編集または削除されるかを知るために、get メソッドを使用して ID を渡す必要があります。

2. 複数の選択を削除する場合は、複数のユーザーを渡す必要があります。したがって、フォーム form と post メソッドを使用して、このユーザー 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>';

7. データベース接続を閉じます

データベースを操作した後、データベース接続を閉じます。

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', 123456789, '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); ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜