Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Db
Zend_Db Forum d'entraide pour le composant Zend_Db du Zend Framework (création de requêtes, abstraction, ORM etc.). Avant de poster -> FAQ Zend_Db.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2010, 16h04   #1
Membre habitué
 
Avatar de geforce
 
Femme
Développeur informatique
Inscription : janvier 2010
Messages : 467
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2010
Messages : 467
Points : 149
Points : 149
Envoyer un message via Skype™ à geforce
Par défaut un where sur un update avec Zend_bd

Bonjour,

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

Code :
$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 :
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 :
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
geforce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 18h05   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Le 2e paramètre d'update contient les données à modifier dans un tableau et le 3e les conditions d'application.
Donc :
Code :
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)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/11/2010, 18h06   #3
Membre confirmé
 
Patrick Barroca
Inscription : mai 2008
Messages : 178
Détails du profil
Informations personnelles :
Nom : Patrick Barroca

Informations forums :
Inscription : mai 2008
Messages : 178
Points : 204
Points : 204
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.
patbator est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/12/2010, 10h07   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 167
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 167
Points : 6 451
Points : 6 451
Ta requête devrais être ceci.

Code :
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.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h01.


 
 
 
 
Partenaires

Hébergement Web