Ensure that we are only running the Mailings query when we have found mailings
authorSeamus Lee <seamuslee001@gmail.com>
Wed, 9 Mar 2016 02:09:03 +0000 (02:09 +0000)
committerSeamus Lee <seamuslee001@gmail.com>
Wed, 9 Mar 2016 02:13:54 +0000 (02:13 +0000)
CRM/Mailing/BAO/Mailing.php

index b3f39bf16efdfe80a968e54ca479b89fb6de0cc5..b5dabb7019758ae53b96c45726982774e4322f52 100644 (file)
@@ -2433,15 +2433,17 @@ LEFT JOIN civicrm_mailing_group g ON g.mailing_id   = m.id
         $mailingIDs[] = $dao->id;
       }
       //CRM-18181 Get all mailings that use the mailings found earlier as receipients
-      $mailings = implode(',', $mailingIDs);
-      $mailingQuery = "
-         SELECT DISTINCT ( m.id ) as id
-         FROM civicrm_mailing m 
-         LEFT JOIN civicrm_mailing_group g ON g.mailing_id = m.id
-         WHERE g.entity_table like 'civicrm_mailing%' AND g.entity_id IN ($mailings)";
-      $mailingDao = CRM_Core_DAO::executeQuery($mailingQuery);
-      while ($mailingDao->fetch()) {
-        $mailingIDs[] = $mailingDao->id;
+      if (!empty($mailingIDs)) {
+        $mailings = implode(',', $mailingIDs);
+        $mailingQuery = "
+           SELECT DISTINCT ( m.id ) as id
+           FROM civicrm_mailing m 
+           LEFT JOIN civicrm_mailing_group g ON g.mailing_id = m.id
+           WHERE g.entity_table like 'civicrm_mailing%' AND g.entity_id IN ($mailings)";
+        $mailingDao = CRM_Core_DAO::executeQuery($mailingQuery);
+        while ($mailingDao->fetch()) {
+          $mailingIDs[] = $mailingDao->id;
+        }
       }
     }