English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel PHP de base

Tutoriel PHP avancé

PHP & MySQL

Manuel de référence PHP

Lecture des données MySQL PHP

Dans ce tutoriel, vous apprendrez à lire des enregistrements d'une table MySQL en utilisant PHP.

Lecture des données de la table de base de données

Jusqu'à présent, vous avez appris à créer une base de données et des tables ainsi qu'à insérer des données. Il est maintenant temps de récupérer les données insérées dans le tutoriel précédent. SQL SELECTLa phrase est utilisée pour lire les enregistrements de la table de base de données. Sa syntaxe de base est la suivante :

SELECT column1_name, column2_name, columnN_name FROM table_name ;

Utilisons l'expression SELECT pour effectuer une requête SQL, puis nous exécuterons cette requête SQL en la passant à la fonction PHP mysqli_query() pour récupérer les données du tableau.

Voyons nospersonsLa table de base de données a les enregistrements suivants :

+----+------------+-----------+----------------------+
| id | first_name | last_name | email |
+----+------------+-----------+----------------------+
|}}  1 | Peter | Parker | [email protected] |
|}}  2 | John | Rambo | [email protected] |
|}}  3 | Clark | Kent | [email protected] |
|}}  4 | John | Carter | [email protected] |
|}}  5 | Harry | Potter | [email protected] |
+----+------------+-----------+----------------------+

Dans l'exemple suivant, le code PHP sélectionne toutes les données stockées dans la table persons (en utilisant le caractère étoile (*) pour choisir toutes les données de la table.)

Exemple : méthode procédurale

<?php
/*Tenter de se connecter au serveur MySQL. Supposons que vous exécutez MySQL.
Serveur avec configuration par défaut (utilisateur sans mot de passe "root") */
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Vérifier la connexion
if($link === false){
    die("Erreur : impossible de se connecter. " . mysqli_connect_error());
}
 
//Tenter d'exécuter une requête de sélection
$sql = "SELECT * FROM persons";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        echo "<table>"
            echo "<tr>"
                echo "<th>id<"/th>"
                echo "<th>first_name<"/th>"
                echo "<th>last_name<"/th>"
                echo "<th>email<"/th>"
            echo "<"/tr>"
        while($row = mysqli_fetch_array($result)){
            echo "<tr>"
                echo "<td>" . $row['id'] . "<"/td>"
                echo "<td>" . $row['first_name'] . "<"/td>"
                echo "<td>" . $row['last_name'] . "<"/td>"
                echo "<td>" . $row['email'] . "<"/td>"
            echo "<"/tr>"
        }
        echo "<"/table>"
        // Libérer le jeu de résultats
        mysqli_free_result($result);
    }) else{
        echo "Aucun enregistrement trouvé correspondant à votre requête.";
    }
}) else{
    echo "Erreur : impossible d'exécuter $sql. " . mysqli_error($link);
}
 
//Fermer la connexion
mysqli_close($link);
?>

Exemple : méthode orientée objet

<?php
/*Tenter de se connecter au serveur MySQL. Supposons que vous exécutez MySQL.
Serveur avec configuration par défaut (utilisateur sans mot de passe "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Vérifier la connexion
if($mysqli === false){
    die("Erreur : impossible de se connecter. " . $mysqli->connect_error);
}
 
//Essayer de sélectionner l'exécution de la requête
$sql = "SELECT * FROM persons";
if($result = $mysqli->query($sql)){
    if($result->num_rows > 0){
        echo "<table>"
            echo "<tr>"
                echo "<th>id<"/th>"
                echo "<th>first_name<"/th>"
                echo "<th>last_name<"/th>"
                echo "<th>email<"/th>"
            echo "<"/tr>"
        while($row = $result->fetch_array()){
            echo "<tr>"
                echo "<td>" . $row['id'] . "<"/td>"
                echo "<td>" . $row['first_name'] . "<"/td>"
                echo "<td>" . $row['last_name'] . "<"/td>"
                echo "<td>" . $row['email'] . "<"/td>"
            echo "<"/tr>"
        }
        echo "<"/table>"
        //Libérer le jeu de résultats
        $result->free();
    }) else{
        echo "Aucun enregistrement trouvé correspondant à votre requête.";
    }
}) else{
    echo "Erreur : impossible d'exécuter $sql. " . $mysqli->error;
}
 
//Fermer la connexion
$mysqli->close();
?>

Exemple : méthode PDO

<?php
/*Tenter de se connecter au serveur MySQL. Supposons que vous exécutez MySQL.
Serveur avec configuration par défaut (utilisateur sans mot de passe "root") */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", \
    //Configurer le mode d'erreur PDO en mode exception
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}) catch(PDOException $e){
    die("Erreur : Impossible de se connecter. " . $e->getMessage());
}
 
//Essayer de sélectionner l'exécution de la requête
try{
    $sql = "SELECT * FROM persons";   
    $result = $pdo->query($sql);
    if($result->rowCount() > 0){
        echo "<table>"
            echo "<tr>"
                echo "<th>id<"/th>"
                echo "<th>first_name<"/th>"
                echo "<th>last_name<"/th>"
                echo "<th>email<"/th>"
            echo "<"/tr>"
        while($row = $result->fetch()){
            echo "<tr>"
                echo "<td>" . $row['id'] . "<"/td>"
                echo "<td>" . $row['first_name'] . "<"/td>"
                echo "<td>" . $row['last_name'] . "<"/td>"
                echo "<td>" . $row['email'] . "<"/td>"
            echo "<"/tr>"
        }
        echo "<"/table>"
        //Libérer le jeu de résultats
        unset($result);
    }) else{
        echo "Aucun enregistrement trouvé correspondant à votre requête.";
    }
}) catch(PDOException $e){
    die("Erreur : Impossible d'exécuter $sql. " . $e->getMessage());
}
 
//Fermer la connexion
unset($pdo);
?>

Utilisation du code (style de programme)

Dans l'exemple ci-dessus, les données retournées par la fonction mysqli_query() sont stockées dans la variable $result. Chaque appel de mysqli_fetch_array() retourne la prochaine ligne du jeu de résultats sous forme d'array.boucle whileutilisé pour parcourir toutes les lignes du jeu de résultats. Enfin, vous pouvez passer l'index ou le nom du champ au variable $row (par exemple $row['id'] ou $row[0], $row['first_name'] ou $row [1]), $row['last_name'] ou $row[2]), $row['email'] ou $row[3]) pour accéder à la valeur d'un champ individuel de la ligne.

Si vous souhaitez utiliserboucle forIl est possible d'obtenir la valeur du compteur de boucle ou le nombre de lignes retournées par la requête en passant le variable $result à la fonction mysqli_num_rows(). Cette valeur de compteur de boucle détermine le nombre de fois que la boucle doit s'exécuter.