Autor článku: PaBi3
Vydané dňa: 30.04.2005
http://www.pabi3.com/1-php-pre-zaciatocnikov-uvod,-1.diel
V prvej časti seriálu PHP pre začiatočníkov nemôže chýbať jeho samotná história
a ani inštalácia. Ak sa chcete dozvedieť viac prečítajte si tento článok.
Označenie PHP bolo pôvodne skratkou anglickej frázy "Personal Home Page".
Túto technológiu vytvoril v roku 1994 Rasmus Lerdorf kvôli sledovaniu
návštevníkov na jeho stránke. S postupným nárastom užitočnosti a možností
tejto technológie sa ujal názov "PHP: Hypertext Pre-processor".
Podľa oficiálnej prezentácie je "PHP vloženým skriptovacím jazykom". Je to
komplexná, ale aj tak popisná definícia. K tejto definícii by som mal dodať,
že PHP je technológia nezávislá na platforme, určnenej pre serveri.
Skutočnosť, že ide o serverovú techonológiu, znamená, že všetko, čo sa v kóde
PHP odohráva, sa odohráva na serveri (nie na klientovi, ktorým je počítač návštevníka
webového serveru). PHP sa dá používať na väčšine operačných systémoch vrátane Microsoft Windows
, Unix, Linux a aj Macintosh. Ešte dôležitejšia je však skutočnosť, že skript napísaný
na jednom serveri bude fungovať prakticky bez úprav, tiež na akomkoľvek serveri.
Je zrejmé, že by bolo najlepšie pracovať na serveri, na ktorom je inštalovaná
verzia PHP. PHP je jazyk pre dynamické prezentácie. Medzi jeho prednosti patrí
výkon, tesná integrácia s väčšinou dostupných databázových systémov, stabilita
a takmer neobmedzené možnosti jeho rozširovania. Všetky uvedené výhody sú zdarma.
Jazyk PHP je pre začínajúcich programátorov tá najlepšia voľba a potom si už budú
môcť robiť s ich skriptami čo si len pomyslia.
V januári roku 1999 jazyk PHP používalo asi 1.000.000 milión domén a na to o 5
rokov v januári roku 2004 sa jazyk PHP rozšíril na 16.000.000 miliónov domén.
Ako už bolo uvedené jazyk PHP pracuje na strane serveru a to znamená, že kód, ktorý
napíšete v jazyku PHP, je uložený na počítači, ktorý ponúka webové stránky návštevníkom.
Kedykoľvek užívateľ navštívi webovú stránku napísanú v PHP jazyku, server načíta
kód PHP a potom ho zpracuje podľa zadaných parametrov. PHP sa veľmi odlišuje od
statických stránok HTML. Ale aby som upozornil s pohľadu koncového užívateľa neni
HTML a PHP veľmi odišné i keď obsah stránky je vytvorený podstatne odlišne.
V totmo diely by som mal upozorniť na to, že v sekcií download http://www.pabi3.com/download.php
sa nachádza celý potrebný balíček pomocou ktorého sa vám nainštaluje podpora PHP
skriptov, MySQL databáza a server Apache. Preto by som odporúčal pre začiatočníkov
navštíviť sekciu download.
Ako prvým začnem samotným PHP. Nájdete ho na stránke
www.php.net. Všetko potrebné nájdete v sekcií
download. Stahujte podľa toho aký máte operačný systém.
Ďaľej by som pokračoval s databázou MySQL. Navštívime stránku
www.mysql.com.
Teraz by sme prišli k Apachu. Server, ktorý udržiava PHP a MySQL pri chode.
Stiahneme ho na adrese www.apache.org.
Ďalej máme na internete možnosť stiahnúť si aj hotové balíčky ako napr. "PHP HOME 2" alebo
"PHP Triad" a mnoho ďalších.
Osobne používam "PHP HOME 2" a preto všetko čo stačí urobiť pri inštalácií je
čakať a po jej ukončení reštartovať počítač. Potom sa už len riadte krokmi, ktoré
budú uvedené na obrazovke a nič nepokazíte.
PHP pre začiatočníkov - Software, 2.diel
Diel bude tentokrát venovaný základnej syntaxy, ktorá je nevyhnutnou
potrebou pri písaní php skriptov a tvorbe dynamických webových stránok.
Ak si prečítate tento článok ďaľej zistíte, že syntax nieje ani taká
zložitá ako vyzerá, a že php je jedným z najrýchejšie sa učiacich
skriptovacích jayzykov.
PHP skripty sa v zdrojovom kóde uzatvárajú veľmi jednoducho. Môže to byť
celým alebo skráteným spôsobom. Oddelovať sa musia pri napr. od HTML kódu.
Toto sú značky oddelovania:
<?php ?>
alebo skrátenou podobou
<? ?>
alebo aj
<script language="php"> </script>
Asi prvé čo by som mal zaradiť ako váš prvý php skript by bol príkaz
echo, ktorý slúži ako napísanie vami požadovaného textu alebo HTML kódu,
ktorý sa odošle do prehliadača.
Toto je príkaz "echo" na vypísanie textu:
<?php echo "Toto je môj prvý skript v jazyku PHP."; ?>
Tento príkaz vypísal tento text:
Toto je môj prvý skript v jazyku PHP.
PHP skripty môžete zapisovať medzerami, preskokom na riadok a akokoľvek
inak. Syntaxy php to vôbec nevadí.
Aby ste lepšie pochopili minulej vete tak vám sem napíšem názorný príkad:
<?php
echo " Toto je php skript "
;
?>
Ak by sme však do skriptu php chceli zaviesť aj niečo ako HTML kód typu
napr.:
<?php
echo "<img src="image/phprs.gif">;
?>
tak by nám php skript vypísal chybu. Aby bol skript funkčný musíme to napísať
takto:
<?php
echo "<img src"image/phprs.gif">;
?>
A ešte je tu možnosť aj použítia apostrofov
<?php
echo ´<img src="image/phprs.gif">´;
?>
Ak by ste apostrof nevedli zaspísať je to v celku jednoduché - stačí použíť
skratku - Alt + 3, 9. Opačné lomítka zapisujeme takto - pravý ALT + Q.
Ďaľší typ zápisu kódu by boli premenné. Premennými si môžeme výrazne
uľahčiť prácu s textom, funckiami, databázami a pod. Názorný príklad
pre základné použitie premennej v texte je takýto:
<?php
$premenna = "php";
echo "Ja ovládam $premenna";
?>
alebo aj takto
<?php
$premenna = "php";
echo "Ja ovládam ".$premenna."";
?>
Mali by sme dostať nasledujúci text:
Ja ovládam php
Celá syntax je v podstate veľmi jednoduchá a toto zdaleka nieje všetko.
PHP obsahuje omnoho viac kódu ktorý môžeme zapísať ale to sa do jedného
článku asi nezmestí a preto som zhrnul to základné zo základného do
jedného článku. Toto by bol asi koniec tejto časti. V ďaľšej časti si
povieme niečo o odosielaní formulárov.
PHP pre začiatočníkov - Premenné, operátory, konštanty, 3.diel
V minulej časti sme si hovorili o základnej syntaxi php a popísali sme si
niečo málo aj o premenných. V tejto časti sa dozviete viac o premenných,
operátoroch a konštantách. Jazyk php nieje taký ťažký ako si môžete
myslieť a stačí si len pozorne prečítať každý článok aby ste aj vy
sami dostali syntax do rúk a hlavy samozrejme.
Premenné v php zastupujú jednu z najdôležitejších súčastí každého
php skriptu. Teraz počítam s tým, že už určite máte nainštalované php
HOME 2 ako som odporúčal alebo to môžu byť aj iné inštalátori ako
napr. php Triad alebo ručne nainštalované php, mysql a apache. Teraz už k
premenným. Za premenné sa dočasne dosadzujú hodnoty. Môžeme do nich
dosadiť text alebo číslice, či už celé alebo desatinné.
V php rozlišujeme tieto typy premenných a to:
- integer - celé čísla
- double - desatinné čísla
- string - textová hodnota - napr. $premenna = "pabi3";
- array - pole (viac sa dozviete vo vyšších dieloch seriálu)
- object - objekt
- boolean - pravda/nepravda alebo true/false (0/1)
- NULL - premenná bez hodnoty (prázdna)
- Globálne premenné - podporované od verzie php4
Asi prvé čo php vyžaduje je správna syntax a to aj v prípade premenných:
- Názov premennej začína znakom $
- Zápis sa vzťahuje aj na viac typov znakov ako sú čísla, pomlčky... atď
- napr.: $pÁbi_3
- Prvým znakom za symbolom $ nesmie byť číslica (min. znak ako napr. _ )
- premenné v php sú cast-sensitive čo znamená, že premenná $pabi3 je niečo
iné ako premenná $PaBi3
- premennej sa hodnota priraďuje pomocou znaku "="
Každá teória v php by sa mala aj odskúšať a to aj v prípade premenných.
Všetko vyzerá celkom jednoduché ale nieje tomu tak, pretože na každý
programovací jazyk si treba zvyknúť a až potom sa vám dostane do rúk celá
syntax. Výnimkou nieje ani php. Toto je príklad využitia premenných:
<?
$test = "PaBi3";
$cislo = 10;
$descislo = 15.54321;
$hodnota = $cislo + $descislo;
echo "$test<br><br>"; // vypíše PaBi3
echo "$cislo<br><br>"; // vypíše 10
echo "$descislo<br><br>"; // vypíše 15.54321
echo "Toto $cislo + $descislo sa rovná $hodnota";
?>
To by bola asi taká úvodná prax s premennými. Určite ste si všimli aj
znaky, pomocou ktorých premenné sčitujete. Takýchto znakov je viac a tiež
majú svoju syntax. Volajú sa porovnávacie príkazy a logické operátory.
Ich syntax je nasledovná a myslím, že už nieje potrebné ďalej
vysvetlovať ich zápis keď sa mi zdá logický už aj s príklade vyššie
uvedeného pre premenné.
Syntax |
Vysvetlenie |
Typ |
Príklad |
= |
Priraďuje hodnotu |
Priraďovanie |
$x = 1 |
== |
Rovná sa |
Porovnávanie |
$x == 1 |
!= |
Nerovná sa |
Porovnávanie |
$x != 1 |
< |
Je menší |
Porovnávanie |
$x < 1 |
> |
Je väčší |
Porovnávanie |
$x > 1 |
<= |
Je menší alebo rovný |
Porovnávanie |
$x <= 1 |
>= |
Je väčší alebo rovný |
Porovnávanie |
$x >= 1 |
! |
Neni |
Logický |
!$x |
&& |
A |
Logický |
$x && $y |
|| |
Alebo |
Logický |
$x || $y |
+ |
Sčítanie |
Aritmetický |
$x + $y |
- |
Odčítanie |
Aritmetický |
$x - $y |
* |
Násobenie |
Aritmetický |
$x * $y |
/ |
Delenie |
Aritmetický |
$x / $y |
% |
Zvyšok po celočíselnom delení |
Aritmetický |
$x % $y |
Všetky operátory patria do hlavy každého dobrého programátora lebo
ich obsahuje každý programovací alebo skriptovací jazyk len možno v inom
zápise. My sa ale venujme php.
Ďalšia téma syntaxy budú konštanty. Premenné uchovávajú svoju
hodnotu dočasne ale konštanty si ju udržiavajú počas procesu celého
skriptu. Hodnota konštanty je nezmeniteľná. Základná syntax je v celku
jednoduchá rovnako ako bolo u premenných. Zapisuje sa ako define(). Hodnota
sa teraz ale nepriraďuje pomocou "=", ale iba pomocou takéhoto zápisu:
<?
define("ZAKLAD","konštanta");
echo "Toto je ".ZAKLAD.""; // vypíše nám "Toto
je konštanta".
?>
Konštanty sa dajú použiť napr, pri práci s jazykovou mutáciou stránky.
Je len na vás ako ich využijete ale toto by bola asi tá správna cesta :).
Toto by bolo na záver asi všetko o premenných, operátoroch a konštantách.
Nezabudnite si prečítať aj ďalšiu časť :-)).
PHP pre začiatočníkov - Podmienky, 4.diel
Podmineky v php a ich použitie. Ak ste si neprečítali minulý diel -
premenné, operátory a konštatny, tak si to radšej prečítajte, pretože
to budete potrebovať. Je to súčasť syntaxy, ktorá sa najčastejšie
zapisuje do podmienok a ešte som nevidel nejaký dobrý skript, ktorý by
podmienky neobsahoval(až na výnimky).
Podmienky sú v php dôležitou súčasťou bez ktorej sa veľa skriptov
nezaobíde. Už s prekladu nám je jasné, že "if" znamená v
predade "ak". Podmienka if zaisťuje overenie splnenia alebo
nesplnenia zadanej podmienky. Základná syntax má 3 typy zápisu (if,
elseif, else). Zápis je nasledovný:
<?
if (podmienka){
vykonanie pri splnení podmienky
}
elseif (iná podmienka){ // ak nieje splnená 1.podmienka urob túto
vykonanie pri splnení podmienky
}
else { // ako vidíte tak tu nieje podmienka
vykonaj pri nesplnení predošlých podmienok // zadáte nejakú činnosť,
ktorá nastane pri neslpnení predošlých podmienok.
}
?>
Toto bola základná syntax, ktorú si teraz môžeme rýchlo overiť a to
tak, že si to vyskúšame v praxi:
<?
$a = 8;
$b = 3;
$c = 10;
if ($a+$b > $c){
echo "".$a+$b." je väčšie ako $c";
}
elseif ($a+$b < $c){
echo "".$a+$b." je menšie ako $c";
}
else {
echo "Čísla neobsahujú žiadnu hodnotu";
}
?>
Toto je kompletný príklad na ktorom si vysvetlíme o čo ide. Všetko je
logické a jednoducho spracované. Najprv sme si zadali premenné $a, $b a $c
a priradili sme im číselné hodnoty. Ďalej nasleduje podmienka
"if", čiže "ak" premenná $a sčítaná s premennou $b
je väčšia ako premenná $c, tak napíš "hodnotu sčítaných premenných
$a a $b" ďalej, text "je väčšie ako" a nakoniec hodnotu $c.
Naším zápisom dosiahneme toto: "11 je väčšie ako 10.". Prvá
podmienky bola splnená a máme to teraz celé hotové. Ak by však premenné
mali takéto hodnoty:
$a = 6;
$b = 3;
$c = 10;
,... tak by nám náš skript vypísal podmienku druhú a to je tá, ktorá
nasleduje za elseif. Skript nám napíše toto: "9 je menšie ako
10.". Ak by však čísla nemali žiadnu hodnotu čo sa zapisuje
nasledovne:
$a = NULL;
$b = NULL;
$c = NULL;
Skript nevedel zapísať žiadnu s podmienok. Musel by pristúpiť na náš
posledný riadok, ktorý vypíše text "Čísla neobsahujú žiadnu
hodnotu". Else sa odlišuje od elseif tým, že nemá žiadnu podmienku.
Else by sa dalo preložiť aj "alebo" a elseif na "alebo
ak". Ak potrebujete vedieť niečo o porovnávacích znamienkach, tak si
prečítajte minulý diel.
V ďalšom diele niečo viac o poliach.
PHP pre začiatočníkov - Polia, 5.diel
V tomto diele sa dozviete o poliach a ich možnosti zápisu. Niečo si povieme
aj o superglobálných poliach a jedno si aj vykúšame. Uvedieme príklad využitia
polí a možnosti odoslania dát resp. hodnôt.
Polia sú trochu odlišné od premenných. Ich základná odlišnosť spočíva
v tom, že v premenných môže byť len jedna hodnota a v poliach môže byť
rada hodnôt. V poliach sa môžu taktiež nachádzať premenné, čísla a aj
iné polia. Polia delíme na
indexové a
asociatívne. Indexové
používajú čísla a asociatívne, ktoré využívajú premenné, reťazce a
pod.. Pri indexovaných poliach sa počíta prvá hodnota od číslice nula. Základná
syntax polí sa začína takto:
<?
$pole = array ("PHP","MySQL","Apache");
echo "{$pole["0"]}<br>";
echo "{$pole["1"]}<br>";
echo "{$pole["2"]}<br>";
?>
alebo aj takto:
<?
$pole[] = "PHP";
$pole[] = "MySQL";
$pole[] = "Apache";
// môžu byť aj s číslami ako $pole[0], $pole[1] a
pod.
echo "{$pole["0"]}<br>";
echo "{$pole["1"]}<br>";
echo "{$pole["2"]}<br>";
?>
Ste práve svedkom príkladu, ktorý využíva indexové pole. Máte možnosť
si všimnúť aj spomínané indexovanie od nuly. Pole zapisujeme podobne ako
premennú ale pred ňu si zapíšeme array aby sme vedeli, že ide o pole a
aby to samozrejme vedel aj jazyk php. Keď zapisujeme pole do príkazu echo,
tak si určite musíte všimnúť, že sa zapisujú do týchto znakov {} resp.
takto {$pole["0"]}. Druhý príklad je rovanký len sme pole
rozdelili. Toto je ukážka asociatívnych polí:
<?
$pole["PHP"] = "PHP: Hypertext Preprocessor";
$pole["MySQL"] = "Structured Query Language";
$pole["Apache"] = "Open source Web server";
echo "Skratka PHP znamená
<b>{$pole["PHP"]}</b><br>";
echo "Skratka MySQL znamená
<b>{$pole["MySQL"]}</b><br>";
echo "Skratka Apache znamená
<b>{$pole["Apache"]}</b><br>";
?>
Ako máte sami možnosť vidieť, tak asociatívne polia využívajú k
svojej správnej funkcií ako kľúč reťazce a nie číslice. Polia sú čiastočne
prerobiteľné a to tak, že ich môžete indexovať od jednotky a nie od
nuly. Je to dosiahnuteľné potom ako pred indexované pole vložíme takýto
dotaz:
<?
$pole = array (1 =>
"PHP","MySQL","Apache");
echo "{$pole["1"]}<br>";
echo "{$pole["2"]}<br>";
echo "{$pole["3"]}<br>";
?>
Možno si budete myslieť, že "prerobenie" je dosť tvrdý výraz
pre takúto drobnú úpravu. Mohli by sme polia indexovať taktiež aj od 5
alebo od 100. Je tu aj plno iných možností a je to len na vás akú si vy
zvolíte. Máte možnosť vidieť, že pred array sme vložili 1 a za ňou
nasledoval tento znak =>.
Od verzie PHP v4.1 boli implementované aj tzv. "Superglobálne
polia.". Tieto polia majú oproti bežným jednu veľkú výhodu a to je
bezpečnosť. Hodnotu, ktorú pole odosiela poznáme a vieme odkiaľ je. Poznáme
mnoho druhov superglobálnych polí a medzi ne patria aj $_GET a $_POST. Ako
príklad využitia si môžete zobrať aj formuláre do ktorých sa hodnota
odosiela. Cez $_GET sa nám odoslaná hodnota vypíše v prehliadači tam kde
zadávame adresu a to znamená, že sa ukladá aj do histórie. Preto veľmi
neodporúčam využívať tento typ pre heslá užívateľov. Pri $_POST nevidíte
ako sa odosiela hodnota a ani sa neukladá do histórie. Ukladanie a
odosielanie hesiel ešte nepatrí do tejto časti. Polí je mnoho a dostaneme
sa k nim v budúcich dieloch.
Ako príklad použitia polí môžem uviesť aj malý formulár. Poviete si
"len formulár už nie", ale je to tak. Je to najjednoduchší príklad
aký pre začiatočníka môžem uviesť. Ako prvé si napíšeme celý
zdrojový kód formuláru a potom si už len všetko vysvetlíme. Prvý súbor
sa bude volať - "index.php":
<form action="form.php" method="get">
<input name="text" type="text" /><br />
<input type="submit" value="Odoslať hodnotu." />
</form>
Druhý súbor "form.php" bude príjmať hodnoty od
"index.php":
<?
if(isset($_GET["text"])){
echo $text;
}
?>
Súbor "index.php" neobsahuje žiadny kód php. Obsahuje len čistý
formulár, ktorý je nastavený nasledovne: v tagu form máme zapísané dve
veci a to action="" a method="". Action nám zaistí
odoslanie hodnôt do súboru "form.php" Ďalej tu máme method. Ako
už bolo spomínané pri superglobálnych poliach, tak aj tu máme niečo
podobné. My sme nastavili method na GET, čo znamená, že tam kde v
prehliadači zadávame URL adresu bude teraz zadaná naša hodnota, ktorú sme
napísali do formuláru a odoslali. Zapísaná bude takto:
form.php?text=PaBi3. Samozrejme iba ak sme zadali text "PaBi3". Ak
by sme zadali method na "post", tak by nám vyšlo toto: form.php. A
ďalej nič.
Druhý súbor je celý v php a nepotrebuje ani veľmi zložité vysvetlenie
ale toto je časť venovaná poliam takže sme použili už spomínané
superglobálne pole $_GET. $_GET slúži podobne ako aj method resp. superglobálne
polia sú založené na podobnej báze. Tiež si to celé môžeme preložiť
do slovenčiny a zistíme, že nám výde toto: ak(jenastavené($_získaj["text"]))
napíš $text. Je to pochopiteľné už len z názvu. Celkom jednoduché tak
ako minule :-). Toto by bolo k poliam asi všetko.
PHP pre začiatočníkov - Email, 6.diel
V tejto časti nášho seriálu sa dozviete ako odoslať email pomocou skriptu
napísaného v jazyku PHP resp. sa naučíte používať funkciu mail().
V tejto časti si preberiem odoslanie emailu pomocou PHP. Jednoduchý
proces nám odošle email v parametroch:
mail(prijemca, predmet, text)
Pri odosielaní emailu nezabúdame na to, že ak email odosielame s osobného
počítaču a neobsahuje SMTP, tak email nebude možné odoslať. Funkcia
mail() vracia hodnotu 1 alebo 0 čo vyjadruje úspešnosť akcie. Môže to byť
po pozitívnej stránke(odoslané) alebo po negatívnej(neodoslané).
Pri emaili môžeme ešte doplniť adresu odosielateľa a to nasledovne.:
mail(prijemca, predmet, text, from:odosielatel);
Tento argument je nepovinný a nie je potrebné ho uvádzať.
Teraz sa presuniem k ostrému odoslaniu emailu:
<?
$prijemca = "email@domena.tld";
$predmet = "Test";
$sprava = "Toto je testovacia textová správa, ktorá bude odoslaná
pomocou jazyka PHP";
mail("$prijemca", "$predmet", "$sprava");
?>
Príjemcu sme si dosadili pomocou premenných ale ak chcete posielať email
staticky, tak je možné to napísať aj takto:
mail("email@domena.tld", "test", "Toto je
testovacia textová správa, ktorá bude odoslaná pomocou jazyka
PHP");
Teraz sa dostaneme k prekódovaniu emailu. Povedzme, že tieto premenné už
obsahujú nejakú hodnotu.
$adresa_prijemcu = elektronická adresa pošty
$subject = subject, proste predmet;
$text = vlastni telo zpravy;
Prekódovanie na charset ISO-8859-2. Nasleduje prevedenie z windows-1250 do
ISO-8859-2.
$text_1 = StrTr($text,
"x8Ax8Dx8Ex9Ax9Dx9E",
"xA9xABxAExB9xBBxBE");
Nasleduje prekódovanie do Base64
$text_2 = Base64_Encode($text_1);
Teraz pridanie hlavičiek.
$headers .= "MIME-Version: 1.0 ".
"Content-Type: text/plain; charset="iso-8859-2" ".
"Content-Transfer-Encoding: base64 ";
A nakoniec odošleme email.
@mail($adresa_prijemcu,$subject,$text_2,$headers);
Ak používame windows, tak neptrebujeme kódovanie.
Prekódovanie do Base64.
$text_2 = Base64_Encode($text);
Pridanie hlavičiek
$headers .= "MIME-Version: 1.0 ".
"Content-Type: text/plain; charset="windows-1250" ".
"Content-Transfer-Encoding: base64 ";
A odoslanie emailu.
@mail($adresa_prijemcu,$subject,$text_2,$headers);
Keď už som pritom, tak mi nedá vysvetliť aj niečo na čo som zabudol. Všimli
ste si pri funckí mail() znak @. Tento znak je tam s dôvodu potláčania chýb.
Ak nastane na tom mieste chyba v skripte(nie v syntaxi), tak sa chyba nevypíše.
Samozrejme táto vec je použiteľná pri všetkých funkciách v php nielen
pri mail().
Toto je koniec dielu o emailoch a nabudúce niečo o externých súboroch.
PHP pre začiatočníkov - Externé súbory, 7.diel
Zahňovanie externých súborov je jedna z najdôležitejších vecí, ktoré
by ste mali na začiatok ovládať. V tejto časti sa naučíte jej syntax a
popíšeme si jej 4 hlavné funkcie, ktorými tieto súbory zahrňujeme.
PHP vďaka 4 funkciám dokáže pracovať aj s externými súbormi. Vhodné
využitie sa objavuje pri požadovaní práce s viacerými súbormi s ktorých
by mohol byť jeden alebo jedna skupina ich primárnym cieľom pre čerpanie
informácií resp. čerpanie informácií s externých skriptov. Tieto štyri
funkcie sú include(), include_once(), require(),require_once().
include - zahrnie požadovaný externý súbor, na ktorý odkazuje. Pri
nejakej nezhode alebo chybe skriptu napr. pri neexistencií externého súboru
skript pokračuje ďalej a neukončí svoju činnosť iba sa vypíše chybové
hlásenie o neúspešnosti zahrnutia externého súboru.
include_once - v podstate je to to isté ako include ale zaistí
zahrnutie súboru do skriptu iba jeden krát. Viac už externý súbor byť
zahrnutý nemôže.
require - zahrnie požadovaný externý súbor, na ktorý odkazuje. Pri
nejakej nezhode alebo chybe skriptu napr. pri neexistencií externého súboru
skript nepokračuje ďalej a ukončí svoju činnosť potom vypíše chybové
hlásenie.
require_once - tak ako u include_once aj toto je to isté, len s tým
rozdielom , že require_once má tie isté vlastnosti ako obyčajné require.
Prípony _once majú v podstate takú funkciu aby zaistili zahrnutie súboru
iba jeden krát v jednom skripte.
Všetky zahrnuté externé súbory neprimajú výsledok od serveru ale od
prehliadača ak však v danom externom súbore nájdeme niečo čo bude napísané
medzi znakmi <??><??>a pod., tak to potom znamená, že náš
prehliadač bude spracovávať externý súbor ako bežný prehliadač, čiže
všetko prevedie do HTML podoby aj skripty PHP. Tým pádom môžete kľudne
do include(aj ostatných) zahrnúť PHP skripty, ktoré budú normálne
spracované.
Ak by som mal prísť k praxi, tak vám následným príkladom ukážem ako to
má všetko vyzerať.
<?
include("subor.html");
echo "<h1>Tento skript je dlhý</h1>";
?>
Príklad si môžete
prezrieť
tu. Vypíše sa "Tento skript je dlhý". Zvýraznil som to
nadpisom pomocou tagu <h1> aby to bolo dobre vidieť :-). Taktiež sa
zobrazí chybové hlásenie, ktoré je zobrazené s dôvodu neúspešného načítanie
externého súboru(lebo neexistuje). Ak by súbor existoval, tak by sme videli
buď prázdnu obrazovku alebo obsah zahrnutého skriptu.
Require()
<?
require("subor.html");
echo "<h1>Tento skript je dlhý</h1>";
?>
Pri tomto pokuse spustenia skriptu si môžete všimnúť, že sa nám vypísalo
chybové hlásenie ale nezobrazil sa nám text, ktorý sme sa pokúsili vypísať
pomocou funkcie echo. Príklad tohoto skriptu si môžete
pozrieť
tu.
Toto by bolo asi všetko o zahrňovaní externých súborov. V nasledujúcej
časti si povieme niečo o práci s funkciami a pomocou nich budeme tvoriť šablónu.
PHP pre začiatočníkov - Funkcie, 8.diel
Autor článku: PaBi3
Vydané dňa: 30.04.2005
Čítané: 131x
Definícia vlastných funkcií v php patrí ku každodennej praxi, ak chcete
vedieť syntax zápisu vlastnej funkcie, tak nieje nič jednoduchšie ako jej
samotná definícia. Všetko o tvorbe vlastných funkcií sa dozviete v tejto
časti.
Jazyk php obsahuje množstvo užitočných funkcií, ktoré sú ľahko využiteľné,
ak však v našom kóde chceme použiť funkciu, ktorá by nám spracovala požadovaný
skript podľa našich predstáv, tak použijeme funkciu
function(). Je
to veľmi nápomocná funkcia pomocou ktorej si mi môžeme definovať svoju
vlastnú funkciu (hotové funkcie v jazyku php sú napr.: echo(), date(),
empty()...atď.). Základná syntax zápisu vlastnej funkcie je nasledovná:
function nazov_funkcie() {
telo funkcie
}
Použitie v praxi je veľmi nápomocné a využijete túto funkciu v každom väčšom
skripte. Využitie funkcie si môžeme ukázať v názornom príklade.
<?php
function napis() {
$skript = "funkcia napis()";
echo "Toto je $skript";
}
echo napis();
?>
Zadefinovali sme si vlastnú funkciu a nižšie vidíte jej využitie. Skript
mám vypíše nasledujúci výsledok "Toto je funkcia napis()".
Prezrieť si to môžete
tu.
Zápis funkcie má ešte jednu možnú variantu a to je varianta zo zápisom
argumentov. Jej syntax sa neodlišuje veľmi významne ale ak typujete, že
argumety sa zapisujú do zátvorky tak typujete správne. Argumety vo funkcií
majú nasledovnú syntax:
function nazov_funkcie(argument, argument2) {
telo funkcie
}
Argumenty môžu mať významnú funkciu a odporúčam ich použiť aj kvôli
predchádzaniu chybových hlásení. Funkcie argumenty primajú, tak ako je to
napr. u funkcie echo, ktorá príma vami zadaný text. Počet argumentov je ľubovoľný
čiže ich môžeme zapísať koľko chceme. Argumenty sa nazývajú tiež aj
parametre, tak sa netreba zmiasť. Teraz si napíšeme malý skript, ktorý
bude vyžadovať odoslanie argumetov cez formulár.
<form action="<?php echo $_SERVER["PHP_SELF"];
?>" method="post">
<input type="text" name="meno" /><br />
<input type="text" name="priezvisko" /><br
/>
<input type="submit" name="odoslat"
value="Odoslať" />
</form>
<?php
function napis($meno, $priezvisko){
echo "$meno<br />";
echo "$priezvisko<br />";
}
if (isset($_POST["odoslat"])){
echo napis($meno, $priezvisko);
}
?>
Máte sami možnosť vidieť príjem informácií s argumentu a všetko čo
som napísal v tomto skripte si môžeme prezrieť v tomto hotovom príklade.
Kliknite
tu.
Po zadaní mena a priezviska sa nám vypíše meno a aj priezvisko zadané do
formulára. Toto by bolo asi o funkciách všetko a ukončujem túto časť.
V ďalšom diele si niečo povieme o cykloch for a while
PHP pre začiatočníkov - Cykly, 9.diel
Cykly v php sú nevyhnutnou pomôckou často aj pri vypísaní dát s databáz,
ďalej sú vhodné na stránkovanie ale to všetko sa nedozviete. Dozviete sa
zatiaľ len to najpodstatnejšie - "Čo je to cyklus? Ako zapísať
cyklus v php? Ako použiť cyklus v php?". Na tú poslednú som už tu v
úvode sčasti odpovedal a teraz by ste sa mali dozvedieť tie ostatné
odpovede.
Cykly slúžia na výpis hodnôt počas trvania nejakej podmienky. V php
rozlišujeme základné cykly na
- for (určitý počet opakovaní)
- while (opakovanie kým neprestane platiť daná podmienka)
Syntax cyklov v php je nasledovná:
for(začínajúca hodnota; podmienka; výsledná hodnota)
{
vykonanie príkazu
}
while(podmienka)
{
vykonanie príkazu
}
Obidva cykly sú vhodné pre každé použitie a ukázal by som vám aj ako
na to pri databázach ale musíte si ešte chvíľu počkať. Zatiaľ uvediem
príklad použitia cyklov v dvoch skriptoch.
Začnem cyklom "for" a ešte predtým ako napíšem skript, tak
ho opíšem bližšie. Hneď ako začne php spracovať cyklus for je vykonaná
začínajúca hodnota a overí sa podmienka. Ak je táto hodnota úspešne
splnená sú príkazy vo vnútri for vykonané. Po ukončení skriptu je
vykonaná výsledná hodnota a opäť sa overí podmienka. Proces trvá
dovtedy kým zadaná podmienka platí.
<?php
for ($hodnota = 1; $hodnota <= 30; $hodnota++){
echo "$hodnota<br />";
}
?>
V cykle for sme premennej $hodnota dosadili hodnotu 1. Táto časť
predstavovala začínajúcu hodnotu. Ďalej sa overila podmienka, ktorá nám
určila či je hodnota menšia alebo sa rovná hodnote 30. Keďže táto
podmienka je splnená nasleduje výsledná hodnota. Výsledná hodnota nám
bude postupne zvyšovať premennú $hodnota o 1 číslicu až kým nedosiahne
jej hodnotu 30. Určite ste si všimli správne vysvetlenie pri prvom kóde(viz,
nad syntaxov cyklov). Je tam napísané, že for splní len niekoľko
opakovaní.
U while je to trochu inak. Tu bude výpis hodnoty trvať dovtedy kým bude
podmienka platiť ale princíp funkcie je takmer identický. Len spôsob využitia
závisí od chvíle v ktorej sa nachádzate a uváženia akého cyklu využijete.
Ako na to sa dozviete iba praxou.
<?php
while ($hodnota < 30){
$hodnota++;
echo "$hodnota<br />";
}
?>
Premenná $hodnota sa pri zahájení cyklu inicializuje. Kým je menšia
ako 30, tak sa bude cyklus príkazu stále opakovať. Pomocou $hodnota++
budeme navršovať premennej vždy hodnotu o 1 vyššiu až kým nedosiahneme
jej hodnotu 30.
Ďalšie možnosti zápisu cyklov while sú obšírnejšie ako napr. použitie
"do while". Zo samotného názvu vyplýva čo znamená. Cyklus musí
byť urobený aspoň raz, pretože podmienka je testovaná na konci skriptu. Vždy
pri cyklovaní si treba zabezpečiť to aby sme sa nedostali k nekonečnému
cyklu. Niektoré prehliadače to zvládajú ale prehliadač ako IE sa mi
zasekne a musím ho resetovať. Je to naozaj iba na vlastné riziko :-).
Otestujte to.
Príklad skriptov si môžete prezrieť tu:
Kliknite
sem.
PHP pre začiatočníkov - Manipulácia s časom, 10.diel
V php rozoznávame mnoho funkcií na zobrazenie času. Teraz si ukážeme len
tú základnú možnosť ako zobraziť čas na stránke pomocou dynamicky
generovaného kódu.
Čas, jeho zápis a jeho využitie v php je veľmi rozmanité. Zápis času je
jednoduchý a má svoju syntax, ktorú treba dodržať. Funkcia date vracia reťazec
zadaných informácií o dátume. Formát zápisu je date(). Môžeme však
použiť aj date([]). Medzi hranaté zátvorky sa píše časové razítko,
ktoré sa ale veľmi nepoužíva, pretože nieje povinné. Zapisuje počet sekúnd
uplynutých od dátumu 1.1.1970(tzv. Unixová éra).
Príklad zápisu kódu pre dátum je nasledovný:
<?php
echo "Aktuálny dátum: ".date("j. F. Y ")."<br
/>";
echo "Aktuálny čas: ".date("G:i")."<br
/>";
?>
Tento zápis nám vypíše nasledujúci text:
Aktuálny dátum: 26. February. 2005 Aktuálny čas: 14:05
Tento text sa samozrejme v článku nemení, pretože je to len statický zápis
článku. Vyskúšajte si to sami v praxi.
Nasledujúca tabuľka nám ukáže možnosti formátovania dátumu:
Znak |
Popis |
Príklad |
Y |
Formát roku - celý |
2005 |
y |
Formát roku - dvojciferný |
05 |
n |
Formát mesiaca - 1 miestne |
2 |
m |
Formát mesiaca - od nuly |
02 |
F |
Formát mesiaca - celý |
February |
M |
Formát mesiaca - krátky |
Feb |
j |
Deň v mesiaci - celý |
9 |
d |
Deň v mesiaci - od nuly |
09 |
l |
Deň v týždni - celý |
Friday |
D |
Deň v týždni - krátky |
Fri |
w |
Deň v týždni - číselný, "0" (nedeľa) až
"6" (sobota) |
0 |
g |
Hodina - 12 hodinový formát |
4 |
G |
Hodina - 24 hodinový formát |
16 |
h |
Hodina - 12 hodinový formát od nuly |
04 |
H |
Hodina - 24 hodinový formát od nuly |
16 |
i |
Minúty |
30 |
a |
Predpoludnie, dopoludnie - malé |
am |
A |
Predpoludnie, dopoludnie - veľké |
AM |
s |
Sekundy |
25 |
U |
Sekundy (Unix) počet od 1.1.1970 |
1109425733 |
Z tabuľky môžeme použiť ľubovoľné formátovanie, ktoré sa nám na
stránke zobrazí. Na čas existuje mnoho funkcií zobrazenia ale len táto je
tá správna a prvá cesta pre začiatočníka.
Ak by ste chceli zobrazovať v php aj dni v slovenskom preklade je to možné
po napísaní jednoduchej funkcie.
function Datum ()
{
$den = array ("Nedela", "Pondelok", "Utorok",
"Streda", "Štvrtok", "Piatok",
"Sobota");
$mesiace = array ("Január", "Február",
"Marec", "Apríl", "Máj", "Jún",
"Júl", "August", "September", "Október",
"November", "December");
return $den[Date("w")].", ".Date ("j") .
"." .$mesiace[Date ("n") - 1]. " " . Date
("Y");
}
Po volaní tejto funkcie budete môcť vypisovať dátumi v preklade do nášho
jazyka samozrejme to tam môžete zapísať aj v nemčine, hebrejčine atď.
je to v podstate jedno. Celá táto funkcia má význam s toho dôvodu, že
funkcia date() vracia všetky hodnoty v anglickom jazyku.
Toto by bol asi koniec dielu a nabudúce niečo o spojení s databázou.
PHP pre začiatočníkov - Databázy, 11.diel
V tejto časti sa presunieme ďaleko od základnej syntaxi a začneme využívať
databázu MySQL pomocou ktorej sa naučíme tvoriť web rýchlo a prehľadne.
Od tejto časti začína skutočná dynamika resp. využívanie php a databázy.
PHP je momentálne najviac spájané s SQL databázovým systémom MySQL. Ich
vzájomná práca je nevyhnutná pre správu užívateľov, správu diskusných
fór, zoznamov atď. Sú tu aj iné spôsoby ako to nahradiť a to napr. používať
externé súbory pre prácu s dátami ale neodporúča sa to. MySQL je lepšie
a rýchlejšie.
V článku sa dozviete základnú prácu s databázami. Základ by mal
pozostávať už s pripojenia do databázy. Pripojenie do databázy zahájime
pomocou jednoduchého skriptu.(mysql.php)
<?php
define("SERVER","sem_zadajte_server");
define("LOGIN","sem_zadajte_login");
define("PASS","sem_zadajte_heslo");
define("DATABASE","sem_zadajte_databázu");
$dbc = mysql_connect(SERVER,LOGIN,PASS) or die('Pripojenie k serveru
zlyhalo!');
mysql_select_db(DATABASE) or die('Nepodarilo sa označiť databázovú tabuľku!');
?>
Pre pripojenie budeme používať konštanty nie premenné, pretože ich
hodnota zostáva len v jednom skripte a je nemožné ju zmeniť. Premenné
sú v tomto prípade menej bezpečné. Na pripojenie však využijeme premennú
$dbc. Ako vidíte funkcia mysql_connect() nás pripojí do databázy.
Jej tvar pripojenia bude vyzerať nasledovne mysql_connect("server","login","heslo").
Aby sme mohli využívať aj databázu a nie sa k nej len pripojiť využijeme
funkciu mysql_select_db(). Jej tvar asi netreba vysvetľovať, pretože
do zátvoriek udávame len jeden parameter a to databázu ktorú budeme využívať.
Určite vás teraz zaujíma ako vytvoriť databázu, ktorú bude server využívať.
Na vytvorenie databázy budeme využívať funkciu mysql_query(). S
touto funkciu sa nestretávate prvý krát ale budeme ju využívať ešte v
mnohých skriptoch. Funkcia mysql_query() posiela príkaz do databázy,
ktorý sa má vykonať. Skript na vytvorenie databázy by som odporúčal používať
iba na localhoste, pretože inde nemusí fungovať. Asi sa často nestretnete
so serverom kde bude tvorba databázy povolená. Preto používame klasicky
nastavený localhost. Skript na vytvorenie databázy(mysql_cd.php).
<?php
include_once("mysql.php");
mysql_query("CREATE DATABASE tabulky") or die("Nepodarilo sa
vytvoriť databázu!");
?>
Po vykonaní skriptu sa zahrnie externý súbor na pripojenie do databázy
(v súbore mysql.php nerátame mysql_select_db() to zapíšeme až po vytvorení
databázy) a následne sa pošle príkaz na vytvorenie databázy. Ak by databázu
nebolo možné vytvoriť tak by sa skript ukončil dôsledkom funkcie die().
Funkcia die() zastaví celý skript a vykoná len príkaz, ktorý má vo
svojich zátvorkách zapísaný ako parametre. Príčina neúspechu vytvorenia
môže pozostávať s mnohých dôvodov a to môže byť napr. toto - databáza,
ktorú chcete vytvoriť už existuje alebo server nepovoľuje tvorbu databázy
pomocou skriptov. Ak chcete databázu vymazať stačí použiť namiesto príkazu
CREATE príkaz DROP. Tento príkaz funguje pochopiteľne iba vtedy ak je už
databáza vytvorená. V MySQL je jedno či používate syntax tatko -
"CREATE DATABASE" alebo takto - "create database". Nič sa
tým neovplyvní ale prehľadnejšie je to ako používate túto syntax veľkými
písmenami.
Ak už máme vytvorenú databázu, tak je teraz možné vytvoriť aj nejakú
tabuľku. Na vytvorenie tabuľky použijeme taktiež príkaz mysql_query().
Skript na vytvorenie tabuľky môže vyzerať nasledovne(mysql_ct.php):
<?php
include_once("mysql.php");
mysql_query("CREATE TABLE tabulka(
id_tabulky MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT ,
nick VARCHAR( 25 ) NOT NULL ,
email VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( id_tabulky )
)")
or die("Nepodarilo sa vytvoriť tabuľku!");
?>
Vytvorenie tabuľky je po úspešnosti skriptu dokončené. Ako vidíte
teraz sme v databáze "tabulky" vytvorili tabuľku
"tabulka". Stĺpec "id_tabulky" predstavuje jediné číslo,
ktoré môže vlastniť záznam, ktorý bude v tabuľke vložený.
Identifikovať ho musíme na spodku celého príkazu pomocou PRIMARY
KEY(id_tabulky ). Je to niečo ako vaše rodné číslo. Máte ho len vy a
nikto iný na svete. Do stĺpca "nick" a "email" budeme
pomocou php zadávať informácie. Budú sa ukladať v týchto dvoch stĺpcoch
pomocou formulára, ktorý ale budete vidieť až v nasledujúcej časti :-).
V nasledujúcej časti si ukážeme ako vložiť informácie do databázy.
Berte časti tohto seriálu nie ako manuál pre "SQL jazyk" ale iba
ako manuál pre využívanie "SQL jazyka" pomocou PHP.
PHP pre začiatočníkov - Zápis do databázy, 12.diel
Vkladanie záznamov do databázy pomocou sql jazyka je štart do skutočnej
dynamiky stránok. Ak chcete vedieť ako na to prečítajte si tento diel.
Dnes sa naučíme vložiť do databázy záznam. Článok bude súvisieť s
minulým dielom a tak verím, že pripojenie do databázy pre vás nebude žiadny
problém. Ak už máme vytvorený súbor
mysql.php a je v ňom nastavené správne pripojenie do databázy, tak
môžeme začať zo zápisom do DB. Na odoslanie príkazu do databázy mysql
budeme potrebovať príkaz mysql_query(). Použili sme ho minule a budeme ho
používať ešte veľakrát, pretože pomocou neho robíme úkony v databáze.
Na vkladanie záznamu bude slúžiť príkaz INSERT. Povedzme , že tabuľka
vyzerá takto:
CREATE TABLE tabulka(
id_tabulky MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT ,
nick VARCHAR( 25 ) NOT NULL ,
email VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( id_tabulky )
);
Ak už je tabuľka vytvorená vloženie záznamu môžeme započať týmto
skriptom.
<?php require_once("mysql.php");
$sql = mysql_query("INSERT INTO tabulka(nick,email)
VALUES('login','login@login.com')");
if($sql){
echo "Záznam bol úspešne vložený do databázy!";
} else {
echo "Záznam sa nepodarilo vložiť do databázy!";
}
mysql_close();
?>
Po spustení skriptu sa záznam vloží do databázy. Ak sa čokoľvek nepodarí
záznam do databázy nebude možné vložiť. Funkcia mysql_close() zatvorí
spojenie s databázou a uvoľní po sebe pamäť. Do databázy sme vkladali
len nick a email. Id_tabulky sa doplní automaticky. Príkaz INSERT môžeme
vkladať aj v tvare:
INSERT INTO tabulka(email,nick) VALUES('login@login.com','login');
alebo je tu aj možnosť vložiť len záznam, ktorý chceme. Takže email
alebo nick môžeme vylúčiť pretože sú zbytočné, ak do nich nebudeme nič
zapisovať. Jeden záznam je ale minimum čo musím vložiť. Ak by sme skript
pustili znova vložil by do databázy. duplicitný obsah ale id_tabulky bude vždy
iné. To nikdy nebude duplicitné. Takisto môžete záznam vkladať aj
pomocou odoslaných hodnôt s formuláru. Môžete použiť superglobálne
polia $_GET alebo $_POST. V podstate je to jedno. Stačí zapísať dáta
nasledovne:
<form action="uloz.php" method="post">
<fieldset><legend>Ulož záznam</legend>
<input name="login" type="text" /><br />
<input name="email" type="text" /><br />
<input type="submit" value="Ulož záznam"
/><br />
</fieldset></form>
A skript na uloženie do databázy(uloz.php).
<?php require_once("mysql.php");
$_POST['login'] = $login;
$_POST['email'] = $email;
$sql = mysql_query("INSERT INTO tabulka(nick,email)
VALUES('$login','$email')");
if($sql){
echo "Záznam bol úspešne vložený do databázy!";
} else {
echo "Záznam sa nepodarilo bložiť do databázy!";
}
mysql_close();
?>
A záznam je uložený :-)! Všetko pomocou formuláru. Je to jednoduché. Ak
to ešte stále nechápete skúste navštíviť staršie diely kde sa dozviete
ako používať superglobálne polia.
Po vložení záznamu bude možné záznam aj vypísať ale to až v ďalšom
diely.
PHP pre začiatočníkov - Výpis dát s databázy, 13.diel
Ak už viete zapisovať dáta do databázy určite vám láme hlavou myšlienka
ako ich dostať von resp. ako ich vypísať na stránku. Po prečítaní článku
to zistíte.
Hlavnou funkciou pre výpis záznamov je mysql_fetch_array(). Vracia jeden
riadok dát v ľubovolnom formáte. Funkcia, ktorá bude vypisovať dáta s
databázy by mala mať nasledujúci formát:
$data = mysql_fetch_array($sql);
Do hodnoty premennej $sql uložíme označenie dát s databázy pomocou príkazu
select a funkcie mysql_query().
$sql = mysql_query("SELECT * FROM tabulka");
$data = mysql_fetch_array($sql);
Funkcia mysql_fetch_array() má aj nepovinné argumenty. Označujú nám výber
polí s databázy resp. či je pole asociatívne, indexové alebo oboje. V
dieli kde som písal o poliach som vysvetlil aké sú to asociatívne aj
indexové ale ak si to nepamätáte, tak nevadí. Asociatívne nám budú
odkazovať na nejaký stĺpec v tabuľke, čo bude mať tento tvar:
$data = mysql_fetch_array($sql, MYSQL_ASSOC);
$nick = $data["nick"];
$email = $data["email"];
Naopak indexové nebudú odkazovať na stĺpec v tabuľke ich menom ale ich
poradím. Indexovanie sa bude začínať od čísla 0, tak ako to bolo u polí.
Zápis do premenných bude vyzerať takto:
$data = mysql_fetch_array($sql, MYSQL_NUM);
$nick = $data["1"];
$email = $data["2"];
Argument MYSQL_BOTH môže využívať všetky s uvedených možností a tak
jeho použitie uvádzať asi nemusím. Taktiež môžete namiesto funkcie
mysql_fetch_array použiť aj funkcie, ktoré budú vyhradené iba pre jeden s
argumentov.
mysql_fetch_array($sql, MYSQL_NUM) |
mysql_fetch_row() |
mysql_fetch_array($sql, MYSQL_ASSOC) |
mysql_fetch_assoc() |
V tejto tabuľke vidíte oproti sebe stojace funkcie, ktoré sú si podobné a
majú aj podobný efekt. Samozrejme je najlepšie používať funkciu
mysql_fetch_array() a vyberať si výpis dát s argumentmi alebo aj bez nich.
Výpis dát v php bude vyzerať takto:
<?php
require_once("mysql.php");
while ($data = mysql_fetch_array($sql, MYSQL_BOTH)){
$nick = $data["nick"];
$email = $data["email"];
echo "Nickname: $nick | Email: $email<br />\n";
}
?>
Na výpis dát sme použili cyklus while. Pomocou tohto cyklu sa nám dáta
budú vypisovať dovtedy až kým sa nenačítajú a nenapíšu všetky. Je to
vhodné ak v tabuľke máte viac ako len jeden záznam. Teraz sú dáta načítané
a vypísané.
V nasledujúcej časti si ukážeme ako vypísať počet záznamov s databázy.
PHP pre začiatočníkov - Počet záznamov, 14.diel
Ak chcete vedieť ako zistiť počet napr. registrovaných užívateľov na
stránke resp. počet záznamov v databáze stačí, ak si prečítate tento
diel.
V tomto diele si ukážeme ako získať počet záznamov uložených v databáze.
Na to nám budem slúžiť funkcia mysql_num_rows(). Vracia počet záznamov z
výsledku. Povedzme, že na našej stránke sa zaregistruje 100 užívateľov.
To znamená, že do tabuľky napr. uzivatelia sa uloží 100 záznamov.
Pomocou funkcie mysql_query() ich označíme.
<?php
require_once("mysql.php");
$sql = mysql_query("SELECT * FROM uzivatelia");
?>
Čo je require_once() už viete s predchádzajúcich dielov a súbor čo zahrňuje
je len ako príklad. Predstavujte si súbor mysql.php ako skript na pripojenie
do databázy. Premenná $sql bude držať hodnotu, ktorá pri použití vytvorí
požadovaný výsledok resp. označí našich užívateľov a teraz nastala
chvíľa keď máme možnosť použiť funkciu mysql_num_rows().
<?php
require_once("mysql.php");
$sql = mysql_query("SELECT * FROM uzivatelia");
echo mysql_num_rows($sql);
?>
Na výpis výsledku zo záznamu sme použili funkciu echo() aby sme videli počet
záznamov(reg. užívateľov) v prehliadači. V tomto momente máme výpis užívateľov
hotový a môžete si funkciu vyskúšať.
Môžeme samozrejme použiť aj funkciu mysql_num_fields(), ktorá vracia počet
stĺpcov s výsledku. Povedzme, že tabuľka uzivatelia bude obsahovať 3 stĺpce
- id, meno, email. Funkcia mysql_num_fields() nám vráti číslo 3. Častejšie
budete používať asi funkciu mysql_num_rows(), pretože má väčší rozsah
využitia.
Toto by bol koniec článku a nabudúce si niečo povieme o sessions v blízkej
budúcnosti sa vrátime opäť k databázam.
PHP pre začiatočníkov - Sessions, 15.diel
Úvod do sessions. Popis základných funkcií a menšie príklady na skript
pre prihlasovanie užívateľov vám prinesie tento diel.
Session proměnné v php slouží k přenosu proměnných mezi skripty.
Náš článek bude rozdělen do dvou částí: teoretickou a praktickou.
1) Pro práci se session jsou v php tyto funkce:
- session_start(); - Inicializuje session
- session_destroy(); - Zruší session
- session_register(Jmeno); - Zaregistruje session proměnnou
- session_unregister(Jmeno); - Zruší session proměnnou. (Pokud potřebujeme
jednu promměnou zrušit a ostatní ponechat)
- session_unset(); - Zruší všechny session proměnné, ale ponechá session
iniciované, oproti session_destroy();
- session_id(); - Vypíše řetězec, který bude předáván v URL pro
session
Ikdyž je již v php k registrování proměnné funkce
session_register(Jmeno), je ale lepší pro registrování session proměnné
tento zápis:
$_SESSION['jmeno'] = hodnota;
Totéž platí i pro zrušení, můžeme použít místo
session_unregister(Jmeno), jiný zápis:
unset($_SESSION['jmeno']);
Pro to, abyste mohli dobře pracovat se session, musíte mít také dobře
nastavené věci ohledně session:
session.save_path - Do tohoto adresáře se vám bude session ukládat. Php do
něj musí mít proto povolený zápis
session.name - Přes tento název se bude předávat session řetězec. Pokud
je nastaveno PHPSESSID, bude výsledek vypadat takto:
index.php?PHPSESSID=h0d913f2e367783aafbf2ab590ab853e
session.use_cookies - Pokud chcete, aby se pro přenos session používali
cookies, nastavte 1, pokud ne 0
session.cookie_lifetime - Doba, po kterou je cookies platná(v sekundách)
2) Praktická ukázka použití index.php
<?php
session_start();
$_SESSION['jmeno'] = 'Josef';
echo '<a href="index2.php?PHPSESSID='.session_id().'">Pokračovat</a>';
?>
index2.php
<?php
session_start();
echo 'Vaše jméno je '.$_SESSION['jmeno'];
session_destroy();
?>
Po přečtení tohoto článku byste měli být schopni alespoň umět základy
práce se session a vytvořit si například skript na přihlašování uživatelů
apod.
PHP pre začiatočníkov - Triedy, 16.diel
Autor článku: Xfish5
Vydané dňa: 29.05.2005
Čítané: 150x
I když je jazyk php velmi jednoduchý, obsahuje v sobě možnost vytvářet třídy
a jejich objekty. Objektové programování je užitečnější při větších
projektech. Téma bude úvod do objektového programování v PHP4.
Jak jsem již nastínil v úvodu, vše se bude točit kolem tříd a objektů.
Přesněji: Nejprve si vytvoříme nějakou třídu (dalo by se říci
knihovku, ve které máme uloženy informace co má třída dělat). Ty
"informace" jsou uloženy v metodách. Metoda není nic jiného než
uživatelská funkce, která obsahuje nějaký kus kodu.
Třídu vytvoříme následovně:
class NazevTridy{
// Obsah třídy
}
Nyní máme vytvořenu třídu. Co by to ale bylo za třídu, která by neměla
v sobě proměnné. :-) Jsou to proměnné, které budou používány uvnitř
třídy. Musíme si je napřed nadefinovat pomocí klíčového slova VAR. Ve
třídě s nimi nemanipulujeme jak s normálními proměnnými, ale musíme před
ně dát $this->PROMENNA.
Opět malá ukázka:
class NazevTridy{
var $promenna;
var $promenna1;
var $promenna2;
// Pokračování třídy
}
Třída vytvořena, proměnné taky máme, ale něco tomu chybí, ano, je to
konstruktor. Je to metoda(funkce), která se se automaticky provede při
inicializaci třídy(viz. níže). Konstruktor má stejné jméno jako samotná
třída.
Ukázka:
class NazevTridy{
var $promenna;
var $promenna1;
var $promenna2;
function NazevTridy($promenna,...) {
// PHP kod
}
// Další metody
}
Z přechozího příkladu je již patrné, jak budou vypadat ostatní metody.
class NazevTridy{
var $promenna;
var $promenna1;
var $promenna2;
function NazevTridy($promenna,...) {
// PHP kod
}
funtion metoda1() {
}
funtion metoda2() {
}
funtion metoda3() {
}
}
Pokud mám takto třídu vytvořenou, musíme nějak pracovat s jejími
objekty. Nejprve si musíme třídu inicializovat. Ukázka:
include 'nazev_tridy.php';
$nazevObjektu = new nazevTridy(); // použití konstruktoru při
inicializaci
nebo
include 'nazev_tridy.php';
$nazevObjektu = new nazevTridy;
Teď nám již nebrání nic, používat metody a proměnné ve třídě.
$nazevObjektu->metoda();
$nazevObjektu->promenna = hodnota;
V druhém díle si ukážeme na praktickém příkladě ukázku OOp v php.
xx