Vous avez un serveur local qui fonctionne, avec PhPMyAdmin
Vous avez au moins une base de données créée dans PhP MyAdmin (voir cours Créer une base de données avec PhPMyAdmin )
Nous allons rappeler comment faire des requêtes SQL (celles vues dans le cours précédent PhPMyAdmin et SQ) puis nous allons directement les exécuter depuis une page web. Pour cela, nous ferons un rappel sur comment connecter une base de données dans un site web avec PDO. SI cela fonctionne déjà en ayant suivi le cours précédent, vous pouvez passer à la suite.
Enfin, nous verrons de nouvelles fonctionnalités SQL.
Vous pouvez suivre ce cours avec la base de données vue dans le cours sur l'utilisation de PhPMyAdmin et SQL pour laquelle sont fournies les corrections. Vous pouvez également le faire avec votre propre base de données.
Ce cours propose un aperçu des fonctionnalités et des instructions de SQL. Pour plus d'instruction SQL dans la documentation: https://sql.sh
La première étape pour utiliser une base de données directement dans votre page web, c'est de vous y connecter via votre page web.
Pour cela, nous allons utiliser PDO. Cette étape doit déjà fonctionner suite au cours PhPMyAdmin et SQL. Si c'est le cas, passez directement aux sections avec les requêtes SQL.
Pour établir une connexion avec une base de données en local, voici la procédure:
Sur votre serveur web (MAMP, XAMMP...), verifier que votre serveur web est activé.
Si vous ne l'avez pas, vous pouvez importer la base de données Filiere pour ce cours: Fichier Filière-2.sql à importer pour créer les tables de la base de données Filiere
Maintenant, vous devez avoir une base de données dans PhPMyAdmin avec laquelle vous allez vous connecter en local via votre site web.
Nous allons utiliser l'instruction suivante pour se connecter sur votre base de données, avec en gras les éléments à modifier selon votre cas.
Pour vous connecter, il vous faut les droits, vous vous authentifiez donc avec un login et un mot de passe.
Voici plus de détails, partie par partie:
$bdd = : l'accès à la base de données, une fois la connexion faite, est stocké dans une variable (ici, le nom de cette variable PhP est bdd)
new PDO( : demande de l'initialisation de l'accès
" : (premier paramètre composé de:)
mysql:host=localhost; : nom de la source des données
dbname=mabase; : nom de la base de données
charset=utf8 : encodage
", (fin du premier paramètre)
"mabase_login", login de l'utilisateur de la base
"mabase_mdp", mot de passe de l'utilisateur
array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); enregistremebt des erreurs si la connexion ne fonctionne pas.
<?php
$bdd = new PDO( "mysql:host=localhost;dbname=mabase;charset=utf8", "mabase_login", "mabase_mdp", array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
?>
A ce stade, nous récuperons l'erreur, mais nous ne l'affichons pas si la connexion échoue. Nous allons donc mettre cette instruction dans un bloc Try Catch (c'est à dire Essayer, si ça ne fonctionne pas Intercepter l'erreur), ci-contre en italique:
<?php try {
$bdd = new PDO( "mysql:host=localhost;dbname=mabase;charset=utf8", "mabase_login", "mabase_mdp", array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e) {
die('Erreur fatale : ' . $e->getMessage());
}
?>
Si vous avez téléchargé et importé le fichier Filiere-2.sql, , vous utiliserez mysql:host=localhost;dbname=Filiere. Sinon, utiliser les nom de votre base de données à la place de Filiere.
Il ne reste donc qu'à obtenir un login et un mot de passe pour la base de données
Nous allons maintenant créer un identifiant et un mot de passe pour la base de données via PhPmyAdmin, afin de nous connecter
<?php try {
$bdd = new PDO( "mysql:host=localhost;dbname=Filiere;charset=utf8", "mabase_login", "mabase_mdp", array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e) {
die('Erreur fatale : ' . $e->getMessage());
}
Sur la page PhPMyAdmin, aller sur l'accueil en cliquant sur l'icone de la maison en haut à gauche.
Dans l'onglet Compte utilisateur, vous voyez la liste des utilisateurs.
En dessous de la liste des comptes, cliquer sur Ajouter un compte d'utilisateur
Saisissez un nom utilisateur (celui que vous mettrez dans l'instruction vue précédemment), dans mon cas, j'ai mis lauren en minuscules.
Sélectionner Local à Nom d'hôte
Choisissez un mot de passe (celui que vous mettrez dans l'instruction vue précédemment). Pour la suite de l'exemple, j'ai renseigné un mot de passe particulièrement mauvais: admin
Afin de pouvoir réaliser l'ensemble des requêtes SQL, j'ai choisi dans Editer les privilièges, de Tout cocher.
Attention: pour votre site web, cela est déconseillé, car il serait alors possible d'effacer des données, des tables etc.
Cliquer sur Exécuter en bas à droite.
Le nouveau compte a été créé:
Retournez à votre code source PhP.
Remplacer, dans l'instruction, "mabase_login", "mabase_mdp" par votre login utilisateur et votre mot de passe nouvellement créé.
Dans mons cas, j'écrirais:
<?php try {
$bdd=new PDO("mysql:host=localhost;dbname=Filiere;charset=utf8", "lauren", "admin",
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e) {
die('Erreur fatale : ' . $e->getMessage());
}
<?php try {
$bdd = new PDO( "mysql:host=localhost;dbname=Filiere;charset=utf8", "mabase_login", "mabase_mdp", array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e) {
die('Erreur fatale : ' . $e->getMessage());
}
Vous pouvez intégrer cette instruction dans une page, afin de voir si la page s'affiche (connexion réussie) ou s'il y a une Erreur Fatale, dans quel cas la connexion n'a pas marché.
Veillez à ouvrir votre page web via votre serveur web, sinon cela ne fonctionnera pas
CAS 1: la page s'affiche, la connexion à la base de données a réussi
CAS 2: une erreur s'affiche, la connexion à la base de données n'a pas abouti
Vous êtes connecté.e.s à votre base de données, maintenant il reste à effectuer les requêtes depuis votre page web.
Le principe est très simple:
vous tapez votre requête dans une chaine de caractère en PhP
vous exécuter la requête en utilisant la variable utilisée pour la connexion avec votre base de données ($bdd dans la section précédente) ave query
Vous voulez faire la requête "SELECT * FROM Cours" ? ll vous suffit d'utiliser cette chaine de caractère avec query() et votre variable $bdd. Vous verrez dans les section suivante comment afficher les resultats pour les requêtes SELECT.
<?php
$instructions = "SELECT * FROM Cours";
$requete = $bdd -> query ($instructions);
?>
Imaginons que l'on souhaite changer faire un SELECT mais que l'on puisse changer les conditions après le WHERE (par exemple, les lettres que l'on cherche ou la clef primaire) ou les valeurs que l'on veut ajouter dans une base de données (par exemple, quand on crée un nouveau compte utilisateur, on ne sait pas en avance le nom, l'age et le mot de passe).
Dans ce cas, on fait un référence à la base de donnée ($bdd) avec prepare, puis on remplace, dans la requête, les valeurs par un marqueur avec un nom précédé de deux points. On associe dans bindValue le nom du marqueur et la valeur qui remplace le marqueur, puis on exécute.
Attention, ces marqueurs ne peuvent remplacer que des paramètres, après le mot clef WHERE par exemple. Par exemple, dans le deuxième exemple, la valeur de l'idCours pourra être modifié en fonction du contexte (utilisateur, formulaire, etc.)
<?php
$requete = $bdd->prepare("SELECT * FROM Cours");
$requete->execute();
?>
<?php
$requete = $bdd->prepare("SELECT * FROM Cours WHERE idCours=:monID");
$laValeurdeID= "3";
$requete->bindValue('monID',$laValeurdeID,PDO::PARAM_STR );
$requete->execute();
?>
Note importante: quand une requête renvoie quelque chose, elle renvoie un tableau associatif dans une variable PhP (l'équivalent d'une Map en JavaScript). Cette variable prend les valeurs de la requête, mais, "n'en fait rien". Pour les afficher, il faut les utiliser avec un echo par exemple. Voici un exemple, juste après, pour utiliser les valeurs retournées par une requête select, en les affichant.
La variable $requete (après le exécute), est d'un type un peu particulier. Pour récupérer les résultats, nous allons "aller chercher" (litteralement: fetch) les résultats ligne par ligne. Pour cela, on utilise une boucle while qui s'arrête quand il n'y a plus de résultat à traiter.
La ligne est un tableau associatif, où on récupère la valeur de la cellule en fonction de la clef (la clef est ici le nom de la colonne dans la base de données). Par exemple, pour récupérer la valeur dans la colonne Nom pour tous les resultats, on utilise, en plus de la requête précédente:
<?php
while ( $ligne = $requete->fetch() ) {
echo "<p> Valeur du champ:". $ligne['NomDeLaColonne']."</p>";
}
?>
Rappel:
Pour créer une nouvelle occurrence :
INSERT INTO maTable ( attribut1, attribut2, attribut3) VALUES (valeur1Attribut1, valeur1Attribut2, valeur1Attribut3)
Pour créer plusieurs occurences:
INSERT INTO maTable ( attribut1, attribut2, attribut3) VALUES (valeur1Attribut1, valeur1Attribut2, valeur1Attribut3), (valeur2Attribut1, valeur2Attribut2, valeur2Attribut3), (valeur3Attribut1, valeur3Attribut2, valeur3Attribut3),
Pour supprimer une occurrence:
DELETE FROM maTable WHERE maClefPrimaire = valeurDeClefPrimaire
On peut également utiliser n'importe quelle condition avec WHERE
Aller dans PhPMyAdmin, puis sur l'onglet SQL
Ecrivez la requête pour créer une nouvelle UE:
Votre occurrence a été ajouté dans votre table:
<?php
$requeteInsert= "INSERT INTO UE (idUE, Nom, CreditECTS) VALUES (NULL, 'Analyse de donnée', '4')";
$insertion=$bdd -> query($requeteInsert);
?>
<? php
$requeteInsert= $bdd -> prepare("INSERT INTO UE (idUE, Nom, CreditECTS) VALUES (NULL, :nom,:credits)");
$leNom= "Environnement numerique";
$lesCredits = "4";
$requeteInsert->bindValue('credits', $lesCredits,PDO::PARAM_STR );
$requeteInsert->bindValue('nom',$leNom,PDO::PARAM_STR );
$requeteInsert->execute();
?>
Aller dans PhPMyAdmin, puis sur l'onglet SQL
Ecrivez la requête pour supprimer la dernière UE créée.
Votre occurrence a été supprimée de votre table:
<?php
$requeteDelete= "DELETE FROM UE WHERE idUE='10'";
$insertion=$bdd -> query($requeteDelete);
?>
<?php
$requeteDelete=$bdd -> prepare("DELETE FROM UE WHERE idUE=:id");
$leID="11";
$requeteDelete->bindValue('id',$leID,PDO::PARAM_STR );
$requeteDelete->execute();
?>
Si une table s'appelle MATABLE dans une base de données, on peut sélectionner toutes les données de la table avec l'instruction suivante:
SELECT * FROM MATABLE
Dans PhPMyAdmin, selectionner une base de données (ici, Filiere) dans l'aborescence à gauche.
Aller dans l'onglet SQL. Nous allons tenter de sélectionner toutes les évaluations enregistrées dans la base de données.
Nous souhaitons donc "sélectionner" + "tous les attributs" des occurrences + "de la table Evaluation".
La requête correspondante est donc:
SELECT * FROM Evaluation
Ecrivez cette requête dans l'encadré dédié et cliquez sur Exécuter
Une fois exécutée, l'ensemble des occurences de la table (il y en a 4 ici) et l'ensemble des attributs (idEvaluation, Modalites, Debut, Fin, Sujet et idCours) est affiché
Dans PhPMyAdmin, en étant dans la bonne base de données:
Etape 1: cliquer sur l'onglet SQL
Etape 2: taper SELECT * FROM Cours dans l'encadré
Etape 3: cliquer sur Exécuter
Etape 4: les résultats apparaissent
La première chose est de récupérer les résultats dans une variable. Pour cela on peut utiliser une requête ou une requête préparé
Si on a choisi de faire une requête traditionnelle:
$instructions= "SELECT * FROM Cours";
$requete=$bdd -> query($instructions);
Si on a choisi de faire une requête préparée (attention, le nom de la table n'est PAS un paramètre):
$requete=$bdd -> prepare("SELECT * FROM Cours");
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p> idCours: ". $ligne['idCours'].", Nom du cours: ". $ligne['NomCours'].", UE asociée au cours: ". $ligne['idUE']."</p>";
}
Rappel:
SELECT NomDeLaColonne FROM MATABLE
SELECT NomDeLaColonneA , NomDeLaColonneB FROM MATABLE
Dans PhPMyAdmin, selectionner une base de données (ici, Filiere) et ller dans l'onglet SQL.
Nous souhaitons donc "sélectionner" + "les modalités, la fin et le sujet" des occurrences + "de la table Evaluation".
La requête correspondante est donc:
SELECT Modalites, Fin, Sujet FROM Evaluation
Ecrivez cette requête dans l'encadré dédié et cliquez sur Exécuter.
Seuls ces trois attributs sont affichés.
Dans PhPMyAdmin, en étant dans la bonne base de données:
Etape 1: cliquer sur l'onglet SQL
Etape 2: taper SELECT NomCours FROM Cours dans l'encadré
Etape 3: cliquer sur Exécuter
Etape 4: les résultats apparaissent
La première chose est de récupérer les résultats dans une variable. Pour cela on peut utiliser une requête ou une requête préparé
Si on a choisi de faire une requête traditionnelle:
$instructions= "SELECT NomCours FROM Cours";
$requete=$bdd -> query($instructions);
Si on a choisi de faire une requête préparée:
$requete=$bdd -> prepare("SELECT NomCours FROM Cours");
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p> "Nom du cours ". $ligne['NomCours']."</p>";
}
Dans PhPMyAdmin, en étant dans la bonne base de données:
Etape 1: cliquer sur l'onglet SQL
Etape 2: taper SELECT NomPersonne,PrenomPersonne FROM Personne
Etape 3: cliquer sur Exécuter
Etape 4: les résultats apparaissent
La première chose est de récupérer les résultats dans une variable. Pour cela on peut utiliser une requête ou une requête préparé
Si on a choisi de faire une requête traditionnelle:
$instructions= "SELECT NomPersonne,PrenomPersonne FROM Personne";
$requete=$bdd -> query($instructions);
Si on a choisi de faire une requête préparée:
$requete=$bdd -> prepare("SELECT NomPersonne,PrenomPersonne FROM Personne");
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p>Nom :". $ligne['NomPersonne'].", prénom: ". $ligne['PrenomPersonne']."</p>";
}
On rajoute le mot clef WHERE à la fin de la requête SELECT suivi de la contrainte.
Cela est indépendant de la première partie de la requête, où on choisit les attributs à retourner par la requête
SELECT * FROM MATABLE Colonne1="maValeur"
SELECT Colonne2, Colonne3 FROM MATABLE Colonne1="maValeur"
SELECT * FROM Evaluation WHERE idCours="2"
SELECT Modalites, Sujet FROM Evaluation WHERE idCours="2"
Dans PhPMyAdmin, en étant dans la bonne base de données:
Etape 1: cliquer sur l'onglet SQL
Etape 2: taper SELECT * FROM Personne WHERE NomPersonne="Monster"
Etape 3: cliquer sur Exécuter
Etape 4: les résultats apparaissent
La première chose est de récupérer les résultats dans une variable. Pour cela on peut utiliser une requête ou une requête préparé
Si on a choisi de faire une requête traditionnelle:
$instructions= " SELECT * FROM Personne WHERE NomPersonne='Monster' ";
$requete=$bdd -> query($instructions);
Si on a choisi de faire une requête préparée:
$requete=$bdd -> prepare(" SELECT * FROM Personne WHERE NomPersonne=:nom");
$laValeur='Monster';
$requete->bindValue('nom',$laValeur,PDO::PARAM_STR );
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p>Nom :". $ligne['NomPersonne'].", prénom: ". $ligne['PrenomPersonne']."</p>";
}
SELECT * FROM MATABLE WHERE Colonne1 IN ( "maValeur1", "maValeur2" )
SELECT * FROM Evaluation WHERE Modalites IN ("Dossier", "Projet")
SELECT Sujet, Fin FROM Evaluation WHERE Modalites IN ("Dossier", "Projet")
Dans PhPMyAdmin, en étant dans la bonne base de données:
Etape 1: cliquer sur l'onglet SQL
Etape 2: taper SELECT * FROM Personne WHERE NomPersonne IN ("Monster", "Thevin", "JadorelUCO") dans l'encadré
Etape 3: cliquer sur Exécuter
Etape 4: les résultats apparaissent
La première chose est de récupérer les résultats dans une variable. Pour cela on peut utiliser une requête ou une requête préparé
Si on a choisi de faire une requête traditionnelle:
$instructions= "SELECT * FROM Personne WHERE NomPersonne IN ('Monster', 'Thevin', 'JadorelUCO') ";
$requete=$bdd -> query($instructions);
Si on a choisi de faire une requête préparée:
$requete=$bdd -> prepare("SELECT * FROM Personne WHERE NomPersonne IN (:valeur1, :valeur2, :valeur3)");
$laValeur1="Monster";
$laValeur2="Thevin";
$laValeur3= "JadorelUCO";
$requete->bindValue('valeur1',$laValeur1,PDO::PARAM_STR );
$requete->bindValue('valeur2',$laValeur2,PDO::PARAM_STR );
$requete->bindValue('valeur3',$laValeur3,PDO::PARAM_STR );
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p>Nom :". $ligne['NomPersonne'].", prénom: ". $ligne['PrenomPersonne']."</p>";
}
SELECT * FROM MATABLE WHERE Colonne1 < "maValeur1"
SELECT * FROM MATABLE WHERE Colonne1 > "maValeur2"
SELECT * FROM MATABLE WHERE Colonne1 BETWEEN "maValeur1" AND "maValeur2"
Dans PhPMyAdmin, en étant dans la bonne base de données:
Etape 1: cliquer sur l'onglet SQL
Etape 2: taper SELECT * FROM Personne WHERE idPersonne BETWEEN "4" AND "25" dans l'encadré
Etape 3: cliquer sur Exécuter
Etape 4: les résultats apparaissent
La première chose est de récupérer les résultats dans une variable. Pour cela on peut utiliser une requête ou une requête préparé
Si on a choisi de faire une requête traditionnelle:
$instructions= "SELECT * FROM Personne WHERE idPersonne BETWEEN '4' AND '25' ";
$requete=$bdd -> query($instructions);
Si on a choisi de faire une requête préparée:
$requete=$bdd -> prepare("SELECT * FROM Personne WHERE idPersonne BETWEEN :valeurUn AND :valeurDeux");
$laValeurUn="4";
$laValeurDeux="25";
$requete->bindValue('valeurUn',$laValeurUn,PDO::PARAM_STR );
$requete->bindValue('valeurDeux',$laValeurDeux,PDO::PARAM_STR );
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p>Nom :". $ligne['NomPersonne'].", prénom: ". $ligne['PrenomPersonne']."</p>";
}
Maintenant, voyons un peu plus de possibilités avec SQL
En SQL, vous pouvez mettre à jour des valeurs de la table selon certaines conditions spécifiées avec un WHERE par exemple. Il s'agit de UPDATE. On pourra modifier un mot de passe d'un compte utilisateur en fonction de la clef primaire par exemple.
Si vous vous souvenez bien, dans une base de données, en théorie, on ne stocke que ce que l'on ne peut pas récupérer autrement. Par exemple, on ne stockera pas le nombre d'adhérants s'il suffit de compter le nombre d'occurences dans une table Adhérent.
En SQL, vous pouvez créer vos propres "colonnes" qui permettent de récuperer ce type d'informations, en utilisant par exemple des instructions SQL comme COUNT pour compter les occurences, faire des calculs, connaitre le minimum ou le maximum de certaines valeurs, faire des sommes, etc.
Nous verrons quelques instructions utiles pour manipuler les dates.
Les requêtes UPDATE permettent de mettre à jour une valeur ancienneValeur par nouvelleValeur dans la colonne attribut de la table maTable pour toutes les occurrences de la table avec l'instruction suivante. On utilise le mot clef UPDATE, suivi du nom de la table, puis du mot clef SET, du nom de l'attribut où la valeur doit être modifié puis de "=" et de la nouvelle valeur qu'il doit prendre:
UPDATE maTable SET attribut=nouvelleValeur
Imaginons, par exemple, que l'on souhaite remplacer tous les prénoms (attribut prenom) d'une table Personne par "M. ou Mme ou Autre". On écrira:
UPDATE Personne SET prenom="M. ou Mme ou Autre";
Il est possible de ne faire des modifications que sous certaines conditions, en ajoutant un WHERE
UPDATE maTable SET attribut=nouvelleValeur WHERE condition
Imaginons, par exemple, que l'on souhaite remplacer tous les prénoms (attribut prenom) d'une table Personne par "Mme" si c'est une personne enregistrée avec un genre F dans la base de données. On écrira:
UPDATE Personne SET prenom="Mme" WHERE genre="F";
UPDATE Cours SET NomCours="Algo" WHERE idCours="1"
Si on a choisi de faire une requête préparée:
$requete=$bdd -> prepare("UPDATE Cours SET NomCours='Algo' WHERE idCours=:monId")
");
$lIDCHoisi="1";
$requete->bindValue('monId',$lIDCHoisi,PDO::PARAM_STR );
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p>Nom :". $ligne['NomCours']." </p>";
}
COUNT permet de compter le nombre d'occurences récupérées, par exemple via un SELECT. On utilise le mot clef COUNT autour d'un * pour obtenir le nombre d'occurences dans une table
SELECT COUNT(*) FROM maTable
Imaginons, par exemple, que l'on souhaite connaitre le nombre de personnes enregistrées dans une table Personne. On écrira:
SELECT COUNT(*) FROM Personne
Il est possible de ne compter que les occurrences respectant certaines conditions, en ajoutant un WHERE
SELECT COUNT(*) FROM maTable WHERE condition
Imaginons, par exemple, que l'on souhaite compter le nombre de personnes enregistrées dans une table Personne qui ont un genre F dans la base de données. On écrira:
SELECT COUNT(*) FROM Personne WHERE genre="F";
SELECT COUNT(*) FROM UE
COUNT(*)
SELECT COUNT(*) FROM UE WHERE Nom LIKE "%a%"
Si on a choisi de faire une requête préparée:
$requete=$bdd -> prepare("SELECT COUNT(*) FROM UE WHERE Nom LIKE :like ")
");
$monLike="%a%";
$requete->bindValue('like',$monLike,PDO::PARAM_STR );
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p>Nombre :". $ligne['Count(*)']." </p>";
}
Pour connaitre la date du jour (Jour, mois, année), vous pouvez utiliser CURRENT_DATE. Pour connaitre la date actuelle, il suffit de faire:
SELECT CURRENT_DATE
Pour connaitre l'heure en cours, vous pouvez utiliser CURRENT_TIME. Pour connaitre l'heure actuelle, il suffit de faire:
SELECT CURRENT_TIME
Pour connaitrela date et l'heure en cours, vous pouvez utiliser CURRENT_TIMESTAMP. Pour connaitre l'heure actuelle, il suffit de faire:
SELECT CURRENT_TIMESTAMP
Si on a choisi de faire une requête préparée:
$requete=$bdd -> prepare("SELECT CURRENT_TIMESTAMP ");
$requete->execute();
Il reste maintenant à afficher les éléments des resultats avec fetch, en affichant chacune des valeurs des colonnes:
while ( $ligne = $requete->fetch() ) {
echo "<p>Nombre :". $ligne['CURRENT_TIMESTAMP']." </p>";
}
SELECT * FROM Evaluation WHERE fin> CURRENT_TIMESTAMP
SELECT Evaluation.Modalites, Cours.NomCours FROM Evaluation INNER JOIN COURS ON Evaluation.idCours=Cours.idCours WHERE fin> CURRENT_TIMESTAMP
Pour connaitre l'année d'une date, on encadre la date par YEAR ( ). Par exemple pour connaitre l'année d'aujourd'hui, vous pouvez l'utiliser avec CURRENT_DATE.
SELECT YEAR(CURRENT_DATE)
Pour connaitre le mois d'une date, on encadre la date par MONTH( ) pour le numéro, et MONTHNAME( ) pour le nom du mois. Par exemple pour connaitre le mois d'aujourd'hui, vous pouvez les utiliser avec CURRENT_DATE.
SELECT MONTH(CURRENT_DATE)
SELECT MONTHNAME(CURRENT_DATE)
Pour connaitre le jour d'une date, on encadre la date par DAY( ) pour le numéro, et DAYNAME( ) pour le nom du jour de la semaine. Par exemple pour connaitre le jour d'aujourd'hui, vous pouvez les utiliser avec CURRENT_DATE.
SELECT DAY(CURRENT_DATE)
SELECT DAYNAME(CURRENT_DATE)
SELECT DAYNAME(Fin), Modalites, Debut, Fin FROM Evaluation
SELECT * FROM Evaluation WHERE DAYNAME(fin)= "Tuesday"
On peut faire des sommes des valeurs des colonnes avec SUM. Par exemple, si on veut calculer la somme des notes d'une table resultat, on pourrait écrire:
SELECT SUM(notes) FROM Resultat
On peut calculer la moyenne en divisant par le nombre d'occurrences:
SELECT (SUM(notes)/COUNT(*) FROM Resultat
On peut faire des moyennes des valeurs des colonnes avec AVG. Par exemple, si on veut calculer la moyenne des notes d'une table Resultat, on pourrait écrire:
SELECT AVG(notes) FROM Resultat
On peut le maximum des valeurs des colonnes avec MAX. Par exemple, si on veut connaitre la note maximale d'une table Resultat, on pourrait écrire:
SELECT MAX(notes) FROM Resultat
On peut le minimum des valeurs des colonnes avec MIN. Par exemple, si on veut connaitre la note minimal d'une table Resultat, on pourrait écrire:
SELECT MIN(notes) FROM Resultat
SELECT AVG(notes) FROM Resultat WHERE idEtudiant='5'