WAP a databáze

Nyní se podíváme na skutečně dynamické skriptování. Vzhledem k tomu, že WAP má být bohatým mobilním informačním zdrojem jako jsou databázové systémy. Lze tak velice snadno vytvořit velmi užitečné aplikace jako jsou různé podnikové informační systémy a přístup k internetovým službám. Skriptovací jazyk PHP nabízí knihovny funkcí pro práci s hezkou řádkou databází (Microsoft SQL, Oracle, SyBase, MySQL a řada dalších).
V dalším příkladu bude demonstrován přístup do databáze z WAPových stránek využívající databázového produktu MySQL. Samozřejmě že se může použít jiná databáze. Pro využití jiných databází je třeba prostudovat manuál k PHP pro nalezení funkcí spolupracujících s produkty jiných výrobců. Většinou mají velmi podobnou syntaxi.

Příklad bude vyhledávat záznamy z tabulky odpovídající zadanému příjmení a tyto záznamy následně zobrazí.Program obsahuje dvě stránky - zadání hodnot a zobrazení výsledků.

Úvodní strana se dotazuje na příjmení, podle kterého budou osoby vyhledávány:

<?header("Content-type: text/vnd.wap.wml");
echo("<?xml version=\"1.0\"?>\n");
echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \
"http://www.wapforum.org/DTD/wml_1.1.xml\">\n\n");
?>

<wml>
<card id="zadani" title="Zadani hledani" newcontext="true">
<p>
<?
echo("Zadej prijmeni: <input type=\"text\" name=\"klic\"/>\n");
echo("<anchor>Hledej zadani <go href=\
"sdil4skript.php3?klic=$(klic)\"/></anchor>\n");
?>
</p>
</card>
</wml>

Odkaz pro vyhledání záznamů předává následujícímu skriptu proměnnou obsahující příjmení jako kritérium pro vyhledávání. A zde je text vyhledávacího skriptu:

<?header("Content-type: text/vnd.wap.wml");
echo("<?xml version=\"1.0\"?>\n");
echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \
"http://www.wapforum.org/DTD/wml_1.1.xml\">\n\n");
?>

<wml>
<card id="vysledek" title="Nalezeno">
<p>
<?
$konexe=mysql_connect('localhost','root','');
$navrat=mysql_db_query('jmena','SELECT
krestni,prijmeni FROM nazvy',$konexe);
echo("Vyhledavani dle: $klic");
echo("<br/>\n");
echo("Jmeno a prijmeni\n");
echo("<br/>\n");
echo("------------------\n");
echo("<br/>\n");
while (list($krestni,$prijmeni) = mysql_fetch_row($navrat)) {
$prijmeni=trim($prijmeni);
if ($prijmeni == $klic)
{
echo("$krestni $prijmeni");
echo("<br/>\n");
}
}
echo("-----------------\n");
echo("Konec vypisu\n");
?>
</p>
</card>
</wml>

Pro pochopení funkcí umožňujících spojení s MySQL databází opět odkazuji do manuálu PHP. Stěžejní část skriptu je pak v cyklu while, kde dochází k procházení záznamů z tabulky jmen a jejich kontrole, zda se hledané příjmení s nimi shoduje (viz opět manuál PHP).