Cours PHP BTS SIO - accès aux bases de données.
Réponse AJAX

Connexion à une base de données MySQL

Avant toute requête SQL, il faut que PHP soit connecté à une base de données.

Connexion au serveur de bases de données et sélection de la base de données (mysqli_connect) :
$CONNEXION = mysqli_connect ("serveur", "utilisateur", "mot de passe", "nom de la base");
Remarque : vous devez remplacer par vos propres valeurs : "serveur", "utilisateur", "mot de passe" et "nom de la base".

Connexion, sélection avec gestion d'erreur :
$CONNEXION = mysqli_connect ("serveur", "utilisateur", "mot de passe", "nom de la base") or die(mysqli_connect_error());

Accès aux bases de données MySQL en lecture

Récupération d'un jeu d'enregistrements dans une variable avec mysqli_query :
$rs_users = mysqli_query($CONNEXION, "select * from user");
Remarque : $rs_users est une variable PHP qui contient un jeu d'enregistrements, c'est à dire plusieurs lignes (ou une, ou zéro) de la table user. Dans notre exemple, $rs_users contient plusieurs utilisateurs.

Affichage du jeu d'enregistrements, grâce à une boucle while et mysqli_fetch_assoc :
while ($user = mysqli_fetch_assoc($rs_users))
{
  echo $user["usr_name"]."<br>";
}

Remarques :

Accès aux bases de données MySQL en insertion

Exécution de la requête d'insertion :
mysqli_query($CONNEXION, "insert into nom_table values (null, 18.5, 'alpha', \"l'autre\", 1261440000, '2008-01-15', 1, 0);

  • Votre requête ne marche pas, comment diagnostiquer l'erreur ?
  • Votre requête ne marche pas, quelles sont les erreurs les plus courantes ?
  • Quelques insertions fréquentes et délicates :
  • Page canevas-type pour ajout/edition/suppression

    Gestion des clients<br>
    <?php
        mysql_connect
    ("127.0.0.1", "root", "abcd");
        mysql_select_db
    ("spastore_db");

        
    // Traitement de la suppression d'un client
        
    if (isset($_GET["supp"]))
            mysqli_myquery
    ("DELETE from ma_table where client_id = {$_GET["supp"]};");
        
        
    // Traitement du formulaire d'édition et d'ajout
        
    if (isset($_POST["form_nom"]))
        
    {
            
    $nom = $_POST["form_nom"];
            
    $mel = $_POST["form_mel"];
            
    $id = $_POST["form_id"];
            
    if ($id)
                
    $sql = "UPDATE ma_table SET client_nom = '$nom', client_mel = '$mel'
                        WHERE client_id = 
    $id;";
            
    else
                
    $sql = "INSERT INTO ma_table VALUES(null, '$nom', '$mel')";
            mysqli_myquery
    ($sql) or die("Erreur n".mysql_errno()." dans la requte $sql :<br>".mysql_error()); 
        
    }
        
        
    // Formulaire unifié d'édition (d'un client existant) et d'ajout (d'un nouveau client)
        
    if (isset($_GET["edit"]))
        
    {
            
    if ($_GET["edit"])
            
    {
                
    $client_edit = mysqli_fetch_array(mysqli_myquery("select * from ma_table where client_id = {$_GET["edit"]}"));
                
    $nom = $client_edit["client_nom"];
                
    $mel = $client_edit["client_mel"];
                
    $id = $_GET["edit"];
                
    $message_bouton = "Modifier";
            
    }
            
    else
            
    {
                
    $nom = "";
                
    $mel= "";
                
    $id= "0";
                
    $message_bouton = "Ajouter";
            
    }
            
    echo "<form action={$_SERVER["PHP_SELF"]} method=post>";
            
    echo "nom : <input type=text name=form_nom value='$nom'><br>";
            
    echo "ml : <input type=text name=form_mel value='$mel'><br>";
            
    echo "<input type=hidden name=form_id value=$id>";
            
    echo "<input type=submit value=$message_bouton>";
            
    echo "</form>";
        
    }
        
        
    // affichage du contenu de la table
        
    $rs_clients = mysqli_myquery("select * from ma_table;");
        
    while ($client = mysqli_fetch_array($rs_clients))
        
    {
            
    echo "{$client["client_nom"]} {$client["client_mel"]} ";
            
    echo "<a href='?supp={$client["client_id"]}'>supprimer</a> ";
            
    echo "<a href='?edit={$client["client_id"]}'>editer</a><br>";
        
    }
        
    echo "<a href='?edit=0'>Ajouter</a><br>";
    ?>