2012-05-21 4 views
0

Я установил cron-задание в файле php. Я также установил электронную почту, чтобы при запуске cron я получаю оповещение по электронной почте. Итак, какое утверждение я помещаю в echo в этот php-файл, который отображается в теле письма.Настройка электронной почты для задания CRON в файле PHP?

Я сомневаюсь, что это не проверка состояния кода, оно просто протекает через код & показать эхо-сообщение в теле письма.

Посмотрите ниже code-:

$query_update = "UPDATE tier_price tp 
JOIN catalog_product_entity cpe ON cpe.entity_id = tp.entity_id  
AND cpe.name LIKE '$col2' AND website_id = $col4 
JOIN customer_group cg ON cg.customer_group_id = tp.customer_group_id AND cg.customer_group_code = $col1 SET cpetp.value = ".$col3.";"; 
mysql_query($query_update); 
$count = mysql_affected_rows(); 
if($count == 1) 
{ 
     echo "<br />"."Price for customer group $col1 for item $col2 is updated to $col3"; 
} 
if($count == 0) 
{ 
     $qry_fetch_product = "SELECT entity_id FROM catalog_product_entity WHERE name = '$col2'"; 
     $res_qry_fetch_product = mysql_query($qry_fetch_product); 
     while($row = mysql_fetch_array($res_qry_fetch_product)) 
     { 
     $entity_id = $row["entity_id"]; 
     } 

     $qry_fetch_grp_code = "SELECT customer_group_id FROM customer_group WHERE customer_group_code = $col1 "; 
     $res_qry_fetch = mysql_query($qry_fetch_grp_code); 
     while($row = mysql_fetch_array($res_qry_fetch)) 
     { 
     $customer_group_id = $row["customer_group_id"];  
     } 

     $qry_insert_base = "INSERT into tier_price(entity_id,customer_group_id,qty,value,website_id) VALUES ($entity_id,$customer_group_id,1,$col3,$col4)"; 
     $res_qry_insert_base = mysql_query($qry_insert_base);  

    echo "<br />"."Price $col3 for customer group $col1 for item $col2 is inserted"; 
} 

Почтовое уведомление, которое я получаю contains-:

<br />Price for customer group 101 for item abc is updated to 252<br />Price 252 for customer group 101 for item abc is inserted 
<br />Price for customer group 102 for item pqr is updated to 252.49<br />Price 252.49 for customer group 102 for item pqr is inserted 
<br />Price for customer group 103 for item xyz is updated to 15.5<br />Price 15.5 for customer group 103 for item xyz is inserted 

Так мои сомнения в том, что она идет в обоих цикле, который не должен быть реальный случай , Как если бы запрос обновлялся, счет становится равным 1, поэтому он должен идти только в том случае, если ($ count == 1) loop & аналогичным образом, если счетчик обновления не становится 0, а из o/p мы видим, что он идет в обоих циклах & мы можем см. обе строки в сообщении электронной почты, которое очень сбивает с толку ...

Может ли кто-нибудь предоставить решение, чтобы избежать этого ... так что если обновление происходит, оно показывает обновление по почте или вставляется, это показывает инструкцию insert из кода. .

+0

Что вы ожидаете? Я не знаю, в чем проблема. –

+0

@MattGibson Проблема в том, что, по-видимому, '$ count == 1 && $ count == 0', что является нечетным ... Хотя, поскольку я не вижу, чтобы это было завернуто в aloop, но результат подразумевает, что это настоящая проблема это предположение. @Prat, пожалуйста, покажите свой полный код. – DaveRandom

+0

См., Если инструкция обновления выполнена успешно, счетчик станет 1 ... поэтому он должен отображать: «Цена для группы клиентов 101 для элемента abc обновлена ​​до 252» это утверждение только. n не это -: «Цена 252 для группы клиентов 101 для элемента abc вставлена», поскольку данные только что обновляются ... Но я не знаю, как cron exacute и echo statement и отображает то же самое в электронной почте alert ... Так что я сомневаюсь, что если cron не проверял условие кода n, просто возвращайте инструкцию echod в электронную почту .... Я хочу только оператор update в случае count = 1 & only insert statement, если count = 0 – Prat

ответ

0

Пожалуйста, проверьте http://php.net/manual/en/function.mysql-affected-rows.php использовать что-то вроде ниже

<?php 
$count = mysql_affected_rows(); 
if(mysql_affected_rows()) 
{ 
}else{ 

} 
?> 
+0

Привет, Ganesh, как он может проверять состояние count = 1, поскольку мы просто предоставляем if (mysql_affected_rows()) – Prat