Envoyer des e-mail d'alerte lorsque mySQL champ est égale à une valeur
J'ai un inventaire de base de données mySQL. J'ai besoin d'un courriel envoyé à quelques personnes d'alerte quand la "quantité" est égal ou inférieur au nombre de "min" sur le terrain.
Personne ne sait comment créer un script pour que le courriel envoyé SI le "qté" est égal ou inférieur "min"? Cela peut être fait sur le côté serveur?
Erik
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 | | | |
+--------------+--------------+--------+--------+-------------------+---------+
- Cela semble être une situation parfaite pour une table de déclenchement, sinon vous aurez à faire un script constamment sondage les niveaux de stocks.
- Ma première pensée a été "cron job!" Je serais intéressé de voir comment la table des déclencheurs de travail, je n'avais jamais entendu parler d'eux.
- J'ai pensé à côté serveur serait plus facile. Une fois que le niveau de stock est supérieure à la "min" champ puis j'ai besoin de le script de réinitialisation de lui-même pour éviter une boucle.
- Mais faire le travail pour déterminer le niveau des stocks nécessite qu'un script constamment sondage votre table pour obtenir les valeurs actuelles. Une table de déclenchement peut être écrit de telle sorte que lorsqu'un seuil est franchi, un UDF (user defined function) est appelée pour informer les parties prenantes. Mais nous allons voir ce que l'on de la DB des assistants dit...
- mysql n'a pas de email natif de manipulation ou de l'envoi d'installations. Vous pouvez facilement écrire un déclencheur de la poignée lorsque le stock descend en dessous d'un certain niveau, mais vous aurez à écrire un UDF plugin fonction de mysql de faire réellement quelque chose "externes" comme un e-mail de notification.
Vous devez vous connecter pour publier un commentaire.
J'espère que votre MySQL/PHP est sur un hôte Linux... si si, c'est ma suggestion:
Tout d'abord, créez un script php qui va vérifier la base de données, et si la condition est remplie envoyer un e-mail. Rappelez-vous juste que ce script doit être exécuté par le serveur dans ma méthode, comme nous le verrons plus tard, de créer une tâche cron pour exécuter le script
Changer la valeur de /usr/bin/php le chemin de votre php (utilisation
whereis php
ouwhich php
de trouver ce)enregistrer/quitter et rendre le fichier exécutable (
chmod 700
ou 777)créer une entrée cron pour exécuter ce script toutes les 5 minutes:
crontab -e
Si votre serveur MySQL n'est pas sur un hôte Linux et/ou vous n'avez pas exécutable PHP mis en place, vous pouvez toujours utiliser ce script PHP pour faire le travail, mais vous devez manuellement point d'un navigateur à l'emplacement du script, ou trouver un autre moyen d'exécuter ce script.
Veuillez également vérifier mon code religieusement comme je l'ai écrit à la volée, sans syntaxe de l'éditeur..