Select Git revision
-
Sofiane Lasri authoredSofiane Lasri authored
Auteur.php 2.51 KiB
<?php
class Auteur
{
// attributs
private int $numAuteur;
private string $nom;
private string $prenom;
private ?int $anneeNaissance;
// getter
public function __construct($nu = NULL, $n = NULL, $p = NULL, $a = NULL)
{
if (!is_null($nu)) {
$this->numAuteur = $nu;
$this->nom = $n;
$this->prenom = $p;
$this->anneeNaissance = $a;
}
}
public static function getAllAuteurs()
{
// écriture de la requête
$requete = "SELECT * FROM Auteur;";
// envoi de la requête et stockage de la réponse
$resultat = Database::pdo()->query($requete);
// traitement de la réponse
$resultat->setFetchmode(PDO::FETCH_CLASS, 'Auteur');
$tableau = $resultat->fetchAll();
return $tableau;
}
public static function getAuteurByNum($numAuteur)
{
// écriture de la requête
$requetePreparee = "SELECT * FROM Auteur WHERE numAuteur = :num_tag;";
$req_prep = Database::pdo()->prepare($requetePreparee);
// le tableau des valeurs
$valeurs = array("num_tag" => $numAuteur);
try {
// envoi de la requête
$req_prep->execute($valeurs);
// traitement de la réponse
$req_prep->setFetchmode(PDO::FETCH_CLASS, 'Auteur');
// récupération de l'auteur
$a = $req_prep->fetch();
// retour
return $a;
} catch (PDEException $e) {
echo $e->getMessage();
}
}
public function getNumAuteur()
{
return $this->numAuteur;
}
// setter
public function setNumAuteur($nu)
{
$this->numAuteur = $nu;
}
public function getNom()
{
return $this->nom;
}
public function setNom($n)
{
$this->nom = $n;
}
public function getPrenom()
{
return $this->prenom;
}
// un constructeur
public function setPrenom($p)
{
$this->prenom = $p;
}
// une methode d'affichage.
public function getAnneeNaissance()
{
return $this->anneeNaissance;
}
// méthode static qui retourne les auteurs en un tableau d'objets
public function setAnneeNaissance($a)
{
$this->anneeNaissance = $a;
}
// méthode static qui retourne un auteur identifié par son numAuteur
public function afficher()
{
echo "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
}
}
?>