2. Το Περιβάλλον Εργασίας
Σελίδες δυναμικού περιεχομένου για τον ιστό είναι οι σελίδες που το κείμενο που
περιέχουν δεν είναι στατικό αλλά αλλάζει ανάλογα με τα κλικ του χρήστη πάνω σε
διάφορα λινκς. Το περιεχόμενο των σελίδων αυτών συνήθως περιέχεται μέσα σε μια
βάση δεδομένων. Ενώ οι στατικές σελίδες μπορούν να φτιαχτούν με html οι
δυναμικές σελίδες απαιτούν μια γλώσσα προγραμματισμού για τον ιστό π.χ. php, jsp,
jsf κ.λπ. για να λειτουργήσουν.
Το λογισμικό που απαιτείται για να φτιάξουμε και να ελέγξουμε εφαρμογές δυναμικού
περιεχομένου για τον ιστό είναι:
ένας web-server (π.χ. Apache, Apache Tomcat),
μια γλώσσα προγραμματισμού για διαχείριση δυναμικού περιεχομένου (π.χ. php,
java/jsp),
μια βάση δεδομένων για να κρατά το δυναμικό περιεχόμενο (π.χ. MySQL),
(προαιρετικά) εργαλεία διαχείρισης της βάση δεδομένων όπως π.χ.
phpmyadmin.
Να αναφέρουμε ότι όλο το απαιτούμενο λογισμικό πρόκειται για δωρεάν λογισμικό, το
λεγόμενο Λογισμικό Ανοιχτού Κώδικα.
Για την εγκατάσταση της υποδομής που χρειάζεται για να φτιάξουμε εφαρμογές για
τον ιστό, υπάρχουν διάφορα ολοκληρωμένα λογισμικά όπως το xampp, wamp κ.λπ.
τα οποία εγκαθιστούν μονομιάς ό,τι απαιτείται για να δημιουργήσει και να τεστάρει
κανείς ιστοσελίδες δυναμικού περιεχομένου.
3. XAMPP
Το XAMPP είναι ένα πακέτο προγραμμάτων ελεύθερου
λογισμικού, λογισμικού ανοικτού κώδικα και ανεξαρτήτου
πλατφόρμας το οποίο περιέχει τον
εξυπηρετητή ιστοσελίδων http Apache,
την βάση δεδομένων MySQL και
ένα διερμηνέα για κώδικα γραμμένο σε γλώσσες
προγραμματισμού PHP και Perl.
Το XAMPP είναι ακρωνύμιο και αναφέρεται στα παρακάτω αρχικά:
X (αναφέρεται στο «cross-platform» που σημαίνει λογισμικό ανεξάρτητο πλατφόρμας, τρέχει
σε Microsoft Windows, Linux, Solaris, and Mac OS X).
Apache HTTP εξυπηρετητής.
MySQL.
PHP.
Perl.
5. Ξεκινώντας με την PHP – Τι θα
μάθουμε;
Να καταλάβουμε τι είναι η PHP και πώς
δουλεύουν τα PHP scripts
Τι χρειάζεται για να ξεκινήσουμε με την
PHP
Να δημιουργήσουμε και να τρέξουμε ένα
απλό script
6. HTML – PHP
Η HTML χρησιμοποιεί εντολές που ονομάζονται
HTML tags δίνοντας εντολές στους Web
browsers για το πώς να εμφανίζουν την κάθε
ιστοσελίδα.
Η PHP είναι μια γλώσσα προγραμματισμού η
οποία επεκτείνει τις δυνατότητες της HTML
δίνοντας τη δυνατότητα να δημιουργήσουμε
δυναμικές ιστοσελίδες.
7. Πλεονεκτήματα της PHP
Ευκολία στη χρήση
Ανοιχτού κώδικα (Open Source)
Υποστήριξη πολλαπλών πλατφόρμων
Απόδοση
Υποστήριξη Βάσεων Δεδομένων
9. Ξεκινώντας με την PHP
Για να δημιουργήσουμε και να
δημοσιεύσουμε ένα PHP script
χρειαζόμαστε:
Ένα web server με υποστήριξη PHP
Ένα υπολογιστή/πελάτη με ένα απλό text
editor και σύνδεση στο Internet
Λογισμικό FTP
10. Βασικά Βήματα
Τα βασικά βήματα για τη δημιουργία και
την δημοσίευση PHP σελίδων είναι τα
εξής:
Δημιουργία του PHP script και αποθήκευση στον
τοπικό δίσκο
Χρήση λογισμικού FTP για την αποθήκευση του
αρχείου στον server
Πρόσβαση στο αρχείο μέσω ενός web browser.
11. Δημιουργία PHP script
Μπορούμε να χρησιμοποιήσουμε
διάφορους editors για τη δημιουργία PHP
scripts
Τα PHP script ξεκινάνε με <?php και τελειώνουν με ?>
Μεταξύ των δυο tags υπάρχει μια απλή εντολή
12. Αν υπάρχει συντακτικό λάθος
Έστω ότι κάνουμε το ακόλουθο
συντακτικό λάθος:
<?php
print ( “A simple initial script);
?>
13. Σχόλια στην PHP
Τα σχόλια μας βοηθούν σε μελλοντική
επεξεργασία.
Οι γραμμές των σχολίων αγνοούνται όταν
εκτελούνται τα script και δεν επιβραδύνουν την
ταχύτητα εκτέλεσης.
Τα σχόλια έχουν δυο βασικούς σκοπούς:
Περιγράφουν την λειτουργία και το σκοπό του script
Περιγράφουν συγκεκριμένα σημεία του κώδικα που είναι
περίπλοκα
14. Χρήση σχολίων
Χρήση //
<?php
// This is a comment
?>
Μπορεί επίσης να τοποθετηθεί στην ίδια
γραμμή με μια έκφραση:
<?php
print ("A simple initial script"); //Output a line
?>
15. Εναλλακτικοί τρόποι σχολίων
Η PHP παρέχει και δυο εναλλακτικούς τρόπους
σχολιασμού.
<?php
phpinfo(); # This is a built-in function
?>
Σχολιασμός πολλαπλών γραμμών.
<?php
/*
A script that gets information about the
PHP version being used.
*/
phpinfo();
?>
16. Χρήση PHP Μεταβλητών
Οι Μεταβλητές χρησιμοποιούνται για να
αποθηκεύονται και να προσπελάζονται δεδομένα
στη μνήμη του υπολογιστή.
Το όνομα τις μεταβλητής χρησιμοποιείται μέσα
στο script για να αναφερόμαστε στα δεδομένα
του.
$cost = 4.25;
$months = 12;
Name of variable Variables new value
17. Θέτουμε τιμές στις Μεταβλητές
Θέτουμε τιμές στις μεταβλητές:
$days = 3;
$newdays = 100;
$days = $newdays;
Στο τέλος αυτών των τριών γραμμών η
$days και $newdays έχουν και οι δύο την
τιμή 100.
18. Επιλογή Ονομάτων Μεταβλητών
Μπορούμε να επιλέξουμε οποιονδήποτε
χαρακτήρα για το όνομα των μεταβλητών στην
PHP, αλλά πρέπει να ισχύουν τα εξής:
Χρήση του δολαρίου ($) ως πρώτο χαρακτήρα
Χρήση γράμματος ή underscore (_) ως δεύτερο
χαρακτήρα
Σημείωση: Προσπαθήστε να διαλέγετε ονόματα
που να περιγράφουν τη δουλειά που κάνει η
μεταβλητή. Π.χ. η χρήση της $counter είναι πιο
περιγραφική από την $c ή $ctr.
19. Χρήση μεταβλητών με την print
Για να εμφανίσουμε τα περιεχόμενα της
μεταβλητής $x, γράφουμε την ακόλουθη εντολή:
echo ("$x");
Το παρακάτω θα εμφανίσει “Ο Νίκος είναι 6
ετών”.
$age=6;
echo ("Ο Νίκος είναι $age ετών.");
ή
print ("Ο Νίκος είναι $age ετών.");
21. Αριθμητικοί τελεστές
Μπορούμε να χρησιμοποιήσουμε
αριθμητικούς τελεστές όπως το (+) και το
(-) για να κάνουμε αριθμητικές πράξεις.
Παράδειγμα
<?php
$x = 12;
$y = 14;
$z = $x + $y;
echo ("The total number of fruit is $z");
?>
22. Άσκηση 1
Βρείτε τα λάθη στο παρακάτω PHP
πρόγραμμα:
<? php
print ‘How are you?’;
print ‘I’m fine.’;
??>
23. Λύση Άσκησης 1
Η ετικέτα για την δήλωση της αρχής του
προγράμματος PHP θα έπρεπε να είναι <?php,
χωρίς κανένα κενό διάστημα (όπως συμβαίνει
εδώ).
Όσον αφορά τα αλφαριθμητικά στις print
εντολές θα πρέπει να περικλείονται σε διπλά
εισαγωγικά και παρενθέσεις.
Η ετικέτα για τη δήλωση του τέλους του
προγράμματος PHP θα έπρεπε να είναι ?> και
όχι ??>.
24. Άσκηση 2
Γράψτε ένα πρόγραμμα που θα
υπολογίζει το συνολικό κόστος του
παρακάτω γεύματος: 2 γύροι σε λαδόπιτα
(2,5€ έκαστος), μια μερίδα πατάτες (2€) και δύο
αναψυκτικά (1€ το καθένα). Ο ΦΠΑ είναι 19%, ενώ το
ποσοστό του φιλοδωρήματος είναι 16%.
26. Άσκηση 3
Μεταβάλλεται κατάλληλα το προηγούμενο
πρόγραμμα έτσι ώστε να εκτυπώνεται
ένας συνολικός λογαριασμός. Για κάθε
αντικείμενο του γεύματος θα εκτυπώνεται
η τιμή τεμαχίου, η ποσότητα και το
συνολικό κόστος (χωρίς καμιά
προσαύξηση, με τον ΦΠΑ και με το
φιλοδώρημα).
28. Άσκηση 4
Γράψτε ένα πρόγραμμα που θα
αποθηκεύει το όνομά σας στην μεταβλητή
$first_name και το επίθετό σας στην
μεταβλητή $last_name. Αμέσως μετά, το
πρόγραμμα θα εκτυπώνει το πλήρες
ονοματεπώνυμο, με το μήκος του.
30. Άσκηση 5
Γράψτε ένα πρόγραμμα που θα
χρησιμοποιεί τον τελεστή αύξησης ++
(π.χ. i++, αυξάνεται το i κατά 1) και τον
τελεστή ανάθεσης *= (π.χ. i*=3,
πολλαπλασιάζεται το i επί 3, οπότε η νέα
τιμή του i είναι η παλιά του επί 3) για την
εκτύπωση των αριθμών από το 1 ως το 5
και των αντίστοιχων δυνάμεων του 2 (από
21
ως και 25)
.
35. Άσκηση 8
Χρησιμοποιήστε την εντολή while() για να
εμφανίσετε τις θερμοκρασίες σε βαθμούς
Celcius και Fahrenheit από τους -50 ως και
τους 50 βαθμούς Fahrenheit (ανά 5).
Σημείωση: Για την μετατροπή από βαθμούς
Fahrenheit θα πρέπει να αφαιρέσουμε το 32
από την αρχική μας θερμοκρασία, να
πολλαπλασιάσουμε με το 5 και να διαιρέσουμε
με το 9.
39. Πίνακες – Arrays (1)
//Πίνακας με όνομα $vegetables και με αλφαριθμητικά κλειδιά
$vegetables[‘corn’] = ‘yellow’;
$vegetables[‘beet’] = ‘red’;
$vegetables[‘carrot’] = ‘orange’;
//Πίνακας με όνομα $dinner και με αριθμητικά κλειδιά
$dinner[0] = ‘Sweet corn and Asparagus’;
$dinner[1] = ‘Lemon Chicken’;
$dinner[2] = ‘Braised Bamboo Fungus’;
//Πίνακας με όνομα $computers και με αλφαριθμητικά και αριθμητικά
κλειδιά
$computers[‘trs-80’] = ‘Radio Shack’;
$computers[2600] = ‘Atari’;
$computers[‘Adam’] = ‘Coleco’;
41. Λύση Άσκησης 10 (1)
Σύμφωνα με τις τελευταίες στατιστικές (απογραφή του 2000), οι 10 μεγαλύτερες
σε πληθυσμό πόλεις των Η.Π.Α. είναι οι παρακάτω:
Πόλη Πολιτεία (αρχικά, στα αγγλικά) Πληθυσμός
Νέα Υόρκη (New York) Νέα Υόρκη (NY) 8.008.278
Λος Άντζελες (Los Angeles) Καλιφόρνια (CA) 3.694.820
Σικάγο (Chicago) Ιλινόϊς (IL) 2.896.016
Χιούστον (Houston) Τέξας (TX) 1.953.631
Φιλαδέλφεια (Philadelphia) Πενσιλβάνια (PA) 1.517.550
Φοίνιξ (Phoenix) Αριζόνα (AZ) 1.321.045
Σαν Ντιέγκο (San Diego) Καλιφόρνια (CA) 1.223.400
Ντάλας (Dallas) Τέξας (TX) 1.188.580
Σαν Αντόνιο (San Antonio) Τέξας (TX) 1.144.646
Ντιτρόιτ (Detroit) Μισιγκαν (MI) 951.270
42. Λύση Άσκησης 10 (2)
Γράψτε ένα πρόγραμμα σε PHP που θα ορίζει έναν πίνακα που θα περιέχει αυτά τα στοιχεία και
θα τον εκτυπώνει σε μορφή HTML, μαζί με το συνολικό πληθυσμό των 10 πόλεων.
<html>
<?php
$population = array(“New York, NY” => 8008278, “Los Angeles, CA” => 3694820,
“Chicago, IL” => 2896016, “Houston, TX” => 1953631, “Philadelphia, PA” => 1517550,
“Phoenix, AZ” => 1321045, “San Diego, CA” => 1223400, “Dallas, TX” => 1188580, “San
Antonio, TX” => 1144646, “Detroit, MI” => 951270);
$total_population = 0;
print “<table><tr><th>City</th><th>Population</th></tr>n”;
foreach ($population as $city => $people)
{
$ total_population += $people;
print “<tr><td>$city</td><td>$people</td></tr>n”;
}
print “<tr><td>Total</td><td>$total_population</td></tr>n”;
print “</table>n”
?>
</html>
43. Συναρτήσεις ή Μέθοδοι (1)
Είναι ένα μικρό σύνολο εντολών που μπορούμε να τις χρησιμοποιήσουμε ως μία μόνο εντολή, σε ένα ή και περισσότερα
σημεία του προγράμματός μας. Οι συναρτήσεις είναι:
οι built-in, δηλαδή έχουν κατασκευαστεί από τους ανθρώπους που έχουν αναπτύξει την php,
δικές μας συναρτήσεις.
ΠΑΡΑΔΕΙΓΜΑ (1)
<?php
page_header();
print "Καλωσόρισες χρήστη Δώρα!";
page_footer();
function page_header()
{
print '<html><head><title>Καλωσόρισες στο site μου</title></head>';
print '<body bgcolor=rgb(0,0,0)>';
}
function page_footer()
{
print '<hr>Σ' ευχαριστώ για την επίσκεψή σου... Σε περιμένω ξανά...';
print '</body></html>';
}
?>
Συνάρτηση χρήστη χωρίς
ορίσματα
Συνάρτηση χρήστη χωρίς
ορίσματα
built-in
συνάρτηση
με 3
ορίσματα
44. Συναρτήσεις ή Μέθοδοι (2)
ΠΑΡΑΔΕΙΓΜΑ (2)
<?php
page_header(0, 0, 255);
print "Καλωσόρισες χρήστη Δώρα!";
page_footer();
function page_header($r, $g, $b)
{
print '<html><head><title>Καλωσόρισες στο site μου</title></head>';
print '<body bgcolor=rgb($r,$g,$b)>';
}
function page_footer()
{
print '<hr>Σ' ευχαριστώ για την επίσκεψή σου... Σε περιμένω ξανά...';
print '</body></html>';
}
?>
Συνάρτηση χρήστη με 3
ορίσματα (ή παραμέτρους)
Συνάρτηση
χρήστη
χωρίς
ορίσματα
built-in συνάρτηση με
3 ορίσματα
45. Συναρτήσεις ή Μέθοδοι (3)
ΠΑΡΑΔΕΙΓΜΑ (3)
<?php
page_header('Καλωσόρισες στο υπέροχο site μου!!!‘,0, 0, 255);
print "Καλωσόρισες χρήστη Δώρα!";
page_footer();
function page_header($ht,$r, $g, $b)
{
print '<html><head><title>’.$ht.’</title></head>';
print '<body bgcolor=rgb($r,$g,$b)>';
}
function page_footer()
{
print '<hr>Σ' ευχαριστώ για την επίσκεψή σου... Σε περιμένω ξανά...';
print '</body></html>';
}
?>
Συνάρτηση χρήστη με 4
ορίσματα (ή παραμέτρους)
Συνάρτηση
χρήστη
χωρίς
ορίσματα
built-in συνάρτηση με
3 ορίσματα
46. Συναρτήσεις ή Μέθοδοι (4)
ΠΑΡΑΔΕΙΓΜΑ (4)
<?php
$total = restaurant_check(15.22, 8.25, 15);
print 'Έχω 20 ευρώ, οφείλω για το γεύμα μου ' . round($total,2) . ' ευρώ, οπότε θα πληρώσω με ... ';
if ($total > 20)
print "κάρτα.";
else
print "μετρητά.";
function restaurant_check($meal, $tax, $tip)
{
$tax_amount = $meal * ($tax/100);
$tip_amount = $meal * ($tip/100);
$total_amount = $meal + $tax_amount + $tip_amount;
return $total_amount;
}
?>
Συνάρτηση που
επιστρέφει 1 τιμή
47. Συναρτήσεις ή Μέθοδοι (5)
ΠΑΡΑΔΕΙΓΜΑ (5)
<?php
$totals = restaurant_check(15.22, 8.25, 15);
print 'Έχω 20 ευρώ, οφείλω για το γεύμα μου ' . round($totals[1],2) . ' ευρώ, οπότε θα πληρώσω με ... ';
if ($totals[1] > 20)
print "κάρτα.<br>";
else
print "μετρητά.<br>";
print "Το φιλοδώρημα μου κοστίζει " . ($totals[1]-$totals[0]);
function restaurant_check($meal, $tax, $tip)
{
$tax_amount = $meal * ($tax/100);
$tip_amount = $meal * ($tip/100);
$total_notip = $meal + $tax_amount;
$total_tip = $meal + $tax_amount + $tip_amount;
return array($total_notip, $total_tip);
}
?>
Συνάρτηση που
επιστρέφει 2
τιμές
48. Κατασκευάζοντας Φόρμες Ιστοχώρου (1)
ΠΑΡΑΔΕΙΓΜΑ (1)
<form method="post" action="
<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);
#$_SERVER: Ο πίνακας αυτός περιέχει μια σειρά πληροφοριών σχετικά με τον server και
# την αίτηση που είναι τη διαδεδομένη στιγμή υπό επεξεργασία.
#PHP_SELF: Περιέχει την πλήρη τοποθεσία του προγράμματος.
?>
">
Name: <input type= "text" name= "my_name">
<input type= "submit" name= "submit">
</form>
<?php
print "<br>";
print "$_SERVER[SERVER_NAME]";
#SERVER_NAME: Το όνομα του site στο οποίο εκτελείται ο interpreter της PHP.
print "<br>";
print "$_SERVER[DOCUMENT_ROOT]";
#DOCUMENT_ROOT: Ο φάκελος (στον υπολογισή του server) στον οποίο βρίσκονται
# όλα τα αρχεία του site στα οποία έχουμε πρόσβαση.
print "<br>";
49. Κατασκευάζοντας Φόρμες Ιστοχώρου (1)
… συνέχεια
ΠΑΡΑΔΕΙΓΜΑ (1 … συνέχεια)
print "$_SERVER[REMOTE_ADDR]";
#REMOTE_ADDR: Η διεύθυνση IP του χρήστη που κάνει την αίτηση στον web server.
print "<br>";
print "$_SERVER[HTTP_USER_AGENT]";
#HTTP_USER_AGENT: Ο web browser στον οποίο εμφανίζεται η ιστοσελίδα που περιέχει τη
φόρμα.
print "<br>";
print "<br>";
print "<br>";
print "Υου are entered: ";
if (array_key_exists('my_name', $_POST))
echo $_POST['my_name'];
?>
51. Κατασκευάζοντας Φόρμες Ιστοχώρου (3)
Άσκηση 11
Επεκτείνετε το παράδειγμα (2) ώστε εκτός από το name, επιπλέον
απαιτούμενα στοιχεία να είναι το Last_name, το email, το address και το
phone_number.
Άσκηση 12
Επεκτείνετε την άσκηση 11 ώστε το phone_number να δέχεται
αποκλειστικά 10 ψηφία.
57. Σύνδεση PHP με MySQL (1)
Για να δημιουργήσετε μία βάση δεδομένων, πρέπει πρώτα να συνδεθείτε με το
διακομιστή της MySQL. Αυτό γίνεται με την ακόλουθη εντολή:
mysqli_connect(servername,username,password);
όπου servername αντιστοιχεί στη διεύθυνση του διακομιστή,
username το όνομα του χρήστη που έχει δικαίωμα πρόσβασης σε αυτόν
και password ο μυστικός κωδικός του χρήστη.
Π.χ, αν η MySQL έχει εγκατασταθεί τοπικά στον υπολογιστή σας και ο
administrator της MySQL σας έχει ανοίξει λογαριασμό με username "username"
και password "password" τότε ο ακόλουθος κώδικας PHP σας συνδέει με την
MySQL.
Στην περίπτωση που η σύνδεση αποτύχει, τότε η PHP μέσω της εντολής εντολής
mysqli_error() επιστρέφει ένα μήνυμα λάθους.
58. Σύνδεση PHP με MySQL (2)
<html>
<body>
<?php
$con = mysqli_connect("localhost","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
?>
</body>
</html>
The die() function
prints a message and
exits the current
script.
This function is an
alias of the exit()
function.
59. Δημιουργία Βάσης Δεδομένων
Αφού έχετε συνδεθεί με το διακομιστή της βάσης μπορείτε να δημιουργήσετε μία
νέα βάση δεδομένων με την εντολή:
mysqli_query("CREATE DATABASE my_db",$con);
Έτσι ο κώδικας σύνδεσης και δημιουργίας νέας βάσης γίνεται:
<html><body>
<?php
$con = mysqli_connect("localhost","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysqli_query("CREATE DATABASE my_db",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: ".mysql_error();
}
mysqli_close($con); //Τερματισμός σύνδεσης με τη ΒΔ
?>
</body></html>
Η εντολή mysql_query() της php
είναι η πιο σημαντική από τις
εντολές που αφορούν στην
επικοινωνία με τη MySQL και
χρησιμοποιείται όποτε θέλουμε να
κάνουμε μία ερώτηση στη βάση.
Ως είσοδο δέχεται ένα SQL query
και στην έξοδο είτε επιστρέφει το
αποτέλεσμα του query σε ένα
πίνακα, είτε επιστρέφει ότι
εκτελέστηκε επιτυχώς.
60. Δημιουργία Πίνακα
// sql to create table
$sql = "CREATE TABLE phone_book (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
lastname VARCHAR(30) NOT NULL,
firstname VARCHAR(30) NOT NULL,
address VARCHAR(50),
phone VARCHAR(10) NOT NULL
)";
if (mysqli_query($conn, $sql))
{
echo "Table phone_book created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($conn);
}
61. Εισαγωγή Δεδομένων
Η εισαγωγή δεδομένων σε έναν πίνακα που έχουμε ήδη δημιουργήσει γίνεται με το
ακόλουθο query της SQL:
INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2,... ,valueN )
// insert data in table
$sql = "INSERT INTO phone_book (lastName, firstName, adress, phone)
VALUES ('Παναγιώτου', 'Κώστας', 'Κ. Παλαμά 34, Καβάλα', '26510 11111')";
if (mysql_query($conn, $sql))
{
echo "Insert Data in table phone_book has done successfully";
}
else
{
echo "Error inserting data: " . mysqli_error($conn);
}
Εισάγετε 5 διαφορετικές εγγραφές.
62. Εξαγωγή Δεδομένων
// select data from table
$sql = "SELECT * FROM phone_book";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
echo "<table><tr><th>ID</th><th>Name</th></tr>";
// output data of each row
while($row = $result->fetch_assoc())
{
echo<tr><td>".$row["id"]."</td><td>".$row["firstname"]."".$row["lastname"]."</td></tr>";
}
echo "</table>";
}
else
{
echo "0 results";
}
63. Δημιουργία Νέας ΒΔ με το όνομα
menu_db
<html>
<body>
<?php
$con = mysql_connect("localhost","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE menu_db",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: ".mysql_error();
}
mysql_close($con);
?>
</body>
</html>
64. Δημιουργία Πίνακα με το όνομα Dishes
και πεδία: dish_id, dish_name, price, is_spicy
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "menu_db";
// Create connection
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
// sql to create table
$sql = "CREATE TABLE DISHES (
dish_id INT(6) UNSIGNED
AUTO_INCREMENT PRIMARY KEY,
dish_name VARCHAR(50) NOT NULL,
price DECIMAL(4,2) NOT NULL,
is_spicy INT NOT NULL
)";
if (mysqli_query($conn, $sql))
{
echo "Table
DISHES created successfully";
}
else
{
echo "Error creating table: " .
mysqli_error($conn);
}
mysqli_close($conn);
?>
65. Εισαγωγή Τιμών (1)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "menu_db";
// Create connection
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " .
mysqli_connect_error());
}
// insert data 1 in table
$sql = "INSERT INTO DISHES (dish_name, price,
is_spicy)
VALUES ('Σπαγγέτι Καρμπονάρα', '4.56', '0')";
if (mysqli_query($conn, $sql))
{
echo "Insert Data 1 in table DISHES has
done successfully";
}
else
{
echo "Error inserting data 1: " .
mysqli_error($conn);
}
// insert data 2 in table
$sql = "INSERT INTO DISHES
(dish_name, price, is_spicy)
VALUES ('Σπαγγέτι Amarticiana',
'5.60', '1')";
if (mysqli_query($conn, $sql))
{
echo "Insert Data 2 in table
DISHES has done successfully";
}
else
{
echo "Error inserting data 2:
" . mysqli_error($conn);
}
// insert data 3 in table
$sql = "INSERT INTO DISHES
(dish_name, price, is_spicy)
VALUES ('Ψητό Κοτόπουλο με
Μπαχαρικά', '5.95', '1')";
if (mysqli_query($conn, $sql))
{
echo "Insert Data 3 in table
DISHES has done successfully";
}
else
{
echo "Error inserting data 3:
" . mysqli_error($conn);
}
66. Εισαγωγή Τιμών (2)
// insert data 4 in table
$sql = "INSERT INTO DISHES (dish_name, price, is_spicy) VALUES ('Πατσίτσιο', '3.70', '0')";
if (mysqli_query($conn, $sql))
{
echo "Insert Data 4 in table DISHES has done successfully";
}
else
{
echo "Error inserting data 4: " . mysqli_error($conn);
}
// insert data 5 in table
$sql = "INSERT INTO DISHES (dish_name, price, is_spicy) VALUES ('Γιαουρτλού', '6.50', '1')";
if (mysqli_query($conn, $sql))
{
echo "Insert Data 5 in table DISHES has done successfully";
}
else
{
echo "Error inserting data 5: " . mysqli_error($conn);
}
// insert data 6 in table
$sql = "INSERT INTO DISHES (dish_name, price, is_spicy) VALUES ('Πίτσα Μαργαρίτα', '3.50', '0')";
if (mysqli_query($conn, $sql))
{
echo "Insert Data 6 in table DISHES has done successfully";
}
else
{
echo "Error inserting data 6: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
67. Εξαγωγή Τιμών<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "menu_db";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// select data from table
$sql = "SELECT * FROM DISHES ORDER BY price";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
echo "<table><tr><th>ID</th><th>Dish Name</th><th>Price</th><th>Is Spicy</th></tr>";
// output data of each row
while($row = $result->fetch_assoc())
{
echo "<tr><td>".$row["dish_id"]."</td><td>".$row["dish_name"]."</td><td>".
$row["price"]."</td><td>".$row["is_spicy"]."</td></tr>";
}
echo "</table>";
}
else
{
echo "0 results";
}
mysqli_close($conn);
?>
68. κι άλλη Εξαγωγή Τιμών (1)
Γράψτε ένα πρόγραμμα σε PHP που θα εμφανίζει μια φόρμα
στην οποία θα πρέπει να εισάγουμε την τιμή ενός φαγητού.
Όταν ο χρήστης αποστείλει τα δεδομένα της φόρμας, θα
εμφανίζονται όλα τα φαγητά (όνομα και τιμή) των οποίων η
τιμή είναι μικρότερη από την τιμή που είσάγαμε στην φόρμα.
70. κι άλλη Εξαγωγή Τιμών (3)
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// select data from table
$sql = "SELECT * FROM DISHES WHERE price < ".$pri;
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
echo "<table><tr><th>ID</th><th>Dish Name</th><th>Price</th><th>Is
Spicy</th></tr>";
// output data of each row
while($row = $result->fetch_assoc())
{
echo "<tr><td>".$row["dish_id"]."</td><td>".
$row["dish_name"]."</td><td>".$row["price"]."</td><td>".$row["is_spicy"]."</td></tr>";
}
echo "</table>";
}
else
{
echo "0 results";
}
mysqli_close($conn);
}
?>
</BODY>
</HTML>
71. κι άλλη, κι άλλη Εξαγωγή Τιμών (1)
Γράψτε ένα πρόγραμμα που θα εμφανίζει μια φόρμα με ένα
combo box που θα περιέχει τα ονόματα των φαγητών (τα
ονόματα θα προέρχονται από τη ΔΒ). Όταν ο χρήστης
αποστείλει τα δεδομένα της φόρμας, θα πρέπει να
εμφανίζονται όλες οι πληροφορίες που αφορούν το
συγκεκριμένο φαγητό (όλα τα πεδία του πίνακα dishes).
72. κι άλλη, κι άλλη Εξαγωγή Τιμών (2)
<?php
Static $dishn;
if (array_key_exists('dishname', $_POST)) $dishn=$_POST['dishname'];
else $dishn = "";
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "menu_db";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// select data from table
$sql = "SELECT * FROM DISHES";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
// output data of each row
while($row = $result->fetch_assoc())
{
$dish_names[] = $row["dish_name"];
}
echo "</table>";
} else {
echo "0 results";
}
/*foreach ($dish_names as $d)
{
print ("$d<br>");
}*/
?>
73. κι άλλη, κι άλλη Εξαγωγή Τιμών (3)
<h2>PHP Form Example - Lists vs DB Content</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<select name="dishname" VALUE = "<?php echo $dishn; ?>">
<option>Διάλεξε κατηγορία...</option>
<?php
foreach ($dish_names as $d)
{
if ($dishn == $d)
print "<option selected>".$d."</option>";
else
print "<option>".$d."</option>";
}
?>
</select>
<input type="submit" name="submit">
</form>
<?php
echo "<h2>Έχεις επιλέξει:</h2>";
if (array_key_exists('dishname', $_POST))
{
$dishn=$_POST['dishname'];
// echo $dishn;
$sql = "SELECT * FROM DISHES where dish_name LIKE '".$dishn."'";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
echo "<table><tr><th>ID</th><th>Dish Name</th><th>Price</th><th>Is
Spicy</th></tr>";
74. κι άλλη, κι άλλη Εξαγωγή Τιμών (4)
// output data of each row
while($row = $result->fetch_assoc())
{
echo "<tr><td>".$row["dish_id"]."</td><td>".
$row["dish_name"]."</td><td>".$row["price"]."</td><td>".$row["is_spicy"]."</td></tr>";
}
echo "</table>";
}
}
mysqli_close($conn);
?>