Struktura SQL upitskog skripta

Pomerite se nadole da vidite strukturu SQL upitskog skripta. Možete generisati skript fajl za svakog korisnika Autoreply baze podataka, koji može slati SMS poruke ako prate skript. Fajl radi sa svakom dolaznom porukom i bira odlazne poruke prema filteru.

Uvod

Pogledajte skript fajl. Možete videti da je podeljen u sekcije odvojene praznim linijama (Slika 1). Možete napisati koliko god sekcija želite bez maksimalnog ograničenja. Sekcije se čitaju redom i prva sekcija koja odgovara dolaznoj SMS poruci će biti korišćena za kreiranje odgovora.

Prva linija svake sekcije je uslov filtera, a sledeća jedna ili više SQL naredbi se nazivaju akcija. SQL SELECT naredbe mogu vratiti jednu ili više odgovarajućih poruka. Ako uslov filtera odgovara podacima dolazne poruke, poziva se izvršavanje naredbi dok se ne nađe prazna linija. U tom slučaju neće proveravati druge sekcije.

možete videti uslove filtera i SQL naredbe u ovom primeru
Slika 1 - Možete videti uslove filtera i SQL naredbe u ovom primeru
Uslov

Svaka sekcija počinje sa uslovom koji se sastoji od jedne linije podeljene u dva dela (Slika 2)

prva linija svake sekcije se naziva: uslov
Slika 2 - Prva linija svake sekcije se naziva: uslov

Prvi deo je selektor cilja za uparivanje, jedan karakter koji određuje koji deo dolazne poruke treba filtrirati (Slika 3). FONT style="font-size:15px;">Možete izabrati karakter selektora cilja za uparivanje iz sledećih opcija:

# Opcije uslova:
#     n - ako broj telefona pošiljaoca odgovara šablonu
#     m - ako tekst poruke odgovara šablonu
#     k - ako ključna reč odgovara šablonu. (Ključna reč je prva reč
#         poruke. Ključna reč se konvertuje u velika slova)
Slika 3 - Selektor cilja za uparivanje

Drugi deo je šablon za uparivanje koji je filter karaktera (Slika 4).

Ovi primeri šablona za uparivanje rade na 'm' cilju poruke:
m.* - odgovara bilo kom tekstualnom poruci
m^abc.* - odgovara ako tekstualna poruka počinje sa 'abc' ili 'ABC'
m.*abc.* - odgovara ako tekstualna poruka sadrži 'abc' ili 'ABC'
Slika 4 - Primeri šablona za uparivanje

Ovde možete pronaći tutorijal o regularnim izrazima za dostupne šablone za uparivanje.

Akcija

Svaki uslov filtera je praćen akcijom koja se sastoji od SQL naredbi.

Možete samo slati SMS poruke sa SQL SELECT upitima, ali možete pokrenuti i INSERT i UPDATE naredbe. Imajte na umu da je 1. parametar rezultata SELECT upita primalac poruke koja će biti poslata, dok je 2. parametar sama poruka. Na Slici 5 možete videti nekoliko primera.


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='podrazumevano'
Slika 5 - Primeri SQL naredbi gde je primalac '$sender'

Sledeće reči su zamenjene u SQL naredbama:
RečiVrednost
$originatorBroj telefona sa kojeg je poruka poslata.
$sender=$originator ($sender je drugo ime za $originator.)
$recipientBroj telefona na koji je poruka poslata.
$receiver=$recipient ($receiver je drugo ime za $recipient.)
$messagedataTekst poruke.
$keywordPrva reč u poruci. Ova reč se naziva ključna reč.
$afterPreostali tekst nakon ključne reči.
$senttimeVremenska oznaka koja pokazuje kada je poruka poslata.
$receivedtimeVremenska oznaka koja pokazuje kada je poruka primljena.
$messagetypeTip poruke, koji je u većini slučajeva 'SMS:TEXT'.
$idJedinstveni string. Identifikuje svaku poruku u Ozeki SMS Gateway-u.
$operatorIme provajdera usluga. Prima poruku u Ozeki SMS Gateway-u.
$1Prva reč u poruci.
$2Druga reč u poruci.
$3Treća reč u poruci, itd...

Svaka SQL naredba se izvršava liniju po liniju dok interpreter ne dođe do prazne linije, gde se konačno zaustavlja.

(Savet: Možete dobiti samo sadržaj odgovora korišćenjem SELECT naredbi.)

Odgovor

Rezultujući skup SELECT SQL naredbe sadrži poruke koje treba proslediti ili odgovoriti. Broj redova koje možete pronaći u rezultujućem skupu će odrediti broj poruka koje treba poslati. (Slika 6)

Rezultujući skup može sadržati sledeće parametre:
recipient - Prva kolona rezultujućeg skupa (Obavezno)
messageData - Druga kolona rezultujućeg skupa (Obavezno)
messageType - Treća kolona rezultujućeg skupa (Opciono)
sender - Četvrta kolona rezultujućeg skupa (Opciono)
operatorNames - Peta kolona rezultujućeg skupa (Opciono)

Slika 6 - Ozeki 10 SMS Gateway's Autoreply Database User će poslati SMS poruke iz rezultata.

Primer

Pogledajte primer kako da filtrirate prvu reč u svakoj dolaznoj poruci i kako da izvršite odvojene akcije za svaku. Akcija zavisi od toga da li je reč '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 filter proverava da li je reč 'CRVENO' bila ključna reč.
#Ako je tačno, INSERT-uje poruku u 'log' tabelu
#i SELECT-uje 'Crveno je dobra boja.' kao odgovor.
#Ako nije tačno, prelazi na sledeći filter.

k^PLAVO
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='plavo'
#Drugi filter proverava da li je reč 'PLAVO' bila ključna reč.
#Ako je tačno, SELECT-uje 'Plavo nije najbolja opcija.' kao odgovor.
#Ako nije tačno, prelazi na sledeći filter.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#Treći filter će prihvatiti bilo koju drugu ključnu reč.
#SELECT-uje 'Nema podataka za ovu ključnu reč.' kao odgovor.
Slika 7 - Primer SQL upita

Pogledajte SQL tabele prikazane na Slici 8 i 9 da biste ispitali sledeći primer:

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        Nema podataka za ovu ključnu reč.
 2          crveno                         Crveno je dobra boja.
 3          plavo                          Plavo nije najbolja opcija.
 
Slika 8 - 'autoreplymessage' tabela

id          sender                         message
----------  ------------------------------ -------------------------------------
 1          +3620123456                    crveno Zdravo Autoreply Database User
 2          +3670654321                    crveno Dobar dan primaocu
Slika 9 - 'log' tabela za dolazne poruke

More information