Обновите таблицу базы данных Magento с помощью предложения WHERE - PullRequest
1 голос
/ 09 января 2012

У меня есть таблица «sample» с полями «sample_id», «order_id», order_email_id »,« review_request »,« coupon_sent ».

$to_date = date('Y-m-d H:i:s',strtotime('-1 days'));
        $orders = Mage::getModel('sales/order')->getCollection()->addFieldToFilter('status', 'complete')->addFieldToFilter('updated_at',array('to' => $to_date ))->addAttributeToSelect('customer_email')->addAttributeToSelect('entity_id');
        foreach ($orders as $order) 
        {
            $email = $order->getCustomerEmail();
            $id = $order->getEntityId();
            //echo 'Email: ' . $email . ' Id: ' .$id .'<br/>' ;     
            $sample = Mage::getModel('sample/sample');
            $sample->setOrderId($id);
            $sample->setOrderEmailId($email);
            $sample->save();
            echo '<br/>Record Added';

        }

        $posts = Mage::getModel('sample/sample')->getCollection();
        foreach($posts as $sample_post)
        {
            if($sample_post->getReviewRequest()==0)
            {
                     code to send email to email id's from this table's order_email_id field
                    try
                    {
                       (if($mail->send() == true)
           { 
            echo "<br> Mail Sent ";
                       //**WHERE clause condition to update 'review_request' field for all successful emails sent**

                      }
                      else {echo 'Mail not Sent';}
                   }
                   catch(Exception e) {}

Так что в соответствии с моим кодом, как мне поставитьпредложение WHERE, которое устанавливает review_request = 1 для всех записей, в которые сообщения электронной почты были успешно отправлены.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 10 января 2012

Спасибо @clockworkgeek за то, что снова привел эту ссылку и понизил голосование, что еще больше прояснило меня, чтобы найти решение.: PI думаю, что я нашел это.

 if($mail->send() == true)
 { 
     echo "<br> Mail Sent ";
 $model1 = Mage::getModel('sample/sample')->getCollection();
            $model1->load()->addFieldToFilter('order_email_id',array('eq' => $toEmail))->getSelect());
foreach($model1 as $final_model)
{ 
       $final_model->setReviewRequest(1)->save();
    }
 }

И это прекрасно обновляет мою таблицу со всеми записями, куда были отправлены электронные письма с review_request = 1 Спасибо.

2 голосов
/ 20 июля 2012

Это не работает для меня:

$model1->load()->addFieldToFilter('order_email_id',array('eq' => $toEmail))->getSelect();

пока это работает:

$model1->addFieldToFilter('order_email_id',array('eq' => $toEmail))->load();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...