Bonjour,
Voila je rencontre un petit problème avec mon code.
Ce que je fais
je chercher à inserer l'id d'un utilisateur dans une autre table, où il sera foreign key avec une requête sql .
plus bas , je colle la classe dans laquelle je fait ma requête .
j'ai essayé de recupérer l'îd de la personne avec la session et l'inserer ensuite en base de données. mais j'arrive pas du tout . deux jours que je cherche la solution . merci de votre reponse .
class DeclarationModel {
private $iddeclareEnfantFamille;
private $last_name_par_enfant ;
private $first_name_par_enfant;
private $date_naissance_par_enfant;
private $sexeEnfant;
private $medecin_traitant_par;
private $scolariseEnfantPar;
private $commentaire;
private $date_inserted;
private $idfamily;
// Constante attachée à ma classe
const TABLE_NAME = 'declareEnfantFamille';
/* méthode qui vérifie si l'id existe ou non et utilise la méthode appropriée
Permet de gérer la sauvegarde en BDD et elle va détecter si elle insère ou met à jour
*/
public function save(){
if ($this->iddeclareEnfantFamille > 0) {
$retour = $this->update();
return $retour;
}
else{
$retour = $this->insert();
return $retour;
}
}
private function insert() {
$sql = "
INSERT INTO ".self::TABLE_NAME." (last_name_par_enfant, first_name_par_enfant, date_naissance_par_enfant, sexeEnfant, medecin_traitant_par, scolariseEnfantPar, commentaire, date_inserted, idfamily)
VALUES (
:last_name_par_enfant,
:first_name_par_enfant,
:date_naissance_par_enfant,
:sexeEnfant,
:medecin_traitant_par,
:scolariseEnfantPar,
:commentaire,
NOW(),
:idfamily
)
";
// Je prépare ma requête
$pdoStatement = Database::getPDO()->prepare($sql);
// je fais mes binds
$pdoStatement->bindValue(':last_name_par_enfant', $this->last_name_par_enfant, PDO::PARAM_STR);
$pdoStatement->bindValue(':first_name_par_enfant', $this->first_name_par_enfant, PDO::PARAM_STR);
$pdoStatement->bindValue(':date_naissance_par_enfant', $this->date_naissance_par_enfant, PDO::PARAM_STR);
$pdoStatement->bindValue(':sexeEnfant', $this->sexeEnfant, PDO::PARAM_STR);
$pdoStatement->bindValue(':medecin_traitant_par', $this->medecin_traitant_par, PDO::PARAM_STR);
$pdoStatement->bindValue(':scolariseEnfantPar', $this->scolariseEnfantPar, PDO::PARAM_STR);
$pdoStatement->bindValue(':commentaire', $this->commentaire, PDO::PARAM_STR);
$pdoStatement->bindValue(':idfamily', $this->idfamily, PDO::PARAM_INT);
// Exécution de la requête avec execute car il n' y a aucun retour hormis le nombre de ligne insérées
$affectedRows = $pdoStatement->execute();
return $affectedRows;
}
Ce que je veux
Ce que j'obtiens
j'ai une erreur comme quoi $idfamily est vide dans la table