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 :

Update impossible PHP


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 103
    Points : 38
    Points
    38
    Par défaut Update impossible PHP
    bonjour à tous,

    j'ai dans mon code 3 popup : une pour ajouter, une pour modifier et une pour supprimer une marque.

    Ajouter fonctionne parfaitement grâce aux fonctions create et save :


    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
     
    public static function create($lib, $actif = true) {
        global $bdd;
     
        $marque = Marque::getInstance();
        if (empty($lib)) {
            // alerte ?
            return false;
        } else {
            $marque->setLib($lib);
            $marque->setActif($actif);
            $marque->save();
            return $marque;
        }
    }
    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
     
    public function save() {
            $bdd = static::_getBdd();
            $datas = array();
            foreach ($this->__sleep() as $key) {
                if (is_array($this->$key) || is_object($this->$key)) {
                    $datas[$key] = json_encode($this->$key);
                } else {
                    $datas[$key] = $this->$key;
                }
            }
            $primary = $this->getPrimaryKey();
            if (empty($this->$primary)) {
                $this->$primary = $bdd->insert($this->getTableName(), $datas);
            } else {
                $where = " $primary = " . $bdd->quote($datas[$primary]) . " ";
                $bdd->update($this->getTableName(), $datas, $where);
            }
            $this->_afterSave($this->$primary);
            return $this;
        }
    je souhaite donc réutiliser ces fonctions pour venir modifier ce que j'aurai créé. On voit dans la fonction save qu'il y a un update.

    problème je n'arrive pas à m'en servir! et au lieu de modifier il me fabrique une nouvelle marque...

    Merci pour votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bonjour,

    si une nouvelle marque est créée, c'est que le code lié à l'insert est appelé, pas l'update. Cela veut donc dire que $this->$primary est vide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            if (empty($this->$primary)) {
                $this->$primary = $bdd->insert($this->getTableName(), $datas);
            }
    Christophe

    Pensez à mettre quand c'est le cas.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 103
    Points : 38
    Points
    38
    Par défaut
    oui merci ça j’avais compris

    ce que je ne comprends pas c'est pourquoi il est vide alors que je récupère ces primaryKey(id) un peu avant ...
    Mais c'est là que dois être mon erreur mais j'arrive pas à la trouver...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Avez-vous fait un echo de la clé avant de la tester ?
    Christophe

    Pensez à mettre quand c'est le cas.

Discussions similaires

  1. [MySQL] php mysql update impossible
    Par bleuindigo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/03/2010, 13h42
  2. UPDATE * SET php/mysql
    Par Invité dans le forum Requêtes
    Réponses: 13
    Dernier message: 28/03/2006, 11h47
  3. Réponses: 5
    Dernier message: 14/03/2006, 16h12
  4. Windows Update impossible, problème installation WGA
    Par iubito dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/12/2005, 08h58
  5. multi update avec php/ mysql
    Par arnoweb dans le forum Administration
    Réponses: 1
    Dernier message: 17/11/2005, 22h10

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