[RESOLU] Besoin d'aide pour finir l'enregistrement BDD de mes informations

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Besoin d'aide pour finir l'enregistrement BDD de mes informations

Re: Besoin d'aide pour finir l'enregistrement BDD de mes informations

par minwolf999 » 22 oct. 2022, 23:07

Ah oui (dsl j'ai oublié de t'indiquer que ce que tu m'avais dit avais marcher)

Re: Besoin d'aide pour finir l'enregistrement BDD de mes informations

par or 1 » 22 oct. 2022, 01:31

s'il n'y a qu'un champ pour l'apréciation dans le formulaire, pas besoin de foreach.

pas besoin de dupliquer
if(isset($_POST['submit'])){
if(!empty($_POST['eleve'])){
foreach($_POST['eleve'] as $eleveId){
// mettre les codes d'insertion dans les 2 tables ici

Re: Besoin d'aide pour finir l'enregistrement BDD de mes informations

par minwolf999 » 22 oct. 2022, 00:38

je viens de la créé mais du coup il faut dupliquer le code qui envoie les informations à la BDD ?
(quelque chose comme ceci (là il il y a une erreur au niveau du foreach(($_POST['appreciation'] as $appreciation)

Code : Tout sélectionner

<?php if(isset($_POST['submit'])){ if(!empty($_POST['eleve'])){ foreach($_POST['eleve'] as $eleveId){ if (!empty($_POST['competences'] )) { //$eleveId = $eleve['id']; $query = $db->prepare('INSERT INTO eleve_competence (eleve_id, competence_id) VALUES (:eleveId, :competenceId);'); $db->beginTransaction(); foreach ($_POST['competences'] as $competence) { $result = $query->execute([ 'eleveId' => $eleveId, 'competenceId' => $competence, ]); if (!$result) { $errors[$query->errorCode()] = $query->errorInfo(); } } $db->commit(); } } } if (empty($errors)) { $success[] = sprintf("L'élève a été rattaché au compétences sélectionnées!"); } } if(isset($_POST['submit'])){ if(!empty($_POST['eleve'])){ foreach($_POST['eleve'] as $eleveId){ if (!empty($_POST['appreciation'] )) { //$eleveId = $eleve['id']; $query = $db->prepare('INSERT INTO eleve_appreciation (eleve_id, appreciation) VALUES (:eleveId, :appreciation);'); $db->beginTransaction(); foreach ($_POST['appreciation'] as $appreciation) { $result = $query->execute([ 'eleveId' => $eleveId, 'appreciation' => $appreciation, ]); if (!$result) { $errors[$query->errorCode()] = $query->errorInfo(); } } $db->commit(); } } } if (empty($errors)) { $success[] = sprintf("L'élève a été rattaché au compétences sélectionnées!"); } } ?>

Re: Besoin d'aide pour finir l'enregistrement BDD de mes informations

par or 1 » 22 oct. 2022, 00:12

il faut, dans ce cas, créer une autre table comme pour les compétences où il peut aussi y en avoir plusieurs.

Re: Besoin d'aide pour finir l'enregistrement BDD de mes informations

par minwolf999 » 22 oct. 2022, 00:07

s'il n'y a qu'une seule appréciation possible par élève, et plusieurs compétences possibles par élève alors la structure de la table n'est pas bonne. il faut enlever le champ appreciation de la table eleve_competence et le mettre, par exemple, dans la table eleve.
Je vois mais pour le coup il va y avoir plusieurs appérciations par élèves ( environ 1 par trimestre) donc dois je quand même appliquer ce que tu viens de me dire ?

Re: Besoin d'aide pour finir l'enregistrement BDD de mes informations

par or 1 » 22 oct. 2022, 00:03

s'il n'y a qu'une seule appréciation possible par élève, et plusieurs compétences possibles par élève alors la structure de la table n'est pas bonne. il faut enlever le champ appreciation de la table eleve_competence et le mettre, par exemple, dans la table eleve.

Besoin d'aide pour finir l'enregistrement BDD de mes informations

par minwolf999 » 21 oct. 2022, 23:58

Bonjour, voilà à l'heure actuel lorsque mon code s'execute je suis obliger de rentrée un eleve ET une competence pour pouvoir les enregistrer dans la BDD or je voudrais enregistrer un eleve ET une competence OU une appreciation mais je ne sais pas comment m'y prendre à partir de ce que j'ai déjà fait. Avez-vous une idée de comment dois-je m'y prendre ?
(je vous met le code qui gère l'envoie des données à la BDD)

Code : Tout sélectionner

<?php if(isset($_POST['submit'])){ if(!empty($_POST['eleve'])){ foreach($_POST['eleve'] as $eleveId){ if (!empty($_POST['competences'] )) { //$eleveId = $eleve['id']; $query = $db->prepare('INSERT INTO eleve_competence (eleve_id, competence_id,appreciation) VALUES (:eleveId, :competenceId, :appreciation);'); $db->beginTransaction(); foreach ($_POST['competences'] as $competence) { $result = $query->execute([ 'eleveId' => $eleveId, 'competenceId' => $competence, 'appreciation' => $_POST['appreciation'], ]); if (!$result) { $errors[$query->errorCode()] = $query->errorInfo(); } } $db->commit(); } } } if (empty($errors)) { $success[] = sprintf("L'élève a été rattaché au compétences sélectionnées!"); } } ?>