Отправить уведомление по электронной почте, когда поле MySQL равно значению - PullRequest
2 голосов
/ 22 марта 2012

У меня есть база данных MySQL.Мне нужно, чтобы электронное письмо было отправлено нескольким людям, предупреждающее их, когда число «qty» равно или меньше числа в поле «min».

Кто-нибудь знает, как создать сценарий для отправки электронной почты, ЕСЛИ "кол-во" равно или меньше "мин" ?Можно ли это сделать на стороне сервера?

Эрик

DATABASE NAME: _hero 

TABLE NAME:  CARTONS_CURRENT
+--------------+--------------+--------+--------+-------------------+---------+
| Column       |  Type        |  Null  |  Key   |  Default          |  Extra  |
+--------------+--------------+--------+--------+-------------------+---------+
| orig_time    | timestamp    |  No    |        | CURRENT_TIMESTAMP |         |
| type         | text         |  No    |        |                   |         |
| part_no      | varchar(20)  |  No    |  Prim  |                   |         |
| description  | varchar(75)  |  No    |        |                   |         |
| count        | varchar(2)   |  No    |        |                   |         |
| size         | varchar(30)  |  No    |        |                   |         |
| min          | int(7)       |  No    |        |                   |         |
| max          | int(7)       |  No    |        |                   |         |
| qty          | int(8)       |  No    |        |                   |         |
+--------------+--------------+--------+--------+-------------------+---------+

1 Ответ

2 голосов
/ 22 марта 2012

Я надеюсь, что ваш MySQL / PHP находится на хосте Linux ... если это так, то я предлагаю следующее:

Сначала создайте скрипт php, который проверит базу данных, и, если условие выполнено, отправьтеЭл. адрес.Просто помните, что этот сценарий должен выполняться сервером в моем методе, так как позже мы создадим cronjob для запуска сценария

Измените значение / usr / bin / php на путь вашего php (используйтеwhereis php или which php, чтобы найти это)

#!/usr/bin/php
<?php
//connect to database
$dbconnect=new mysqli('localhost','username','password','_hero');
$result=$dbconnect->query("SELECT `qty`,`min`,`part_no` FROM `CARTONS_CURRENT` WHERE `qty`<=`min`");
//if there are any records matching this query we send an email listing each one using 'part_no' as the identifier in this case
if($result->num_rows>=1) {
   $email='you@youremail.com';
   $subject = "PRODUCTS OUT OF STOCK";
   $message='One or more products are out of stock:\n\n';
   while($row=$result->fetch_assoc()) {
      $message.="{$row['part_no']}\n";
   }
   if(mail($email, $subject, $message)) {
      //mail successfully sent
   } else {
      //mail unsuccessful
   }
}
?>

сохранить / выйти и сделать исполняемый файл (chmod 700 или 777)

создать запись cron для выполнения этого скриптакаждые 5 минут:

crontab -e

*/5   *   *   *   * /path/to/phpscript

Если ваш MySQL не находится на хосте Linux и / или у вас не установлен исполняемый PHP, вы все равно можете использовать вышеупомянутый PHPсценарий, чтобы выполнить работу, но вы должны либо вручную указать браузер на местоположение сценария, либо найти другой способ выполнения этого сценария.

Также, пожалуйста, проверяйте мой код неукоснительно, так как я написал его на летубез какого-либо синтаксического редактора ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...