Προγραμματισμός Παγκόσμιου Ιστού

Σχετικά έγγραφα
ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Τμήμα Διοίκησης Επιχειρήσεων

Εργαστήριο Βάσεων Δεδομένων

Τμήμα Πληροφορικής ΑΠΘ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Σχεδιασμός Βάσεων Δεδομένων

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

10 η Διάλεξη Python Βάσεις δεδομένων στη python

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

databases linux - terminal (linux / windows terminal)

1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

Εργαστήριο Βάσεων Δεδομένων. Triggers

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Διαχείριση Πολιτισμικών Δεδομένων

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

Η HTML χρησιμοποιεί εντολές που ονομάζονται HTML tags δίνοντας εντολές στους Web browsers για το πώς να εμφανίζουν την κάθε ιστοσελίδα.

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

ΔΟΜΕΣ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΚΕΦΑΛΑΙΟ ΤΡΙΤΟ ΕΝΤΟΛΕΣ SQL

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3

Ανοικτά Ακαδημαϊκά Μαθήματα

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Εργαστήριο #10 (Ε10) 1

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

Τεχνολογία Πολιτισμικού Λογισμικού

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Ηλεκτρονικοί Υπολογιστές II

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

. Εργαστήριο Βάσεων Δεδομένων. Triggers

PL/SQL. Κώστας Στεφανίδης

Προγραμματισμός Διαδικτύου

Αντικειµενοστρεφής Προγραµµατισµός

Σχεδίαση Βάσεων Δεδομένων

Δομημένος Προγραμματισμός (ΤΛ1006)

Τμήμα Πληροφορικής ΑΠΘ

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Ανάπτυξη και Σχεδίαση Λογισμικού

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών


Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση της MySQL. Γιώργος Πυρουνάκης -

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Συστήματα Διαχείρισης Βάσεων Δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - SQL

Προγραμματισμός Η/Υ (ΤΛ2007 )

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Στοιχειώδης προγραμματισμός σε C++

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων Ι SQL Μέρος 1 ο. Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΕΝΑΥΣΜΑΤΑ ΣΤΗΝ POSTGRES

PHP/MySQL και Project

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

Transcript:

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Προγραμματισμός Παγκόσμιου Ιστού 10 η Διάλεξη Δημοσθένης Κυριαζής Δευτέρα 22 Μαΐου 2017

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 2

Client-Server & PHP Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 3

Βασική σύνταξη ΡΗΡ Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 4

Μεταβλητές (2/5) <?php?> $txt="hello World!"; $x=5; $y=10.5; Υποστηρίζονται οι τύποι δεδομένων int: 5, 7 15 float, double, real: 0.56, 3.14 string: "Hello", "Red 15" bool, boolean: true/false array: ["Fiat", "Mercedes", "Nissan"] οbject: τύπος αντικειμένου για σύνθετα αντικείμενα NULL: «όχι τιμή» Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 5

Πίνακες Ένα array αποθηκεύει πολλαπλές τιμές σε μία μοναδική μεταβλητή Τρεις τύποι πινάκων Array με δείκτες - Πίνακες με αριθμητικό δείκτη Associative array - Πίνακες με κλειδιά ονομάτων Πολυδιάστατα arrays - Πίνακες που περιέχουν μία ή περισσότερες συστοιχίες Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 6

Associative arrays Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 7

Συμβολοσειρές Διπλά εισαγωγικά > αντικατάσταση Μονά εισαγωγικά > μη-αντικατάταση Συνένωση με τον τελεστή τελεία Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 8

Βρόχος foreach Διευκολύνει την πρόσβαση στις τιμές ενός array Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 9

Superglobals (2/2) Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 10

Προκαθορισμένες τιμές ορισμάτων Μπορούμε να θέσουμε μια προκαθορισμένη τιμή σε ένα ή περισσότερα ορίσματα, ώστε αν δεν αποστείλουμε τιμή να λαμβάνει αυτή Ορισμός με προκαθορισμένα ορίσματα Παράδειγμα Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 11

Επιστροφή τιμής Η συνάρτηση μπορεί επίσης να μας επιστρέφει κάποια τιμή. Αυτό γίνεται με την εντολή return Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 12

Αντικείμενα Δήλωση κλάσεων με τη λέξη-κλειδί class Προσοχή: τα ονόματα των κλάσεων είναι case-sensitive Ενσωματωμένη συνάρτηση print_r: εκτυπώνει πληροφορίες για το αντικείμενο σε αναγνώσιμη μορφή 13

Δημιουργία αντικειμένων Με τη λέξη-κλειδί new $object = new User; $object = new User('John Doe', 'j0hnd03'); Μια κλάση μπορεί να απαιτεί ή να απαγορεύει τα ορίσματα στην αρχικοποίηση Μπορεί επίσης να τα επιτρέπει, αλλά να μην τα απαιτεί Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 14

Πρόσβαση σε αντικείμενα (1/2) Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 15

Πρόσβαση σε αντικείμενα (2/2) Πρόσβαση στην (public) ιδιότητα property αντικειμένου $object με: $object->property και όχι με $object-> $property Με παρόμοιο τρόπο καλούμε μεθόδους: $object->save_user(); Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 16

Κλωνοποίηση αντικειμένων Έξοδος Έξοδος 17

Χειρισμός φορμών Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 18

Χρήση της Superglobal μεταβλητής $_REQUEST Χρησιμοποιείται για την πρόσβαση δεδομένων φόρμας που έχουν αποσταλεί είτε με μέθοδο GET είτε με μέθοδο POST Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 19

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 20

Δημιουργία και επιλογή βάσης δεδομένων Δημιουργία με την εντολή CREATE MariaDB [(none)]> CREATE DATABASE mydb; Επιλογή ΒΔ προς χρήση με την εντολή USE MariaDB [(none)]> USE mydb; MariaDB [mydb]> Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 21

Δημιουργία πίνακα Mε την εντολή CREATE CREATE TABLE classics (author VARCHAR(128), title VARCHAR(128), type VARCHAR(16), year CHAR(4)); Δημιουργεί τον πίνακα με όνομα «classics» και πεδία author, title, type, year Κάθε πεδίο ακολουθείται από τον τύπο του Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 22

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 23

Τύποι δεδομένων VARCHAR(n): συμβολοσειρά μεταβλητού μήκους n<=65535 CHAR (n): συμβολοσειρά μήκους n<=255 BINARY (n): ακολουθία από n<=255 bytes που δεν αντιστοιχούν σε χαρακτήρες VARBINARY (n): ακολουθία από n<=65535 bytes που δεν αντιστοιχούν σε χαρακτήρες Π.χ. για την αποθήκευση ενός μικρού αρχείου εικόνας GIF Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 24

Αριθμητικοί τύποι δεδομένων Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 25

Ημερομηνίες Ο τύπος TIMESTAMP δε διαφέρει στη μορφή από τον τύπο DATETIME Μόνη διαφορά είναι ότι αν δεν εισαχθεί για κάποια εγγραφή, εισάγεται αυτόματα από το σύστημα ο τρέχων χρόνος Στον DATETIME αντίθετα, η τιμή γίνεται NULL Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 26

Τύπος AUTOINCREMENT Χρήσιμος για εξασφάλιση μοναδικότητας κάθε εγγραφής του πίνακα Μπορούμε να προσθέσουμε στήλη με όνομα id που είναι τέτοιου τύπου ALTER TABLE classics ADD id INT UNSIGNED NOT NULL AUTOJNCREMENT INT UNSIGNED: μη αρνητικός ακέραιος NOT NULL: εξασφαλίζεται ότι το πεδίο θα έχει πάντα τιμή AUTOINCREMENT: αυξάνει κατά 1 αυτόματα για κάθε νέα εγγραφή Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 27

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 28

Πράξεις σε πίνακες (1/3) Προβολή περιγραφής MariaDB [mydb]> DESCRIBE classics; Διαγραφή στήλης (πεδίου) MariaDB [mydb]> ALTER TABLE classics DROP id; Εισαγωγή δεδομένων στον πίνακα INSERT INTO classics(author, title, type, year) VALUES('Mark Twain','The Adventures of Tom Sawyer', 'Fiction','1876'); INSERT INTO classics(author, title, type, year) VALUES('Charles Darwin','The Origin of Species', 'Non-Fiction','1856'); Αν δώσουμε τιμές όλα τα πεδία, δε χρειάζεται να δώσουμε τα ονόματά τους εντός παρενθέσεως δίπλα από τον πίνακα

Πράξεις σε πίνακες (2/3) Προβολή όλων των περιεχομένων SELECT * FROM classics; Μετονομασία πίνακα ALTER TABLE classics RENAME prel900; Αλλαγή τύπου ενός πεδίου (στήλης) ALTER TABLE classics MODIFY year SMALLINT; Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 30

Πράξεις σε πίνακες (3/3) Προσθήκη στήλης ALTER TABLE classics ADD pages SMALLINT UNSIGNED; Διαγραφή στήλης ALTER TABLE classics DROP pages; Μετονομασία στήλης ALTER TABLE classics CHANGE type category VARCHAR(16); Διαγραφή πίνακα: DROP TABLE classics; Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 31

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 32

Ερωτήματα ανάκτησης δεδομένων (1/5) Βασική Σύνταξη SELECT something FROM tablename; To «something» μπορεί να είναι * που σημαίνει όλα τα πεδία λίστα συγκεκριμένων πεδίων, χωριζόμενων με κόμματα SELECT author,title FROM classics; SELECT title,isbn FROM classics; Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 33

Ερωτήματα ανάκτησης δεδομένων (2/5) Απαρίθμηση εγγραφών πίνακα SELECT COUNT(*) FROM classics Ανάκτηση διακριτών εγγραφών μόνο, στο αποτέλεσμα SELECT DISTINCT author FROM classics; σε περίπτωση που ο πίνακας έχει τον ίδιο συγγραφέα > 1 φορές Διαγραφή εγγραφής DELETE FROM classics WHERE title='little Dorrit'; Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 34

Ερωτήματα ανάκτησης δεδομένων με συνθήκη WHERE (3/5) Παραδείγματα SELECT author,title FROM classics WHERE author="mark Twain"; SELECT author,title FROM classics WHERE isbn="9781598184891 ; Μπορούμε να έχουμε και σύνθετες συνθήκες SELECT author,title FROM classics WHERE author="mark Twain" AND year="1876"; SELECT author,title FROM classics WHERE isbn="9781598184891" OR (year="1876" AND category="fiction"); Οι παρενθέσεις ορίζουν τη σειρά αποτίμησης των λογικών εκφράσεων Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 35

Ερωτήματα ανάκτησης δεδομένων με διάταξη ORDER BY (4/5) Μπορούμε να διατάξουμε τις εγγραφές που επιστρέφονται SELECT author,title,year FROM classics WHERE author="mark Twain" ORDER BY year; Υποτίθεται ότι > 1 εγγραφές ικανοποιούν author ="Mark Twain... και διάταξη με φθίνουσα σειρά του έτους SELECT author,title,year FROM classics WHERE author="mark Twain" ORDER BY year DESC; Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 36

Ερωτήματα ανάκτησης δεδομένων με ομαδοποίηση GROUP BY (5/5) Μπορούμε να ομαδοποιήσουμε τις επιστρεφόμενες εγγραφές SELECT author,title,year FROM classics GROUP BY author; Υποτίθεται ότι υπάρχουν > 1 καταχωρήσεις ανά συγγραφέα Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 37

Σύνοψη χρήσιμων εντολών SQL ALTER Μεταβολή ΒΔ ή πίνακα CREATE Δημιουργία ΒΔ DELETE Διαγραφή εγγραφής από πίνακα DESCRIBE Περιγραφή στηλών πίνακα DROP Διαγραφή ΒΔ ή πίνακα EXIT/QUIT Έξοδος από το τερματικό INSERT Εισαγωγή εγγραφών σε πίνακα UPDATE Ενημέρωση πεδίου εγγραφής USE Χρήση συγκεκριμένης ΒΔ Οι εντολές γράφονται με κεφαλαία κατά σύμβαση. Η MySQL δέχεται και πεζά 38

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 39

Διαδικασία Σύνδεση στον διακομιστή (server) του ΣΔΒΔ Επιλογή Βάσης Δεδομένων από τον διακομιστή Πολλές ΒΔ μπορεί να είναι διαθέσιμες στον ίδιο διακομιστή Δημιουργία συμβολοσειράς ερωτήματος προς τη ΒΔ Εκτέλεση ερωτήματος προς τη ΒΔ Ανάκτηση αποτελεσμάτων ερωτήματος και προβολή σε HTML Αποσύνδεση από το διακομιστή του ΣΔΒΔ Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 40

Σύνδεση με διακομιστή ΒΔ Το ΣΔΒΔ προσβαίνεται μέσω διακομιστή Για σύνδεση σε αυτόν χρησιμοποιείται η (ενσωματωμένη) κλάση mysqli: $conn = new mysqli($host, $uname, $passwd, $db); Ορίσματα $host: διεύθυνση του διακομιστή ΣΔΒΔ $uname: όνομα χρήστη στον διακομιστή ΣΔΒΔ $passwd: κωδικός χρήστη στον διακομιστή ΣΔΒΔ $db: όνομα βάσης στην οποία θέλουμε να εργαστούμε Αν δε θέλουμε να δηλώσουμε βάση, παραλείπουμε το όρισμα $db $conn = new mysqli($host, $uname, $passwd); 41

Παράδειγμα Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 42

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 43

Δημιουργία ΒΔ Κατόπιν σύνδεσης στο ΣΔΒΔ Δημιουργούμε νέα βάση δεδομένων με τη μέθοδο mysqli::query // Create database $sql = "CREATE DATABASE mydb"; if ($conn->query($sql) === TRUE) { echo "DB created successfully"; } else { echo "Error creating DB: ". $conn->error; } Η μέθοδος mysql::query εκτελεί ερωτήσεις SQL προς το ΣΔΒΔ Επιστρέφει το αποτέλεσμα Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 44

Παράδειγμα Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 45

Μέσω phpmyadmin Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 46

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 47

Ερωτήσεις SQL στη ΒΔ Γίνονται με τη μέθοδο mysql::query Όρισμα: Συμβολοσειρά ερωτήματος SQL Επιστρέφει Είτε πίνακα με τα αποτελέσματα της ερώτησης ή ότι η ερώτηση εκτελέστηκε επιτυχώς ανάλογα με το είδος του ερωτήματος Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 48

Δημιουργία πίνακα στη ΒΔ (SQL statement) Ερώτημα SQL CREATE TABLE phonebook ( ) id INT NOT NULL, PRIMARY KEY(id), lname VARCHAR(20) NOT NULL, fname VARCHAR(20), address VARCHAR(30), age INT, phone VARCHAR(1O) Παρατήρηση Επιλέγεται το πεδίο id σαν πρωτεύον κλειδί Θα πρέπει η τιμή του να διαφέρει σε κάθε εγγραφή 49

Δημιουργία πίνακα στη ΒΔ (php) Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 50

Μέσω phpmyadmin Επιλέγοντας Databases και, κατόπιν, τη βάση με το όνομά της (mydb) Από τη λίστα των πινάκων μπορούμε να δούμε τα περιεχόμενά τους, να τους διαγράψουμε και να τους μεταβάλουμε Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 51

Παράδειγμα <?php $conn = new mysqli("localhost","root","mydb"); $sql="insert INTO PhoneBook VALUES ('O', 'Giorgos', 'Papadopoulos', 'Odou 1', '11111', '2101111777')"; $conn->query($sql); if (!$conn->error) echo "Successful record insertion.<br>"; $conn->close();?> Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη

Μέσω phpmyadmin Mε επιλογή Browse, έχοντας επιλέξει τον πίνακα που μας ενδιαφέρει Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 53

Ανάκτηση δεδομένων: 1-1 πεδίο Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 54

Ανάκτηση δεδομένων: 1-1 εγγραφή Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 55

Ανάκτηση δεδομένων: χρήση βρόχου while Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 56

Παρατηρήσεις β Η μέθοδος fetch_array μπορεί να επιστρέφει Associative Array: με όρισμα MYSQLLASSOC Αριθμημένο Array: με όρισμα MYSQLLNUM Και τα δύο: με όρισμα MYSQLLBOTH Σε κάθε κλήση η μέθοδος επιστρέφει την επόμενη εγγραφή Αν δεν υπάρχει επόμενη επιστρέφει NULL To NULL ισοδυναμεί με FALSE στη συνθήκη while Είναι καλό να «κλείνετε» τη μεταβλητή αποτελεσμάτων Απλευθερώνει μνήμη που δεσμεύτηκε για τη φύλαξή τους Ισοδύναμα μπορείτε να καλείτε τη μέθοδο free() $result->free(); Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 57

Παράδειγμα ενημέρωσης δεδομένων Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 58

Σημερινή διάλεξη Σύνοψη προηγούμενης διάλεξης SQL Δημιουργία ΒΔ Δημιουργία πίνακα Τύποι δεδομένων Πράξεις σε πίνακα Ερωτήματα ανάκτησης δεδομένων PHP & SQL Διαδικασία Σύνδεση με διακομιστή ΒΔ Δημιουργία ΒΔ Ερωτήσεις SQL στη ΒΔ Ολοκληρωμένο παράδειγμα 59

Σχεδιασμός φόρμας Στόχος Φόρμα εισαγωγής εγγραφών Προβολή υπαρχουσών εγγραφών Δυνατότητα διαγραφής εγγραφών Όλα σε ένα PHP πρόγραμμα 60

ΒΔ Για το παράδειγμα αυτό θεωρούμε μία ΒΔ με όνομα mydb Η βάση περιλαμβάνει ένα μοναδικό πίνακα που δημιουργείται με CREATE TABLE classics ( author VARCHAR(128), title VARCHAR(128), category VARCHAR(16), year SMALLINT, isbn CHAR(13)); Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 61

Διαχείριση διαγραφής Αν έχουν τεθεί superglobals $_POST['delete'], $_POST['isbn'] γνωρίζουμε ότι πατήθηκε κουμπί διαγραφής κάποιας εγγραφής 62

Διαχείριση εισαγωγής εγγραφής Αν έχουν τεθεί οι συγκεκριμένες superglobals, τότε εισαγωγή νέας εγγραφής. 63

Προβολή φόρμας εισαγωγής εγγραφής Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη

Προβολή εγγραφών Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη 65

Συνάρτηση μορφοποίησης εισόδου για τη ΒΔ $result->close(); $conn->close(); function get_post($conn, $var) { return $conn->real_escape_string($_post[$var]); } Η μέθοδος real_escape_string «καθαρίζει» τη συμβολοσειρά Από «άσχετους» χαρακτήρες που δε θα πρέπει να εισαχθούν στη βάση Συνήθης πρακτική όταν εισάγουμε δεδομένα που διαβάστηκαν από φόρμα Προγραμματισμός Παγκόσμιου Ιστού, 10η Διάλεξη