IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

souci pour updater ma base de donnée


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2017
    Messages : 90
    Points : 65
    Points
    65
    Par défaut souci pour updater ma base de donnée
    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:

    Nom : bdd.PNG
Affichages : 136
Taille : 18,2 Ko

    voici 2 de mes requetes(1 pour recuperer mes données , l'autre pour les updater) dans mon manager:
    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 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
    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);
    }
    mon routeur:
    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']);
          }
    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
    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>
    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.
    J'ai fait un var_dump($_GET) dans mon routeur :
    et j'obtiens cela:
    Nom : Capture.PNG
Affichages : 128
Taille : 10,7 Ko

    et la meme chose avec le $_POST:
    Nom : Capture.PNG
Affichages : 128
Taille : 4,6 Ko
    C'a a l'air tout bon sauf que c'a n'update pas!
    Si vous pouviez m'aider? Merci.
    Images attachées Images attachées  

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Il me semble que tu as un problème de conception en base de données : il te manque la clé étrangère à tes tables.
    Bien sûr, tous tes premiers id sont en auto-increment.
    profil_id est ta clé étrangère, en left join sur tes 3 tables dépendantes.


    1 ligne obligatoire => profil_perso(profil_id,profil)
    0 à n lignes => experience_pro (exp_id, profil_id,title,period,description)
    0 à n lignes => education(educ_id, profil_id,title_education,title_secondary,description_education)
    0 à n lignes => competence(comp_id,profil_id,avantage)
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2017
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Merci de ta reponse,mais je ne comprend pas l'utilité d'une clé étrangere car chaque section est indépendante. Par exemple les avantages dans la table competences ne dependent pas du profil_id. par contre je veux qu'on puisse mettre a jour chaque avantage par rapport a son id.

  4. #4
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2017
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Le souci venait du fait que je n'avais pas mis mon submit dans mon fetch pour avoir un submit par ligne. J'avais seulement un submit pour toutes les lignes. Voila cela peux aider quelqu'un d'autre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel outil utilisez vous pour concevoir vos bases de données
    Par Matthieu Brucher dans le forum Outils
    Réponses: 93
    Dernier message: 01/08/2014, 15h20
  2. Probleme pour créer un base de données...
    Par _matt_44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 03/06/2005, 14h36
  3. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  4. Réponses: 4
    Dernier message: 29/11/2004, 22h53
  5. aide pour exporter une base de donnée
    Par matt55 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 06/04/2004, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo