Fonctionnement de la base de données PHP : afficher une liste par étapes
Dans le chapitre précédent, nous avons suivi nos « Huit étapes pour se connecter à la base de données » et terminé avec succès l'enregistrement des utilisateurs.
Créons un affichage de liste d'utilisateurs en arrière-plan. Dans le processus de gestion proprement dit, nous pouvons modifier individuellement le mot de passe de l'utilisateur et les informations relatives à l'utilisateur via le backend.
En arrière-plan, tous les utilisateurs doivent être affichés dans un tableau, qui est la liste des utilisateurs.
1. La connexion à la base de données, le jugement des erreurs et la définition du jeu de caractères
La connexion, le jugement des erreurs et la sélection du jeu de caractères ont tous été discutés. au-dessus de. L'ancienne règle, la première étape consiste à utiliser mysqli_connect pour se connecter à la base de données. Comme nous l'avons dit dans la première section, vous pouvez ajouter une sélection de bibliothèque dans le quatrième paramètre. Vous n'avez plus besoin d'utiliser la fonction mysqli_select_db pour sélectionner à nouveau une base de données ultérieurement.
Le type renvoyé est une ressource de connexion. Nous devons transmettre des ressources dans mysqli_errno, mysqli_error et mysqli_set_charset pour déterminer quelle connexion nous opérons.
$conn = mysqli_connect('localhost', 'root', 'secret', 'book'); if (mysqli_errno($conn)) { mysqli_error($conn); exit; } mysqli_set_charset($conn, 'utf8');
2. Préparez et envoyez l'instruction SQL
L'ID utilisateur, le nom d'utilisateur, l'heure et l'adresse IP que nous devons interroger seront Rechercher. dehors. Et utilisez order by id pour trier par ordre décroissant.
Selon la pensée humaine, les gens aiment généralement voir le dernier groupe d'utilisateurs enregistrés. L'ID augmente automatiquement, c'est-à-dire que plus l'ID est grand, plus de nouveaux utilisateurs sont enregistrés. Par conséquent, lorsque nous écrivons l’instruction SQL, nous écrivons l’ordre par identifiant desc.
$sql = "select id,username,createtime,createip from user order by id desc"; $result = mysqli_query($conn, $sql);
3. Résultat du jugement
Tant que l'instruction SQL est correcte, la variable de résultat $result sera vraie. Par conséquent, nous devons ajouter une étape supplémentaire de jugement lors de la mise en œuvre, pas seulement $result. De plus, déterminez le nombre de lignes interrogées.
Pour interroger le nombre de lignes, vous pouvez utiliser mysqli_num_rows. Cette fonction nécessite que la variable de résultat de la requête $result soit transmise.
S'il y a des résultats, la liste sera affichée. S'il n'y a aucun résultat, nous pouvons générer une invite.
L'extrait de code est le suivant :
if($result && mysqli_num_rows($result)){ //显示列表代码段 }else{ //提示没有结果的代码段 }
4. Données d'affichage de la boucle
Nous devons afficher tous les résultats dans la forme d'une liste. Les lignes et colonnes d'un tableau sont les mêmes que celles d'un tableau de données. Montré est facile à afficher.
Déclarez d'abord une table et affichez une ligne à chaque boucle. Affichez les résultats dans chaque colonne.
La fonction utilisée est mysqli_fetch_assoc, qui renvoie un tableau associatif.
Cette fonction lit un ensemble de résultats et recule une fois. Lorsqu'il n'y a aucun résultat après la lecture, une valeur booléenne false sera renvoyée. Par conséquent, nous choisissons while de coopérer avec mysqli_fetch_assoc.
Le résultat de chaque boucle est attribué à $row, et $row est un tableau associatif. Ainsi, dans cette boucle, je peux afficher à la fois des lignes et des colonnes.
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. Ajouter un contrôle d'édition et de suppression
1. Lors de la suppression, nous le divisons en suppression à sélection unique et suppression à sélection multiple. .
2. Lors de l'édition, nous sélectionnerons un utilisateur
Nous avons ajouté quelques petites choses au code à l'étape précédente pour implémenter la suppression et la modification sur la page.
Jetons un coup d'œil aux rendus réels pour raisonner sur le processus de mise en œuvre spécifique. L'effet est le suivant :
Il y a plusieurs points clés dans le. processus de mise en œuvre :
1. Lors de la sélection de supprimer ou de modifier, vous devez utiliser la méthode get pour transmettre l'ID, afin que nous sachions quel utilisateur doit être modifié ou supprimé.
2. Lors de la suppression de plusieurs sélections, vous devez transmettre plusieurs utilisateurs. Par conséquent, nous pouvons utiliser le formulaire form et la méthode post pour soumettre ce lot d’ID utilisateur.
Pour une suppression à sélection unique, nous pouvons suivre delete.php et ajouter l'identifiant et la valeur pour faire une demande de suppression lorsque vous cliquez dessus.
echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>';
Il en va de même pour la modification des utilisateurs. Nous ajoutons ? à edit.php et écrivons l'identifiant et la valeur. Lorsque nous cliquons, nous saurons quel utilisateur doit être modifié.
echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>';
Pour la suppression à sélection multiple, nous devons utiliser la case à cocher en HTML Lorsque nous transmettons plusieurs ID utilisateur, nous devons ajouter id[] après le nom. Utilisez un formulaire pour envelopper le tableau et ajoutez une balise de soumission en dehors du tableau pour obtenir une suppression à sélection multiple.
<form action="delete.php" method="post"> echo '<td><input type="checkbox" name="id[]" value="' . $row['id'] . '" /></td>'; echo '<input type="submit" value="删除" />'; echo '</form>';
Le code est le suivant :
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. Fermez la connexion à la base de données
Après avoir fini d'utiliser le base de données, fermez la connexion à la base de données.
mysqli_close($conn);
Le code de la liste d'utilisateurs list.php que nous avons implémenté est le suivant :
<?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); ?>