<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.