Skip to content
Snippets Groups Projects
Commit 247d21c0 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

TP2 terminé.

parent 4c2e4a1d
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="iut-dev@vps1.sl-projects.com" uuid="bc5c42cd-ea92-40db-92cb-1c6eedb4c83d">
<driver-ref>mariadb</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.mariadb.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mariadb://vps1.sl-projects.com:3306/iut-dev</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpProjectSharedConfiguration" php_language_level="7.4" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$/TP2/ex4/conn.php" dialect="GenericSQL" />
<file url="PROJECT" dialect="MariaDB" />
</component>
</project>
\ No newline at end of file
File added
<?php
class Auteur
{
private int $numAuteur;
private string $nom;
private string $prenom;
private string $nationalite;
private int $anneeNaissance;
/**
* @param int $numAuteur
* @param string|null $nom
* @param string|null $prenom
* @param string|null $nationalite
* @param int|null $anneeNaissance
*/
public function __construct(int $numAuteur, string $nom = null, string $prenom = null, string $nationalite = null, int $anneeNaissance = null)
{
$this->numAuteur = $numAuteur;
if($nom){
$this->nom = $nom;
$this->prenom = $prenom;
$this->nationalite = $nationalite;
$this->anneeNaissance = $anneeNaissance;
}
}
/**
* @return int
*/
public function getNumAuteur(): int
{
return $this->numAuteur;
}
/**
* @param int $numAuteur
*/
public function setNumAuteur(int $numAuteur): void
{
$this->numAuteur = $numAuteur;
}
/**
* @return string
*/
public function getNom(): string
{
return $this->nom;
}
/**
* @param string $nom
*/
public function setNom(string $nom): void
{
$this->nom = $nom;
}
/**
* @return string
*/
public function getPrenom(): string
{
return $this->prenom;
}
/**
* @param string $prenom
*/
public function setPrenom(string $prenom): void
{
$this->prenom = $prenom;
}
/**
* @return string
*/
public function getNationalite(): string
{
return $this->nationalite;
}
/**
* @param string $nationalite
*/
public function setNationalite(string $nationalite): void
{
$this->nationalite = $nationalite;
}
/**
* @return int
*/
public function getAnneeNaissance(): int
{
return $this->anneeNaissance;
}
/**
* @param int $anneeNaissance
*/
public function setAnneeNaissance(int $anneeNaissance): void
{
$this->anneeNaissance = $anneeNaissance;
}
/**
* @return void
*/
public function afficher(): void
{
echo "<p>Nom: " . $this->nom . " Prénom: " . $this->prenom . "</p>";
}
}
\ No newline at end of file
<?php
require "Auteur.php";
$aut1 = new Auteur(1);
$aut2 = new Auteur(2, "Clavier", "Christian", "France", 1969);
$aut1->afficher();
$aut2->afficher();
\ No newline at end of file
<?php
class Auteur
{
private int $numAuteur;
private string $nom;
private string $prenom;
private string $nationalite;
private int $anneeNaissance;
/**
* @param int $numAuteur
* @param string|null $nom
* @param string|null $prenom
* @param string|null $nationalite
* @param int|null $anneeNaissance
*/
public function __construct(int $numAuteur, string $nom = null, string $prenom = null, string $nationalite = null, int $anneeNaissance = null)
{
$this->numAuteur = $numAuteur;
if($nom){
$this->nom = $nom;
$this->prenom = $prenom;
$this->nationalite = $nationalite;
$this->anneeNaissance = $anneeNaissance;
}else{
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->prepare("SELECT * FROM auteur WHERE numAuteur = ?");
$query->execute([$numAuteur]);
$data = $query->fetch(PDO::FETCH_ASSOC);
$this->nom = $data['nom'];
$this->prenom = $data['prenom'];
$this->nationalite = $data['nationalite'];
$this->anneeNaissance = $data['anneeNaissance'];
}
}
/**
* @return int
*/
public function getNumAuteur(): int
{
return $this->numAuteur;
}
/**
* @param int $numAuteur
*/
public function setNumAuteur(int $numAuteur): void
{
$this->numAuteur = $numAuteur;
}
/**
* @return string
*/
public function getNom(): string
{
return $this->nom;
}
/**
* @param string $nom
*/
public function setNom(string $nom): void
{
$this->nom = $nom;
}
/**
* @return string
*/
public function getPrenom(): string
{
return $this->prenom;
}
/**
* @param string $prenom
*/
public function setPrenom(string $prenom): void
{
$this->prenom = $prenom;
}
/**
* @return string
*/
public function getNationalite(): string
{
return $this->nationalite;
}
/**
* @param string $nationalite
*/
public function setNationalite(string $nationalite): void
{
$this->nationalite = $nationalite;
}
/**
* @return int
*/
public function getAnneeNaissance(): int
{
return $this->anneeNaissance;
}
/**
* @param int $anneeNaissance
*/
public function setAnneeNaissance(int $anneeNaissance): void
{
$this->anneeNaissance = $anneeNaissance;
}
/**
* @return void
*/
public function afficher(): void
{
echo "<p>Nom: " . $this->nom . " Prénom: " . $this->prenom . "</p>";
}
public static function getAllAuteurs(): array
{
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->query("SELECT * FROM auteur");
$data = $query->fetchAll(PDO::FETCH_ASSOC);
$array = array();
foreach ($data as $auteur){
$array[] = new Auteur($auteur['numAuteur']);
}
return $array;
}
}
\ No newline at end of file
<?php
class Connexion
{
// attributs de la classe Connexion paramètres de connexion à la base
static private $hostname = 'localhost';
static private $database = 'iut-dev';
static private $login = 'iut-dev-user';
static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
// attribut de la classe Connexion paramètres d'encodage
static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
// attribut de la classe Connexion qui recevra l'instance PDO
static private $pdo;
// getter de pdo
static public function pdo()
{
return self::$pdo;
}
// fonction de connexion
static public function connect()
{
$h = self::$hostname;
$d = self::$database;
$l = self::$login;
$p = self::$password;
$t = self::$tabUTF8;
try {
self::$pdo = new PDO("mysql:host=$h;dbname=$d", $l, $p, $t);
self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Erreur de connexion !";
}
}
}
\ No newline at end of file
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require "init.php";
require "process.php";
?>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Test formulaire</title>
</head>
<body>
<h1>Voici la liste des utilisateurs</h1>
<?php
foreach ($auteurs as $auteur){
$auteur->afficher();
}
?>
<h1>Ajouter un auteur</h1>
<form action="" method="post">
<label>
Nom
<input type="text" name="nom" placeholder="Nom" required>
</label>
<label>
Prénom
<input type="text" name="prenom" placeholder="Prenom" required>
</label>
<label>
Nationalité
<input type="text" name="nationalite" placeholder="Nationalité" required>
</label>
<label>
Année de naissance
<input type="number" name="anneeNaissance" placeholder="Année de naissance" required>
</label>
<button type="submit">Créer un auteur</button>
</form>
</body>
</html>
\ No newline at end of file
<?php
require "conn.php";
require "Auteur.php";
$createTable = "CREATE TABLE IF NOT EXISTS auteur ( `numAuteur` INT NOT NULL AUTO_INCREMENT , `nom` VARCHAR(64) NOT NULL , `prenom` VARCHAR(64) NOT NULL , `nationalite` VARCHAR(32) NOT NULL , `anneeNaissance` INT NOT NULL , PRIMARY KEY (`numAuteur`)) ENGINE = InnoDB;";
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->query($createTable);
<?php
if(!empty($_POST)){
if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['nationalite']) && !empty($_POST['anneeNaissance'])){
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->prepare("INSERT INTO auteur (nom, prenom, nationalite, anneeNaissance) VALUE (?,?,?,?)");
$query->execute([$_POST['nom'], $_POST['prenom'], $_POST['nationalite'], $_POST['anneeNaissance']]);
echo "Auteur ajouté";
}else{
echo "Données manquantes pour ajouter l'auteur.";
}
}
$auteurs = Auteur::getAllAuteurs();
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment