kurs php

http://phpkurs.pl/skladnia

ZMIENNE

<?php

   $nazwa = 1; // Zmiennej "nazwa" przypisywana jest wartość liczbowa 1

   $druga_nazwa = "Tekst"; // Zmiennej "druga_nazwa" przypisany jest ciąg znaków "Tekst"

   $trzecia_nazwa = $nazwa; // Zmiennej "trzecia_nazwa" przypisywana
                            //jest wartość zmiennej "nazwa"

   echo "To jest $druga_nazwa"; // Powinien wyświetlić się napis "To jest Tekst"

   echo '$druga_nazwa'; // Powinien wyświetlić się napis "$druga_nazwa"

   echo $nazwa; // Powinna wyświetlić się cyfra 1

?>

 

Zmienne ustawiane przez serwer WWW

PRZYKŁAD ZASTOSOWANIA:

echo $_SERVER['SERVER_NAME'];

Zmienne ustawiane przez serwer WWW

GATEWAY_INTERFACE
Informacja o specyfikacji CGI używanej przez serwer, np. ‚CGI/1.1’.
SERVER_NAME
Nazwa hosta serwera na którym skrypt jest uruchamiany. Jeśli skrypt pracuje na wirtualnym hoście, to zmienna przyjmie jako wartość nazwę wirtualnego hosta.
SERVER_SOFTWARE
Ciąg identyfikujący serwera podawany przy odpowiadaniu na zapytania.
SERVER_PROTOCOL
Nazwa i numer wersji protokołu za pomocą którego wysłano zapytanie o stronę, np. ‚HTTP/1.0’;
REQUEST_METHOD
Metoda zapytania użyta do uzyskania dostępu do strony, np. ‚GET’, ‚HEAD’, ‚POST’, ‚PUT’.
QUERY_STRING
Ciąg zapytania (jeśli takowy istnieje) za pomocą którego połączono się ze stroną.
DOCUMENT_ROOT
Katalog główny drzewa dokumentów spod którego skrypt jest wykonywany – jest to ustawienie z pliku konfiguracyjnego serwera.
HTTP_ACCEPT
Nagłówek z aktualnego zapytania, jeśli taki istnieje.
HTTP_ACCEPT_CHARSET
Zawartość nagłówka „Accept-Charset” z aktualnego zapytania, jeśli taki istnieje, np. ‚iso-8859-1,*,utf-8’.
HTTP_ENCODING
Zawartość nagłówka „Accept-Encoding” z aktualnego zapytania, jeśli taki istnieje, np. ‚gzip’.
HTTP_ACCEPT_LANGUAGE
Zawartość nagłówka „Accept-Language” z aktualnego zapytania, jeśli taki istnieje, np. ‚en’.
HTTP_CONNECTION
Zawartość nagłówka „Connection” z aktualnego zapytania, jeśli taki istnieje, np. ‚Keep-Alive’.
HTTP_HOST
Zawartość nagłówka „Host” z aktualnego zapytania, jeśli taki istnieje.
HTTP_REFERER
Adres strony (jeśli taka była), która wskazała przeglądarkę do tej strony. Wartość ta jest ustawiana przez przeglądarkę – nie wszystkie to robią.
HTTP_USER_AGENT
Zawartość nagłówka „User-Agent” z zapytania, jeśli taki istnieje. Jest to ciąg informujący o przeglądarce która została użyta do obejrzenia bieżącej strony, np. Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Można użyć funkcji get_browser() aby dopasować funkcjonalność strony do przeglądarki użytkownika.
REMOTE_ADDR
Adres IP z którego użytkownik połączył się z serwerem.
REMOTE_PORT
Port używany do komunikacji pomiędzy użytkownikiem a serwerem.
SCRIPT_FILENAME
Ścieżka do aktualnie wykonywanego skryptu.
SERVER_ADMIN
Wartość podana dla opcji SERVER_ADMIN w konfiguracji serwera WWW. Jeśli skrypt działa na wirtualnym serwerze, to będzie to wartość podana dla tego wirtualnego serwera.
SERVER_PORT
Port na serwerze którego użyto do połączenia. Dla normalnych połączeń będzie to ’80’.
SERVER_SIGNATURE
Ciąg zawierający wersję i nazwę wirtualnego hosta który jest dodawany do stron generowanych przez serwer.
SCRIPT_NAME
Zawiera ścieżkę do aktualnie wykonywanego pliku. Jest to przydatne do skyptów, które muszą wskazywać samego siebie.
REQUEST_URI
URI który został podany aby uzyskać dostęp do tej strony.

Przykład 3.3. Przykład funkcjonowania inkrementacji i dekrementacji

<?php
echo "Postinkrementacja";
$a = 5;
echo "Powinno być 5: " . $a++ . "\n";
echo "Powinno być 6: " . $a   . "\n";

echo "Preinkrementacja";
$a = 5;
echo "Powinno być 6: " . ++$a . "\n";
echo "Powinno być 6: " . $a   . "\n";

echo "Postdekrementacja";
$a = 5;
echo "Powinno być 5: " . $a-- . "\n";
echo "Powinno być 4: " . $a   . "\n";

echo "Predekrementacja";
$a = 5;
echo "Powinno być 4: " . --$a . "\n";
echo "Powinno być 4: " . $a   . "\n";
?>

Struktury kontrolne

Pętla FOR

Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej używanych składni w większości języków programowania, czyli pętla FOR. Ogólny zapis wygląda tak:

Przykład 4.5. Pętla FOR

<?php

for( inicjalizacja zmiennych ; sprawdzenie warunku ; modyfikacja zmiennych) {

   blok wyrażeń 

}

?>

Jak widać, w tej pętli podaje się 3 wyrażenia jako parametry: inicjalizację zmiennych, czyli ustawienie początkowych wartości dla zmiennych kontrolujących pętlę, sprawdzenie warunku, czyli wyrażenie logiczne kontrolujące pętlę – pętla będzie wykonywana dopóki ten warunek jest prawdziwy, oraz modyfikację zmiennych kontrolujących pętlę – bez tego pętla będzie wykonywała się w nieskończoność (oczywiście wartość tych zmiennych można modyfikować wewnątrz pętli, ale jest to niezalecane). Przykład najprostszej pętli, która wypisze cyfry od 1 do 10:

Przykład 4.6. Przykład użycia pętli for

<?php

for( $x = 1; $x <= 10; $x++ )
   echo $x."<br>";

?>

Pętla while

Innym rodzajem pętli jest pętla WHILE. Jest ona wykorzystywana w sytuacjach, kiedy niezbędne jest wykonywanie jakiejś operacji dopóki nie zostanie spełniony warunek.

Przykład 4.7. Pętla while

<?php

while( warunek ){
   ...
   instrukcje
   ...
}

?>

Można na przykład za pomocą tej pętli zapisać odpowiednik pętli FOR z poprzedniego przykładu.

Przykład 4.8. Przykład użycia pętli while

<?php

$x=1;
while($x <= 10){
   echo $x."<BR>";
   $x++;
}

?>

Pętla do…while

Odmianą pętli while jest pętla do…while. Od zwykłej pętli while różni się ona tym, że polecenia zawarte w pętli będą przynajmniej raz wykonane – w przypadku pętli while tak być nie musi, to znaczy jeśli za pierwszym razem warunek nie zostanie spełniony to polecenia z pętli nigdy nie zostaną wykonane. W przypadku tej pętli zostano one wykonane przynajmniej ten pierwszy raz.

Przykład 4.9. Pętla do … while

<?php

do {
   ...
   instrukcje
   ...
} while( warunek );

?>

Przerywanie wykonań pętli

Czasem zachodzi potrzeba przerwania danej iteracji (powtórzenia) pętli i przejścia do następnej iteracji. Z pomocą wtedy przychodzi instrukcja continue. Wystarczy wstawić ją w odpowiednie miejsce wewnątrz pętli. Przykład (niezbyt wyszukany):

Przykład 4.10. Instrukcja continue

<?php

for($x = 1; $x<=100; $x++) {

   if($x % 2 != 0)
      continue;

   echo $x." ";
}

?>

Po uruchomieniu powyższego przykładu powinniśmy zobaczyć liczby parzyste od 1 do 100. Oczywiścje można to zapisać łatwiej.

Przykład 4.11. Wyświetlanie liczb parzystych

<?php

for($x = 2; $x <= 100; $x+=2) {
      echo $x." ";
}

?>

Istenie też polecenie, które powoduje całkowite wyjście z pętli – nie tylko z bieżącej iteracji. To polecenie to "literal">brake. Załóżmy, że zmienna $nazwa to zmienna podana z formularza:

Przykład 4.12. Instrukcja brake

<?php

for($x = 0; $x<10; $x++) {
   if($x%2==0)
      echo $x." ";
   if($nazwa == "Test1")
      break;
}

?>

Składnia switch

Składnia switch jest instrukcją warunkową, ale jedną zmienną można porównać nie z jedną wartością, ale z kilkoma. Niestety nie można konstruować złożonych warunków – możliwe jest tylko proste porównywanie (równoważne instrukcji:if($zmienna=="wartość") instrukcja).

Przykład 4.13. Składnia switch

<?php

switch($zmienna){
   case 'wartość1':
      ...
   instrukcje
   ...
   break;
   case 'wartość2':
      ...
   instrukcje
   ...
   break;
   default:
      ...
   instrukcje
   ...
}

?>

Instrukcje zawarte po identyfikatorze „default” wykonywane są jeśli zmienna $zmienna nie przyjęła wartości „wartość1” i „wartość2” (dla tego przykładu). Aby móc dobrze wykorzystać tą składnię warto jest dokładnie wiedzieć jak ona działa. Instrukcje są przetwarzane linia po linii. Parser przechodzi do pierwszej linii „case” pasującej do zmiennej. Następnie przetwarzane są wszystkie linie wewnątrz nawiasów klamrowych aż do napotkania instrukcji break – nawet jeśli po drodze znajdują się instrukcje „case”.

Przykład 4.14. Przykład użycia składni switch

<?php

$i = 3;

switch($i){
   case 0:
   case 1:
   case 2:
   case 3:
      echo "Zmienna $i jest mniejsza bądź równa od trzech\n";
   break;
   case 4:
      echo "Zmienna $i jest równa cztery\n";
   break;
   default:
      echo "Zmienna $i jest większa od czterech\n";
}

?>

2016-01-20 zadanie domowe

0. Upewnij się, że w aktualnej wersji strony wyświetlamy stronę główną przy braku parametru p w REQUEŚCIE (GET), stronę określoną przez parametr p, gdy jest on podany (http://theatre.localhost?p=nazwa_strony) i strona istnieje oraz 404.php w przeciwnym wypadku.
Aktualnie kod jest OK, tylko niestety jak wpisze się np http://theare.localhots/blabla to pokazuje błąd serwera 404 i stronę serwerową 404. nie wiem jak zrobić, żeby pokazał naszą 404, bo nie wiem jak zrobić, żeby wyświetlił cokolwiek kiedy nie ma p….
1. Na serwerze mogą znaleźć się dodatkowe pliki, na których dołączenie nie chcemy pozwolić. Aktualna architektura jednak pozwala użytkownikowi podać np. http://theatre.localhost?p=ścieżka_do_niedozwolonego_pliku i zainclude’uje ten plik, gdy tylko ścieżka będzie poprawna. Aby na to nie pozwolić, musimy zdefiniować, jakie nazwy stron są dozwolone. Rozwiń nasz kod o takie sprawdzenie. Niech lista dozwolonych nazw stron będzie prostą tablicą umieszczoną na początku kodu php w pliku index.php. Przetestuj poprawność rozwiązania tworząc dodatkowe pliki php w odpowiednim miejscu. Np. jeśli odpowiednio stworzysz plik dont-touch.php, w tej chwili będzie można go uruchomić poprzez http://theatre.localhost?p=dont-touch, a po wprowadzeniu zmiany ma nie być można, zamiast niego wyświetlić ma się 404.php. Uwaga: 404 jako nazwa strony nie ma znajdować się w omawianej tablicy.
2a. Zamień tablicę, którą utworzysz w zadaniu nr 1 na tablicę asocjacyjną złożoną z par: nazwa_strony_jako_parametr_p => nazwa_strony_do_wyświetlenia_w_menu. Odpowiednio przekształć pozostały kod z zadania nr 1, sprawdź, czy wszystko działa poprawnie. Przyda się funkcja: http://php.net/manual/en/function.array-key-exists.php
2b. Przebuduj menu tak, by korzystało z owej tablicy asocjacyjnej, linki w menu mają wskazywać na URLe korzystające z parametru p będącego kluczem w tablicy, a wyświeltać dla danego URLa ma się wartość dla owego klucza (zdefiniowana nazwa strony do wyświetlenia w menu)
3. Stwórz klasę CSS, która wyróżni w dowolny, wybrany przez Ciebie sposób, aktualnie aktywny link w menu, odpowiadający stronie, na której jesteśmy (dla 404 żaden), czyli po kliknięciu na link w menu przenosimy się na odpowiednią stronę, i link, który kliknęliśmy jest wyróżniony, a pozostałe nie są.

Wyrażenia regularne

/[0-9]{3}/ – 3 cyfry
/[0-9]*/ 0 lub więcej wystąpień
/[0-9]+/ 1 lub więcej wystąpień
/[0-9]?/ 0 lub 1 wystąpienie
/[0-9]{5-10}/ – 5 do 10 cyfr

^ – POCZĄTEK WYRAŻENIA
$ – KONIEC WYRAŻENIA
\ – PRZED ZNAKIEM, KTÓRY COŚ ZNACZY
s* – znaki białe

pozwala na numer 9-cyfrowy
/^[0-9]{9}$/

pozwala na numer 9-cyfrowy poprzedzony i/lub zakończony białymi znakami
/^\s*[0-9]{9}\s*$/

pozwala na numer 9-cyfrowy zaczynający się od 0048 a następnie poprzedzony i/lub zakończony białymi znakami
/^(0048)?\s*[0-9]{9}\s*$/

jw z możliwymi białymi znakami na początku
/^\s*(0048)?\s*[0-9]{9}\s*$/

jw z możliwym +48 na początku lub 0048
/^\s*(0048|\+48)?\s*[0-9]{9}\s*$/
/^\s*((00|\+)48)?\s*[0-9]{9}\s*$/

jw z możliwym +48 na początku lub 0048 lub 48
/^\s*((00|\+)?48)?\s*[0-9]{9}\s*$/

j.w. z możliwymi myślnikami w dowolnym miejscu numeru
/^\s*((00|\+)?48)?\s*(\-?[0-9]){9}\s*$/

j.w. z możliwymi myślnikami lub spacjami w dowolnym miejscu numeru
/^\s*((00|\+)?48)?(\s*\-?\s*[0-9]){9}\s*$/

jw z możliwością spacji przez 48
/^\s*((00|\+)?\s*48)?(\s*\-?\s*[0-9]){9}\s*$/

((\-[0-9]{3})){2}
6cm
9e-30
0x673256
0xaa8fca

3

commit i push przez wiersz poleceń, błąd

POLECENIA DOS

CD\ – idź do katalogu źródłowego

CD.. – idź do katalogu wyżej

CD \WINDOWS\SYSTEM – idź do ścieżki windows/system

Próbowałam zrobić commit

nazwać chciałam to „second version”
 
poprzez komendę:

C:\xampp\htdocs\theatre>git commit -m „Second version of index.php”

a potem chciałam zrobić
C:\xampp\htdocs\theatre>git push
ale pokazuje mi błąd:
On branch master
Your branch is up-to-date with ‚origin/master’.
Changes not staged for commit:
        modified: index.php
Untracked files:
        .gitignore
        nbprojects/
No changes added to commit
po wykonaniu tego:
C:\xampp\htdocs\theatre>git commit -m „Second version of index.php”
co robię źle?
Podpowiem z fragmentu błędu: „No changes ADDed to commit”
no tak
najpierw git add
potem git commit
potem git push
rozwiązanie: http://gitready.com/beginner/2009/01/18/the-staging-area.html

baza danych teatr (zapytanie SQL)

CREATE TABLE IF NOT EXISTS `actors` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `first_name` varchar(255) NOT NULL,
 `last_name` varchar(255) NOT NULL,
 `gender` varchar(1) NOT NULL,
 `birth_date` date NOT NULL,
 `description` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ;

INSERT INTO `actors` (`id`, `first_name`, `last_name`, `gender`, `birth_date`, `description`) VALUES
(1, 'Antonina', 'Choroszy', 'K', '1970-03-05', 'Od 3 lat działa w teatrze'),
(2, 'Stefan', 'Wleklak', 'M', '1984-04-05', 'Dostał Oskara za rolę myszki'),
(3, 'Andrzej', 'Krajna', 'M', '1985-02-05', 'Szczególnie angażowany w role książąt'),
(5, 'Stefan', 'Wleklak', 'M', '1984-04-05', 'Dostał Oskara za rolę myszki'),
(6, 'Wojciech', 'Łuczak', 'M', '1980-02-05', 'Dostał złotą malinę oraz oskara za króla denarów');

CREATE TABLE IF NOT EXISTS `performances` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `title` varchar(255) NOT NULL,
 `description` text DEFAULT NULL,
 PRIMARY KEY (`id`)
);

INSERT INTO `performances` (`title`) VALUES
('Gra o tron'),
('Dexter'),
('Wikingowie'),
('Macbeth'),
('Hamlet'),
('Otello');


CREATE TABLE IF NOT EXISTS `performances_performed` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `performance_id` int(10) NOT NULL,
 `date` date NOT NULL,
 PRIMARY KEY (`id`)
);

INSERT INTO performances_performed (`id`, `performance_id`, `date`) VALUES
(1,'1', '2014-05-06-19-00-00'),
(2,'2', '2015-01-06-19-00-00'),
(3,'3', '2012-03-07-19-00-00');


CREATE TABLE IF NOT EXISTS `roles` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL,
 `actor_id` int(10) NOT NULL,
 `performance_id` int(10) NOT NULL,
 PRIMARY KEY (`id`)
);


CREATE TABLE IF NOT EXISTS `authors` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `first_name` varchar(255) NOT NULL,
 `last_name` varchar(255) NOT NULL,
 `nick` varchar(255) DEFAULT NULL,
 `description` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
);


INSERT INTO `authors` (`id`, `first_name`, `last_name`, `nick`, `description`) VALUES
(1, 'William', 'Shakespeare', NULL , 'dżentelmen z Londynu'),
(2, 'Dorota', 'Masłowska', 'Masłoska', 'Rocznik 1984'),
(3, 'T.S.', 'Eliot', NULL , 'Egzystencjalista trendsetter'),
(4, 'Samuel', 'Beckett', 'Sam', 'Geniusz');


CREATE TABLE IF NOT EXISTS `directors` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `first_name` varchar(255) NOT NULL,
 `last_name` varchar(255) NOT NULL,
 `nick` varchar(255) DEFAULT NULL,
 `description` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ;

INSERT INTO `directors` (`id`, `first_name`, `last_name`, `nick`, `description`) VALUES
(1, 'Anna', 'Kozłowska', NULL , 'Gwiazda'),
(2, 'Krzysztof', 'Warlikowski', NULL, 'Okrzyknięty najlepszym polskim reżyserem');

CREATE TABLE IF NOT EXISTS `reviewers` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL,
 `last_name` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
);

INSERT INTO `reviewers` (`id`, `name`, `last_name`) VALUES
(1, 'Łukasz', 'Drewniak'),
(2, 'Anna', 'Koza');

CREATE TABLE IF NOT EXISTS `reviews` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `title` varchar(255) DEFAULT NULL,
 `content` varchar(255) NOT NULL,
 `newspaper_title` varchar(255) DEFAULT NULL,
 `reviewer_id` int(10) DEFAULT NULL,
 PRIMARY KEY (`id`)
);

INSERT INTO `reviews` (`id`, `title`, `content`, `newspaper_title`) VALUES
(1, 'Skandal w teatrze', 'Aktorka zdjęła bluzkę', 'Fakt'),
(2, 'Anioł to reżyserował', 'Tylko tyle', 'Super Express');




CREATE TABLE IF NOT EXISTS `photos` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `picture_path` varchar(255) NOT NULL,
 `photographer` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ;

CREATE TABLE IF NOT EXISTS `stages` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
);

INSERT INTO `stages` (`id`, `name`) VALUES
(1, 'Malarnia'),
(2, 'Scena Wielka');


CREATE TABLE IF NOT EXISTS `zones` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL,
 `stage_id` varchar(8) NOT NULL,
 PRIMARY KEY (`id`)
);
INSERT INTO `zones` (`id`, `name`, `stage_id`) VALUES
(1, 'Strefa VIP', 1),
(2, 'Balkon 1', 2),
(3, 'Strefa normal', 1),
(4, 'Parter', 2),
(5, 'Balkon 2', 2);

CREATE TABLE IF NOT EXISTS `seats` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `number` varchar(8) NOT NULL,
 PRIMARY KEY (`id`)
);
INSERT INTO `seats` (`id`, `number`) VALUES
(1, '1'),
(2, '2'),
(3, '3'),
(4, '4'),
(5, '5');

CREATE TABLE IF NOT EXISTS `tickets` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `price` varchar(8) NOT NULL,
 PRIMARY KEY (`id`)
);
INSERT INTO `tickets` (`id`, `price`) VALUES
(1, '100'),
(2, '200'),
(3, '35'),
(4, '40'),
(5, '50');


CREATE TABLE IF NOT EXISTS `tickets_printed` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `ticket_id` int(10) NOT NULL,
 `seat_id` int(10) NOT NULL,
 PRIMARY KEY (`id`)
);
INSERT INTO `tickets_printed` (`id`, `ticket_id`, `seat_id`) VALUES
(1, '1', '1');

CREATE TABLE IF NOT EXISTS `ticket_pricegroups` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
);
INSERT INTO `ticket_pricegroups` (`id`, `name`) VALUES
(1, 'Emeryci'),
(2, 'Studenci'),
(3, 'Normalne'),
(4, 'Wejściówki');

RELACJE:

performances_performed_stages
#id
id_performance_performed
id_stage
-----------------------------
CREATE TABLE IF NOT EXISTS `performances_performed_stages` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `id_performance_performed` int(10) NOT NULL,
  `id_stage` varchar(255) NOT NULL,
  );
--------------------------------------------------------------------
--------------------------------------------------------------------
zones_stages
#id
id_zone
id_stage
-------------------------------
CREATE TABLE IF NOT EXISTS `zones_stages` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `id_zone` int(10) NOT NULL,
  `id_stage` varchar(255) NOT NULL,
  );
--------------------------------------------------------------------
--------------------------------------------------------------------
seats_zones
#id
id_seat
id_zone
-------------------------------
CREATE TABLE IF NOT EXISTS `seats_zones` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `id_seat` int(10) NOT NULL,
  `id_zone` varchar(255) NOT NULL,
  );
--------------------------------------------------------------------
-------------------------------------------------------------------- 
roles_actor_replacements
#id
id_role
id_actor
start_date
finish_date
-------------------------------
CREATE TABLE IF NOT EXISTS `roles_actor_replacements` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `id_role` int(10) NOT NULL,
  `id_actor` varchar(255) NOT NULL,
  `start_date` date NOT NULL,
  `finish_date` date,
  );
--------------------------------------------------------------------
-------------------------------------------------------------------- 
tickets_performances_performed
#id
id_performance performed
id_ticket
-------------------------------
CREATE TABLE IF NOT EXISTS `tickets_performances_performed` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `id_performance performed` int(10) NOT NULL,
  `id_ticket` int(10) NOT NULL,
  );
--------------------------------------------------------------------
--------------------------------------------------------------------  
tickets_printed_tickets_price_groups
#id
id_ticket_printed
id_ticket_price_group
-------------------------------
CREATE TABLE IF NOT EXISTS `tickets_printed_tickets_price_groups` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `id_ticket_printed` int(10) NOT NULL,
  `id_ticket_price_group` int(10) NOT NULL,
  );

Moja baza – zadanie domowe



-- --------------------------------------------------------
-- Struktura tabeli dla tabeli `actors`

CREATE TABLE IF NOT EXISTS `actors` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `gender` varchar(1) NOT NULL,
  `picture_path` varchar(255) DEFAULT NULL,
  `birth_date` date NOT NULL,
  `description` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `actors`
--

INSERT INTO `actors` (`id`, `first_name`, `last_name`, `gender`, `picture_path`, `birth_date`, `description`) VALUES
(1, 'Antonina', 'Choroszy', 'K', NULL, '1970-03-05', 'Od 3 lat działa w teatrze'),
(2, 'Stefan', 'Wleklak', 'M', NULL, '1984-04-05', 'Dostał Oskara za rolę myszki');

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `performances`
--

CREATE TABLE IF NOT EXISTS `performances` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Zrzut danych tabeli `performances`
--

INSERT INTO `performances` (`id`, `title`) VALUES
(1, 'Gra o tron'),
(2, 'Dexter'),
(3, 'Wikingowie');

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `roles`
--

CREATE TABLE IF NOT EXISTS `roles` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `actor_id` int(10) NOT NULL,
  `performance_id` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


----------------------------------------BASIA DOPISANE LINIJKI----------------------------------

CREATE TABLE IF NOT EXISTS `authors` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `nick` varchar(255) DEFAULT NULL,
  `picture_path` varchar(255) DEFAULT NULL,
  `description` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `authors`
--

INSERT INTO `authors` (`id`, `first_name`, `last_name`, `nick`, `picture_path`, `description`) VALUES
(1, 'William', 'Shakespeare',  NULL , NULL, 'dżentelmen z Londynu'),
(2, 'Dorota', 'Masłowska', 'Masłoska', NULL, 'Rocznik 1984');







CREATE TABLE IF NOT EXISTS `directors` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `nick` varchar(255) DEFAULT NULL,
  `picture_path` varchar(255) DEFAULT NULL,
  `description` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `directors`
--

INSERT INTO `directors` (`id`, `first_name`, `last_name`, `nick`, `picture_path`, `description`) VALUES
(1, 'Anna', 'Kozłowska',  NULL , NULL, 'Gwiazda'),
(2, 'Krzysztof', 'Warlikowski', NULL, NULL, 'Okrzyknięty najlepszym polskim reżyserem');





CREATE TABLE IF NOT EXISTS `reviews` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `content` varchar(255) NOT NULL,
  `newspaper_title` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `reviews`
--

INSERT INTO `reviews` (`id`, `title`, `content`, `newspaper_title`) VALUES
(1, 'Skandal w teatrze', 'Aktorka zdjęła bluzkę', 'Fakt'),
(2, 'Anioł to reżyserował', 'Tylko tyle', 'Super Express');








CREATE TABLE IF NOT EXISTS `reviewers` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `picture_path` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `reviewers`
--

INSERT INTO `reviewers` (`id`, `name`, `last_name`, `picture_path`) VALUES
(1, 'Łukasz', 'Drewniak', NULL),
(2, 'Anna', 'Koza', NULL);








CREATE TABLE IF NOT EXISTS `galleries` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `galleries`
--

INSERT INTO `galleries` (`id`, `name`) VALUES
(1, 'Premiera przedstawienia'),
(2, 'Zdjęcia z próby generalnej');



CREATE TABLE IF NOT EXISTS `photos` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `picture_path` varchar(255) NOT NULL,
  `photographer` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;



CREATE TABLE IF NOT EXISTS `stages` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `stages`
--

INSERT INTO `stages` (`id`, `name`) VALUES
(1, 'Malarnia'),
(2, 'Scena Wielka');




CREATE TABLE IF NOT EXISTS `zones` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `zones`
--

INSERT INTO `zones` (`id`, `name`) VALUES
(1, 'A'),
(2, 'B');



CREATE TABLE IF NOT EXISTS `sponsors` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `sponsors`
--

INSERT INTO `sponsors` (`id`, `name`) VALUES
(1, 'Enea'),
(2, 'Pepsi');


CREATE TABLE IF NOT EXISTS `seats` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `seat_number` varchar(8) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `seats`
--

INSERT INTO `seats` (`id`, `seat_number`) VALUES
(1, '1'),
(2, '2');