<sqlvariable name="jmeno_promenne" format="format_promenne" copy="1" log="0" sqltextvariable="promenna s sql vyrazem">SQL vyraz</sqlvariable>
Tag sqlvariable načítá data z databáze pomocí SQL výrazu do proměnné.
Atributy:
name - (povinný) Jméno proměnné, do které se vloží výsledek.sqltextvariable - (nepovinný) Jméno proměnné, která obsahuje SQL výraz. SQL výraz může být zadán také přímo v těle tagu sqlvariable.format - (nepovinný) Formát proměnné, která se vytvoří.copy - (nepovinný) Určuje, jestli se vyhodnocení SQL výrazu v předávacím formuláři bude provádět vždy (copy="1"),
nebo se v dalších krocích použije hodnota načtená v prvním kroku (copy="0"). Výchozí hodnota je 1.log - (nepovinný) Určuje, jestli se má provedený SQL výraz zalogovat (0 = neloguje se, 1 = loguje se, 2 = podrobné logování včetně načtených hodnot -
lze zapsat jen hodnoty, které lze automaticky konvertovat na řetězec! U některých způsobů připojení k databázi nefunguje například pro datumy!).SQL výraz může být zadán pomocí prorměnné sqltextvariable (proměnná se zadaným jménem musí obsahovat SQL výraz) nebo v těle tagu.
Pokud vrací zadaný SQL výraz více polí, bude výsledná proměnná pole. První prvek pole je naformátován zadaným formátem.
Formát (format_promenne) může být:date, time, datetime, year, finedate, finedatetime, fulltime, fulldatetime - z datového pole typu TIMESTAMP vytvoří textový zápisnumber1, number_1, number2, number_2, kc, curr - z datového pole typu float, nebo integer vytvoří textový zápisanone - text Ano nebo Nehodiny - text ve formátu hh:mm - počet hodin (může být více než 24) - pro datové pole typu floatminuty - počet minuttimeofday - text ve formátu hh:mm - počet hodin (může být více než 24) - pro datové pole typu TIMESTAMPtimestamp - z datového pole typu TIMESTAMP vytvoří číslo reprezentující daný čas (ve formátu PHP - tj. počet sekund od 1970).sql2datetimestr, sql2datestr, sql2timestr - převádí datum a čas načtený z databáze na text - a to i při zápisu do SQL výrazu!sql2timestamp - převádí datum a čas načtený z databáze na timestamp
Pokud není formát zadán, bude proměnná v takovém tvaru, jako byla vrácena z databáze.
POZOR! Některé databázové drivery (např. sqlsrv) vrací timestamp jako objekt!
<sqlvariable name="pocetOsob">
SELECT COUNT(*) FROM Osoba
</sqlvariable>
Načte počet osob v databázi do proměnné pocetOsob
<sqlvariable name="pocetOsob">
<![CDATA[
SELECT COUNT(*) FROM Osoba WHERE Prijmeni < 'L'
]]>
</sqlvariable>
Načte počet osob, jejichž příjmení začína znakem "menším" než L
<sqlvariable name="pocetOsob" sqltextvariable="SQL1" />Načte výsledek SQL dotazu, který je uložen v proměnné SQL1.
<sqlvariable name="MojeOsoba">
SELECT Prijmeni, Jmeno, Titul FROM Osoba WHERE RC = {$RC}
</sqlvariable>
Do proměnné MojeOsoba načte záznam z tabulky Osoba - uloží do něj pole se třemi hodnotami.