bonjour, j'aurais besoins de votre aide car cela fait deux jours que j'essai de faire fonctionner mon code et je n'y arrive pas. J'ai fait une interface d'administration pour mettre a jour mon cv en ligne. J'ai 4 sections dans mon interface qui correspond a 4 tables mysql.Je n'ai aucun souci a updater lorsque'il y a qu'une seule ligne dans la table mais lorsqu'il y en a plusieurs cela ne marche pas. Je pense que c'est un souci par rapport a l' id.
Je suis en mvc.
voici mes tables:
voici 2 de mes requetes(1 pour recuperer mes données , l'autre pour les updater) dans mon manager:
mon controller:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class CvManager extends Manager { public function getAvCv(){ $db = $this->dbConnect(); $req = $db->prepare('SELECT id,avantage FROM competences'); $req->execute(array()); return $req; } public function updateAvCv($avId,$avantage){ $db = $this->dbConnect(); $req = $db->prepare('UPDATE competences SET avantage = ? WHERE id = ?'); $affected = $req->execute(array($avantage,$avId)); return $affected; } }
mon routeur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public function competences() { $cvManager = new \Forteroche\Blog\Model\CvManager(); $avCv = $cvManager->getAvCv(); $view = new View('competences'); $view->generer(['avCv' => $avCv]); var_dump($_GET); } public function updateCompetence($avId,$avantage) { $cvManager = new \Forteroche\Blog\Model\CvManager(); $affected = $cvManager->updateAvCv($avantage,$avId); //header('location:index.php?action=competences'); var_dump($_GET); }
et une de mes pages ou je veux modifier les elements:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 /*********Affichage de la page de modif des compétences**********/ elseif ($_GET['action'] == 'competences'){ $ctrlBackend->competences(); } /*********Update des competences**********/ elseif ($_GET['action'] == 'updateCompetence'){ $ctrlBackend->updateCompetence($_GET['id'],$_POST['avantage']); }
Je pense que je n'arrive pas a updater car je ne recupere pas comme il faut l'id et du coup il ne sait pas quoi mettre a jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 <?php session_start(); $this->title = 'serri stephan' ; include "menu.php" ;?> <div id="top"> <div id="cv" class="instaFade"> <div class="mainDetails"> <div id="headshot" class="quickFade"> <img src="public/images/me2.jpg" alt="Alan Smith" /> </div> <div id="name"> <h1 class="quickFade delayTwo">Serri Stephan</h1> <h2 class="quickFade delayThree">Dévellopeur Web</h2> </div> <div id="contactDetails" class="quickFade delayFour"> <ul> <li>email: <a href="mailto:serri-stephan@gmail.com" target="_blank">serri-stephan@gmail.com</a></li> <li>web: <a href="http://serri-stephan.com">www.serri-stephan.com</a></li> <li>mobile: 0650212894</li> </ul> </div> <div class="clear"></div> </div> <div id="mainArea" class="quickFade delayFive"> <section> <div class="sectionTitle"> <h1>Compétences</h1> </div> <?php while ($data2 = $avCv->fetch()){ ?> <div class="sectionContent"> <ul class="keySkills"> <form action="index.php?action=updateCompetence&id=<?= $data2['id']?>" method="post" enctype="multipart/form-data"> <li><input name='avantage' value="<?=$data2['avantage'];?>"/><?= var_dump($data2['id'])?></li> </ul> <div class="form-actions"> <input href="" type="submit" class="btn btn-success " value=" Modifier"> </div> </div> <div class="clear"></div> </form> <?php } ?> <a class="btn btn-primary" href="index.php?action=boardCv"><span class="glyphicon glyphicon-arrow-left"> Retour</span></a> </section> </div> </div>
J'ai fait un var_dump($_GET) dans mon routeur :
et j'obtiens cela:
et la meme chose avec le $_POST:
C'a a l'air tout bon sauf que c'a n'update pas!
Si vous pouviez m'aider? Merci.
Partager