Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-10-2009 09:43:41

sm
Membre
Date d'inscription: 23-10-2009
Messages: 23

[Résolu] Requête Delete

Bonjour,
voila j'ai un probleme avec ma requette delete ca ne marche pas, elle renvoi une erreur quand je fais ceci

Code:

$paiement = new Paiement();
$where = 'paiement.NUMPAIEMENT = cohtion.NUMPAIEMENT AND cohtion.NUMPERSONNE='.$id;
$paiement->delete($where);

si qlq un a une idee, merci.

Dernière modification par Mr.MoOx (30-10-2009 22:53:05)

Hors ligne

 

#2 23-10-2009 10:16:33

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Requête Delete

Quand tu utilise Zend_Db_Table, je ne crois pas que tu puisses faire appel à d'autre table dans ton where.

Hors ligne

 

#3 23-10-2009 10:55:59

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu] Requête Delete

@sm : juste pour info (je pense que Mr Moox a raison pour l'explication) quelle erreur est renvoyée ?


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 23-10-2009 10:58:21

sm
Membre
Date d'inscription: 23-10-2009
Messages: 23

Re: [Résolu] Requête Delete

la suivante.

Fatal error: Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cohtion.NUMPAIEMENT' in 'where clause'' in C:\wamp\www\SamaxSoft\library\Zend\Db\Statement\Pdo.php:238 Stack trace: #0 C:\wamp\www\SamaxSoft\library\Zend\Db\Statement.php(283): Zend_Db_Statement_Pdo->_execute(Array) #1 C:\wamp\www\SamaxSoft\library\Zend\Db\Adapter\Abstract.php(433): Zend_Db_Statement->execute(Array) #2 C:\wamp\www\SamaxSoft\library\Zend\Db\Adapter\Pdo\Abstract.php(230): Zend_Db_Adapter_Abstract->query('DELETE FROM `pa...', Array) #3 C:\wamp\www\SamaxSoft\library\Zend\Db\Adapter\Abstract.php(580): Zend_Db_Adapter_Pdo_Abstract->query('DELETE FROM `pa...') #4 C:\wamp\www\SamaxSoft\library\Zend\Db\Table\Abstract.php(1010): Zend_Db_Adapter_Abstract->delete('paiement', 'paiement.NUMPAI...') #5 C:\wamp\www\SamaxSoft\application\controllers\AdminController.php(125): Zend_Db_Table_Abstract->delete('paiement.NUMPAI...') #6 C:\wamp\www\SamaxSoft\library\Zend\Controller\Action.php(503): in C:\wamp\www\SamaxSoft\library\Zend\Db\Statement\Pdo.php on line 238

Hors ligne

 

#5 23-10-2009 11:08:51

Seubeu
Membre
Date d'inscription: 28-09-2009
Messages: 19

Re: [Résolu] Requête Delete

C'est certainement ca, mais il serait intéressant de dumper la requete SQL pour voir exactement smile

Hors ligne

 

#6 23-10-2009 15:50:12

sm
Membre
Date d'inscription: 23-10-2009
Messages: 23

Re: [Résolu] Requête Delete

voila j'ai reussi a evité l'erreur en fusant comme ceci

Code:

    $paiement = new Paiement();
    $sql = 'select NUMPAIEMENT from cohtion where NUMPERSONNE = ' . $id;
    $result = (int)$paiement->fetchRow($sql);
    $where = 'NUMPAIEMENT = ' . $result;
    $paiement->delete($where);

mais je vois que mon enregistrement n'a pas etait supprimer dans ma table paiement

Dernière modification par Mr.MoOx (23-10-2009 16:02:57)

Hors ligne

 

#7 23-10-2009 16:07:26

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Requête Delete

Malheureusement je pense que la ligne suivante ne doit pas te retourner ce que tu veux

Code:

 $result = (int)$paiement->fetchRow($sql);

Essayes

Code:

 $result = (int)$paiement->fetchRow($sql)->NUMPAIEMENT;

Petite remarque tu devrais utiliser la notation des requêtes préparés
Ex:

Code:

    $paiement->delete(array('NUMPAIEMENT = ?' => $result));

C'est plus sécurisé car cela converti bien la valeur en mettant ce qu'il faut selon le type (quote par exemple etc).
http://julien-pauli.developpez.com/tuto … ge=zend-db

Hors ligne

 

#8 23-10-2009 20:21:09

sm
Membre
Date d'inscription: 23-10-2009
Messages: 23

Re: [Résolu] Requête Delete

Mr.MoOx j'ai essai vote suggetion mais ca n'aller pas et apres qlq modification la suppression marche mais a chaque fois c'est la premiere ligne de ma table paiement qui est supprimé. en fait la suppresion se fais sur 3 table

Code:

                $cohtion = new Cohtion();
                $sql = 'select NUMPAIEMENT from cohtion where NUMPERSONNE = ' . $id;
                $result = (int)$cohtion->fetchRow($sql)->NUMCOHTION;
                $where = 'NUMPERSONNE = ' . $id;
                $cohtion->delete($where);
                
                $personne = new Personne();
                $where = 'NUMPERSONNE = ' . $id;
                $personne->delete($where);
                
                $paiement = new Paiement();
                $where = 'NUMPAIEMENT = ' . $result;
                $paiement->delete($where);

Dernière modification par sm (27-10-2009 22:28:54)

Hors ligne

 

#9 30-10-2009 22:36:36

sm
Membre
Date d'inscription: 23-10-2009
Messages: 23

Re: [Résolu] Requête Delete

c'est réglé, voila comment j'ai fait.
merci.

Code:

                $cohtion = new Cohtion();
        $result = $cohtion->fetchRow('NUMPERSONNE = ' . $id)->NUMPAIEMENT;
        $where = 'NUMPERSONNE = ' . $id;
        $cohtion->delete($where);
                
                $personne = new Personne();
                $where = 'NUMPERSONNE = ' . $id;
                $personne->delete($where);

        $paiement = new Paiement();
        $where = 'NUMPAIEMENT = ' . $result;
        $paiement->delete($where);

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages