Struktura SQL upitnog skripta

Pomaknite se dolje kako biste vidjeli strukturu SQL upitnog skripta. Možete generirati skriptnu datoteku za svakog korisnika Autoreply baze podataka, koja je sposobna slati SMS poruke ako slijede skriptu. Datoteka radi sa svakom dolaznom porukom i odabire odlazne poruke prema filtru.

Uvod

Pogledajte skriptnu datoteku. Možete vidjeti da je podijeljena u odjeljke odvojene praznim redovima (Slika 1). Možete napisati onoliko odjeljaka koliko želite bez maksimalnog ograničenja. Odjeljci se čitaju uzastopno i prvi odjeljak koji odgovara dolaznoj SMS poruci bit će korišten za kreiranje odgovora.

Prvi red svakog odjeljka je uvjet filtriranja, a sljedeći jedan ili više SQL izraza nazivaju se akcija. SQL SELECT izrazi mogu vratiti jednu ili više odgovarajućih poruka. Ako uvjet filtriranja odgovara podacima dolazne poruke, pozivaju se izrazi koji se izvršavaju dok se ne nađe prazan red. U tom slučaju neće provjeravati druge odjeljke.

u ovom primjeru možete vidjeti uvjete filtriranja i SQL izraze
Slika 1 - U ovom primjeru možete vidjeti uvjete filtriranja i SQL izraze

Uvjet

Svaki odjeljak počinje s uvjetom koji se sastoji od jednog retka podijeljenog u dva dijela (Slika 2)

prvi red svakog odjeljka naziva se: uvjet
Slika 2 - Prvi red svakog odjeljka naziva se: uvjet

Prvi dio je odabirnik cilja za podudaranje, jedan znak koji određuje koji dio dolazne poruke treba filtrirati (Slika 3). FONT style="font-size:15px;">Možete odabrati znak odabirnika cilja za podudaranje iz sljedećih opcija:

# Opcije uvjeta:
#     n - ako se telefonski broj pošiljatelja podudara s uzorkom
#     m - ako se tekst poruke podudara s uzorkom
#     k - ako se ključna riječ podudara s uzorkom. (Ključna riječ je prva riječ
#         poruke. Ključna riječ se pretvara u velika slova)
Slika 3 - Odabirnici cilja za podudaranje

Drugi dio je uzorak za podudaranje koji je filtar znakova (Slika 4).

Ovi primjeri uzoraka za podudaranje rade na 'm' cilju poruke:
m.* - podudara se s bilo kojim tekstualnim porukama
m^abc.* - podudara se ako tekstualna poruka počinje s 'abc' ili 'ABC'
m.*abc.* - podudara se ako tekstualna poruka sadrži 'abc' ili 'ABC'
Slika 4 - Primjeri uzoraka za podudaranje

Ovdje možete pronaći tutorial o regularnim izrazima za dostupne uzorke podudaranja.

Akcija

Svaki uvjet filtriranja praćen je akcijom koja se sastoji od SQL izraza.

Možete slati SMS poruke samo s SQL SELECT upitima, ali možete izvršavati i INSERT i UPDATE izraze. Imajte na umu da je 1. parametar rezultata SELECT upita primatelj poruke koja će biti poslana, dok je 2. parametar sama poruka. Na Slici 5 možete vidjeti nekoliko primjera.


k^CRVENO
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='crveno'

k^PLAVO
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='plavo'

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='zadano'
Slika 5 - Primjeri SQL izraza gdje je primatelj '$sender'

Sljedeće riječi se zamjenjuju u SQL izrazima:
RiječiVrijednost
$originatorTelefonski broj s kojeg je poruka poslana.
$sender=$originator ($sender je drugo ime za $originator.)
$recipientTelefonski broj na koji je poruka poslana.
$receiver=$recipient ($receiver je drugo ime za $recipient.)
$messagedataTekst poruke.
$keywordPrva riječ u poruci. Ta riječ se naziva ključna riječ.
$afterPreostali tekst nakon ključne riječi.
$senttimeVremenska oznaka koja pokazuje kada je poruka poslana.
$receivedtimeVremenska oznaka koja pokazuje kada je poruka primljena.
$messagetypeTip poruke, koji je u većini slučajeva 'SMS:TEXT'.
$idJedinstveni niz. Identificira svaku poruku u Ozeki SMS Gateway.
$operatorNaziv pružatelja usluge. Prima poruku u Ozeki SMS Gateway.
$1Prva riječ u poruci.
$2Druga riječ u poruci.
$3Treća riječ u poruci, itd...

Svaki SQL izraz se izvršava red po red dok interpreter ne dođe do praznog retka, gdje se konačno zaustavlja.

(Savjet: Sadržaj odgovorne poruke možete dobiti samo korištenjem SELECT izraza.)

Odgovor

Rezultati SELECT SQL upita sadrže poruke koje treba proslijediti ili odgovoriti. Broj redaka u rezultatima određuje broj poruka koje će biti poslane. (Slika 6)

Rezultati mogu sadržavati sljedeće parametre:
recipient - Prvi stupac rezultata (Obvezno)
messageData - Drugi stupac rezultata (Obvezno)
messageType - Treći stupac rezultata (Opcionalno)
sender - Četvrti stupac rezultata (Opcionalno)
operatorNames - Peti stupac rezultata (Opcionalno)

Slika 6 - Korisnik Ozeki 10 SMS Gateway Autoreply baze podataka šalje SMS poruke iz rezultata.

Primjer

Pogledajte primjer kako filtrirati prvu riječ u svakoj dolaznoj poruci i kako izvršiti odvojene radnje za svaku. Radnja ovisi o tome je li riječ 'CRVENO', 'PLAVO' ili nešto drugo. Velika i mala slova se tretiraju jednako. (Slika 7)

k^CRVENO
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='crveno'
#Prvi filtar provjerava je li riječ 'CRVENO' bila ključna riječ.
#Ako je točno, INSERT-uje poruku u tablicu 'log'
#i SELECT-a 'Crvena je dobra boja.' kao odgovor.
#Ako nije, prelazi na sljedeći filtar.

k^PLAVO
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='plavo'
#Drugi filtar provjerava je li riječ 'PLAVO' bila ključna riječ.
#Ako je točno, SELECT-a 'Plava nije najbolja opcija.' kao odgovor.
#Ako nije, prelazi na sljedeći filtar.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#Treći filtar prihvaća bilo koju drugu ključnu riječ.
#SELECT-a 'Nema podataka za ovu ključnu riječ.' kao odgovor.
Slika 7 - Primjer SQL upita

Pogledajte SQL tablice na Slici 8 i 9 kako biste ispitali sljedeći primjer:

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Nema podataka za ovu ključnu riječ.
 2          crveno                         Crvena je dobra boja.
 3          plavo                          Plava nije najbolja opcija.
 
Slika 8 - Tablica 'autoreplymessage'

id          sender                         message
----------  ------------------------------ -------------------------------------
 1          +3620123456                    crveno Pozdrav Autoreply korisniče
 2          +3670654321                    crveno Dobar dan primaocu
Slika 9 - Tablica 'log' za dolazne poruke

More information