3.3. PHP lekérdezés

iDevice ikon

16. ábra
A PHP fájlunk

Ezt követően írjuk meg azt a PHP fájlt, ami létrehozza a kapcsolatot az adatbázis, illetve a Flash alkalmazás között. A kódnak két funkciója lesz: először is, amennyiben a Flash szkripttől kapott adatot (vagyis írtak új hozzászólást), vegye fel az adatbázisba. Akár került be új bejegyzés, akár nem, fusson le egy lekérdezés, ami időrend szerint megkapja a bejegyzések minden adatát. Ezt végül megformázva, szövegesen visszaküldi a Flash-nek, ami a saját felületén megjeleníti.

A fenti ábra a kész kódot mutatja be. Az első sorok hozzák létre a kapcsolatot az adatbázissal: mysql_connect segítségével kapcsolódik a szerverhez (elsőként a szerver címét, majd a felhasználónevet, végül a jelszót kéri paraméterként), a mysql_select_db az adatbázist választja ki. Ezt követi a vizsgálat: a $_POST tömbbe fognak kerülni a Flash által küldött adatok, tehát a feltétel csak akkor teljesül, ha ez a tömb nem üres, és van új adat, amit fel kell venni. Ezeket lementjük külön változókba, a date() függvény segítségével megkapjuk az aktuális időt, majd egy SQL utasítást megadván a mysql_query() lefuttatja az adatfelvitelt:

INSERT INTO táblanév (mező1, mező2...) VALUES (érték1, érték2...)

Feltételtől függetlenül továbbá le kell kérdeznünk az összes eddigi bejegyzést, hogy meg tudjuk jeleníteni a felületünkben. Ezt egy újabb mysql_query() paranccsal oldjuk meg:

SELECT mező1, mező2... FROM táblanév

Mezőnevek helyett a * jelet használva az összes mező értékét megkapjuk. Az utasításban szerepel továbbá az ORDER BY, ami egy mező alapján rendezi az eredményt (jelen esetben a dátum szerint csökkenő - DESC - sorrendben).

Végezetül annyi a dolgunk, hogy a lekérdezés által megkapott sorokat egységesen, szöveges formában továbbítsuk a Flash szkriptnek. Ehhez ciklus segítségével egyenként kiolvassuk az eredménytábla sorait:

while ($sor=mysql_fetch_array($adatok)){
...
}

A mysql_fetch_array() az eredménytáblán végighaladva kiemel egy sort, és annak elemeit tömbbe rakja (ezt megkapja a $sor változó). Ciklusunk tehát addig megy, amíg a $sor kap valami értéket, tehát szerepel még adat a lekérdezés eredményében. A ciklusban csupán annyit csinálunk, hogy a sor adatait HTML segítségével minimális szinten megformázzuk, és hozzáadjuk a $flash_valasz változóhoz - ami így a ciklusból kilépve tartalmazni fogja az összes bejegyzés összes adatát.

Kimenő adatot -többek között- a Flash felé a PHP print, vagy echo utasításával tehetünk meg, és csakúgy, mint a loadVariables eljárás esetén, itt is meg kell adni a szövegben egy változónevet, ami alapján a Flash hivatkozni tud az értékekre. Jelen esetben a visszanevet kapta.