Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-03-2009 11:07:16

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

[Resolu][1.7] Delete sur 2 tables.

Bonjour,

J'aimerais effectuer une requête de suppression sur 2 tables.
En revanche je ne vois pas du tout comment faire.

Voici ma requête :

Code:

DELETE t1 , t2 FROM table_1 as t1
JOIN table_2 as t2 ON (t1.id = t2.id)
WHERE t1.date >= '2008-11-11 00:00:00'
AND t1.date <= 2008-11-11 23:00:00'

Merci d'avance !

Dernière modification par docaze21 (31-03-2009 17:49:46)

Hors ligne

 

#2 30-03-2009 11:16:33

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Resolu][1.7] Delete sur 2 tables.

en SQL 2 DELETE

Code:

BEGIN TRANSACTION
DELETE FROM t2
WHERE t2.id IN (
   SELECT t1.id
   FROM t1
   WHERE t1.date >= '2008-11-11 00:00:00'
   AND t1.date <= 2008-11-11 23:00:00');

DELETE FROM t1
WHERE t1.date >= '2008-11-11 00:00:00'
AND t1.date <= 2008-11-11 23:00:00';

COMMIT;

A+JYT

Dernière modification par sekaijin (30-03-2009 11:16:56)

Hors ligne

 

#3 30-03-2009 11:30:27

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Resolu][1.7] Delete sur 2 tables.

OK !
Donc j'en conclu qu'il faut que je fasse 2 requetes en utilisant ->delete($sql) .

Je pensait pouvoir faire ca en une seule requête.

Hors ligne

 

#4 30-03-2009 11:36:57

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Resolu][1.7] Delete sur 2 tables.

En faite ma question était plus dans le sens ou je souhaite intégrer cette requête et l'exécuter grâce à la class Zend_db.

Donc :
Soit j'aimerais faire en sorte de construire cette requête grâce à la méthode ->delete();
Soit simplement exécuter cette requête grâce à une simple query. (je ne sais pas comment faire hmm)

Merci.

Hors ligne

 

#5 30-03-2009 11:41:20

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Resolu][1.7] Delete sur 2 tables.

là je comprends pas

Hors ligne

 

#6 30-03-2009 14:08:44

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Resolu][1.7] Delete sur 2 tables.

Salut,

Si tu veux utiliser Zend_Db_Table et faire une suppression sur deux collections de données (tables) différentes, tu dois utiliser la classe Table de chaque collection.

Exemple:

Code:

$table1 = new Table1();
$where = $table1->getAdapter()->quoteInto('table1_id = ?', 15485);
$table1->delete($where);

$table2 = new Table2();
$where = $table2->getAdapter()->quoteInto('table2_id = ?', 15545);
$table2->delete($where);

Si tu veux exécuter la requête en une seule fois, tu dois passer par un query():

Code:

// $db->beginTransaction();
try {
    // $db->query("ma requete");
    // $db->commit();
} catch (Exception $e) {
    // $db->rollBack();
    // traitement de l'erreur
}

A+ benjamin.

Dernière modification par Delprog (30-03-2009 14:20:17)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#7 30-03-2009 14:26:32

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Resolu][1.7] Delete sur 2 tables.

Voila c est la méthode query qui m intéresse...
En revanche en étant dans ma class Zend_DB j'aimerais recuperer la variable $db.

Comment faire ?

Hors ligne

 

#8 30-03-2009 16:10:29

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Resolu][1.7] Delete sur 2 tables.

tu ne dois rien écrire dans la classe Zend_Db
je ne comprends rien de ce que tu fais

A+JYT

Hors ligne

 

#9 31-03-2009 13:58:07

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Resolu][1.7] Delete sur 2 tables.

Dans ton exemple :

Code:

// $db->beginTransaction();
try {
    // $db->query("ma requete");
    // $db->commit();
} catch (Exception $e) {
    // $db->rollBack();
    // traitement de l'erreur
}

Comment fais tu pour récupérer la variable $db ?
En sachant que j aimerai la réucpérer alors que je suis dans une class de type Zend_Db.

Merci

Hors ligne

 

#10 31-03-2009 17:40:22

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Resolu][1.7] Delete sur 2 tables.

mais je ne comprends pas ce que tu fais dans une classe dérivée de Zend_Db si tu est dans zend_db tu as $this
mais tu ne devrais pas y toucher

Hors ligne

 

#11 31-03-2009 17:49:24

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Resolu][1.7] Delete sur 2 tables.

C'est bon j'ai trouvé.
il fallait simplement que je fasse :

Code:

$db = $this->getAdapter();

Hors ligne

 

#12 01-04-2009 23:38:56

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: [Resolu][1.7] Delete sur 2 tables.

Si t'es tables sont liés.... tu les met en innodb avec clés étrangères.....


Société : Direct Info Service

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