Czym jest PHP? Początki PHP to rok 1995, kiedy Rasmus Lerdorf opracował skrypt, którego zadaniem było zliczanie ile osób odwiedza jego witrynę i

Wielkość: px
Rozpocząć pokaz od strony:

Download "Czym jest PHP? Początki PHP to rok 1995, kiedy Rasmus Lerdorf opracował skrypt, którego zadaniem było zliczanie ile osób odwiedza jego witrynę i"

Transkrypt

1 Czym jest PHP? Początki PHP to rok 1995, kiedy Rasmus Lerdorf opracował skrypt, którego zadaniem było zliczanie ile osób odwiedza jego witrynę i wyświetlanie tej informacji na stronie. Skrypt zyskał dużą popularność i Rasmus Lerdorf rozwinął go, w ten sposób powstało PHP 2.0 (1997). Od początku PHP jest projektem open source. Kolejne wersje dodawały wiele nowych możliwości. Najnowsza stabilna wersja to PHP 7.0 (grudzień 2015). Cały czas wspierane są poprzednie wersje 5.5 i 5.6. Oficjalna definicja PHP mówi: PHP jest językiem skryptowym osadzanym w kodzie HTML. Oznacza to, że komendy PHP mogą się przeplatać ze znacznikami HTML. Ułatwia to stworzenie dynamicznej strony WWW. Wystarczy w kodzie dokumentu HTML osadzić odpowiednie instrukcje PHP. Skrypty PHP są wykonywane po stronie serwera. Możliwości PHP to m.in. interakcja z bazami danych (natywna obsługa wielu najpopularniejszych), obsługa formularzy, tworzenie dynamicznych stron WWW. Więcej na

2 Jak działa PHP? PHP jest językiem używanym po stronie serwera, czyli kod jest przechowywany po stronie serwera, który udostępnia strony WWW przeglądarkom internetowym klientów. Kiedy użytkownik wchodzi na stronę WWW napisaną w PHP, serwer odczytuje instrukcje PHP i odpowiednio je przetwarza. Na przykład, kod PHP może odpowiadać za utworzenie dokumentu HTML, który następnie serwer przekaże przeglądarce.

3 Jak działa PHP? PHP jest językiem używanym po stronie serwera, czyli kod jest przechowywany po stronie serwera, który udostępnia strony WWW przeglądarkom internetowym klientów. Kiedy użytkownik wchodzi na stronę WWW napisaną w PHP, serwer odczytuje instrukcje PHP i odpowiednio je przetwarza. Na przykład, kod PHP może odpowiadać za utworzenie dokumentu HTML, który następnie serwer przekaże przeglądarce. Miejsce PHP w architekturze klient-serwer:

4 Jak działa PHP? PHP jest językiem używanym po stronie serwera, czyli kod jest przechowywany po stronie serwera, który udostępnia strony WWW przeglądarkom internetowym klientów. Kiedy użytkownik wchodzi na stronę WWW napisaną w PHP, serwer odczytuje instrukcje PHP i odpowiednio je przetwarza. Na przykład, kod PHP może odpowiadać za utworzenie dokumentu HTML, który następnie serwer przekaże przeglądarce. Skrypty PHP są wykonywane na serwerze, zatem do ich działania potrzebny jest serwer WWW zawierający interpreter PHP, np. Apache. Wygodnym środowiskiem, w którym można uruchamiać skrypty PHP jest XAMPP: darmowa i łatwa w instalacji dystrybucja Apache zawierająca m.in. PHP, Perl i MySQL-a. XAMPP jest wstępnie skonfigurowany i łatwy w użyciu. Strona domowa

5 Składnia - podstawy Kod PHP umieszczamy w dokumencie HTML pomiędzy parą znaczników <?php?> Wszystko pomiędzy tymi znacznikami, zostanie potraktowane jako kod PHP. Skrypt PHP zapisujemy z rozszerzeniem.php.

6 Składnia - podstawy Przykładowy skrypt PHP: <html> <head> <title>pierwszy skrypt php</title> </head> <body> <?php echo "Przykładowy tekst na stronie";?> </body> </html>

7 Składnia - podstawy Przykładowy skrypt PHP: <html> <head> <title>pierwszy skrypt php</title> </head> <body> <?php echo "Przykładowy tekst na stronie";?> </body> </html> Instrukcja echo wyświetla to, co podamy jako argument. Tekst można podawać w cudzysłowiu lub w apostrofach. Każdą instrukcję kodu należy kończyć średnikiem.

8 Składnia - podstawy Przykładowy skrypt PHP: <html> <head> <title>pierwszy skrypt php</title> </head> <body> <?php echo "Przykładowy tekst na stronie";?> </body> </html> Instrukcja echo wyświetla to, co podamy jako argument. Tekst można podawać w cudzysłowiu lub w apostrofach. Każdą instrukcję kodu należy kończyć średnikiem. Używając XAMPPa, skrypty PHP zapisujemy w katalogu xampp/htdocs (najlepiej stworzyć kolejny podkatalog, np. moje). Skrypt test.php zapisany w katalogu moje będzie pod adresem

9 Komentarze Aby wstawić komentarz mieszczący się w jednym wierszu, używamy //. Komentarz blokowy: /* */. Uwaga. Na początku skryptu warto umieścić w komentarzach info o dacie utworzenia skryptu, autorze, przeznaczeniu skryptu. Nie powinno się zagnieżdżać komentarzy blokowych.

10 Zmienne PHP jest językiem słabo typowanym. Oznacza to, że zmienne nie mają nadanych sztywno typów, lecz w miarę potrzeby kompilator może niejawnie rzutować sobie typy na odpowiednie dla niego w danym momencie, tzn., dostosowuje zawartość zmiennej w sposób, w jaki potrafi. Zatem, PHP nie wymaga deklarowania zmiennych ani ich inicjalizowania. Podstawowe typy zmiennych to łańcuchowe (czyli zawierające tekst), liczbowe (całkowite i zmiennpprzecinkowe) oraz logiczne. Nazwa zmiennej w PHP musi zaczynać się od znaku $, np. $ile. PHP rozróżnia wielkie i małe litery w nazwach zmiennych. Nazwa zmiennej może zawierać litery, cyfry lub znak podkreślenia (ale cyfra nie może być na początku). Operator przypisania: $ile = 9. Wypisanie wartości zmiennej: echo $ile; lub echo "Licznik wynosi $ile"; Uwaga. W cudzysłowiu. Użycie apostrofów spowoduje wypisanie nazwy zmiennej a nie jej wartości.

11 Stałe Tworzenie stałej: define(nazwa, wartość). Uwaga. tak stworzona stała jest stałą globalną. Nazwa stałej musi zaczynać się od litery lub podkreślnika. PHP rozróżnia wielkość liter w nazwie stałej, np. <?php define(vat,23); define(vat,12); echo vat;// 23 echo VAT;// 12?> Można też stworzyć stałą w ten sposób, że PHP nie będzie zwracało uwagi na wielkość liter w nazwie, np. <?php define(cena,45,true); echo Cena;// 45?>

12 Łańcuchy Aby utworzyć zmienną typu łańcuchowego, wystarczy pod nazwę zmiennej przypisać dowolny łańcuch, np. $nazwisko= Nowak lub $imie="alicja", łańcuchy podajemy w apostrofach lub cudzysłowiach. uwaga. Jeżeli wewnątrz łańcucha pojawia się znak lub ", to należy taki znak poprzedzić przez symbol \ np. A\ Tomek lub "Powiedział \"To nie jest PHP\" " Jeżeli chcemy wyświetlić wartość zmiennej w obrębie innego tekstu, należy użyć echo lub print, tekst podajemy w cudzysłowiach: echo "Podałeś jako nazwisko: $nazwisko";

13 Łańcuchy Aby utworzyć zmienną typu łańcuchowego, wystarczy pod nazwę zmiennej przypisać dowolny łańcuch, np. $nazwisko= Nowak lub $imie="alicja", łańcuchy podajemy w apostrofach lub cudzysłowiach. uwaga. Jeżeli wewnątrz łańcucha pojawia się znak lub ", to należy taki znak poprzedzić przez symbol \ np. A\ Tomek lub "Powiedział \"To nie jest PHP\" " Jeżeli chcemy wyświetlić wartość zmiennej w obrębie innego tekstu, należy użyć echo lub print, tekst podajemy w cudzysłowiach: echo "Podałeś jako nazwisko: $nazwisko"; Operator łączenia napisów:. echo "Pierwszy tekst"."drugi tekst"; print "Podałeś jako nazwisko:".$nazwisko;

14 Niektóre funkcje tekstowe strlen() - zwraca długość tekstu int strlen ( string $string ) strtolower() - zamienia tekst na małe litery string strtolower ( string $string ) strtoupper() - zamienia tekst na wielkie litery string strtoupper ( string $string ) substr() - wycina podciąg od zadanej pozycji startowej i o podanej długości string substr ( string $string, int $start [, int $length ] )

15 Niektóre funkcje tekstowe strlen() - zwraca długość tekstu int strlen ( string $string ) strtolower() - zamienia tekst na małe litery string strtolower ( string $string ) strtoupper() - zamienia tekst na wielkie litery string strtoupper ( string $string ) substr() - wycina podciąg od zadanej pozycji startowej i o podanej długości string substr ( string $string, int $start [, int $length ] ) Dużo więcej funkcji na stronie

16 Liczby Typy liczbowe w PHP: liczby całkowite (integer), np. $a = 1234; $b = -123; lub zmiennoprzecinkowe (float), np. $a = 1.234; Zakres typu float zależy od platformy, zazwyczaj maksymalnie 1.8E308 z dokładnością do około 14 cyfr dziesiętnych.

17 Liczby Typy liczbowe w PHP: liczby całkowite (integer), np. $a = 1234; $b = -123; lub zmiennoprzecinkowe (float), np. $a = 1.234; Zakres typu float zależy od platformy, zazwyczaj maksymalnie 1.8E308 z dokładnością do około 14 cyfr dziesiętnych. Operatory liczbowe: +, -, *,/ oraz % (zwraca resztę z dzielenia); operatory inkrementacji $i++; ++$j; i dekrementacji $i ; $j;.

18 Funkcje matematyczne Pełna lista: Przykłady: float round ( float $value [, int $precision = 0] ) funkcja zaokrągla liczbę z zadaną precyzją

19 Funkcje matematyczne Pełna lista: Przykłady: float round ( float $value [, int $precision = 0] ) funkcja zaokrągla liczbę z zadaną precyzją, np. echo round(3.4); // 3 echo round(3.5); // 4 echo round( , 2); // 1.96 echo round( , -3); // echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06

20 Funkcje matematyczne Pełna lista: Przykłady: float round ( float $value [, int $precision = 0] ) funkcja zaokrągla liczbę z zadaną precyzją Formatowanie liczby: funkcja number_format(): string number_format ( float $number [, int $decimals = 0 ] ) string number_format ( float $number, int $decimals = 0, string $dec_point = ".", string $thousands_sep = "," ) Może przyjmować jeden, dwa lub cztery argumenty.

21 Funkcje matematyczne Pełna lista: Przykłady: float round ( float $value [, int $precision = 0] ) funkcja zaokrągla liczbę z zadaną precyzją Formatowanie liczby: funkcja number_format(): string number_format ( float $number [, int $decimals = 0 ] ) string number_format ( float $number, int $decimals = 0, string $dec_point = ".", string $thousands_sep = "," ) Może przyjmować jeden, dwa lub cztery argumenty. $number = ; // notacja angielska (default) $ang = number_format($number);// 1,235 // notacja polska $pol = number_format($number, 2,,, ); // 1 234,56

22 Instrukcja warunkowa If...Elseif...Else Możliwe formy instrukcji if: if (warunek) { instrukcje jeżeli true; } lub if (warunek) { instrukcje jeżeli true; } else { instrukcje jeżeli false; }

23 Instrukcja warunkowa If...Elseif...Else Możliwe formy instrukcji if: if (warunek1) { instrukcje jeżeli warunek1 true; } elseif (warunek2) { instrukcje jeżeli warunek2 true; } else { instrukcje jeżeli wszystkie warunki false; }

24 Instrukcja warunkowa switch Switch daje możliwość wyboru, który blok kodu ma zostać wykonany, w zależności od wartości zmiennej. switch (n) { case etykieta1: instrukcje jeżeli n=etykieta1; break; case etykieta2: instrukcje jeżeli n=etykieta2; break; case etykieta3: instrukcje jeżeli n=etykieta3; break;... default: instrukcje jeżeli n jest różne od wszystkich etykiet; }

25 Pętle W PHP mamy pętle: while do...while for foreach (przebiega tablicę)

26 Pętla WHILE Pętla WHILE wykonuje blok kodu, tak długo, jak długo zadany warunek jest prawdziwy. while (warunek jest true) { instrukcje do wykonania; }

27 Pętla WHILE Pętla WHILE wykonuje blok kodu, tak długo, jak długo zadany warunek jest prawdziwy. while (warunek jest true) { instrukcje do wykonania; } Przykład pętli WHILE: <?php $x = 1; while($x <= 5) { echo "Liczba x wynosi: $x <br>"; $x++; }?>

28 Pętla DO...WHILE Pętla DO...WHILE różni się od WHILE tym, że warunek sprawdzany jest na końcu, a nie na początku. Pętla DO...WHILE zawsze wykona się co najmniej raz. do { instrukcje do wykonania; } while (warunek jest true);

29 Pętla DO...WHILE Pętla DO...WHILE różni się od WHILE tym, że warunek sprawdzany jest na końcu, a nie na początku. Pętla DO...WHILE zawsze wykona się co najmniej raz. do { instrukcje do wykonania; } while (warunek jest true); Przykład: <?php $x = 1; do { echo "Liczba x wynosi: $x <br>"; $x++;} while($x <= 5)?>

30 Pętla FOR Pętla FOR wykonuje blok kodu określoną liczbę razy. for (wyrażenie początkowe; warunek; wyrażenie końcowe) { instrukcje do wykonania; }

31 Pętla FOR Pętla FOR wykonuje blok kodu określoną liczbę razy. for (wyrażenie początkowe; warunek; wyrażenie końcowe) { instrukcje do wykonania; } Przykład: <?php for ($x = 1; $x <= 5; $x++) { echo "Liczba x wynosi: $x <br>"; }?>

32 Tworzenie własnych funkcji Oprócz wbudowanych funkcji PHP, możemy tworzyć własne funkcje. Funkcja jest blok instrukcji, które mogą być wielokrotnie wykorzystywane w programie. Funkcja nie będzie wykonana natychmiast po załadowaniu się stron funkcja zostanie wykonana w momencie wywołania funkcji.

33 Tworzenie własnych funkcji Oprócz wbudowanych funkcji PHP, możemy tworzyć własne funkcje. Funkcja jest blok instrukcji, które mogą być wielokrotnie wykorzystywane w programie. Funkcja nie będzie wykonana natychmiast po załadowaniu się stron funkcja zostanie wykonana w momencie wywołania funkcji. Aby stworzyć funkcję, używamy słowa kluczowego function: function nazwafunkcji() { kod wykonywany; } Uwaga: PHP nie rozróżnia wielkości liter w nazwach funkcji. Nazwa funkcji może zaczynać się od litery lub podkreślnika.

34 Prosta funkcja bez parametrów <?php function wypisz(){ // definicja funkcji echo Hello! ;} echo To jest funkcja bez żadnych parametrów.<br> ; echo wypisz(); //wywołanie funkcji?>

35 Funkcja zwracajaca wartość: RETURN <?php function liczcos(){ // definicja funkcji $x=90; $x=round($x/7+15); return $x; } $liczba=liczcos(); echo Wynik funkcji:.$liczba;?>

36 Funkcja z parametrami wejścia <?php function sumaparzystych($start,$stop){ $suma=0; for($i=$start;$i<=$stop;$i++) if($i%2==0){$suma+=$i;} return $suma; }?>

37 Funkcja z parametrami wejścia <?php function sumaparzystych($start,$stop){ $suma=0; for($i=$start;$i<=$stop;$i++) if($i%2==0){$suma+=$i;} return $suma; }?> Parametrom można nadawać wartości domyślne, np. function sumaparzystych($start=0,$stop=10) Wywołanie to np. $x=sumaparzystych(4); $y=sumaparzystych(); W wywołaniu funkcji, można pominąć wartości dla parametrów, które mają określoną wartość domyślną. Nie można zmienić kolejności podawania parametrów w wywołaniu, ale można jako wartość parametru podać NULL, FALSE lub pusty łańcuch.

38 Tablice w PHP Zmienna w PHP może być zdefiniowana jako tablica, czyli lista wartości (tablica może przechowywać wartości tekstowe, liczby lub inne tablice). Tablice mają postać serii par klucz->wartość (z każdym elementem tablicy skojarzony jest pewien klucz, czyli indeks). Dwa typy tablic: indeksowane (klucze są liczbami całkowitymi, domyślnie indeksowane od 0); skojarzeniowe (asocjacyjne) (klucze są łańcuchami znaków). Reguły nadawania nazw tablicom są takie same jak dla pozostałych zmiennych, tzn. zaczynamy od znaku $, wielkość liter ma znaczenie.

39 Tablice indeksowane Tworzenie tablicy indeksowanej: 1) Indeks nadawany automatycznie (startuje od 0): $grupy=array("21iie","31id","32id"); 2) Można też podać kolejne elementy i ich indeksy: $kierunki[0]="mat"; $kierunki[1]="id"; 3) Lub użyć instrukcji array, określając indeks początkowy, kolejne będą automatycznie powiększane o 1: $dni=array(1=> pon, wto, śro );

40 Tablice indeksowane Tworzenie tablicy indeksowanej: 1) Indeks nadawany automatycznie (startuje od 0): $grupy=array("21iie","31id","32id"); 2) Można też podać kolejne elementy i ich indeksy: $kierunki[0]="mat"; $kierunki[1]="id"; 3) Lub użyć instrukcji array, określając indeks początkowy, kolejne będą automatycznie powiększane o 1: $dni=array(1=> pon, wto, śro ); Aby odwołać się do elementu tablicy, używamy jego klucza, np. echo $grupy[0]; // 21IiE echo $kierunki[1]; // id echo $dni[3]; // sro Można też najpierw zainicjować tablicę poprzez array, a potem się do niej odwołać (nie jest to wymagane, ale zalecane): $tab1=array(); $tab1[]= pierwszy element ;

41 Tablice indeksowane Aby przejrzeć kolejne elementy tablicy, można użyć pętli for, np. <?php $tab1=array(); $tab1[]= buty ; $tab1[]= sukienka ; $tab1[]= torebka ; $ile=count($tab1); for ($i=0;$i<$ile;$i++){ echo element.$i. to.$tab1[$i]; echo <br> ;}?> Funkcja count() zwraca liczbę elementów tablicy (zarówno ideksowanej jak asocjacyjnej)

42 Tablice indeksowane Aby przejrzeć kolejne elementy tablicy, można użyć pętli for, np. <?php $tab1=array(); $tab1[]= buty ; $tab1[]= sukienka ; $tab1[]= torebka ; $ile=count($tab1); for ($i=0;$i<$ile;$i++){ echo element.$i. to.$tab1[$i]; echo <br> ;}?> Funkcja count() zwraca liczbę elementów tablicy (zarówno ideksowanej jak asocjacyjnej), np. $tab2[0]=0; $tab2[4]=9; $ilosc=count($tab2); echo $ilosc; //2

43 Tablice indeksowane Aby przejrzeć kolejne elementy tablicy, można użyć pętli for, np. <?php $tab1=array(); $tab1[]= buty ; $tab1[]= sukienka ; $tab1[]= torebka ; $ile=count($tab1); for ($i=0;$i<$ile;$i++){ echo element.$i. to.$tab1[$i]; echo <br> ;}?> Funkcja count() zwraca liczbę elementów tablicy (zarówno ideksowanej jak asocjacyjnej) Pętla for może sprawiać problemy, jeżeli w tablicy niektóre indeksy są pominięte, lepiej użyć wtedy pętli foreach: foreach ($tab2 as $value) { echo $value;}

44 Tablice asocjacyjne Klucze są wartościami tekstowymi. Tworzenie tablicy asocjacyjnej: 1) Wykorzystując array: $tablice_rej=array( F => lubuskie, S => sląskie, P => pomorskie ); 2) Podając kolejne elementy i ich klucze: $osoba[ imię ]= Alicja ; $osoba[ nazwisko ]= Nowak ;

45 Tablice asocjacyjne Klucze są wartościami tekstowymi. Tworzenie tablicy asocjacyjnej: 1) Wykorzystując array: $tablice_rej=array( F => lubuskie, S => sląskie, P => pomorskie ); 2) Podając kolejne elementy i ich klucze: $osoba[ imię ]= Alicja ; $osoba[ nazwisko ]= Nowak ; Aby uzyskać dostęp do elementu tablicy, trzeba albo znać dokładną wartość klucza, np. echo $osoba[ nazwisko ]; lub echo "{$osoba[ imię ]}"; (w nawiasach klamrowych!)

46 Tablice asocjacyjne Klucze są wartościami tekstowymi. Tworzenie tablicy asocjacyjnej: 1) Wykorzystując array: $tablice_rej=array( F => lubuskie, S => sląskie, P => pomorskie ); 2) Podając kolejne elementy i ich klucze: $osoba[ imię ]= Alicja ; $osoba[ nazwisko ]= Nowak ; Aby uzyskać dostęp do elementu tablicy, trzeba albo znać dokładną wartość klucza, np. echo $osoba[ nazwisko ]; lub echo "{$osoba[ imię ]}"; (w nawiasach klamrowych!) albo użyć pętli foreach: <?php $osoba = array("imię"=>"alicja", "nazwisko"=>"nowak", "wiek"=>32); foreach($osoba as $x => $x_value) { echo "Klucz=". $x. ", wartość=". $x_value; echo "<br>"; }?>

47 Tworzenie tablic - range() array range ( mixed $start, mixed $end [, number $step = 1 ] ) tworzy tablicę zawierającą kolejne elementy z podanego zakresu; jako wartość startową $start i końcową $end można podać liczby całkowite, dostaniemy wówczas tablicę liczb od $start do $end, np. $tab_liczb=range(1,10); // array(0, 1, 2,..., 12) Można też tworzyć tablice zawierające kolejne litery, np. $tab_liter=range( b, d ); // array( b, c, d ) Argument $step określa krok, z jakim są generowane kolejne wartości, domyślnie =1. $tab_co10=range(10, 100, 10);// array(10,20,...,100)

48 Niektóre użyteczne funkcje dla tablic count() - zwraca liczbę elementów tablicy bool is_array ( mixed $var ) - aby sprawdzić, czy zmienna jest tablicą void unset ( mixed $var [, mixed $... ] ) - aby usunąć dany element lub całą tablicę (wykorzystywana nie tylko dla tablic): <?php $a = array(1 => one, 2 => two, 3 => three ); unset($a[2]);// zostaną elementy o indeksach 1 i 3 //aby przeindeksować użyj array_values: $b = array_values($a);// $b ma indeksy od 0 unset($a);// usunie $a?> array array_values ( array $array ) zwraca tablicę po przeindeksowaniu, można wykorzystać, aby ponownie poindeksować tablicę kolejnymi liczbami całkowitymi (od 0), jeżeli z tablicy usunięto niektóre elementy

49 Tablice wielowymiarowe Jeżeli elementami danej tablicy są też tablice, mamy do czynienia z tablicą wielowymiarową. W tym przykładzie, najpierw tworzymy tablicę $student, którą następnie umieszczamy jako kolejny element w tablicy $grupa. <?php $student[0] = "Jan"; $student[1] = "Kowalski"; $student[2] = " "; $grupa[0] = $student; $student[0] = "Maciej"; $student[1] = "Nowak"; $student[2] = " "; $grupa[1] = $student; $student[0] = "Ewa"; $student[1] = "Kowalska"; $student[2] = " "; $grupa[2] = $student;?>

50 Tablice wielowymiarowe Tworzenie tablicy: <?php $student[0] = "Jan"; $student[1] = "Kowalski"; $student[2] = " "; $grupa[0] = $student; $student[0] = "Maciej"; $student[1] = "Nowak"; $student[2] = " "; $grupa[1] = $student; $student[0] = "Ewa"; $student[1] = "Kowalska"; $student[2] = " "; $grupa[2] = $student;?> Przeglądanie tablicy: <?php //można wybrać pojedynczy element: echo $grupa[0][0]; //lub wyświetlić całą tablicę za pomocą foreach: foreach($grupa as $osoba) {echo "Dane studenta: "; foreach($osoba as $pole) echo $pole." "; echo "<br>";}?>

51 Indeksy liczbowe można zastąpić kluczami tekstowymi. <?php $student["imie"] = "Jan"; $student["nazwisko"] = "Bob"; $student["data_ur"] = <?php //można wybrać pojedynczy " "; element: $grupa[0] = $student; echo $grupa[0]["imie"]; $student["imie"] = "Iza"; $student["nazwisko"] = "Nowak"; $student["data_ur"] = " "; $grupa[1] = $student; $student["imie"] = "Ewa"; $student["nazwisko"] = "Kos"; $student["data_ur"] = " "; $grupa[2] = $student;?> //lub wyświetlić całą tablicę za pomocą foreach: foreach($grupa as $osoba) {echo "Dane studenta: "; foreach($osoba as $key=> $value) echo $key." : ".$value." "; echo "<br>";}?>

52 Sortowanie tablic W PHP mamy do dyspozycji wiele funkcji służących do sortowania tablic. Funkcja sort() umożliwia sortowanie (rosnące) wartości tablicy, porzucając istniejące klucze (czyli klucze zostają zresetowane), np. $imiona=array( Olek, Bolek, Janek ); sort($imiona); echo $imiona[0]; // Bolek Jeżeli związki klucz=>wartość mają znaczenie, należy użyć funkcji asort(), która sortuje tablicę po wartościach, nie zmieniając kluczy. Funkcja ksort() sortuje tablicę po wartościach kluczy. Odpowiedniki tych funkcji do sortowania malejącego: rsort(), arsort(), krsort().

53 Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza.

54 Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form>

55 Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form> Uwaga. należy zwracać uwagę na nazwy nadawane polom formularza, bo w skrypcie PHP będziemy się do nich odwoływać.

56 Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form> Uwaga. należy zwracać uwagę na nazwy nadawane polom formularza, bo w skrypcie PHP będziemy się do nich odwoływać. Wybór metody GET czy POST? Obie metody tworzą listę (tablicę), która przechowuje pary klucz/wartość, gdzie klucz to nazwa odpowiedniego pola formularza, a wartość to dane wpisane przez użytkownika.

57 Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form> Uwaga. należy zwracać uwagę na nazwy nadawane polom formularza, bo w skrypcie PHP będziemy się do nich odwoływać. Wybór metody GET czy POST? Obie metody tworzą listę (tablicę), która przechowuje pary klucz/wartość, gdzie klucz to nazwa odpowiedniego pola formularza, a wartość to dane wpisane przez użytkownika. GET: informacja jest widoczna (nazwy pól i ich wartości są widoczne w adresie); limit informacji, którą można przesłać - około 2000 znaków; wygodna, gdy chcemy stworzyć zakładkę do tej strony.

58 Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form> Uwaga. należy zwracać uwagę na nazwy nadawane polom formularza, bo w skrypcie PHP będziemy się do nich odwoływać. Wybór metody GET czy POST? Obie metody tworzą listę (tablicę), która przechowuje pary klucz/wartość, gdzie klucz to nazwa odpowiedniego pola formularza, a wartość to dane wpisane przez użytkownika. GET: informacja jest widoczna (nazwy pól i ich wartości są widoczne w adresie); limit informacji, którą można przesłać - około 2000 znaków; wygodna, gdy chcemy stworzyć zakładkę do tej strony. POST: preferowana; informacje nie są widoczne; nie ma limitu; ale - nie można zapisać adresu.

59 Skrypt PHP odbiera dane z formularza za pomocą specjalnych zmiennych. Na przykład, w formularzu mamy pole "cena": <input type="text" name="cena"/> Skrypt PHP, który odbiera dane z formularza, przypisuje wartość wprowadzoną przez użytkownika do pola cena do specjalnej zmiennej $_REQUEST["cena"] (jeżeli formularz jest przesyłany za pomocą POST, to wartość pola cena można też odczytać ze zmiennej $_POST["cena"], jeżeli za pomocą GET, to z $_GET["cena"]).

60 Skrypt PHP odbiera dane z formularza za pomocą specjalnych zmiennych. Na przykład, w formularzu mamy pole "cena": <input type="text" name="cena"/> Skrypt PHP, który odbiera dane z formularza, przypisuje wartość wprowadzoną przez użytkownika do pola cena do specjalnej zmiennej $_REQUEST["cena"] (jeżeli formularz jest przesyłany za pomocą POST, to wartość pola cena można też odczytać ze zmiennej $_POST["cena"], jeżeli za pomocą GET, to z $_GET["cena"]). Zmienne $_REQUEST, $_GET, $_POST to predefiniowane zmienne w PHP, będące zmiennymi "superglobalnymi" (a dokładniej, tablicami "superglobalnymi"). Zmienna $_GET przechowuje wszystkie zmienne i wartości przesyłane metodą GET, analogicznie $_POST, obie są podzbiorami zmiennej $_REQUEST.

61 Weryfikacja danych z formularza Weryfikacja danych pochodzących z formularza jest niezbędna aby zapewnić bezpieczeństwo i poprawne działanie systemu. Dane weryfikuje się, aby sprawdzić, czy podano wszystkie wymagane informacje oraz czy są to informacje odpowiedniego typu, w określonym formacie lub mające odpowiednią wartość. Funkcje często wykorzystywane to isset() - zwraca TRUE, jeżeli zmiennej przypisano jakąś wartość (ale może to być w szczególności 0, FALSE lub pusty łańcuch). Jeżeli chcemy sprawdzić, czy w polu tekstowym wpisano wartość - funkcja empty(), która sprawdza, czy zmienna posiada pusta wartość, czyli pusty łańcuch, 0, NULL lub FALSE.

62 Weryfikacja danych z formularza Weryfikacja danych pochodzących z formularza jest niezbędna aby zapewnić bezpieczeństwo i poprawne działanie systemu. Dane weryfikuje się, aby sprawdzić, czy podano wszystkie wymagane informacje oraz czy są to informacje odpowiedniego typu, w określonym formacie lub mające odpowiednią wartość. Funkcje często wykorzystywane to isset() - zwraca TRUE, jeżeli zmiennej przypisano jakąś wartość (ale może to być w szczególności 0, FALSE lub pusty łańcuch). Jeżeli chcemy sprawdzić, czy w polu tekstowym wpisano wartość - funkcja empty(), która sprawdza, czy zmienna posiada pusta wartość, czyli pusty łańcuch, 0, NULL lub FALSE. Do weryfikacji poprawności danych z formularza stosuje się też wyrażenia regularne.

63 Połaczenie PHP i Oracle Każda aplikacja PHP/Oracle musi zadbać przynajmniej o dwa zadania: nawiązanie połączenia z bazą danych oraz wykonanie polecenia bądź poleceń SQL względem tej bazy danych. Typowa aplikacja będzie miała za zadanie pobierać dane wejściowe użytkownika, a następnie wykonywać zapytanie SQL, które powoduje umieszczenie pobranych danych w bazie danych oraz pobierać dane otrzymane z bazy danych oraz wyświetlać je użytkownikowi.

64 Połaczenie PHP i Oracle Każda aplikacja PHP/Oracle musi zadbać przynajmniej o dwa zadania: nawiązanie połączenia z bazą danych oraz wykonanie polecenia bądź poleceń SQL względem tej bazy danych. Typowa aplikacja będzie miała za zadanie pobierać dane wejściowe użytkownika, a następnie wykonywać zapytanie SQL, które powoduje umieszczenie pobranych danych w bazie danych oraz pobierać dane otrzymane z bazy danych oraz wyświetlać je użytkownikowi. W celu wykonania tych zadań, można wykorzystać rozszerzenie PHP o nazwie OCI8.

65 Połaczenie PHP i Oracle Każda aplikacja PHP/Oracle musi zadbać przynajmniej o dwa zadania: nawiązanie połączenia z bazą danych oraz wykonanie polecenia bądź poleceń SQL względem tej bazy danych. Typowa aplikacja będzie miała za zadanie pobierać dane wejściowe użytkownika, a następnie wykonywać zapytanie SQL, które powoduje umieszczenie pobranych danych w bazie danych oraz pobierać dane otrzymane z bazy danych oraz wyświetlać je użytkownikowi. W celu wykonania tych zadań, można wykorzystać rozszerzenie PHP o nazwie OCI8. Rozszerzenie PHP OCI8 jest biblioteką umożliwiająca współprace technologii PHP i Oracle. Zaletą stosowania tego rozszerzenia jest m.in. fakt, że jest dedykowane dla Oracle a i oferuje dużą liczbę opcji. Pozwala programiście na kontrolowanie wszystkich faz wykonywania polecenia SQL.

66 Rozszerzenie PHP OCI8 Uwaga. Obsługa rozszerzenie PHP OCI8 domyślnie nie jest włączona. Aby włączyć obsługę tego rozszerzenia w istniejącej instalacji PHP, należy (1) przeprowadzić instalację bibliotek Oracle Client wymaganych przez rozszerzenie PHP OCI8 (lub użyć pakietu Oracle Instant Client); w sytuacji gdy zarówno baza danych, jak i serwer WWW zostały zainstalowane na tym samym komputerze, dostępne są wszystkie wymagane komponenty Oracle nie ma potrzeby doinstalowywania dodatkowych bibliotek; (2) usunąć znak komentarza z wiersza rozszerzenia OCI8 w pliku konfiguracyjnym php.ini; (3) ponownie uruchomić serwer Apache.

67 Nawiazywanie połaczenia z Oracle za pomoca rozszerzenia OCI8 Stosowanie metod Local Naming i Easy Connect do nawiązania połączenia z bazą danych Oracle z poziomu PHP. Local Naming: należy utworzyć deskryptor poł aczenia, który zawiera szczegółowe informacje o lokalizacji bazy danych, z którą ma nastąpić połączenie; mianowicie, składa się z nazwy sieciowej (lub adresu IP) komputera, portu, na którym działa proces Oracle Net oraz SID bazy danych (nazwa usługi bazy danych), np.

68 Nawiazywanie połaczenia z Oracle za pomoca rozszerzenia OCI8 Stosowanie metod Local Naming i Easy Connect do nawiązania połączenia z bazą danych Oracle z poziomu PHP. Local Naming: należy utworzyć deskryptor poł aczenia, który zawiera szczegółowe informacje o lokalizacji bazy danych, z którą ma nastąpić połączenie; mianowicie, składa się z nazwy sieciowej (lub adresu IP) komputera, portu, na którym działa proces Oracle Net oraz SID bazy danych (nazwa usługi bazy danych), np. $dbhost = "localhost"; $dbhostport="1521"; $dbservicename = "xe"; $dbconnstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=".$dbHost.")(PORT=".$dbHostPort.")) (CONNECT_DATA=(SERVICE_NAME=".$dbServiceName.")))";

69 Nawiazywanie połaczenia z Oracle za pomoca rozszerzenia OCI8 Stosowanie metod Local Naming i Easy Connect do nawiązania połączenia z bazą danych Oracle z poziomu PHP. Easy Connect: W środowisku TCP/IP istnieje możliwość wykorzystania metody Easy Connect Naming, która umożliwia nawiązanie połączenia z serwerem bazy danych poprzez proste podanie nazwy użytkownika i hasła oraz nazwy komputera serwera wraz z dwoma opcjonalnymi parametrami: nazwa usługi bazy danych i numer portu, na którym proces Oracle Net oczekuje na połączenia.

70 Nawiazywanie połaczenia z Oracle za pomoca rozszerzenia OCI8 Stosowanie metod Local Naming i Easy Connect do nawiązania połączenia z bazą danych Oracle z poziomu PHP. Easy Connect: W środowisku TCP/IP istnieje możliwość wykorzystania metody Easy Connect Naming, która umożliwia nawiązanie połączenia z serwerem bazy danych poprzez proste podanie nazwy użytkownika i hasła oraz nazwy komputera serwera wraz z dwoma opcjonalnymi parametrami: nazwa usługi bazy danych i numer portu, na którym proces Oracle Net oczekuje na połączenia. $dbeasyconn = "//SerwerBazyDanych:port/SID"; np. $dbeasyconn = "//localhost:1521/xe";

71 Nawiazywanie połaczenia z baza danych Oracle z poziomu PHP: funkcji oci_connect() W celu nawiązania połączenia z bazą danych Oracle, można wykorzystać funkcję oci_connect(). Wartością zwrotną funkcji jest uchwyt połączenia z bazą danych, który następnie jest używany przez inne metody rozszerzenia OCI8.

72 Nawiazywanie połaczenia z baza danych Oracle z poziomu PHP: funkcji oci_connect() W celu nawiązania połączenia z bazą danych Oracle, można wykorzystać funkcję oci_connect(). Wartością zwrotną funkcji jest uchwyt połączenia z bazą danych, który następnie jest używany przez inne metody rozszerzenia OCI8. Połączenie z bazą z użyciem metody Local Naming ($dbconnstr zawiera deskryptor połączenia): $dbconn = oci_connect($usr,$passwd,$dbconnstr);

73 Nawiazywanie połaczenia z baza danych Oracle z poziomu PHP: funkcji oci_connect() W celu nawiązania połączenia z bazą danych Oracle, można wykorzystać funkcję oci_connect(). Wartością zwrotną funkcji jest uchwyt połączenia z bazą danych, który następnie jest używany przez inne metody rozszerzenia OCI8. Połączenie z bazą z użyciem metody Local Naming ($dbconnstr zawiera deskryptor połączenia): $dbconn = oci_connect($usr,$passwd,$dbconnstr); Przy użyciu Easy Connect: $dbeasyconn = "//SerwerBazyDanych:port/SID"; $dbconn = oci_connect($usr,$pswd,$dbeasyconn);

74 Przykład <?php $usr = "hr"; $pswd = "misiu124"; $dbeasyconnect="//localhost/xe"; if(!$dbconn = oci_connect($usr,$pswd,$dbeasyconnect)) { $err = oci_error(); trigger_error( Nie można nawiązać połączenia:. $err[ message ], E_USER_ERROR); };?>

75 Przykład <?php $usr = "hr"; $pswd = "misiu124"; $dbeasyconnect="//localhost/xe"; if(!$dbconn = oci_connect($usr,$pswd,$dbeasyconnect)) { $err = oci_error(); trigger_error( Nie można nawiązać połączenia:. $err[ message ], E_USER_ERROR); };?> Uwaga. Użyto funkcję oci_error(): jeżeli wystąpi błąd podczas nawiązywania połączenia, następuje wywołanie funkcji oci_error() a następnie przerwanie wykonania skryptu poprzez wywołanie funkcji trigger_error().

76 Przetwarzanie zapytań SELECT Ogólne kroki wymagane do przetworzenia polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse().

77 Przetwarzanie zapytań SELECT Ogólne kroki wymagane do przetworzenia polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse(). Krok 2. (wymagany): wykonanie przygotowanego polecenia poprzez użycie funkcji oci_execute().

78 Przetwarzanie zapytań SELECT Ogólne kroki wymagane do przetworzenia polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse(). Krok 2. (wymagany): wykonanie przygotowanego polecenia poprzez użycie funkcji oci_execute(). Krok 3. (opcjonalny, ale zalecany): sprawdzenie wartości zwrotnej wywołania funkcji oci_execute(). Jeżeli funkcja oci_execute() zwróciła wartość false, wskazuje ona na nieudaną próbę wykonania zapytania. W takim przypadku trzeba wykorzystać funkcję oci_error(), która pozwala na pobranie z Oracle opisu błędu oraz jego kodu.

79 Przetwarzanie zapytań SELECT Ogólne kroki wymagane do przetworzenia polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse(). Krok 2. (wymagany): wykonanie przygotowanego polecenia poprzez użycie funkcji oci_execute(). Krok 3. (opcjonalny, ale zalecany): sprawdzenie wartości zwrotnej wywołania funkcji oci_execute(). Jeżeli funkcja oci_execute() zwróciła wartość false, wskazuje ona na nieudaną próbę wykonania zapytania. W takim przypadku trzeba wykorzystać funkcję oci_error(), która pozwala na pobranie z Oracle opisu błędu oraz jego kodu. Krok 4. (wymagany): pobrać wyniki zapytania, poprzez jedną z funkcji pobierania rozszerzenia OCI8: oci_fetch_all() pobiera wszystkie rekordy zbioru wynikowego i umieszcza je w tablicy zdefiniowanej przez użytkownika; oci_fetch() pobiera dane do buforu, skąd można odczytywać je za pomocą funkcji oci_result().

80 Przygotowywanie poleceń SQL do wykonania Kroki poprzedzające: ustanowienie połączenia z bazą danych oraz zdefiniowanie ciągu tekstowego zapytania. Przygotowanie polecenia do wykonania: funkcja oci_parse(), której jako argumenty należy przekazać połączenie z bazą danych oraz ciąg tekstowy polecenia SQL. Funkcja oci_parse() zwraca identyfikator polecenia, który z kolei może być później przekazany np. funkcji oci_execute() jako pierwszy argument.

81 Przygotowywanie poleceń SQL do wykonania Kroki poprzedzające: ustanowienie połączenia z bazą danych oraz zdefiniowanie ciągu tekstowego zapytania. Przygotowanie polecenia do wykonania: funkcja oci_parse(), której jako argumenty należy przekazać połączenie z bazą danych oraz ciąg tekstowy polecenia SQL. Funkcja oci_parse() zwraca identyfikator polecenia, który z kolei może być później przekazany np. funkcji oci_execute() jako pierwszy argument. $strsql = "SELECT TO_CHAR(SYSDATE, HH:MI:SS ) czas FROM DUAL"; $statement = oci_parse($dbconn,$strsql); $strsql - tekst polecenia SQL; $dbconn - uchwyt do połączenia; $statement - identyfikator polecenia

82 Wykonywanie poleceń SQL Do wykonywania wcześniej przeanalizowanych poleceń używana jest funkcja oci_execute(). Jako swój pierwszy parametr pobiera ona identyfikator polecenia zwrócony przez funkcję oci_parse(); domyślnym trybem wykonywania jest OCI_COMMIT_ON_SUCCESS; polecenie zostaje automatycznie zatwierdzone. Funkcja może też pobrać inny tryb wykonania przekazany w formie opcjonalnego drugiego parametru.

83 Wykonywanie poleceń SQL Do wykonywania wcześniej przeanalizowanych poleceń używana jest funkcja oci_execute(). Jako swój pierwszy parametr pobiera ona identyfikator polecenia zwrócony przez funkcję oci_parse(); domyślnym trybem wykonywania jest OCI_COMMIT_ON_SUCCESS; polecenie zostaje automatycznie zatwierdzone. Funkcja może też pobrać inny tryb wykonania przekazany w formie opcjonalnego drugiego parametru. $strsql = "SELECT TO_CHAR(SYSDATE, HH:MI:SS ) czas FROM DUAL"; $statement = oci_parse($dbconn,$strsql); if (!oci_execute($statement)) { $err = oci_error($statement); trigger_error( Zapytanie zakończyło się niepowodzeniem:. $err[ message ], E_USER_ERROR); };

84 Wykonywanie poleceń SQL Do wykonywania wcześniej przeanalizowanych poleceń używana jest funkcja oci_execute(). Jako swój pierwszy parametr pobiera ona identyfikator polecenia zwrócony przez funkcję oci_parse(); domyślnym trybem wykonywania jest OCI_COMMIT_ON_SUCCESS; polecenie zostaje automatycznie zatwierdzone. Funkcja może też pobrać inny tryb wykonania przekazany w formie opcjonalnego drugiego parametru. Podczas wykonywania poleceń SELECT za pomocą funkcji oci_execute() wyniki zapytania zostają umieszczone w pamięci i nie są dostępne natychmiast. Aby wykorzystać te dane, należy wcześniej je pobrać, używając w tym celu jednej z funkcji pobierania rozszerzenia OCI8.

85 Wykonywanie poleceń SQL Do wykonywania wcześniej przeanalizowanych poleceń używana jest funkcja oci_execute(). Jako swój pierwszy parametr pobiera ona identyfikator polecenia zwrócony przez funkcję oci_parse(); domyślnym trybem wykonywania jest OCI_COMMIT_ON_SUCCESS; polecenie zostaje automatycznie zatwierdzone. Funkcja może też pobrać inny tryb wykonania przekazany w formie opcjonalnego drugiego parametru. Podczas wykonywania poleceń SELECT za pomocą funkcji oci_execute() wyniki zapytania zostają umieszczone w pamięci i nie są dostępne natychmiast. Aby wykorzystać te dane, należy wcześniej je pobrać, używając w tym celu jednej z funkcji pobierania rozszerzenia OCI8. Niezależnie od tego, czy wykonywania jest operacja DML, czy zapytanie, wartością zwrotną funkcji oci_execute() jest true w przypadku powodzenia lub false po niepowodzeniu wykonania. Dobrym rozwiązaniem jest upewnienie się, że wykonanie funkcji zakończyło się powodzeniem, a w przypadku niepowodzenia należy wygenerować komunikat ostrzeżenia bądź błędu.

86 Używanie funkcji oci_error() Typowa funkcja rozszerzenia OCI8 zwraca kod stanu, który wskazuje powodzenie danej operacji. Jeżeli wartością zwrotną będzie false, skrypt może wywołać funkcję oci_error() w celu pobrania komunikatu błędu. Zazwyczaj uchwyt odpowiedniego zasobu zostaje przekazany jako parametr funkcji oci_error(). W przypadku błędów dotyczących połączenia istnieje możliwość wywołania funkcji oci_error() bez parametru. Wartością zwrotną funkcji oci_error() jest tablica asocjacyjna, która zawiera informacje dotyczące błędu. Funkcja oci_error() jest często używana w połączeniu z funkcją trigger_error(), np.: $err = oci_error($stmt); trigger_error($err[ message ]);

87 Używanie funkcji trigger_error() Obsługa błędów powstałych w trakcie działania aplikacji PHP - użycie funkcji trigger_error(). Funkcja ma dwa parametry - komunikat opisujący błąd, oraz opcjonalny drugi parametr przedstawiający rodzaj błędu. Jako drugi parametr używamy jednej ze stałych: Zdefiniowana stała E_USER_ERROR E_USER_WARNING E_USER_NOTICE Opis Błąd krytyczny, powoduje przerwanie wykonywania pozostałej części skryptu. Ten poziom błędu jest zazwyczaj stosowany, gdy wykonywanie skryptu po wystąpieniu danego błędu nie ma większego sensu. Ostrzeżenie (błąd bez znaczenia krytycznego). Ten poziom błędu pozwala na kontynuowanie wykonywania skryptu. Wygenerowanie uwagi. Ten poziom błędu pozwala na kontynuowanie wykonywania skryptu. Uwaga jest zazwyczaj generowana w odpowiedzi na zdarzenie, które niekoniecznie musi być błędem, ale może wystąpić podczas zwykłego wykonywania skryptu.

88 Pobieranie wyników zapytania SELECT za pomoca funkcji OCI8 Jeżeli wartością zwrotną wywołania funkcji oci_execute() będzie true, można przejść do etapu pobierania wyników. Funkcje rozszerzenia OCI8, które służa do pobierania wyników. Pobieranie rekordów ze zbioru wynikowego i umieszczanie ich w tablicy zdefiniowanej przez użytkownika: oci_fetch_assoc() Funkcja zwraca kolejny rekord ze zbioru wynikowego jako tablicę asocjacyjną (odwoływanie się do pól za pomocą nazw). oci_fetch_row() Funkcja zwraca kolejny rekord ze zbioru wynikowego jako tablicę indeksowaną. oci_fetch_array() Funkcja zwraca kolejny rekord ze zbioru wynikowego jako tablicę. Opcjonalny drugi parametr pozwala na określenie rodzaju tablicy (asocjacyjna, indeksowana bądź obie). Jeżeli nie będzie więcej rekordów zbioru wynikowego do pobrania, każda z tych funkcia zwróci wartość false.

89 Pobieranie wyników zapytania SELECT za pomoca funkcji OCI8 Funkcje rozszerzenia OCI8, które służa do pobierania wyników. oci_fetch() Funkcja pobiera kolejny rekord ze zbioru wynikowego i umieszcza go w wewnętrznym buforze wyników. Następnie do pobrania danych z bufora należy użyć funkcji oci_result(). oci_fetch_all() Funkcja pobiera jednocześnie wszystkie rekordy zwrócone przez zapytanie i umieszcza je w tablicy zdefiniowanej przez użytkownika. Wartością zwrotną jest liczba pobranych rekordów bądź wartość false w przypadku niepowodzenia operacji.

90 Pobieranie wyników zapytania SELECT za pomoca funkcji OCI8 Funkcje rozszerzenia OCI8, które służa do pobierania wyników. oci_fetch() Funkcja pobiera kolejny rekord ze zbioru wynikowego i umieszcza go w wewnętrznym buforze wyników. Następnie do pobrania danych z bufora należy użyć funkcji oci_result(). oci_fetch_all() Funkcja pobiera jednocześnie wszystkie rekordy zwrócone przez zapytanie i umieszcza je w tablicy zdefiniowanej przez użytkownika. Wartością zwrotną jest liczba pobranych rekordów bądź wartość false w przypadku niepowodzenia operacji. oci_result - zwraca dane z pola w bieżącym wierszu, pobranym przez oci_fetch ().

91 Przetwarzanie zapytań SELECT Ogólne kroki zaangażowane w przetworzenie polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse(). Krok 2. (opcjonalny): jeżeli polecenie zawiera znaczniki zmiennych wiązanych dla wartości, które będą dostarczane przez aplikację podczas jej wykonywania, trzeba użyć funkcji oci_bind_by_name(), pozwalającej na utworzenie połączenia między zmienną skryptu PHP i znacznikiem zmiennej wiązanej w Oracle. Krok 3. (opcjonalny): można zdefiniować zmienne PHP, które służą do pobierania kolumn wymienionych w poleceniu SELECT. W tym celu należy wykorzystać funkcję oci_define_by_name(). Krok 4. (opcjonalny): użyć funkcji oci_set_prefetch() w celu ustalenia liczby rekordów, które zostaną pobrane z wyprzedzeniem, gdy wywołanie funkcji oci_execute() zakończy się powodzeniem. Domyślnie ta liczba wynosi 1.

92 Przetwarzanie zapytań SELECT Ogólne kroki zaangażowane w przetworzenie polecenia SELECT: Krok 5. (wymagany): wykonanie przygotowanego polecenia poprzez użycie funkcji oci_execute(). Krok 6. (opcjonalny, ale zalecany): sprawdzenie wartości zwrotnej wywołania funkcji oci_execute(). Jeżeli funkcja oci_execute() zwróciła wartość false, wskazuje ona na nieudaną próbę wykonania zapytania. W takim przypadku trzeba wykorzystać funkcję oci_error(), która pozwala na pobranie z Oracle opisu błędu oraz jego kodu. Krok 7. (wymagany): pobrać wyniki zapytania. W tym celu można wykorzystać jedną z funkcji pobierania oferowanych przez rozszerzenie OCI8: oci_fetch_all() pobiera wszystkie rekordy zbioru wynikowego i umieszcza je w tablicy zdefiniowanej przez użytkownika; oci_fetch() pobiera dane do buforu, skąd można odczytywać je za pomocą funkcji oci_result(). Jeżeli do pobierania kolumn SQL zostały zdefiniowane zmienne, dostęp do wyników jest możliwy także poprzez te zmienne.

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt Serwer WWW Apache http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Katalog który ma być serwowany Moduły, które mają zostać uruchomione na serwerze m.in. PHP, mod_rewrite Wirtualne

Bardziej szczegółowo

Umieszczanie kodu. kod skryptu

Umieszczanie kodu. kod skryptu PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science Systemy internetowe Wykład 3 PHP PHP - cechy PHP (Hypertext Preprocessor) bardzo łatwy do opanowania, prosta składnia, obsługuje wymianę danych z różnymi systemami baz danych pozwala na dynamiczne generowanie

Bardziej szczegółowo

Oczywiście plik musi mieć rozszerzenie *.php

Oczywiście plik musi mieć rozszerzenie *.php Oczywiście plik musi mieć rozszerzenie *.php Znaczniki PHP komunikują serwerowi gdzie rozpoczyna się i kończy kod PHP. Tekst między nimi jest interpretowany jako kod PHP, natomiast poza nimi jako kod HTML.

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP Zad. 1 Dla każdego zamówienia wyznaczyć jego wartość. Należy podać numer zamówienia oraz wartość. select z.id_zamowienia, sum(ilosc*cena) as wartosc

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.2.

Języki programowania wysokiego poziomu. PHP cz.2. Języki programowania wysokiego poziomu PHP cz.2. Instrukcje strukturalne PHP Instrukcje strukturalne Instrukcja grupująca (blok instrukcji) Instrukcja warunkowa, if-else Instrukcja wyboru, switch-case

Bardziej szczegółowo

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ; Do wyświetlania tekstu służy instrukcja echo echo Hello world ; PHP język ze słabą kontrolą typów. W języku php w przeciwieństwie do c++ nie musimy podawać typu zmiennej podczas jej deklaracji. Tworzenie

Bardziej szczegółowo

Systemy internetowe Wykład 3 PHP

Systemy internetowe Wykład 3 PHP Systemy internetowe Wykład 3 PHP PHP - cechy PHP (Hypertext Preprocessor) bardzo łatwy do opanowania, prosta składnia, obsługuje wymianę danych z różnymi systemami baz danych pozwala na dynamiczne generowanie

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia Dynamiczne przetwarzanie stron dr Beata Kuźmińska-Sołśnia KLIENT Witaj INTERNET SERWER Plik HTML Witaj wyświetlanie przez przeglądarkę Witaj! Serwer WWW komputer

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /

Bardziej szczegółowo

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

Należy ściągnąć oprogramowanie Apache na platformę

Należy ściągnąć oprogramowanie Apache na platformę Programowanie Internetowe Język PHP - wprowadzenie 1. Instalacja Oracle+Apache+PHP Instalacja Apache, PHP, Oracle Programy i ich lokalizacja Oracle Database 10g Express Edition10.2 http://www.oracle.com/technology/products/database/

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę

Bardziej szczegółowo

ZMIENNE. Podstawy PHP

ZMIENNE. Podstawy PHP ZMIENNE Podstawy PHP zmienna - to obiekt w programowaniu, który przechowuje różnego rodzaju dane niezbędne do działania programu. Zmienna podczas działania programu może zmieniad swoje wartości (jak wskazuje

Bardziej szczegółowo

Wykład 5: PHP: praca z bazą danych MySQL

Wykład 5: PHP: praca z bazą danych MySQL Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych

Bardziej szczegółowo

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak

Bardziej szczegółowo

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech BAZY DANYCH Obsługa bazy z poziomu języka PHP opracowanie: Michał Lech Plan wykładu 1. PHP - co to jest? 2. Bazy danych obsługiwane przez PHP 3. Podstawowe polecenia 4. Sesje 5. Przykład - dodawanie towaru

Bardziej szczegółowo

Laboratorium 1 Wprowadzenie do PHP

Laboratorium 1 Wprowadzenie do PHP Laboratorium 1 Wprowadzenie do PHP Ćwiczenie 1. Tworzenie i uruchamianie projektu PHP w Netbeans Tworzenie projektu Uruchom środowisko NetBeans. Stwórz nowy projekt typu PHP Application (File->New Project,

Bardziej szczegółowo

Dlaczego PHP? - zalety

Dlaczego PHP? - zalety Dlaczego PHP? - zalety (+) bezpieczeństwo kodu - PHP wykonuje się po stronie serwera ( niezależność od przeglądarki) (+) bezpieczeństwo danych - wykorzystanie ssl i HTTPS (+) PHP jako moduł serwera WWW

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

SSK - Techniki Internetowe

SSK - Techniki Internetowe SSK - Techniki Internetowe Ćwiczenie 2. Obsługa formularzy. Operatory, instrukcje warunkowe oraz instrukcje pętli w PHP. Obsługa formularzy Skryptu PHP moŝna uŝyć do obsługi formularza HTML. Aby tego dokonać,

Bardziej szczegółowo

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop. 2017 Spis treści Wstęp 11 Część I Skrypty PHP dynamiczne generowanie stron internetowych 15 Rozdział 1. Podstawy 17 Czym jest PHP? 17 Krótka

Bardziej szczegółowo

Personal Home Page PHP: Hypertext Preprocessor

Personal Home Page PHP: Hypertext Preprocessor Języki, które już znacie Wykład9PodstawyPHP,str1 język polski język angielski język C język preprocesora C język bash-a język HTML kolejny język: PHP Język PHP Wykład9PodstawyPHP,str2 Personal Home Page

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Zmienne i stałe w PHP

Zmienne i stałe w PHP Zmienne i stałe w PHP Zmienne Zmienne to konstrukcje programistyczne, które pozwalają na przechowywanie danych. Każda zmienna posiada swoją nazwę oraz typ. Nazwa to jednoznaczny identyfikator, dzięki któremu

Bardziej szczegółowo

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07 PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, obsługa formularzy oraz zmiennych

Bardziej szczegółowo

Dokumentacja smsapi wersja 1.4

Dokumentacja smsapi wersja 1.4 Dokumentacja smsapi wersja 1.4 1. Wprowadzenie Platforma smsapi została skierowana do użytkowników chcących rozbudować swoje aplikacje o system wysyłania smsów. Aplikacja ta w prosty sposób umożliwia integrację

Bardziej szczegółowo

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft ); Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft ); Dobrą praktyką jest używanie wielkich liter jako nazw stałych. Nie jest

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Pawel@Kasprowski.pl Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Pawel@Kasprowski.pl Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07 Podstawy PHP Paweł Kasprowski pawel@kasprowski.pl Historia PHP 1995 Personal Home Page Rasmus Lerdorf, prosty jęsyk oparty na Perlu 1998 PHP3 Andi Gutmans, Zeev Suraski modularność i rozszerzenia (extensions)

Bardziej szczegółowo

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak: Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak: accept - typy zawartości MIME akceptowane przez serwer (opcjonalny) accept-charset - zestaw znaków akceptowanych

Bardziej szczegółowo

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź JAVASCRIPT PODSTAWY materiały dydaktyczne dla uczniów słuchaczy opracowanie: 2004-2007 by Arkadiusz Gawełek, Łódź 1. Czym jest JavaScript JavaScript tak naprawdę narodził się w firmie Netscape jako LiveScript,

Bardziej szczegółowo

FORMULARZE. G. Przęczek

FORMULARZE. G. Przęczek FORMULARZE G. Przęczek Tworzenie formularzy w HTML Podstawowe ramy formularza wyznacza znacznik który ma szereg atrybutów, które określają jego działanie. Pierwszym atrybutem jest action,

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

Bazy danych i strony WWW

Bazy danych i strony WWW Bazy danych i strony WWW Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Przetwarzanie i organizowanie danych : bazy danych Nr ćwiczenia 10 Temat Aplikacje

Bardziej szczegółowo

Krótki kurs JavaScript

Krótki kurs JavaScript Krótki kurs JavaScript Java Script jest językiem wbudowanym w przeglądarkę. Gdy ma się podstawy nabyte w innych językach programowania jest dość łatwy do opanowania. JavaScript jest stosowany do powiększania

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 2

Podstawy programowania III WYKŁAD 2 Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące

Bardziej szczegółowo

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

do drukowania tekstu służy funkcja echo <?php echo hello world!;?> jeżeli użyjemy jej kilka razy: <?php S t r o n a 1 Podstawy PHP 1. stwórz plik tekstowy o nazwie index.php Zawartość pliku musi mieć postać: Znaczniki kodu php: Przykładowy kod typu "hello world!" Wpisz powyższy kod do plkiku index.php Skopiuj

Bardziej szczegółowo

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 4 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w

Bardziej szczegółowo

Składowane procedury i funkcje

Składowane procedury i funkcje Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się. Za operacje na bazie odpowiada biblioteka mysqli (i jak improved). Posiada ona interfejs obiektowy jak i proceduralny. Podłączenie do bazy (obiektowo) mysqli:: construct() ([ string $host [, string $username

Bardziej szczegółowo

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

Bardziej szczegółowo

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia Dane - pobieranie, przekazywanie i przechowywanie dr Beata Kuźmińska-Sołśnia Definicja funkcji function nazwa (lista parametrów) { blok instrukcji Użycie instrukcji return wartość kończy działanie funkcji

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Lekcja 7 Tablice. Definiowanie tablicy

Lekcja 7 Tablice. Definiowanie tablicy Paweł Gmys PHP lekcja 7 strona 1 Lekcja 7 Tablice Definiowanie tablicy Tablice są bardzo specyficznym typem zmiennych - są to, najprościej mówiąc, zmienne zawierające w sobie uporządkowany zbiór zmiennych.

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Programowanie internetowe

Programowanie internetowe Programowanie internetowe Wykład 3 wprowadzenie do PHP mgr inż. Michał Wojtera email: mwojtera@dmcs.pl Formularze i ich używanie

Bardziej szczegółowo

JAVAScript w dokumentach HTML (2)

JAVAScript w dokumentach HTML (2) Informatyka ćw.6 JAVAScript w dokumentach HTML (2) Interakcyjne wprowadzanie danych Jednym ze sposobów jest stosowanie metody prompt dla wbudowanego obiektu window: zmienna= prompt("tekst zachęty, np.

Bardziej szczegółowo

Projekt Hurtownia, realizacja skojarzeń dostawców i produktów

Projekt Hurtownia, realizacja skojarzeń dostawców i produktów niżej. Projekt Hurtownia, realizacja skojarzeń dostawców i produktów W bazie danych HurtowniaSP istnieją tabele Dostawcy oraz Produkty, ich definicje przypomniane są W bazie zdefiniowano także tabelę DostawcyProdukty,

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

PHP. PHP: Hypertext Preprocessor. mgr inż. Remigiusz Pokrzywiński

PHP. PHP: Hypertext Preprocessor. mgr inż. Remigiusz Pokrzywiński PHP PHP: Hypertext Preprocessor mgr inż. Remigiusz Pokrzywiński Czym jest PHP PHP to obiektowy język programowania wykonywany po stronie serwera. Skrypty zagnieżdżane są zwykle w dokumencie HTML lub XHTML

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP + bazy danych Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, współpraca PHP z bazami

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Funkcje wbudowane PHP

Funkcje wbudowane PHP Funkcje wbudowane PHP Funkcje daty i czasu Funkcja time() zwraca informacje na temat bieżącej daty i czasu. Nie posiada żadnych argumentów. Informacje o czasie dacie zwraca w formie liczby Liczba odpowiada

Bardziej szczegółowo

WPROWADZENIE. Użycie PHP

WPROWADZENIE. Użycie PHP WPROWADZENIE PHP jest językiem programowania po stronie serwera używanym do tworzenia dynamicznych witryn internetowych i interaktywne aplikacje internetowe. Skrót PHP pierwotnie oznaczał Osobistą stronę

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach: Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl wersja.2.9 data 2014-11-21 Opis usług: P24 KOD P24 KLUCZ P24 WAPA SEND SMS Strona 1 z 8 P24 KOD Przebieg transakcji Operacje po stronie Sprzedawcy

Bardziej szczegółowo

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2] 1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA JavaScript tak

Bardziej szczegółowo

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski Bazy danych II Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 12 Zastosowanie PHP do programowania aplikacji baz danych MySQL Wsparcie programowania w PHP baz danych MySQL Obsługa baz danych

Bardziej szczegółowo

1 Przygotował: mgr inż. Maciej Lasota

1 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

Bardziej szczegółowo