Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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 :
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
en SQL 2 DELETE
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
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
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 )
Merci.
Hors ligne
là je comprends pas
Hors ligne
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:
$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():
// $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)
Hors ligne
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
tu ne dois rien écrire dans la classe Zend_Db
je ne comprends rien de ce que tu fais
A+JYT
Hors ligne
Dans ton exemple :
// $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
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
C'est bon j'ai trouvé.
il fallait simplement que je fasse :
$db = $this->getAdapter();
Hors ligne