j'ai besoin d'aide pour récupérer les données que j'ai introduit dans une base de donnée avec une requête prépare. merci à vous tous !
voici mon fichier index.php :
Code : Tout sélectionner
<?php
/**
* Liste de route pour l'application Mini jeu de combat
*/
require './Views/template.php';
require './Controllers/Controller.php';
require './Entity/Personnage.php';
require './Models/playerModel.php';
require_once './Helpers/Db_connect.php';
if ( isset( $_GET['action'] ) ) {
switch ($_GET['action']) {
case $_GET['action'] == '/':
$root = new Controller();
$root->indexController ();
break;
case $_GET['action'] == 'create':
$root = new Controller();
$root->insertController ( $_POST['nom'] );
break;
case $_GET['action'] == 'read':
$root = new Controller();
$root->readController($_POST['nom']);
break;
case $_GET['action'] == 'update':
$root = new Controller();
$root->updateController ($id);
break;
case $_GET['action'] == 'delete':
$root = new Controller();
$root->deleteController ($id);
break;
default:
$root = new Controller();
$root->indexController ();
}
}
Voici la class Controller (j'en suis à readController) :
Code : Tout sélectionner
<?php
/**
* Class qui gère les connexion avec la base de donnée
* ------------------> $bdd;
*
*/
class Controller
{
/**
*
* retourne l'index de l'application
*
*/
public function indexController ()
{
return ('../Views/template.php');
}
/**
* CONTRÔLE AVANT TRANSFERT DANS LA BASE DE DONNES
*
* @param String $nom
*/
public function insertController (String $nom)
{
if ( isset( $_POST['nom'] ) && $_POST['nom'] !== '' ) {
$player = new Personnage( htmlspecialchars ( $nom ) );
$insert = new playerModel();
$insert->register ( $player );
} else {
echo 'veuillez rentrer un nom valide ';
}
}
/**
* @param $nom si le nom existe dans la bdd
*/
public function readController (String $nom)
{
if ( isset( $_POST['nom'] ) && $_POST['nom'] !== '' ){
$isPlayerExist = new playerModel();
$isPlayerExist->getPlayer(htmlspecialchars ($nom));
}else{
echo 'veuillez rentrer un nom de joueur';
}
}
/**
* Modifie une ligne de la bdd selon son Id et
* modifie les champs
*/
public function updateController ()
{
//
}
/**
*Supprime une ligne de la bdd
* selon Id
*/
public function deleteController ()
{
//
}
}
Code : Tout sélectionner
<?php
/**
* class qui établi une connexion avec la base de donnée.
*/
class Db_connect
{
private $bdd;
/**
* Db_connect constructor.
*/
public function __construct ()
{
try{
$this ->bdd = new PDO('mysql:host=127.0.0.1;dbname=personnages;charset=utf8', 'root', '');
}catch (PDOException $e){
echo $e->getMessage ();
}
}
/**
* @return $bdd mixed
*/
public function getBdd ()
{
if ($this->bdd instanceof PDO) {
return $this->bdd;
}else{
echo 'aucune connexion à la base de donnée disponible';
}
}
}
voici la class playerModel ---- je tourne en rond pour récupérer les champs de la requête getPlayer :
Code : Tout sélectionner
<?php
/**
* Class playerModel s'occupe des relations avec la base donnée.
*
*/
class playerModel
{
/**
* @param Object $player
*/
public function register (Object &$player)
{
$connection = new Db_connect();
$bdd = $connection->getBdd ();
$req = $bdd->prepare ( "INSERT INTO players (nom, degats, experience) VALUES (:nom, :degats, :experience)" );
$req->bindValue ( ':nom', $player->getName () );
$req->bindValue ( ':degats', $player->getDegats () );
$req->bindValue ( ':experience', $player->getExperience () );
$isOk = $req->execute ();
if ( $isOk ) {
echo "Votre joueur vient d'être créé ! ";
} else {
echo "la création du joueur a rencontré un problème";
}
}
/**
* @param $nom
* @return
*/
public function getPlayer ($nom)
{
$connection = new Db_connect();
$bdd = $connection->getBdd ();
$req = $bdd->prepare ( "SELECT * FROM personnages WHERE nom=:$nom" );
$req->bindParam (':nom', $nom,PDO::PARAM_STR);
$data = $req->execute ();
var_dump ($data);
return ;
}
}