Address
12 Rue de Cléry, 75002 Paris
Work Hours
Jeudi et Vendredi: de 9H à 18H
<html>
<head>
<title> ma page simple </title>
<meta charset="utf-8" />
</head>
<body>
Le premier exemple html
</body>
</html>
<?php
//connection a la base de données mysql
$connection = @mysqli_connect('localhost','root','','mabase');
//effacer l'enregistrement
$id = @$_GET['ID'];
if (!empty($id)) {
//echo ('ID = '.$id.'<br/>');
$sql = 'delete from nationalite where ID = '.$id;
//echo ('sql = '.$sql.'<br/>');
$requete = mysqli_query($connection,$sql);
}
//execution de la requete
$requete = mysqli_query($connection,'SELECT * from nationalite ORDER BY ID');
$table = "<table border=1>";
// affichage du resultat de la requetet
while ($ligne = mysqli_fetch_assoc($requete)) {
$table.= "<tr><td>".$ligne['ID']."</td><td>".$ligne['LIB'].'</td><td> <a href="?id='.$ligne['ID'].'">supprimer</a> </tr>';
}
//ferme la base de données
$table.="</table>";
@mysqli_close ($connection);
?>
<html>
<head>
<title> ma page simple </title>
<meta charset="utf-8" />
</head>
<body>
<?=$table?>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Refresh" content="0; url=prive.php" />
</head>
<body>
<p>Suivez ce lien</p>
</body>
</html>
<?php
$name = 'Marie';
echo $name.'<br/>';
echo 'texte<br/>';
echo 18;
?>
Ex :boucle while
<?php
//Initaliser deux variable
$nom = 'OLIVIER';
$longeur = strlen($nom);
//Initialiser un indice
$indice = 0;
//Tant que l'indice est inférieur à la longeur de la chaîne
while ($indice < $longeur) {
//Afficher le caractère correspondant à l'indice suivi
//d'un point.
echo "<b>$nom[$indice].</b>";
//Incrémenter l'indice
$indice++;
}
echo '<br/>';
?>
Ex :boucle do
<?php
//Initaliser deux variable
$nom = 'OLIVIER';
$longeur = strlen($nom);
//Initialiser un indice
$indice = 0;
//Tant que l'indice est inférieur à la longeur de la chaîne
do {
//Afficher le caractère correspondant à l'indice suivi
//d'un point.
echo "$nom[$indice].";
//Incrémenter l'indice
$indice++;
} while ($indice < $longeur);
echo '<br/>';
?>
Ex :boucle for
<?php
//Utilisation de la structure for pour un tableau
//à indices entier consécutifs
//initialisation du tableau
$couleurs = array('bleu','blanc','rouge');
$nombre = 3;
//Boucle utilisant un indice $i qui démarre à 0 ($i = 0)
//qui est incrémenté d'une unité à chaque itération ($i++);
//la boucle se poursuit tant que l'indice est inférieur au
//nombre d'éléments présents dans le tableau ($i < $nombre)
for ($i = 0; $i <$nombre; $i++) {
echo "$couleurs[$i]<br/>";
};
?>
<?php
//https://dengfamily.fr/marie/teste15.php
$nom = 'Dupont';
$est_vide = empty($nom);
//echo "\$est_vide =".$est_vide.'<br/>';
if ($est_vide) {
echo 'C\'est vide.<br/>';
} else {
echo 'Ce n\'est pas vide et $nom = ' .'\''. $nom.'\'<br/>';
}
var_dump($nom);
?>
<!doctype html>
<html>
<head>
<title>Navigateur</title>
</head>
<body>
Les informations sur le Navigateur sont :
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
</body>
</html>
<?php
//connection a la base de données mysql
$connection = @mysqli_connect('localhost','root','','mabase');
//effacer l'enregistrement
$id = @$_GET['ID'];
if (!empty($id)) {
//echo ('ID = '.$id.'<br/>');
$sql = 'delete from nationalite where ID = '.$id;
//echo ('sql = '.$sql.'<br/>');
$requete = mysqli_query($connection,$sql);
}
//execution de la requete
$requete = mysqli_query($connection,'SELECT * from nationalite ORDER BY ID');
// affichage du resultat de la requete
while ($ligne = mysqli_fetch_assoc($requete)) {
echo $ligne['ID'] . ' ' . $ligne['LIB'] . ' - <a href="?ID='.$ligne['ID'].'">supprimer</a> <br/>';
}
//ferme la base de données
@mysqli_close ($connection);
?>
<?php
//echo chr(122); //48-57
//65-90
//97-122
function random_string2($length=6){
$i=0;
$string = '';
while($i<$length){
$nb=rand(48,122);
if (($nb>=48 && $nb<=57)||($nb>=65 && $nb<=90)||($nb>=97 && $nb<=122)) {
$i++;
$string .= chr($nb);
}
}
return $string;
}
function random_string($length=6){
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$string = '';
for($i=0; $i<$length; $i++){
//$string .= $chars[rand(0, strlen($chars)-1)];
$string .= $chars[rand(0, strlen($chars)-1)];
}
return $string;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Code</title>
<meta charset="utf-8">
</head>
<body>
<center>
<h1>Exercice Code</h1>
<p>
Ecrire un script PHP qui calcule peut crée des codes aléatoire.
</p>
<form method="post" action="code.php">
<table border = 0>
<tr>
<td>Nouveau code</td>
<td><input type="submit" name="Valider" value="Valider"></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['Valider'])){
printf(random_string2());
}
?>
</center>
</body>
</html>
<!-- #INCLUDE FILE="ConnectDB.asp" -->
<%
dim appel
dim oRstStatut
set oRstStatut=Server.CreateObject("ADODB.Recordset")
vQuery = "select * FROM Programme"
set oRstStatut = ExecuteSQL(vQuery)
appel="<table border=1>" & vbCrLf
appel=appel & "<tr><td>id_programme</td><td>id_region</td><td>Libelle</td><td>Adresse</td><td>CodePostal</td><td>Ville</td><td>Livraison</td></tr>"
while not oRstStatut.EOF
appel=appel & "<tr><td>" & oRstStatut("id_programme") & "</td><td>" & oRstStatut("id_region") & "</td><td>" & oRstStatut("Libelle") & "</td><td>" & oRstStatut("Adresse") & "</td><td>" & oRstStatut("CodePostal") & "</td><td>" & oRstStatut("Ville") & "</td><td>" & oRstStatut("Livraison") & oRstStatut("NomContact") & oRstStatut("EmailContact") & "</td></tr>" & vbCrLf
oRstStatut.MoveNext
Wend
appel=appel & "</table>" & vbCrLf
%>
<!doctype html>
<html>
<head>
<title>Programme</title>
<meta charset='iso-8859-1'>
</head>
<body>
<h2>Liste des programmes</h2>
<%=appel%>
</body>
</html>
<!-- #INCLUDE FILE="ConnectDB.asp" -->
<%
dim appel
dim oRstStatut
set oRstStatut=Server.CreateObject("ADODB.Recordset")
vQuery = "select * FROM Programme"
set oRstStatut = ExecuteSQL(vQuery)
appel="<table border=1>" & vbCrLf
appel=appel & "<tr><td>id_programme</td><td>id_region</td><td>Libelle</td><td>Adresse</td><td>CodePostal</td><td>Ville</td><td>Livraison</td></tr>"
while not oRstStatut.EOF
appel=appel & "<tr><td>" & oRstStatut("id_programme") & "</td><td>" & oRstStatut("id_region") & "</td><td>" & oRstStatut("Libelle") & "</td><td>" & oRstStatut("Adresse") & "</td><td>" & oRstStatut("CodePostal") & "</td><td>" & oRstStatut("Ville") & "</td><td>" & oRstStatut("Livraison") & oRstStatut("NomContact") & oRstStatut("EmailContact") & "</td></tr>" & vbCrLf
oRstStatut.MoveNext
Wend
appel=appel & "</table>" & vbCrLf
response.write (appel)
%>
<html>
<head>
<title>Statut</title>
<meta charset="utf-8" />
<script>
function charger(){
console.log ('hello');
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("resultat").innerHTML = this.responseText;
}
}
var url = "http://localhost/appasp/marieProgramme_flux.asp";
console.log (url);
xmlhttp.open("GET", url, true);
xmlhttp.overrideMimeType('text/xml; charset=iso-8859-1');
xmlhttp.send();
}
</script>
</head>
<body onload="charger();">
<p id="resultat">
coucou
</p>
</body>
</html>
<!-- #INCLUDE FILE="ConnectDB.asp" -->
<%
varColorA = "#DF013E"
tabBannierHaute(0) = " bgcolor=""#CC0000"""
%>
<!doctype html>
<html>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
<head>
<!-- #INCLUDE FILE="includes/BanniereHaute.asp" -->
</head>
<link rel="stylesheet" type="text/css" href="css/style.css">
<body>
<%
dim oRstStatut
set oRstStatut=Server.CreateObject("ADODB.Recordset")
vQuery = "select * FROM _SCI"
set oRstStatut = ExecuteSQL(vQuery)
while not oRstStatut.EOF
Response.Write(oRstStatut("NomSCI") & "<br/>")
oRstStatut.MoveNext
Wend
%>
</body>
</html>
Ce logiciel permet de travailler le php :
https://github.com/leokhoa/laragon/releases/download/5.0.0/laragon-portable.zip
ex « laragon1.php»
<?php
echo 'bonjour Marie';
?>
6. Cliquer sur le bouton « Web » et ajouter dans l’URL « / laragon1.php »
REMARQUE :
On peux empêcher laragon de lire le fichier « index.php » en le renommant par exemple « index1.php »
DROP DATABASE IF EXISTS identiter
create database identiter
//crée une table
create table identite (
id identite int(3) not null auto_increment,
nom varchar(50),
prenom varchar(50),
age int (5),
nationaliter varchar(50)
primary key (idgens)
);
//inserer un enregistrement dans une table
INSERT INTO identite values ('null','Deng','Marie',18,'Française')
//visualiser le contenu de la table
SELECT * FROM identite
//selectionner sur une partie fixe
select * from produit where dateachat like "%Marie%";
//modifier un enregistrement
UPDATE identite SET age=22 WHERE nom='Deng' AND prenom='Ritsmey'
//supprimer un enregistrement
DELETE FROM identite WHERE prenom='Marie'
INSERT INTO nationalite values (1,'francais');
INSERT INTO nationalite values (2,'cambodge');
INSERT INTO nationalite values (3,'laos');
INSERT INTO nationalite values (4,'cameroun');
INSERT INTO identite values ('null','Deng','Marie',18,1);
INSERT INTO identite values ('null','Deng','Ritsmey',20,1);
INSERT INTO identite values ('null','Deng','Vimol',47,2);
INSERT INTO identite values ('null','Deng','Phoungeun',47,3);
INSERT INTO identite values ('null','Kemzeu','Gilles',47,4);
//liaison entre les deux tables
SELECT I.nom,I.prenom,I.age,N.LIB FROM identite I, nationalite N WHERE I.nationalite=N.ID
//Trier sur la colonne ID :
SELECT * from nationalite ORDER BY ID
//Cree une table :
CREATE TABLE nation (ID INT, LIB VARCHAR(50))
//Recherche de doublons :
SELECT COUNT(*), idgens FROM identite GROUP BY nom, prenom HAVING COUNT(*) > 1
//Assembler deux table (lien 1,n) :
//Exemple un élève est dans un groupe
SELECT E.nom, E.prenom, G.libelle FROM eleve E, groupe G WHERE E.idGroupe = G.idGroupe
//accent en français
mysqli_set_charset($ouverture, 'utf8');
//Créer la table produit
CREATE TABLE produit2 (
idproduit INT AUTO_INCREMENT NOT NULL,
designation VARCHAR(50),
prix FLOAT,
quantite INT,
tauxtva FLOAT,
dateachat DATE,
categorie VARCHAR(50),
PRIMARY KEY (idproduit)
);
//insérer un enregistrement la table produit
INSERT INTO produit2 VALUES (null, 'PC', 500, 75, 5.5, '2022-02-14', 'Informatique');
INSERT INTO produit2 VALUES (null, 'brosse à dent', 50, 100, 5.5, '2022-02-18', 'Beauté');
//effacer le premier enregistrement
DELETE FROM produit2 WHERE idproduit=1;
//modifier la quantité de brosse à dent à 51 et le prix=40 dont idproduit=2
UPDATE produit2 SET quantite=51, prix=40 WHERE idproduit=2;
//Voir tous les enregistrements de la table produit
SELECT * FROM produit;
//Compter le nombre d’enregistrement de la table produit
SELECT COUNT(*) FROM produit;
// Voir le prix minimum table produit
SELECT min(prix) FROM produit;
// Voir le prix maximum table produit
SELECT max(prix) FROM produit;
// Voir la somme des prix de la table produit
SELECT sum(prix) FROM produit;
//Voir la moyenne des prix de la table produit
SELECT avg(prix) FROM produit;
//Formatage de date heure/date
SELECT idplat, nom, prix, DATE_FORMAT(dateplat, '%H:%i:%s') AS date_fr FROM plat;
SELECT idplat, nom, prix, DATE_FORMAT(dateplat, '%d/%m/%Y') AS date_fr FROM plat;
//Ajouter une colonne
ALTER TABLE gens ADD LIB VARCHAR(20) NULL;
SELECT e.idetudiant, e.nom, e.prenom, e.email, c.nom AS classe FROM etudiant e, classe c WHERE e.idclasse=c.idclasse;
SELECT c.nom AS classe, e.* FROM classe c, etudiant e WHERE c.idclasse=e.idclasse ORDER BY c.nom;
SELECT c.nom AS classe, e.* FROM classe c LEFT JOIN etudiant e ON c.idclasse=e.idclasse ORDER BY c.nom;
SELECT c.nom AS classe, COUNT(e.idetudiant) AS nbeleve FROM classe c LEFT JOIN etudiant e ON c.idclasse=e.idclasse GROUP BY c.nom;
Un trigger est un ensemble d’ordres SQL lié à une seule table qui s’exécute automatiquement (sans appel) avant ou après les ordres SQL suivants insert, delete, update. Donc on peut écrire pour chaque table au maximum six triggers.
A l’instar des tables ou des vues, un trigger peut être créé, utilisé et à la fin supprimé.
Syntaxe :
create trigger nomTrigger [before, after] [insert, update, delete] on nomTable
for each row # pour chaque ligne de la table
begin
# traitement : ensemble d’ordres SQL
end
Dans le corps du trigger, le traitement peut contenir n’importe quel ordre SQL exécuté sur la table ou sur d’autres tables de la base de données. On peut aussi utiliser des alternatives ( if else) ou des boucles.
Dans un trigger, on peut manipuler l’enregistrement (la ligne de la table) selon l’odre SQL choisi (insert / delete / update) : l’enregistrement nouveau c’est pour insert, l’ancien enregistrement c’est pour le delete, l’ancien et le nouveau enregistrements c’est le update.
Nouveau enregistrement : new
Ancien enregistrement : old
Ordre SQL | Old | New |
Insert | X | |
Delete | X | |
update | X | X |
Pour exécuter plusieurs ordres SQL dans un trigger, on doit changer le délimiteur (;) des ordres SQL. On peut prendre n’importe quel caractère.
delimiter $
create trigger nomTrigger [before, after] [insert, update, delete] on nomTable
for each row # pour chaque ligne de la table
begin
# traitement : ensemble d’ordres SQL
# les ordres SQL se terminent par ;
end $
delimiter ;
Pour supprimer un trigger, on utilise l’ordre SQL drop.
drop trigger nomTrigger;
Les rôles des triggers sont divers et permettent entre autres :
Soit la base de données suivantes :
Drop database if exists cfa_2023_test;
create database cfa_2023_test ;
use cfa_2023_test;
create table promotion (
idpromo int (3) not null auto_increment ,
nom varchar(50),
salle varchar (50),
nbEtudiants int(3),
primary key (idpromo)
);
create table etudiant (
idetudiant int (3) not null auto_increment ,
nom varchar(50),
prenom varchar (50),
idpromo int(3) not null,
primary key(idetudiant),
foreign key (idpromo) references promotion (idpromo)
);
Réaliser le trigger suivant : A chaque insertion d’un étudiant dans la table Etudiant, le nbEtudiants dans la table promotion sera incrémenté de 1 pour la promotion de cet étudiant.
delimiter $
create trigger incrementation after insert on etudiant
for each row
begin
update promotion set nbEtudiants = nbEtudiants + 1 where idpromo = new.idpromo ;
end $
delimiter ;
Vérification de l’exécution du trigger :
Réaliser le trigger qui fait le travail inverse : à chaque suppression d’un étudiant, le nbEtudiants de sa promotion sera décrémenté de 1.
delimiter $
create trigger decrementation after delete on etudiant
for each row
begin
update promotion set nbEtudiants = nbEtudiants - 1 where idpromo = old.idpromo;
end $
delimiter ;
Vérification du trigger :
Exercice 1 : Ajouter dans la table Promotion, l’attribut budget Scolarité. Modifier les deux triggers pour qu’à chaque insertion ou suppression, on actualise le budget de scolarité de la classe. Ajouter dans la table Etudiant l’attribut montant de la scolarité.
Solution :
alter table promotion add budget float ;
alter table etudiant add montant float ;
update promotion set budget =0;
update etudiant set montant = 0;
drop trigger incrementation ;
delimiter $
create trigger incrementation after insert on etudiant
for each row
Begin
update promotion set nbEtudiants = nbEtudiants + 1 where idpromo = new.idpromo ;
update promotion set budget = budget + new.montant where idpromo = new.idpromo ;
end $
delimiter ;
Insertion de deux étudiants :
insert into etudiant values (null, « Lucas », « Julien », 1, 5000);
insert into etudiant values (null, « david », « Julia », 1, 5000);
Exercice 2 : A chaque suppression d’un étudiant, on stocke les noms et prénoms et la date de suppression dans une table archive anciens étudiants (idetudiant, nom, prenom, datefin).
create table anciens (
idetudiant int (3) not null auto_increment,
nom varchar(50),
prenom varchar(50),
datefin date,
primary key(idetudiant)
);
drop trigger decrementation ;
delimiter $
create trigger archivage after delete on etudiant
for each row
begin
update promotion set nbEtudiants = nbEtudiants - 1 where idpromo = old.idpromo;
update promotion set budget=budget - old.montant where idpromo = old.idpromo ;
insert into anciens values (null, old.nom, old.prenom, sysdate () );
end $
delimiter ;
Console log pour afficher le log en JavaScript
Appel fonction JavaScript lorsque la page html est chargée : onload= « fonction »
Crée une alerte :
<script>
function validation_HT(){
var total=document.getElementById("MontantHT").value;
total=total.replace(' ', '');
total=total.replace(',', '.');
total=Number(total);
console.log(total);
var somme_HT=document.getElementById("SommeMontantImputation").value;
if(somme_HT==total){
return true;
}else{
alert("Le cumul des montants (" + somme_HT + ") n'est pas égal au montant total("+ total +")");
return false;
}
}
</script>
Plus ajouter dans form : onsubmit= »return validation_HT(); »
#include <stdio.h>
int main(){
printf("Hello!");
return 0;
}
#include<stdio.h>
int main(){
char p [50];
int a;
printf ("saisir age : ");
scanf ("%d", &a);
printf ("saisir prenom : ");
scanf ("%s", &p);
printf ("vous avez %d ans et vous vous appellez %s", a, p);
return 0;
}
A RETENIR
%s pour les lettres
Char p [50]
Préparation SQL avec Excel :
=CONCATENER("insert into machin values ('";D4;"','";E4;"');")
Cela donne :
insert into machin values ('ANTONY 92','Les Jardins d'Antony');
Tableau croisé dynamique:
INSERTION (onglet du haut) <sélectionner le tableau<tableau croisé dynamique<mettre les champs dans les zone voulue<CREATION (onglet du haut) <Disposition du rapport<Afficher sous forme tabulaire< Disposition du rapport<Répéter toutes les étiquettes d’élément<Sous-totaux<Ne pas afficher les sous-totaux
Remarque
Si on veut changer la zone valeur en somme :
Petite flèche à droite du champ<Paramètre des champs de valeur<somme
insert into etudiant values (null, "Mendy", "David", "2003-12-20", "Alternant", 17, "d.mendy@gmail.com", 369, 1);
insert into etudiant values (null, "Deng", "Marie", "2003-06-30", "Alternant", 16, "m.deng@gmail.com", 753, 1);
insert into etudiant values (null, "Chardon", "Julia", "1995-02-05", "Initial", 15, "j.chardon@gmail.com", 951, 2);
public class Hello {
public static void main(String[] args) {
System.out.println("hello");
}
}
print("Hello!")
n=int(input("saisir votre âge : "))
print("Vous avez",n,"ans.")