Professional Documents
Culture Documents
(MySQL - PHP)
Πανεπιστήμιο Θεσσαλίας
DOCTYPE
Τίτλοι,παράγραφοι, επικεφαλίδες
Λίστες, σύνδεσμοι, εικόνες
Πίνακες, φόρμες
Παράδειγμα: Βιβλίο
Περιεχόμενο Μορφοποίηση
Τίτλος Μέγεθος τίτλου
Επικεφαλίδες συγγραφέα
κεφαλαίων Στοίχιση επικεφαλίδων
XML
Μέθοδος αναπαράστασης
δεδομένων
Tags και Elements
Attributes
Tags
Κάθε tag ξεκινάει με < και τελειώνει με >.
Υπάρχουν τριών ειδών tags:
Starttags: <date>
End tags: </date>
Elements
Κάθε element ξεκινάει με ένα start tag και τελειώνει
με ένα end tag, ή αποτελείται μόνο από ένα empty-
element tag.
<date>16/10/2011</date>
<new-line />
(X)HTML
Γράφουμε σε αρχεία .html
Τα επεξεργαζόμαστε με απλό κειμενογράφο
Περιέχει κώδικα σε μορφή XML
Γίνεται interpret και όχι compile
Τρέχει μέσα στους browsers
Τρέχει και τοπικά
Βασική δομή μιας σελίδας
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<body>
Hello World!
</body>
</html>
DOCTYPE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Παράγραφοι
<p>: Ορίζει μια παράγραφο (μνημονικό: paragraph)
Έμφαση
<em>: Δίνει έμφαση σε ένα τμήμα κειμένου (emphasis)
<strong>: Δίνει ιδιαίτερη έμφαση σε ένα τμήμα κειμένου (strong
emphasis)
Δεν υπάρχει h7
Επικεφαλίδες
<h1>
<h2>
<h2>
Λίστες
Αριθμημένες: Σειρά έχει σημασία, χρήση <ol>
Μη αριθμημένες: Σειρά δεν έχει σημασία, χρήση <ul>
Λίστες
Αριθμημένες Μη αριθμημένες
Μέρες της εβδομάδας Λίστα για τα ψώνια
Εξάμηνα φοίτησης Μαθήματα σε κάθε εξάμηνο
Νικητές της Formula 1 Μαθητές στο αμφιθέατρο
Εκδόσεις του Photoshop Οι e-mail διευθύνσεις μου
Κεφάλαια ενός βιβλίου Οι σελιδοδείκτες μου
Αυτή η λίστα
Αριθμημένη λίστα:
Δρόμος προς την επιτυχία
<ol>
<li>Μάθε HTML</li> 1. Μάθε HTML
<li>Μάθε CSS</li> 2. Μάθε CSS
<li>Μάθε Javascript</li> 3. Μάθε Javascript
<li>Μάθε PHP</li> 4. Μάθε PHP
<li>Μάθε MySQL</li> 5. Μάθε MySQL
<li>???</li> 6. ???
<li>PROFIT!!!</li> 7. PROFIT!!!
</ol>
<ul>
• Gmail
<li>Gmail</li>
• Facebook
<li>Facebook</li>
• Thmmy
<li>Thmmy</li>
• Άστρα και όραμα
<li>Άστρα και όραμα</li>
• Πιτσαρία
<li>Πιτσαρία</li>
</ul>
Εμφώλευση
Η απλότητα και η δύναμη της HTML!
Επιτρέπεται η εμφώλευση σε λίστες, παραγράφους κλπ.
Σύνδεσμοι
<a> Ορίζει έναν σύνδεσμο (μνημονικό: anchor)
Μάθε HTML!
Περιοχές εγγράφου
id: Ονομάζει μια ιδιότητα. Μπορεί να περιέχεται σε
οποιαδήποτε ετικέτα.
Εικόνες
<img>: Περιγράφει μια εικόνα
src: Το αρχείο της εικόνας, ως διεύθυνση (υποχρεωτικό)
alt: Μια περιγραφή της εικόνας (υποχρεωτικό)
Παράδειγμα:
Πίνακας μαθητών με στοιχεία όνομα, επώνυμο, βαθμολογία
Διάσημοι επιστήμονες
Όνομα Επίθετο Τομέας Ανακάλυψη
Alan Turing Επιστήμη Υπολογισμού Turing machines
Bertrand Russell Φιλοσοφία Tractatus
Αρχιμήδης Μηχανικός Μοχλός
Leonard Euler Μαθηματικά eιπ + 1 = 0
Διάσημοι επιστήμονες
Όνομα Επίθετο Τομέας Ανακάλυψη
Alan Turing Επιστήμη Υπολογισμού Turing machines
Bertrand Russell Φιλοσοφία Tractatus
Αρχιμήδης Μηχανικός Μοχλός
Leonard Euler Μαθηματικά eιπ + 1 = 0
<table>
<tr>
<td>Alan</td><td>Turing</td>
<td>Επιστήμη Υπολογισμού</td><td>Turing Machines</td>
</tr>
<tr>
<td>Ludwig</td><td>Wittgenstein</td>
<td>Φιλοσοφία</td><td>Tractatus</td>
</tr>
<tr>
<td>Αρχιμίδης</td><td></td>
<td>Μηχανικός</td><td>Μοχλός</td>
</tr>
<tr>
<td>Leonhard</td><td>Euler</td>
<td>Μαθηματικά</td><td>e<sup>ιπ</sup> + 1 = 0</td>
</tr>
</table>
Περιεχομενα "at a glance"
1. Βάσεις Δεδομένων
2. Πίνακες, Στήλες, Πεδία
3. Σχήματα Βάσεων Δεδομένων
4. Εισαγωγή στη γλώσσα SQL
5. SELECT, WHERE
6. INSERT INTO, DELETE, UPDATE
7. Συνδυασμός PHP/MySQL
Πρώτο Πρόγραμμα
1. Βάσεις Δεδομένων
1. Εξωτερικό Επίπεδο
Παρουσιάση δεδομένων στον χρήστη της Βάσης.
2. Επίπεδο Αντίληψης
Συνδέει το φυσικό επίπεδο με το εξωτερικό επίπεδο.
Επεξεργάζεται τις εντολές του χρήστη και βρίσκει
την κατάλληλη πληροφορία στην Βάση.
Μεταφράζει τις εντολές του χρήστη σε εντολές
κατανοητές από το Μηχανισμό Ανάκλησης και
Αποθήκευσης Δεδομένων
3. Φυσικό Επίπεδο
Το επίπεδο όπου τα δεδομένα είναι αποθηκευμένα
σε μορφή bytes στον σκληρό δίσκο.
Περιλαμβάνει τις έννοιες
1. Πίνακας
2. Εγγραφή
3. Πεδίο
4. Τιμή Πεδίου
5. Τύπος Δεδομένων
Trailers
1. Βάσεις Δεδομένων
2. Πίνακες, Στήλες, Πεδία
Όνομα
Όνομα Καλλιτέχνης
Καλλιτέχνης Έτος Είδος Πωλήσεις
Thriller Michael Jackson 1982 Pop / R & B 112M
Back
BackIn
InBlack
Black AC/DC
AC/DC 1980 Hard Rock 49M
Dark
DarkSide
Side Of
OfThe
The Pink
PinkFloyd
Floyd 1980 Progressive Rock 45M
Moon
Moon
The
Bat Bodyguard Whitney 1992 Soundtrack 44M
TheOut
The Of Hell
Bodyguard
Bodyguard Meat Loaf
Whitney
Whitney 1977
1992 Classic Rock
Soundtrack 43M
44M
OST Houston
OST
OST Houston
Houston
Bat Out Of Hell Meat Loaf 1977 Classic Rock 43M
Bat
BatOut
OutOf
OfHell
Hell Meat
MeatLoaf
Loaf 1977 Classic Rock 43M
Πίνακας
Πεδίο
Τύποι Πεδίου
Κάθε πεδίο αποθηκεύει συγκεκριμένο τύπο
δεδομένων
int: Ακέραιος αριθμός.
float: Δεκαδικός αριθμός.
text: Αλφαριθμητικό.
char(n): Αλφαριθμητικό σταθερού μεγέθους n.
varchar(n): Αλφαριθμητικό μέγιστου μεγέθους n.
date: Ημερομηνία.
datetime: Ημερομηνία και ώρα.
NULL
Ειδική τιμή
Αντιπροσωπεύει την απουσία τιμής
5 Best Selling Albums Of All Time
Εγγραφή
Τιμή Πεδίου
Σσσσ, αρχίζει...
1. Βάσεις Δεδομένων
2. Πίνακες, Στήλες, Πεδία
3. Σχήματα Βάσεων Δεδομένων
Σχήμα - Ονοματολογία
Σχήμα ονομάζεται η δομή των πινάκων και των
στηλών μιας Βάσης Δεδομένων.
Για την δημιουργία σχήματος σκεφτόμαστε:
Τι είδους αντικείμενα θα αποθηκεύσουμε? => Πίνακες
Τι ιδιότητες έχει κάθε τέτοιο αντικείμενο? => Πεδία
Καλλιτέχνες
Μπάντες
Αλμπουμ
Χώρα (country)
Είδος (genre)
Παράδειγμα Σχήματος (3)
Στήλη
AUTO_INCREMENT
Παράδειγμα Σχήματος (5)
Album Band
albumid bandid
title name
year country
studioname year
studiolocation studioname
studiofunded studiolocation
studiofunded
Πίνακας Album
Ανεπιθύμητη επανάληψη
Αποφυγή Επανάληψης
Για να αποφύγουμε την επανάληψη περίσσειας
πληροφορίας στους πίνακες μας, φτιάχνουμε ένα
πίνακα ξεχωριστά για τα Recording Studios.
Studio
studioid
name
location
funded
Αναφορές Πινάκων
studioid name location funded
1 Westlake USA 1974
2 Vasipap Greece 2001
αναφέρεται σε
αναφέρεται σε
Whitney lastname:
Jackson
Music
Album The Wall
Encyclopedia
genre: Drum
Prodigy N Bass
MySQL Server
Η MySQL είναι ένα πρόγραμμα Server.
Συνήθως τρέχει στον ίδιο υπολογιστή με τον Apache.
Σε μεγάλα sites τρέχει σε διαφορετική φυσική τοποθεσία
για μεγαλύτερη ασφάλεια και σταθερότητα.
Η PHP συνδέεται στην MySQL
Στέλνει ερωτήματα σε βάσεις.
Δέχεται τις απαντήσεις.
Apache Server
ΕΝΝΟΕΙΤΑΙ! Επιτέλους!
Διάλλειμα
1. Βάσεις Δεδομένων
2. Πίνακες, Στήλες, Πεδία
3. Σχήματα Βάσεων Δεδομένων
4. Εισαγωγή στη γλώσσα SQL
Ερώτημα
Μια εντολή προς το Σύστημα Διαχείρισης Βάσεων
Δεδομένων.
Ο τρόπος που επικοινωνούμε με τις Βάσεις.
Μπορούμε να ζητήσουμε
Δημιουργία Εγγραφών (Create)
Ανάγνωση Εγγραφών (Read)
Ενημέρωση Εγγράφων (Update) Create
Διαγραφή Εγγραφών (Delete)
Delete Read
Update
Ερώτημα (2)
Σε αντίθεση με το σχήμα της Βάσης που το
φτιάχνουμε off-line με την phpMyAdmin:
Τα ερωτήματα τρέχουν στον χρόνο εκτέλεσης, πχ. όταν
τρέχει ένα PHP Script.
Παραδείγματα
Ο χρήστης θέλει να δημιουργήσει έναν λογαριασμό
πατώντας το κατάλληλο κουμπί στο site.
Καλείτε το PHP Script register.php με HTTP POST.
Τρέχει το ερώτημα προσθήκης των στοιχείων του νέου
μέλους.
Γλώσσα T-SQL
Χρησιμοποιείται για να γράψουμε τα ερωτήματα προς την
Βάση.
Περιγράφει τι θέλουμε να συμβεί.
Οχι το πως θέλουμε να συμβεί.
Κάθε ερώτημα τελειώνει με semicolon (;).
Space insensitive (τα κενά δεν παίζουν ρόλο).
Ερώτημα Απάντηση
Δημιουργία • Εντάξει ή Όχι εντάξει
• Τιμή πρωτεύοντος κλειδιού
Ανάγνωση • Δεδομένα
Επεξεργασία • Εντάξει ή Όχι εντάξει
• Πλήθος εγγραφών
Διαγραφή • Εντάξει ή Όχι εντάξει
• Πλήθος εγγραφών
Η συνέχεια...
1. Βάσεις Δεδομένων
2. Πίνακες, Στήλες, Πεδία
3. Σχήματα Βάσεων Δεδομένων
4. Εισαγωγή στη γλώσσα SQL
5. SELECT, WHERE
Ανάγνωση Εγγραφών
Ερώτημα SELECT Παράδειγμα
Σύνταξη SELECT
SELECT name, lastname
πεδίο1, πεδίο2, ... , πεδίοΝ FROM
FROM Artist;
όνομα Πίνακα;
name lastname
Επιστρέφει συγκεκριμένα Michael Jackson
πεδία από όλες τις Whitney Houston
εγγραφές ενός πίνακα. Tarja Turunen
Σώτης Βολάνης
Φιλτράρισμα Εγγραφών
Εντολή WHERE
Σύνταξη
WHERE λογική πρόταση
Οι λογικές προτάσεις:
Παίρνουν τιμή true (1) ή false (0).
Μπορούν να περιέχουν
Ονόματα πεδίων: artistid, name, location.
Σταθερές: 5, “Hello World!”, “20/11/2011”.
Αληθεύουν πιθανώς για κάποιες εγγραφές.
Δεν αληθεύουν πιθανώς για άλλες εγγραφές.
Λογικές Προτάσεις
Τελεστές Λειτουργία
+, -, *, / Αριθμητικές πράξεις
OR, AND, NOT Λογικές πράξεις: ή, και, όχι
Πίνακας Αποτελέσματος
Ο πίνακας που είναι αποθηκευμένος και ο πίνακας
που επιστρέφει το ερώτημα μπορεί να είναι
διαφορετικοί.
Διαφορετικά πεδία
Η απάντηση έχει συνήθως μόνο κάποια πεδία.
Διαφορετικές εγγραφές
Η απάντηση συνήθως έχει μόνο κάποιες εγγραφές.
Ο προσωρινός πίνακας που επιστρέφεται
ονομάζεται πίνακας αποτελέσματος.
Παράδειγμα
Αποθηκευμένος Πίνακας
albumid title year studioid
1 Thriller 1982 1
2 Off The Wall 1979 1
3 Bad 1984 1
4 Τσικουλάτα 2004 2
1. Βάσεις Δεδομένων
2. Πίνακες, Στήλες, Πεδία
3. Σχήματα Βάσεων Δεδομένων
4. Εισαγωγή στη γλώσσα SQL
5. SELECT, WHERE
6. INSERT INTO, DELETE, UPDATE
Δημιουργία Εγγραφής
Ερώτημα INSERT INTO
Σύνταξη Εναλλακτική Σύνταξη
INSERT INTO INSERT INTO
όνομα Πίνακα όνομα Πίνακα
SET ( πεδίο1 , πεδίο2 ,..., πεδίοΝ )
πεδίο1 = τιμή1, Values
πεδίο2 = τιμή2, ( τιμή1, τιμή2 ,..., τιμήΝ );
...
πεδίοΝ = τιμήΝ;
Παράδειγμα Δημιουργίας
INSERT INTO
Artist
SET
name = “Michael”,
lastname = “Jackson”,
birthdate = “29/08/1959”;
Παρατηρούμε ότι παραλείπουμε την τιμή για το πεδίο
id, που το έχουμε ορίσει AUTO_INCREMENT.
Όσα πεδία παραλείπονται παίρνουν:
Την προεπιλεγμένη τιμή που ορίζουμε στο σχήμα μας.
Την προεπιλεγμένη τιμή σύμφωνα με τον τύπο τους αν
δεν έχουμε ορίσει εμείς μια.
Ενημέρωση Εγγραφών
Ερώτημα UPDATE
Σύνταξη Εναλλακτική Σύνταξη
UPDATE UPDATE
όνομα Πίνακα όνομα Πίνακα
SET SET
πεδίο1 = τιμή1, πεδίο1 = τιμή1,
πεδίο2 = τιμή2, πεδίο2 = τιμή2,
... ...
πεδίοΝ = τιμήΝ; πεδίοΝ = τιμήΝ
Αλλάζει όλες τις εγγραφές WHERE
του πίνακα. λογική έκφραση
Τα πεδιά που δεν
εμφανίζονται δεν αλλάζουν.
Παράδειγμα Ενημέρωσης
UPDATE
Artist
SET
lastname = “Bolton”
WHERE
name = “Michael”;
Διαγραφή Εγγραφών
Ερώτημα DELETE
Εναλλακτική Σύνταξη
Σύνταξη
DELETE FROM
DELETE FROM
όνομα Πίνακα
όνομα Πίνακα WHERE
Διαγράφειόλες τις λογική έκφραση
εγγραφές του πίνακα. Φιλτράρουμετις
εγγραφές που θα
διαγραφούν με την
WHERE.
Παράδειγμα Ενημέρωσης
DELETE FROM
Artist
WHERE
name = “Σώτης”;
Κοντά στο Happy End!
1. Βάσεις Δεδομένων
2. Πίνακες, Στήλες, Πεδία
3. Σχήματα Βάσεων Δεδομένων
4. Εισαγωγή στη γλώσσα SQL
5. SELECT, WHERE
6. INSERT INTO, DELETE, UPDATE
7. Συνδυασμός PHP/MySQL
Ερωτήματα σε Βάση
Εντολή mysql_select_db()
Σύνταξη
mysql_select_db( όνομα βάσης )
Επιλέγει σε ποια βάση θα τρέξουν τα ερωτήματα.
O MySQL Server μπορεί να αποθηκεύει πολλές βάσεις.
Συνήθως έχουμε μια για κάθε web εφαρμογή.
Εντολή mysql_query()
Σύνταξη
$res = mysql_query( ερώτημα )
Εκτελεί το ερώτημα και επιστρέφει την απάντηση.
True / False σε περίπτωση ερωτημάτων Δημιουργίας, Ενημέρωσης,
Διαγραφής.
Ένα resource (πίνακας συνήθως) που μπορεί να χρησιμοποιηθεί σε
περίπτωση Ανάγνωσης.
Εκτέλεση Ερωτήματος
mysql_connect(“localhost”,“Anty”,“Stewie”);
mysql_select_db( “Music” );
$success = mysql_query(
“UPDATE
Artist
SET
lastname = ‘Bolton’
WHERE
name = ‘Michael’; “
);
mysql_affected_rows()
Επιστρέφει το πλήθος των γραμμών που άλλαξαν από την
εκτέλεση του πιο πρόσφατου ερωτήματος.
mysql_num_rows( $res )
Παίρνει ως παράμετρο το resource που επιστρέφει η
mysql_query()
Επιστρέφει το πλήθος των εγγραφών του αποτελέσματος.
Παράδειγμα Εισαγωγής Εγγραφής
database.php
mysql_connect(“localhost”,“Anty”,“Stewie”);
mysql_select_db( “Music” );
Παράδειγμα Ανάγνωσης
include “database.php”;
$sql = “…”; while ($row = mysql_fetch_array( $res ))
$res = mysql_query( $sql );
$count = mysql_num_rows( $res );
for ( $i = 0; $i < $count; ++$i ) {
$row = mysql_fetch_array( $res );
echo “Row $i:”;
$name = $row[ “name”];
$lastname = $row[ “lastname” ];
echo “The name is $lastname, $name. <br />”;
?>
}
Row 0: The name is Jackson, Michael.
Row 1: The name is Houston, Whitney.
Row 2: The name is Turunen, Tarja.
Διαλέχτε, καλέ κυρία, Διαλέχτε
1. Ταξινόμηση
2. Περιορισμοί
4. Ψευδώνυμα - Ημερομηνίες
5. Ενώσεις Πινάκων
Έχω πρώτο πράγμα...
1. Ταξινόμηση
Ταξινόμηση
Εντολή ORDER BY
Ταξινομεί το αποτέλεσμα με βάση ένα πεδίο.
ASC: Αύξουσα Ταξινόμηση (προεπιλογή).
DESC: Φθίνουσα Ταξινόμηση.
Ακολουθεί πάντα τον όρο WHERE.
Είτε υπάρχει είτε όχι.
Παράδειγμα
Select πεδία FROM πίνακας WHERE συνθήκη
ORDER BY πεδιο ASC (DESC);
Ταξινόμηση (2)
Αποθηκευμένος πίνακας Artist
Ταξινόμηση (3)
SELECT
artistid, name, lastname, birthdate
FROM
Artist
ORDER BY
birthdate ASC;
Πίνακας αποτελέσματος
Artistid name lastname birthdate
3 Bruce Dickinson 1958-08-07
4 Μιχαλάρας Ρακιντζής 1962-01-05
1 Tori Amos 1963-08-22
2 Britney Spears 1981-12-02
Ταξινόμηση (4)
SELECT
artistid, name, lastname, birthdate
FROM
Artist
ORDER BY
birthdate DESC;
Πίνακας αποτελέσματος
Artistid name lastname birthdate
2 Britney Spears 1981-12-02
1 Tori Amos 1963-08-22
4 Μιχαλάρας Ρακιντζής 1962-01-05
3 Bruce Dickinson 1958-08-07
Ταξινόμηση (5)
SELECT
artistid, name, lastname, birthdate
FROM
Artist
WHERE
name = ‘Britney’ OR lastname = ‘Amos’
ORDER BY
birthdate DESC;
Πίνακας αποτελέσματος
Artistid name lastname birthdate
2 Britney Spears 1981-12-02
1 Tori Amos 1963-08-22
Οτι πάρεις ένα ευρώ, ότι πάρεις.
1. Ταξινόμηση
2. Περιορισμοί
Περιορισμοί
Εντολή LIMIT
Περιορίζει τον πλήθος των εγγραφών του πίνακα
αποτελέσματος.
Ο όρος αυτός ακολουθεί το ORDER BY.
Είτε υπάρχει, είτε δεν υπάρχει.
Κρατάει τα πρώτα N στοιχεία.
Παράδειγμα
Select πεδία FROM πίνακας WHERE συνθήκη
ORDER BY πεδιο LIMIT N;
Περιορισμοί (2)
SELECT
artistid, name, lastname, birthdate
FROM
Artist
ORDER BY
birthdate ASC
LIMIT 3;
Πίνακας αποτελέσματος
Artistid name lastname birthdate
3 Bruce Dickinson 1958-08-07
Τρία αποτελέσματα
4 Μιχαλάρας Ρακιντζής 1962-01-05
1 Tori Amos 1963-08-22
Περιορισμοί (2)
Ποια είναι τα στοιχεία του γηραιότερου
καλλιτέχνη της βάσης?
SELECT
artistid, name, lastname, birthdate
FROM
Artist
ORDER BY
birthdate ASC
LIMIT 1;
Περιορισμοί (4)
Πλήρης Σύνταξη του LIMIT
LIMIT offset, N
Σε αυτή τη μορφή
Παραλείπει
εγγραφές από την αρχή του
αποτελέσματος ίσες με το offset.
Αν offset = 0 καμία παράλειψη.
Περιορίζει
το πλήθος των εγγραφών του
αποτελέσματος κατά Ν.
Παράδειγμα LIMIT με offset
SELECT
artistid, name, lastname, birthdate
FROM
Artist
ORDER BY
1 εγγραφή από την αρχή παραλείπεται
birthdate DESC
LIMIT 1, 2;
Πίνακας αποτελέσματος
Artistid name lastname birthdate
2 Britney Spears 1981-12-02
1 Tori Amos 1963-08-22
Δύο έγγραφές
4 Μιχαλάρας Ρακιντζής 1962-??-??
3 Bruce Dickinson 1958-08-07
1. Ταξινόμηση
2. Περιορισμοί
Τελεστής IN
Σύνταξη
Πεδίο IN ( τιμή1, τιμη2, ... , τιμήΝ)
Ελέγχει αν μια τιμή ενός πεδίου ανήκει σε ένα σύνολο
τιμών.
SELECT
artistid, name, lastname
artistid name lastname
FROM
Artist 1 Tori Amos
WHERE 3 Bruce Dickinson
name IN (‘Tori’, ‘Bruce’);
Σύγκριση
Οι τελεστές =, <, >, <=, >= λειτουργούν σε:
Αριθμούς
3<4
5=5
12.2 > -9
Αλφαριθμητικά (λεξικογραφικά)
‘Tori’ >= ‘Bruce’
Ημερομηνίες (χρονολογικά)
‘2001-09-11’ >‘1987-11-30’
‘2011-11-22 00:00:00’ <= ‘2011-11-22 01:01:01’
1. Ταξινόμηση
2. Περιορισμοί
4. Ψευδώνυμα - Ημερομηνίες
Ψευδώνυμα Στηλών
Εισάγονται με το AS
Σύνταξη
πεδίο AS ψευδώνυμο
Αλλάζουν το όνομα μιας στήλης του αποθηκευμένου
πίνακα στον πίνακα αποτελέσματος.
SELECT
artistid AS code, name, lastname
code name lastname
FROM
Artist 1 Tori Amos
WHERE 3 Bruce Dickinson
name IN (‘Tori’, ‘Bruce’);
Τελεστές Ημερομηνιών
Λέξη-κλειδί INTERVAL
Λέξεις-κλειδιά διάρκειας:
SECOND
MINUTE
HOUR
DAY
MONTH
YEAR
Μορφή: INTERVAL Ν διάρκεια
Μπορεί να προστεθεί / αφαιρεθεί από ημερομηνία
για να δώσει μία άλλη
UPDATE
users
SET
lastactive = NOW()
WHERE
userid = 5
LIMIT 1;
SELECT
name, lastname, (birtdate + INTERVAL 100 YEARS) AS death
FROM
Artist name lastname death
WHERE
name IN (‘Tori’, ‘Bruce’); Tori Amos 2063-08-22
Bruce Dickinson 2058-08-07
Κληρώνει δεν λερώνει...
1. Ταξινόμηση
2. Περιορισμοί
4. Ψευδώνυμα – Ημερομηνίες
5. Ενώσεις Πινάκων
ΕΝΩΣΕΙΣ ΠΙΝΑΚΩΝ
Συνδυασμός δεδομένων από πολλούς
διαθέσιμους αποθηκευμένους πίνακες.
Ο πίνακας αποτελέσματος μπορεί να
περιλαμβάνει δεδομένα από όποιους του
ζητήσουμε.
Μπορεί επίσης να φιλτράρει τα αποτελέσματα με
χρήση πεδιών από όσους από αυτούς θέλουμε.
Πολλάπλές ενώσεις, ενώνοντας το αποτέλεσμα
μιας ένωσης πινάκων με άλλον πίνακα.
ΑΠΛΗ ΕΝΩΣΗ
Είναι η ένωση δύο ή περισσότερων πινάκων σε
ένα ερώτημα.
Για να πάρουμε δεδομένα από όλους.
Για να βάλουμε καποια κριτήρια στα αποτελέσματά
μας.
Παράδειγμα
studioid name location funded
1 Westlake USA 1974
2 Vasipap Greece 2001
SELECT
Album.name AS title, year, Studio.name AS recording_studio
FROM
Album, Studio
WHERE
Studio.studioid = Album.studioid;
ΑΠΛΗ ΕΝΩΣΗ (2)
Σωστότερη σύνταξη
SELECT
πεδία
FROM
Α
INNER JOIN B
ON A.x = B.y
Παραδείγμα (2)
SELECT
Album.name AS title, year, Studio.name AS recording_studio
FROM
Album
INNER JOIN
Studio ON Studio.studioid = Album.studioid
WHERE
Studio.studioid = 1;
SELECT
Studio.name AS recording_studio
FROM
Studio
INNER JOIN
Album ON Studio.studioid = Album.studioid
ORDER BY year ASC
LIMIT 1;
Τρίτο Παραδείγμα
Όλοι οι τίτλοι των album και η τοποθεσία του
studio που ηχογραφήθηκαν?
SELECT
Album.name AS title, Studio.location
FROM
Album
INNER JOIN
Studio ON Studio.studioid = Album.studioid;
name location
Thriller USA
Bad USA
Τσικουλάτα Greece
ΑΡΙΣΤΕΡΗ ΕΝΩΣΗ
Στην περίπτωση που δεν έχουμε για όλα τα
studios πληροφορίες.
studioid name location funded
1 Westlake USA 1974
title location
Thriller USA
Bad USA
Τσικουλάτα NULL
Καρτεσιανό Γινόμενο
ΑxB
Κάθε εγγραφή του πίνακα Α.
Συνδυάζεται με κάθε εγγραφή του πίνακα Β.
Παράδειγμα
studioid name
1 Westlake Studio
2 Vasipap
x
albumid title year studio
1 Thriller 1982 1
Album
3 Bad 1984 1
4 Τσικουλάτα 2004 2
Παράδειγμα (2)
Από μόνο του άχρηστο.
Πολύ πιο χρήσιμο με το WHERE.
SELECT
title, year, name title year name
Thriller 1982 Westlake
FROM Bad 1984 Westlake
Album, Studio Τσικουλάτα 2004 Vasipap
WHERE
studio = studioid
Παράδειγμα Πολλαπλών Ενώσεων
user: blog: comment:
- userid - blogid - commentid
- username - title - text
- password - text - blogid
- email - userid - userid
- created
SELECT
comment.text, user.name
FROM
comment INNER JOIN blogs
ON comment.blogid = blog.blogid
INNER JOIN user
ON user.userid = comment.userid
WHERE
blog.userid = 5
Χρησιμοποιούμε την ένωση για να πάρουμε στοιχεία από τον
πίνακα comment και user και να φιλτράρουμε με βάση τον
πίνακα blog (ένωση στην ένωση).
Παράδειγμα Πολλαπλών Ενώσεων (5)
1. Ψευδώνυμα Πινάκων
3. Ομαδοποίηση
5. Υποερωτήματα
Τι καλέ???
1. Ψευδώνυμα Πινάκων
Ψευδώνυμα Πινάκων
Εκτός από τα πεδιά, στην SQL επιτρέπεται να
δώσουμε ψευδώνυμο ακόμα και σε ολόκληρο
πίνακα.
Σύνταξη
Εισάγονται με το AS.
όνομα πίνακα AS ψευδώνυμο.
Παραδείγμα (2)
SELECT
a.name AS title, year, b.name AS recording_studio
FROM
Album AS a
INNER JOIN
Studio AS b ON b.studioid = a.studioid
WHERE
b.studioid = 1;
1. Ψευδώνυμα Πινάκων
Αυτοένωση Πινάκων
Στην SQL επιτρέπεται και η ένωση ενός πίνακα με
τον εαυτό του.
Σε αυτή την περίπτωση είναι απαραίτητο να έχουν
ψευδώνυμα οι πίνακες καθώς μόνο έτσι
μπορούμε να τους ξεχωρίσουμε μεταξύ τους.
Επιτρέπεται να χρησιμοποιήσουμε όλων των
ειδών τις ενώσεις (Απλή / Αριστερή Ένωση,
Καρτεσιανό Γινόμενο).
Παράδειγμα
person:
- personid
- name
- surname
personid name lastname fatherid
- fatherid 1 Νάταλι Θάνου 2
2 Παναγιώτης Τόκος NULL
3 Ακίνδυνος Γκίκας 2
4 Βασίλης Λεβέντης NULL
5 Τάκης Γκώνιας 4
6 Ανίτα Πάνια 5
Παράδειγμα (2)
Εμφάνιση όλων των ατόμων μαζι με το όνομα πατρός όπου αυτό
υπάρχει.
SELECT
child.name AS name,
child.lastname AS lastname,
father.name AS fathername
FROM
person AS child
LEFT OUTER JOIN
person AS father
ON child.fatherid = father.personid;
Αποτέλεσμα (Vapona)
Δεύτερο Παράδειγμα
Να εμφανίσεται το ονοματεπώνυμο των ατόμων που
έχουν για πατέρα κάποιον Μπάμπη.
SELECT
child.name AS name,
child.lastname AS lastname, name lastname
FROM Νάταλι Θάνου
person AS child Ακίνδυνος Γκίκας
INNER JOIN person AS father
ON child.fatherid = father.personid
WHERE
father.name = ‘Παναγιώτης’;
Τρίτο Παράδειγμα
Να εμφανίσεται το ονοματεπώνυμο των ατόμων που
ξέρουμε το όνομα του πατέρα τους.
SELECT
child.name AS name, name lastname
child.lastname AS lastname, Νάταλι Θάνου
ΓΙΟΥΠΙ!!!!
1. Ψευδώνυμα Πινάκων
3. Ομαδοποίηση
Ομαδοποίηση
Στην SQL μας δίνεται η δυνατότητα να ομοδοποιούμε τα
αποτελέσματά μας.
Σύνταξη
GROUP BY πεδίο
name lastname
name lastname
Μπάμπης Στόκας GROUP BY lastname
Μπάμπης Στόκας
Μπάμπης Τόκος
???? Τόκος
Βασίλης Καήλας
Βασίλης Καήλας
Βασίλης Λεβέντης
Βασίλης Λεβέντης
Τάκης Τόκος
Που είναι ρε μόρτη το λάθος???
Όταν χρησιμοποιείς την εντολή GROUP BY για
ομαδοποίηση, τότε τα πεδία που κάνεις SELECT
πρέπει οπωσδήποτε
Είτε να είναι το πεδίο σύμφωνα με το οποίο κάνεις
ομαδοποίηση.
Είτε να περιέχεται σε μια Aggregated Function
(Συνάρτηση Σύνοψης).
SELECT
name
name
Μπάμπης
FROM Βασίλης
people Τάκης
GROUP BY
name;
Τελεστής DISTINCT
Την ίδια ακριβώς δουλειά με το προηγούμενο
παράδειγμα μπορούμε να την κάνουμε χωρίς χρήση
ομαδοποίησης αλλά με τον τελεστή DISTINCT.
Παράδειγμα
SELECT name
Μπάμπης
DISTINCT name Βασίλης
FROM Τάκης
people
1. Ψευδώνυμα Πινάκων
3. Ομαδοποίηση
Παράδειγμα
SELECT
semester,
MIN(grade) AS mingrade,
MAX(grade) AS maxgrade,
AVG(grade) AS avggrade
FROM
people
GROUP BY
semester;
Αποτέλεσμα Παραδείγματος
1. Ψευδώνυμα Πινάκων
3. Ομαδοποίηση
5. Υποερωτήματα
Υποερωτήματα
Τα υποερωτήματα χρησιμοποιούνται κατα κύριο
λόγο
Στις ενώσειςπινάκων.
Στο φιλτράρισμα του πίνακα αποτελέσματος.
Ώπα ώπα…Server-side?
Server-side: τα προγράμματα τρέχουν στον web
server που βρίσκεται εγκατεστημένο το site.
PHP Pages
Δυναμικές σελίδες
Δίνουν την δυνατότητα interaction με τον χρήστη για
να του δώσουν τις πληροφορίες που επιθυμεί
2. Ιστορικά Στοιχεία
2. Ιστορικά Στοιχεία
2. Ιστορικά Στοιχεία
4. Δυνατότητες PHP
Ανέβασμα αρχείων
Σύνδεση με βάση δεδομένων
Πολλά, πολλά άλλα
Τι έχει το μενού σήμερα???
1. Τι είναι η PHP???
2. Ιστορικά Στοιχεία
4. Δυνατότητες PHP
Τι χρειαζόμαστε?
Web Server
PHP
Database
Text Editor
Web Browser
‘Ολα αυτά σε ένα???
WAMP (Windows Apache MySQL PHP)
Τι έχετε φρέσκο?
1. Βασικές Οδηγίες
PHP Basics
Apache Server
Echo - Print
Η εντολή echo μας δίνει την δυνατότητα να
εκτυπώσουμε ένα αλφαριθμητικό στην σελίδα μας.
Αυτό μπορεί να είναι από ένα απλό String έως μια
μεταβλητή.
echo 5+7; 12
Μεταβλητές
Μεταβλητή είναι η συμβολική ονομασία μιας τιμής, η
οποία μπορεί να αλλάξει κατά το πέρασμα του
χρόνου.
$___MyBooks
$_Ahahouha
Μεταβλητές (2)
Η τιμή αποδίδεται σε μια μεταβλητή με χρήση του
τελεστή = (ίσον).
Παράδειγμα: $var1 = 10;
Δίνω στην μεταβλητή $var1 την τιμή 10.
Hello World!
Παραδείγματος Χάριν (2)
<?php
$var1 = “Hello “;
echo $var1;
$var1 = 5;
echo $var1; int
?>
Hello 5
<?php
$a = “Pikatsu”;
echo ‘Καλώ εσένα, $a!’; Καλώ εσένα, $a!
?>
Ειδικοί Χαρακτήρες
Δουλεύουν μόνο σε “διπλά εισαγωγικά”
1. Βασικές Οδηγίες
2. Μεταβλητές
3. Αλφαριθμητικά - Αριθμοί
4. Τελεστές
Τελεστές
Τελεστές Λειτουργία
+, -, *, /, % Αριθμητικές πράξεις
||, &&, ! Λογικές πράξεις: ή, και, όχι
==, !=, <, >, <=, >=, ===, !== Σύγκριση
++, -- Αύξηση, μείωση
. Ένωση αλφαριθμητικών
=, +=, -=, *=, /=, %=, .= Ανάθεση τιμής
Τελεστές (2)
Κώδικας Αποτέλεσμα
3+5 8
2-9 -7
1/2 0.5
5*7 35
102 % 5 2
true || false true
!true false
true && true true
3<5 true
3 != 3 false
“Hello “ . ‘, world!’ Hello, world!
Παραδείγματα Τελεστών
echo “1” / “2”; 0.5
echo 1 . 2; 12
$a = 5; echo “$a”; 5
$b = 5; echo “$b” - $b; 0
$c = 5; echo ‘$c’ . $c; $c5
$a = 3; echo ++$a; 4
$a = 3; echo $a--; 3
$b = “Hello”; $b .= “there!!”; echo $b;
Hello there!!
Τελεστές Ισότητας
Χρησιμοποιούνται τα ==, !=, ===, !==
Οι τύποι των μεταβλητών μετατρέπονται για να
γίνει σωστά η σύγκριση στην περίπτωση των δύο
πρώτων.
1 == 1 True
1 == 2 False
0 != “hello” True
“1” == 1 True
“1” === 1 False
1. Βασικές Οδηγίες
2. Μεταβλητές
3. Αλφαριθμητικά - Αριθμοί
4. Τελεστές
5. Συγκρίσεις
Εντολή if
if ( συνθήκη 1) { Αν ισχύει η συνθήκη 1
// εντολές εκτελείται αυτό το σώμα
}
else if (συνθήκη 2) { Αν ισχύει η συνθήκη 2
// εντολές εκτελείται αυτό το σώμα
}
… …
else { Αν δεν ισχύει καμία συνθήκη
// εντολές εκτελείται το τελευταίο σώμα
}
Παραδείγματα
<?php
if ( $a == 5) {
echo “Five of a kind!”;
}
else {
echo “Can say if stupid or just trolling!”;
}
?>
Παραδείγματα (2)
<?php
$a = “Justin Bieber”
if ( $a == “Justin Bieber”) {
echo “That’s my girl!”;
}
else {
echo “Bitch please!”;
}
?>
Εντολή switch
switch ( παράσταση ) {
case τιμή1: Αν ισχύει η συνθήκη 1
σώμα 1; εκτελείται το σώμα1
break;
case τιμή2: Αν ισχύει η συνθήκη 2
σώμα 2; εκτελείται το σώμα2
break;
...
default: Αν δεν ισχύει καμία συνθήκη
default σώμα εκτελείται το τελευταίο σώμα
}
Παράδειγμα
<?php
switch ( $day ){
case “Δευτέρα”:
echo “Κάτι έχω”;
break;
case “Τρίτη”:
echo “Δεν αντέχω”;
break;
case “Τετάρτη”:
echo “Πως βαριέμαι”;
break;
…
}
Παράδειγμα (2)
<?php
$day = “Δευτέρα”; ΠΡΟΣΟΧΗ!!!
switch ( $day){
case “Δευτέρα”:
Αν δεν βάλουμε το
echo “Ξέχασες το Break!”; break μετά από κάθε
case “Τρίτη”: σώμα θα συνεχιστεί η
echo “Σε σένα μιλάω!”;
case “Τετάρτη”:
εκτέλεση των εντολών
echo “Είσαι βλακάκος?”; μέχρι το επόμενο
default: break.
echo “Ό,τι να ’ναι είσαι…”;
}
Εντολή for
for ( αρχική συνθήκη; συνθήκη τερματισμού; Βήμα)
{
// σώμα εντολών
}
1. Αρχικοποιούμε μια μεταβλητή.
2. Εκτελείται το σώμα εντολών του βρόχου.
3. Αλλάζουμε την τιμή της μεταβλητής σύμφωνα με το
βήμα που έχουμε.
4. Ελέγχουμε αν ισχύει η συνθήκη τερματισμού
Αν ισχύει σταματάμε τις επαναλήψεις.
Αν όχι τότε συνεχίζουμε τις επαναλήψεις.
Παράδειγμα
<?php
for ($i = 1; $i < 6; $i++){
echo “High-$i!”;
}
High-1!High-2!High-3!High-4!High-5!
Εντολή while
while (συνθήκη) {
// σώμα εντολών
}
1. Αρχικά ελέγχεται η συνθήκη.
Αν ισχύει τότε εκτελείται το σώμα εντολών του βρόχου.
Σε αντίθετη περίπτωση σταματάει η εκτέλεση του βρόχου
2. Ελέγχεται εκ νέου η συνθήκη τερματισμού κτλ
Υπάρχει περίπτωση το σώμα του βρόχου να μην
εκτελεστεί ούτε μια φορά.
Παράδειγμα
<?php
$i = 1;
while ($i < 6) {
echo “High-$i!”;
$i++;
}
High-1!High-2!High-3!High-4!High-5!
Εντολή do…while
do {
// σώμα εντολών
} while (συνθήκη)
Hi-5!
Συναρτήσεις
Οι συναρτήσεις είναι υπό-ρουτίνες που φέρουν σε
πέρας μια συγκεκριμένη εργασία.
Ορίζονται με την λέξη-κλειδί function στην αρχή της
γραμμής.
Στην συνέχεια ακολουθεί το όνομα της συνάρτησης
και μέσα σε παρένθεση τα ορίσματα που παίρνει
αυτή, χωρισμένα με κόμμα (,).
Ορισμός Συναρτήσεων
function multiply( $a , $b ){
$c = $a * $b; ορισμός συνάρτησης
return $c; Όνομα συνάρτησης
Κλήση συνάρτησης
Ορισμός Συναρτήσεων (2)
function multiply( $a , $b ){ Ορίσματα
$c = $a * $b;
return $c;
} Πρώτο όρισμα Δεύτερο όρισμα
Παραδείγμα (2)
function choose($a){
if ($a == “1”){
return “Pikachu”;
}
else {
return “Καμπαμαρού”;
}
}
echo choose(3);
Προαιρετικά Ορίσματα
Μπορούμε αν θέλουμε κάποια από τα ορίσματα
μιας συνάρτησης να τα θέσουμε κατά τον ορισμό
της.
Τα προαιρετικά ορίσματα πρέπει να είναι τα
τελευταία σε σειρά.
Μπορούν να είναι όσα θέλουμε σε αριθμό.
Παράδειγμα
function play( $title , $band = “Mazoo and the Zoo”){
$str = “I am playing “;
$str .= $title . “ by ” . $band;
return $str;
} Προαιρετικό όρισμα
Αν είχαμε όμως
function play( $title = “Η Αρκούδα” , $band )
στον ορισμό θα ήταν λάθος.
Παράδειγμα
function play
( $title = “Careless Whisper”, $band = “George Michael”){
$str = “I am playing “;
$str .= $title . “ by ” . $band;
return $str; Όλα είναι προαιρετικά ορίσματα
}
echo play();
Θα πιείτε κάτι?
1. Βασικές Οδηγίες
2. Μεταβλητές
3. Αλφαριθμητικά - Αριθμοί
4. Τελεστές
5. Συγκρίσεις
6. Βρόχοι επανάληψης
7. Συναρτήσεις
8. Χειρισμός Φορμών
Χειρισμός Δεδομένων Φόρμας
Για να πάρουμε δεδομένα χρησιμοποιούμε δύο
μεθόδους:
HTTP GET
Μεταβλητή $_GET
$_GET[ όνομα παραμέτρου ]
HTTP POST
Μεταβλητή $_POST
$_POST[ όνομα παραμέτρου ]
Παράδειγμα
test.html
Booleans
Οι μεταβλητές τύπου boolean παίρνουν δύο τιμές:
1. true (1)
2. false (0)
var1: 1
var2: (???????)
<?php
$lyke = 1;
echo “Λύκε, Λύκε είσαι εδώ? ” . isset($lyke);
?>
<?php
$me = “ΕΓΩ!!!!!”;
unset ($me);
echo “Ποιος είναι ο καλύτερος στην PHP??” . $me;
?>
Πίνακες
Ο πίνακας είναι τύπος δεδομένων που μπορεί να
αποθηκεύσει περισσότερες από μια τιμές.
Αλφαριθμητικό.
Boolean.
Ορισμός Πίνακα
Ένας πίνακας ορίζεται με την εντολή array() και τις
τιμές χωρισμένες με κόμμα (,)
Σε αυτή τη περίπτωση έχουμε δείκτες-κλειδιά
ακέραιους (0, 1, 2 κτλ).
<?php
$array1 = array(2, “ good to be ”, true);
echo $array1[0] . $array1[1] . $array1[2];
echo $array1;
?>
2 good to be 1
array
Ορισμός Πίνακα (2)
Στην περίπτωση των labels έχουμε
<?php
$array1 = array(“Babis” => “2 be” ,
“Soulara” =>“ or not 2 be”);
echo $array1[“Babis”] . $array1[“Soulara”];
?>
2 be or not 2 be
9 to 5
Διαγραφή από Πίνακα
Η διαγραφή ενός στοιχείου πίνακα γίνεται με την
εντολή unset.
unset $array1[0];
Παράδειγμα
<?php
$array1 = array(“I”, “am”, “bad”, “ass”)
echo “$array1[0] $array1[1] $array1[2] $array1[3] \n”;
unset $array1[2];
echo “$array1[0] $array1[1] $array1[2] $array1[3]”;
?>
I am bad ass
I am ass
Συναρτήσεις Πινάκων
print_r(): εμφανίζει τα περιεχόμενα ενός πίνακα.
Παίρνει σαν όρισμα την μεταβλητή – πίνακα.
Συνδυάζεται με πολύ καλά με την <pre></pre>.
<?php
$array1 = array(1,2,3); Array([0] => 1 , [1]=>2 , [2]=>3)
print_r($array1)
?> Array
<pre> (
<?php print_r($array1) [0] => 1 ,
[1] => 2 ,
?>
[2] => 3
</pre>
)
Σύνταξη
foreach ( $array as $value) {
// σώμα εντολών
}
όπου η μεταβλητή $value περιέχει τις τιμές του πίνακα.
Batman is AWESOME!!
Robin is gay!!
Διαχωρισμός σε Αρχεία
Η PHP μας δίνει την πολύ χρήσιμη δυνατότητα να
φορτώσουμε τον κώδικά ενός αρχείου σε ένα άλλο αρχείο.
Εντολή require
Η εντολή require είναι παρόμοια σε χρησιμότητα με
την include. Συντάσσεται ακρίβως το ίδιο.
require ‘library.php’
Μικρές Αγγελίες
1. Booleans – Null (κενό)
2. Πίνακες
3. Εντολή foreach
4. Διαχωρισμός σε Αρχεία
5. Συναρτήσεις Αρχείων
Συνάρτηση opendir()
Συνάρτηση opendir( όνομα φακέλου )
Σαν όρισμα βάζουμε απλά το όνομα του φακέλου αν
είναι μέσα στο ίδιο φάκελο με το αρχείο μας
Αλλίως βάζουμε το path (σχετικό ή απόλυτο)
Το αποτέλεσμα
Επιστρέφει ένα αντικείμενο τύπου φάκελος αρχείων
Επιστρέφει false αν δεν υπάρχει ο φάκελος
Χρησιμοποιείται από άλλες συναρτήσεις, που θα
δούμε παρακάτω
Συνάρτηση readdir()
Συνάρτηση readdir()
Δέχεταισαν όρισμα το αντικείμενο που επιστρέφει η
opendir().
Το αποτέλεσμα
Επιστρέφει το επόμενο αρχείο μέσα στον φάκελο που
επιλέξαμε.
Επιστρέφει false αν αποτύχει να επιστρέψει αρχείο.
Συνάρτηση closedir()
Συνάρτηση closedir()
Δέχεται σαν όρισμα το αντικείμενο που επιστρέφει η
opendir().
Το αποτέλεσμα
Κλείνειτον φάκελο που επιλέξαμε με την opendir()
όταν τελειώσουμε τις εργασίες μας με αυτόν.
Επιστρέφει false αν αποτύχει να κλείσει τον φάκελο.
Συναρτήσεις Αρχείων
Συνάρτηση file_get_contents()
Δέχεται σαν όρισμα ένα αντικείμενο τύπου αρχείο που
επιστρέφει η readdir() ή ένα link σε αρχείο (απόλυτο ή σχετικό).
Επιστρέφει τα περιεχόμενα του αρχείου
Επιστρέφει false αν αποτύχει να διαβάσει το αρχείο.
Συνάρτηση file_put_contents()
Δέχεται σαν όρισμα ένα αντικείμενο τύπου αρχείο που
επιστρέφει η readdir() και τα περιεχόμενα που θέλουμε να του
δώσουμε.
Αποθηκεύει τα περιεχόμενα στο αρχείο και σβήνει τα
προηγούμενα.
Επιστρέφει false αν αποτύχει να διαβάσει το αρχείο.
Συναρτήσεις Αρχείων (2)
Άλλες χρήσιμες συναρτήσεις
fopen()
fclose()
fwrite()
fget()
http://gr.php.net/manual/en/ref.filesystem.php
Αναγγελίες Γάμων
1. Booleans – Null (κενό)
2. Πίνακες
3. Εντολή foreach
4. Διαχωρισμός σε Αρχεία
5. Συναρτήσεις Αρχείων
6.
Διαχείρηση Αρχείων
Ανέβασμα Αρχείων
Τα αρχεία στέλνονται στον server με αίτημα POST.
Αποθηκεύονται προσωρινά στην μνήμη όσο τρέχει το
πρόγραμμά μας.
Πρέπει να τα αποθηκεύσουμε αλλιώς χάνονται με το
πέρας της εκτέλεσης.
Μεταβλητή $_FILES
Η μεταβλητή $_FILES περιέχει όλα τα αρχεία που
ανέβασε ο χρήστης.
<?php
$destination = ‘C:\Uploads\’
if( !empty( $_FILES ) ) {
$destination .= $_FILES[ ‘foo’ ][ ‘name’ ];
$filename = $_FILES[ ‘foo’ ][ ‘tmp_name’ ];
move_uploaded_file( $filename, $destination );
}
?>
Επικήδειοι
1. Booleans – Null (κενό)
2. Πίνακες
3. Εντολή foreach
4. Διαχωρισμός σε Αρχεία
5. Συναρτήσεις Αρχείων
6.
Διαχείρηση Αρχείων
7.
Headers (Κεφαλίδες)
Συνάρτηση header()
H συνάρτηση header() παίρνει ως όρισμα ένα String
και το στέλνει στην κεφαλίδα της απάντησης.
Πρέπει να τρέξει πριν από oποιοδήποτε output
Είτε είναι html.
Είτε space, tab ή enter.
<html>
<?php
header( 'Location: http://www.apisti.com/‘ );
?>
Χρήσιμα Headers
header( 'Location: http://www.apisti.com/‘ )
Κάνει redirect σε μια διεύθυνση.
Η διεύθυνση πρέπει να είναι απόλυτη.
<meta
http-equiv=“Content-type”
content=“text/html; charset=utf-8”
/>