Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2006, 22h48   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 1
Points : 1
Par défaut AUTOREPLY SMS avec MYSQL

Bonjour à tous,

Je viens enfin de finir de configurer ma plateforme SMS sous Linux Kubuntu avec Gammu. Son daemon smsd permet d'archiver et de gérer les SMS sortants et entrants dans une base Mysql.
L'objectif de cette plate-forme est de creer des jeux simples et autonomes ainsi que des sondages instantanés.

Mon problème est le suivant:
Je voudrais implémanter quelques fonctions que j'ai du mal à developper vu que je ne suis pas trop du domaine.
D'abord je souhaiterais y ajouter une fonction autoreply
j'ai un code en example ici mais quand je l'importe dans ma base j'ai une erreur de syntaxe qui bloque l'importation. Pourriez vous y jeter un coup d'oeil ?

Code :
1
2
3
4
5
6
 CREATE TRIGGER autoreply ON inbox
FOR INSERT AS
DECLARE @tel VARCHAR(20)
SELECT TOP 1 @tel=SenderNumber FROM inbox ORDER BY ID DESC
INSERT INTO outbox (DestinationNumber,Text) VALUES (@tel,'Merci pour votre message')
GO
Pendant que j'y suis j'en profite pour vous demander si vous ne connaitriez pas un modèle de base de données avec une interface PHP pour les sondages que je pourrais relier à ma base SMS entrants.
j'ai entendu parlé de l'application Artichow pour les Graphiques ... qu'est-ce que vous en pensez ?

Merci
ChrisColumbus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2006, 16h29   #2
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 1
Points : 1
Par défaut Alleeeez un petit coup de main

J'ai toujous pas trouver ma solution alors Je vous relance parce qu'apparement y'a pas foule pour m'aider sur ce problème.

Toujours à l'écoute
ChrisColumbus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 13h38   #3
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
Il n'y a pas eu de réponses car nous n'avons pas le code d'erreur et que cette question a plusieurs fois été traitée sur ce forum.
Code :
1
2
3
4
5
6
 CREATE TRIGGER autoreply ON inbox
FOR INSERT AS
DECLARE @tel VARCHAR(20)
SELECT TOP 1 @tel=SenderNumber FROM inbox ORDER BY ID DESC
INSERT INTO outbox (DestinationNumber,Text) VALUES (@tel,'Merci pour votre message')
GO
votre syntaxe correspond à MSSQL SERVER et non pas à MySQL, il manque les démilimiteurs pour les deux requêtes. Sans l'avoir testé, je pense que la solution ressemble à

Code :
1
2
3
4
5
6
7
8
9
10
 
DELIMITER |
CREATE TRIGGER autoreply BEFORE INSERT inbox
FOR EACH ROW
BEGIN
  DECLARE @tel VARCHAR(20)
  SELECT @tel=SenderNumber FROM inbox ORDER BY ID DESC LIMIT 1;
  INSERT INTO outbox (DestinationNumber,Text) VALUES (@tel,'Merci pour votre message');
END
DELIMITER |

Pour de plus ample renseignements, voici la documentation française

20.1 Syntaxe de CREATE TRIGGER

La version anglaise est plus fournie et contient des exemples supplémentaires

18.1. CREATE TRIGGER Syntax
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 20h36   #4
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 1
Points : 1
Par défaut la valeur "@tel"

Merci pour ta réponse

C'est vrai j'ai copié betement un example que j'avais trouvé sur le net sans me rendre compte que c'était une syntaxe Microsoft SQL server.
mais j'espère être excusé je suis un vrai débutant.
je vais tester ta proposition mais avant j'aimerais savoir un truc peut être idiot:
le "@tel" correspond à quel type de données ?

En fait je veux faire un autoreply sélectif sur les sms entrants dans inbox.
Ma base inbox est constituée comme ceci:

UpdatedInDB
ReceivingDateTime
Text
SenderNumber
Coding
UDH
SMSCNumber
Class
TextDecoded
ID
RecipientID
Processed

Donc mon trigger doit déclencher une réponse automatique qui va se loger dans ma table outbox.

euh... j'ai bien expliqué là ?
Anyway...
Merci encore pour les corrections que je vais tester et je te tiens au courant.
ChrisColumbus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 21h03   #5
Invité de passage
 
Inscription : novembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 12
Points : 1
Points : 1
Par défaut Encore erreur syntaxe

euh... excuses mais...
J'ai encore une erreur mais bon je crois que c'est lié à ma question précédente sur le "@tel" qui ne correspond à rien. enfin celon ma compréhension de débutant ...
Sinon voici le message d'rreur si ça peut servir ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Erreur
 
requête SQL: Documentation
 
CREATE TRIGGER autoreply BEFORE INSERT inbox
FOR EACH
ROW
BEGIN DECLARE@tel VARCHAR( 20 )
SELECT @tel = SenderNumber
FROM inbox
ORDER BY ID DESC
LIMIT 1 ;
 
MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'inbox
FOR EACH ROW
BEGIN
DECLARE @tel VARCHAR(20)
SELECT @tel=SenderNumber F' at line 1
ChrisColumbus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h27.


 
 
 
 
Partenaires

Hébergement Web