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

Zend_Db PHP Discussion :

un where sur un update avec Zend_bd [ZF 1.10]


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut un where sur un update avec Zend_bd
    Bonjour,

    je cherche à faire l'équivalant de cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = 'UPDATE permissions SET nom = "'.$nom.'", permissions = "'.$droits.'" WHERE id = "'.htmlspecialchars($_GET['id']).'" ';
    en Zend_bd (je crois que c'est pas la bon syntaxe)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ex_requete = $db->update("permissions", array('nom' => $nom), array ('permissions' => $droits) )
     ->where("permissions.id='".htmlspecialchars($_GET['id'])."'");
    J’ai ce message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to a member function where() on a non-object in C:\xampp\htdocs\www\ZendStudio\Dashboard\application\views\scripts\index\admin\vu_page\modifier_gr_perm.php on line 193
    Cordialement

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Le 2e paramètre d'update contient les données à modifier dans un tableau et le 3e les conditions d'application.
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ex_requete = $db->update(
          "permissions", 
          array('nom' => $nom, 'permissions' => $droits), 
          "permissions.id='".htmlspecialchars($_GET['id'])."'");
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 178
    Par défaut
    Hello,

    Je te renvoie simplement à la documentation officielle http://framework.zend.com/manual/fr/...b.adapter.html.
    Regarde au paragraphe «Mettre à jour des données» il y a un exemple d'update avec critère.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Ta requête devrais être ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //UPDATE permissions SET nom = "'.$nom.'", permissions = "'.$droits.'" WHERE id = //"'.htmlspecialchars($_GET['id']).'" ';
     
    $data = array(
        'nom'  => $nom,
        'permissions'  => $droits
    );
     
    $where[] = "id =".htmlspecialchars($_GET['id']);
     
    $db->update('permissions', $data, $where);
    Maintenant pour aller plus loin, le $_GET, ne devrais pas se trouver dans cette partie du code, en effet tu devrais te trouver dans un model, et une classe model est appelée dans un controller, donc ton $_GET devrais être passer en paramètre dans une méthode de l'objet de classe model.

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

Discussions similaires

  1. [2005 Express] un Update sur un top avec des clauses Where
    Par zooffy dans le forum Développement
    Réponses: 7
    Dernier message: 14/09/2009, 09h16
  2. Probleme sur un Update avec ODP.NET
    Par IsaacB dans le forum Accès aux données
    Réponses: 2
    Dernier message: 19/03/2009, 11h26
  3. probleme update avec where sur requete imbriqué
    Par JulienCEA dans le forum Requêtes
    Réponses: 11
    Dernier message: 04/06/2008, 11h44
  4. Réponses: 3
    Dernier message: 19/06/2007, 22h34
  5. UPDATE avec condition sur d'autres tables
    Par guda dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/03/2005, 11h20

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