Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Podobne dokumenty
Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

MVC w praktyce tworzymy system artykułów. cz. 2

Bazy Danych i Usługi Sieciowe

Bazy danych i usługi sieciowe

Internetowe bazy danych

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Podstawowe wykorzystanie Hibernate

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

Bazy danych. dr Radosław Matusik. radmat

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Wykład 05 Bazy danych

Język SQL, zajęcia nr 1

Wdrożenie modułu płatności eservice. dla systemu Magento

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy danych. Polecenia SQL

Wykład 2. SQL 1 Structured Query Lenguage

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Dokumentacja SQL API 1

Obraz 1. Fragment bazy Salon

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

Wprowadzenie do JDBC z wykorzystaniem bazy H2

MVC w praktyce tworzymy system artykułów. cz. 1

Projektowanie systemów baz danych

Autor: Joanna Karwowska

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

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

Instalacja MySQL.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

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

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Laboratorium 6 Tworzenie bloga w Zend Framework

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Aplikacje WWW - laboratorium

Politechnika Częstochowska. Projektowanie systemów użytkowych II

Wykład 5. SQL praca z tabelami 2

Kurs. Podstawy MySQL

Baza danych do przechowywania użytkowników

Wprowadzenie do framework a Symfony

Programowanie w Ruby

Hurtownia Świętego Mikołaja projekt bazy danych

Podstawy programowania (PHP/Java)

Paweł Cieśla. Dokumentacja projektu

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Bazy danych 7. SQL podstawy

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Zaawansowany kurs języka Python

Bazy danych 10. SQL Widoki

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Programowanie w Ruby

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

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Aplikacje WWW - laboratorium

Bartosz Jachnik - Kino

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

prepared by: Programowanie WWW Model-View-Controller

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Programowanie w języku Java. Bazy danych SQLite w Javie

SQL 4 Structured Query Lenguage

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Systemowe aspekty baz

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

BAZA DANYCH SIECI HOTELI

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

Aplikacje WWW - laboratorium

PHP: bazy danych, SQL, AJAX i JSON

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr Prosta obsługa Bazy w PHP

akademia androida Składowanie danych część VI

Bazy danych w PHP dla początkujących

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Bazy danych. dr inż. Arkadiusz Mirakowski

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Aplikacje internetowe

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Ćwiczenie dotyczące platformy Java EE zostało przygotowane z myślą o środowisku NetBeans w wersji 7.3 (do pobrania z

Programowanie w Ruby

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar.

CREATE USER

WTYCZKA FARA-TCM Dane techniczne dla twórców zewnętrznych aplikacji do obsługi map cmentarza

Internetowe bazy danych

Relacyjne bazy danych. Podstawy SQL

Database Connectivity

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Struktura drzewa w MySQL. Michał Tyszczenko

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Aplikacje WWW - laboratorium

Podyplomowe Studium Programowania i Baz Danych

Laboratorium 7 Blog: dodawanie i edycja wpisów

Transkrypt:

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter Konfiguracja i przygotowanie przykładowej aplikacji opartej o model Model-View- Controller Konfiguracja frameworka Zainstaluj na serwerze framework CI w domyślnej konfiguracji, Dokonaj modyfikacji pliku w lokalizacji application/config/autoload.php zmień pozycję: $autoload['libraries'] = array(''); na: $autoload['libraries'] = array('database'); Dokonaj modyfikacji pliku w lokalizacji application/config/routes.php zmień pozycję: $route['default_controller'] = welcome; na: $route['default_controller'] = 'start'; Dokonaj modyfikacji pliki w lokalizacji application/config/database.php Zmieo pozycje w pliku na następujące: 'username' => 'root', 'password' => '', 'database' => 'test', 'dbdriver' => 'mysqli', Przygotowanie bazy danych do pracy z aplikacją Utwórz bazę danych o nazwie test. Utwórz w powyższej bazie tabelę plik o następującej strukturze i przykładowych danych: MySQL Administrator dump 1.4

Server version 5.5.5-10.1.19-MariaDB /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; Create schema test CREATE DATABASE IF NOT EXISTS test; USE test; Definition of table `plik` DROP TABLE IF EXISTS `plik`; CREATE TABLE `plik` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nazwa_pliku` text NOT NULL, `sciezka` text NOT NULL, `rozmiar` int(10) unsigned NOT NULL, `typ` varchar(45) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci; Dumping data for table `plik` /*!40000 ALTER TABLE `plik` DISABLE KEYS */; INSERT INTO `plik` (`id`,`nazwa_pliku`,`sciezka`,`rozmiar`,`typ`) VALUES (1,'01.txt','./',1214,'txt'), (2,'test.mp3','/home/dane',34434342,'mp3'), (3,'video_course','c:\\dane_archiwalne',4294967295,'avi'), /*!40000 ALTER TABLE `plik` ENABLE KEYS */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!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 */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; Projektowanie kontrolera Utwórz plik Start.php w lokalizacji application/controllers/ o następującej treści: defined('basepath') OR exit('no direct script access allowed'); class Start extends CI_Controller public function index() echo "Witaj w kontrolerze<br>"; Sprawdź działanie kontrolera, wpisując adres w oknie przeglądarki (zakładamy, że framework CI został zainstalowany w głównym katalogu serwera w podkatalogu ci): http://127.0.0.1/ci Dodaj do kontrolera następujące metody: public function pobierz_dane() // zaladuj model tabeli plik $this->load->model('plik'); // wykonaj funkcje z klasy modelu $result = $this->plik->pobierz_wszystkie_rekordy(); // wypisz wyniki echo "Pobranie wszystkich danych z tabeli pliki <br><br>"; echo "Struktura wyniku: <br>"; print_r($result); echo "<br><br>"; echo "Dane w postaci tablicy: <br>"; $dane = $result->result(); print_r($dane); echo "<br><br>"; // zapamiętanie ID pierwszego rekordu do zastosowania

// w kolejnej funkcji $id = -1; if (count($dane)>0) $id = $dane[0]->id; // wskazanie pola tabeli // Pobranie rekordów ograniczonych kryteriami (wybór rekordu na podstawie id) $result2 = $this->plik->pobierz_dla_id($id); $dane2 = $result2->result(); echo "Wynik dzialania drugiej funkcji <br><br>"; print_r($dane2); $this->plik->dodaj_rekord('brak_pliku','/home','434343433','txt'); public function pokaz_tabele() $header = array('liczba1','liczba2','iloczyn'); $dane[] = array(2,3); $dane[] = array(5,7); $dane[] = array(6,9); $dane[] = array(3,7); $this->load->view('tabela_widok',array('header'=>$header,'dane'=>$dane)); Projektowanie modelu Utwórz w katalogu application/models plik o nazwie "plik.php" o następującej treści: class Plik extends CI_Model public function construct() parent:: construct(); public function pobierz_wszystkie_rekordy() return $this->db->get("plik");

public function pobierz_dla_id($id) $data = array( 'id' => $id ); $query = $this->db->get_where('plik',$data); return $query; public function dodaj_rekord($nazwa_pliku,$sciezka,$rozmiar,$typ) $data = array( 'nazwa_pliku'=>$nazwa_pliku, 'sciezka'=>$sciezka, 'rozmiar' => $rozmiar, 'typ'=>$typ ); $this->db->insert('plik', $data); /* Dodaj implementacje funkcji aktualizuj, podpowiedź: skorzystaj z funkcji: $this->db->where( ); $this->db->update( ); */ Projektowanie widoku Utwórz w katalogu application/views plik tabela_widok.php o następującej treści: <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <h2>przykładowa tabela z danymi przekazana z kontrolera</h2> <table style="width: 50%"> <thead> echo "<tr style='background: lightgray;'>"; for ($a=0;$a<count($header);$a++)

echo "<th>"; echo $header[$a]; echo "</th>"; echo '</tr>'; </thead> <tbody> $ilosc = count($dane); for ($b=0;$b<$ilosc;$b++): <tr style="background: lightblue; text-align: center;"> $ilosc2 = count($dane[$b]); $iloczyn = 1; for ($c=0;$c<$ilosc2;$c++): <td> echo $dane[$b][$c]; $iloczyn*=$dane[$b][$c]; </td> endfor; <td> echo $iloczyn; </td> </tr> endfor; </tbody> </table> </body> </html> Zapoznaj się logiką funkcjonowania przedstawionej aplikacji wywołując następujące adresy w przeglądarce (zakładamy instalację frameworka w katalogu ci serwera): http://127.0.0.1/ci/index.php/start/pobierz_dane http://127.0.0.1/ci/index.php/start/ pokaz_tabele Zadania: 1. Utwórz nowy kontroler i widok, który pobiera wszystkie dane z tabeli plik i wyświetla odczytane informacje w postaci tabeli, 2. Dodaj funkcjonalnośd do powyższego kontrolera, która pozwala na przeprowadzenie operacji CRUD na wskazanej tabeli, 3. Zmodyfikuj interfejs użytkownika przez zastosowanie komponentów biblioteki Bootstrap