ΣΗΜΕΙΩΣΕΙΣ Ενότητα 1.1 Ιστορία της PHP Η ιστορία της PHP ξεκινά το 1995, όταν ένας φοιτητής, ο Rasmus Lerdorf, δημιούργησε χρησιμοποιώντας τη γλώσσα προγραμματισμού Perl ένα απλό script με όνομα php.cgi, για προσωπική χρήση. Το script αυτό είχε σκοπό να διατηρεί μια λίστα στατιστικών για τα άτομα που έβλεπαν το online βιογραφικό του σημείωμα. Αργότερα, αυτό το script το διέθεσε και σε φίλους του, οι οποίοι άρχισαν να του ζητούν να προσθέσει περισσότερες δυνατότητες. Η γλώσσα τότε ονομαζόταν PHP/FI από τα αρχικά Personal Home Page/Form Interpreter. Το 1997 η PHP/FI έφθασε στην έκδοση 2.0, βασιζόμενη αυτή τη φορά στη γλώσσα C και αριθμώντας περισσότερους από 50.000 ιστότοπους που τη χρησιμοποιούσαν, ενώ αργότερα την ίδια χρονιά οι Andi Gutmans και Zeev Suraski ξαναέγραψαν τη γλώσσα από την αρχή (βασιζόμενοι όμως αρκετά στην PHP/FI 2.0) η οποία θύμιζε περισσότερο τη σημερινή μορφή της. Στη συνέχεια, οι Zeev και Andi δημιούργησαν την εταιρεία Zend (από τα αρχικά των ονομάτων τους), η οποία συνεχίζει μέχρι και σήμερα την ανάπτυξη και εξέλιξη της γλώσσας PHP. Ακολούθησε το 1998 η έκδοση 3 της PHP και τον Μάιο του 2000 διατέθηκε η έκδοση 4. Αυτή τη στιγμή βρίσκεται στην έκδοση 5, ενώ έχουν ήδη διατεθεί και οι πρώτες δοκιμαστικές εκδόσεις της επερχόμενης PHP 6, για οποιονδήποτε προγραμματιστή θέλει να τη χρησιμοποιήσει. Ενότητα 1.2 Πλεονεκτήματα της PHP Κάποιοι από τους βασικούς ανταγωνιστές της PHP είναι οι Perl, Microsoft Active Server Pages (ASP) και Java Server Pages (JSP). Σε σύγκριση με αυτά τα προϊόντα, η PHP έχει πολλά πλεονεκτήματα, όπως: Υψηλή απόδοση: Η PHP είναι πολύ αποτελεσματική. Με ένα φθηνό διακομιστή, μπορείτε να εξυπηρετήσετε εκατομμύρια επισκεπτών καθημερινά. Οι δοκιμές που δημοσιεύθηκαν από την Zend Technologies (http://www.zend.com), δείχνουν ότι η PHP ξεπερνά τους ανταγωνιστές της. Διασυνδέσεις με πολλά διαφορετικά συστήματα βάσεων δεδομένων: Η PHP δίνει τη δυνατότητα σύνδεσης με πολλά συστήματα βάσεων όπως τις MySQL, MS SQL, Oracle, dbm, filepro, Hyperwave, Informix και Sybase μεταξύ άλλων. Επίσης κάνοντας χρήση του Open Database Connectivity Standard (ODBC), μπορείτε να συνδεθείτε σε οποιαδήποτε βάση δεδομένων παρέχει ένα πρόγραμμα οδήγησης ODBC. Ενσωματωμένες βιβλιοθήκες για πολλές συνηθισμένες Web διαδικασίες: Επειδή η PHP σχεδιάστηκε για να χρησιμοποιείται στο Web, έχει πολλές ενσωματωμένες βιβλιοθήκες, που εκτελούν πολλές χρήσιμες λειτουργίες σχετικές με το Web. Μπορείτε να δημιουργήσετε εικόνες GIF δυναμικά, να συνδεθείτε με άλλες υπηρεσίες δικτύων, να στείλετε ηλεκτρόνιο ταχυδρομείο,
να δουλέψετε με cookies και να δημιουργήσετε PDF έγγραφα. Όλα αυτά με λίγες γραμμές κώδικα. Χαμηλό κόστος: Η PHP λόγω του ότι είναι ανοικτού κώδικα διανέμεται δωρεάν. Ευκολία μάθησης και χρήσης: Η σύνταξη της PHP βασίζεται σε άλλες γλώσσες προγραμματισμού, βασικά στη C και στην Perl. Αν ήδη γνωρίζετε C ή Perl, ή μία γλώσσα παρόμοια με την C, όπως την Java, θα αρχίσετε να προγραμματίζετε σε PHP σχεδόν αμέσως. Μεταφερσιμότητα: Η PHP είναι διαθέσιμη για πολλά λειτουργικά συστήματα. Μπορείτε να γράψετε κώδικα PHP για open source λειτουργικά συστήματα, όπως τα Linux, FreeBSD, Solaris και IRIX, ή για διαφορετικές εκδόσεις των Windows. Διαθεσιμότητα του πηγαίου κώδικα: Έχετε πρόσβαση στον πηγαίο κώδικα της PHP. Αντίθετα με εμπορικά, κλειστά προϊόντα, αν υπάρχει κάτι που θέλετε να αλλάξετε ή να προσθέσετε στη γλώσσα μπορείτε να το κάνετε. "PHP and MySQL Web Development" Luke Welling Laura Thomson Ενότητα 1.3 Λειτουργία της PHP Η PHP τρέχει σε ένα διακομιστή με σκοπό να δέχεται (ως input) κώδικα PHP, να επικοινωνεί (όποτε αυτό χρειάζεται) με τη βάση δεδομένων (π.χ. με την MySQL) και να κατασκευάζει Web σελίδες (ως output) σε μορφή HTML. Ένα αρχείο με κώδικα PHP θα πρέπει να έχει την κατάλληλη επέκταση (π.χ. *.php, *.php4, *.phtml κ.ά.). Αν ενσωματώσετε κώδικα PHP σε ένα αρχείο επέκτασης.html δεν θα λειτουργήσει και θα εμφανίσει στον browser τον κώδικα χωρίς καμία επεξεργασία. Επίσης ακόμη κι όταν ένα αρχείο έχει την επέκταση.php, θα πρέπει ο server να είναι ρυθμισμένος για να επεξεργάζεται κώδικα PHP (τον κώδικα που καθιστά ικανό το διακομιστή να δέχεται κώδικα PHP μπορείτε να τον κατεβάσετε από τη σελίδα http://www.php.net). Οι διακομιστές Microsoft IIS και Apache που χρησιμοποιούνται σήμερα ευρέως σε συστήματα με λειτουργικά συστήματα Linux και Microsoft Windows, υποστηρίζουν την επεξεργασία κώδικα PHP. Ειδικότερα, η λειτουργία της PHP περιγράφεται από τα ακόλουθα πέντε βήματα: 1. Ο Web browser ενός χρήστη κάνει μία http αίτηση για μια συγκεκριμένη php Web σελίδα. (πχ. http://www.example.com/info.php) 2. O Web διακομιστής λαμβάνει την αίτηση για την σελίδα php, ανακαλεί το αρχείο από το σκληρό δίσκο και το περνά στη μηχανή php για επεξεργασία. 3. Η μηχανή php αρχίζει την ανάλυση του php κώδικα επικοινωνώντας όποτε υπάρχει ανάγκη με το διακομιστή της βάσης δεδομένων.
4. Η μηχανή php σταματά την εκτέλεση του προγράμματος επιστρέφοντας στον Web διακομιστή την τελική HTML σελίδα. 5. Ο Web διακομιστής περνά την html σελίδα ξανά στο Web browser ο οποίος τη μετατρέπει σε περιεχόμενο όπου ο χρήστης μπορεί να διαβάσει. Ενότητα 1.4 Το συντακτικό της PHP Για ν αναγνωρίσει η PHP ότι ένα κομμάτι κώδικα μέσα σε μία σελίδα HTML είναι PHP πρέπει να περικλείεται ανάμεσα σε εισαγωγικά της μορφής ή της μορφής. Οτιδήποτε εκτός των εισαγωγικών αυτών αποστέλλεται κατευθείαν στο φυλλομετρητή χωρίς να αναλυθεί συντακτικά και επεξεργαστεί από την PHP. Για παράδειγμα, ας εισάγουμε σε μία σελίδα HTML το παρακάτω κώδικα (υπενθυμίζουμε ότι για να στείλει ο διακομιστής μία σελίδα στη PHP θα πρέπει το όνομα της HTML σελίδας να έχει κατάληξη.php): echo 'Hello, World!'; H PHP αναλύοντας συντακτικά το παράδειγμα αυτό, αντικαταστεί το κώδικα αυτό με τις λέξεις: Hello, World! αφήνοντας οποιοδήποτε κώδικα εκτός των εισαγωγικών ανέπαφο. Έτσι η έξοδος της PHP θα δώσει τη καθαρή HTML σελίδα: Hello, World! Κάθε γραμμή κώδικα της PHP πρέπει να τελειώνει με το σύμβολο ; και χρησιμοποιείται για να χωρίζεται μία εντολή από την επόμενή της.
Επίσης, αν θέλετε να γράψετε σχόλια ανάμεσα στον κώδικα της PHP μπορείτε αυτό να το κάνετε είτε εισάγοντας τα σχόλια ανάμεσα στα σύμβολα / * και */ ή αν γράψετε στην αρχή κάθε γραμμής το σύμβολο //. Ενότητα 1.5 Μεταβλητές Στη PHP μεταβλητές μπορείτε να χρησιμοποιήσετε για να αποθηκεύσετε αριθμούς, αλφαριθμητικά (strings) και πίνακες (arrays) χωρίς να χρειάζεται να ορίσετε τον τύπο τους. Μία μεταβλητή αναπαριστάται με το πρόθεμα $. Για παράδειγμα: $var_name_number = 143; $var_name_txt = "Hello World "; $var_name_array = array("peter","quagmire","joe"); $new_var = $var_name_number+8; echo "Day: ". $new_var. "<br>"; echo $var_name_txt. " ". $var_name_array[1]; Παρατηρήστε ότι στην τελευταία γραμμή έχουμε παρεμβάλει μία αλλαγή γραμμής μεταξύ των τιμών των δύο μεταβλητών που τυπώνονται στην οθόνη. Μία μεταβλητή μπορεί να χρησιμοποιηθεί τόσο στο κυρίως σώμα ενός προγράμματος όσο και μέσα σε συναρτήσεις. Το πεδίο δράσης μίας μεταβλητής περιγράφεται στην υποενότητα 1.7 (συναρτήσεις). Ενότητα 1.6 Συνθήκες Ελέγχου Οι συνθήκες ελέγχου στη PHP ορίζονται με τον ίδιο ακριβώς τρόπο όπως στη γλώσσα C. Για παράδειγμα η if...then...else συνθήκη γράφεται με τον ακόλουθο τρόπο: $k = 143; if (fmod($k,2)==0) echo $k." is even"; else
echo $k." is odd"; Με όμοιο τρόπο με αυτό της C ορίζονται και οι while, do...while, for, foreach και switch συνθήκες. Για παράδειγμα: $i=0; // ------- while loop ----------- while($i<=5) echo "The number is ". $i. "<br /> "; $i++; // ------- do...while loop -------- do $i++; echo "The number is ". $i. "<br /> "; while ($i<10); // ------- for loop ----------- for ($i=1; $i<=5; $i++) echo "Hello World!<br /> "; // ------- foreach loop ----------- $arr=array("one", "two", "three"); foreach ($arr as $value) echo "Value: ". $value. "<br /> "; // ------- switch ----------- switch ($x) case 1: echo "Number 1";<br /> break; case 2: echo "Number 2";<br /> break; case 3: echo "Number 3";<br /> break;
default: echo "No number between 1 and 3";<br /> Ενότητα 1.7 Συναρτήσεις Όπως οι συνθήκες έλεγχου έτσι και οι συναρτήσεις ορίζονται με τον ίδιο ακριβώς τρόπο όπως στη C. Για παράδειγμα, η ακόλουθη συνάρτηση δέχεται δύο παραμέτρους και επιστρέφει μία τιμή: function add($x,$y) $total = $x + $y; return $total; echo "1 + 16 = ". add(1,16); Το πεδίο δράσης (ή εμβέλεια) μίας μεταβλητής ελέγχει το που μπορεί να χρησιμοποιηθεί μία μεταβλητή. Διαφορετικές γλώσσες προγραμματισμού έχουν διαφορετικούς κανόνες που ορίζουν το πεδίο δράσης των μεταβλητών. Η PHP έχει σχετικά απλούς κανόνες: Μεταβλητές που δηλώνονται μέσα σε μία συνάρτηση βρίσκονται στο πεδίο δράσης, από την εντολή στην οποία δηλώθηκαν έως την τελευταία αγκύλη στο τέλος της συνάρτησης. Αυτό ονομάζεται πεδίο δράσης συνάρτησης και οι μεταβλητές ονομάζονται τοπικές. Οι μεταβλητές που δηλώνονται έξω από συναρτήσεις έχουν πεδίο δράσης από την εντολή στην οποία δηλώνονται ως το τέλος του αρχείου, αλλά όχι μέσα σε συναρτήσεις. Αν οι μεταβλητές αυτές έχουν δηλωθεί ως global μέσα σε συναρτήσεις τότε αυτές ονομάζονται καθολικές μεταβλητές. Η λέξη κλειδί global χρησιμοποιείται για να καθορίσει ότι μία μεταβλητή που ορίζεται ή χρησιμοποιείται μέσα σε μία συνάρτηση, θα έχει καθολικό πεδίο δράσης. Για παράδειγμα στο παρακάτω κώδικα η μεταβλητή $z έχει καθολικό πεδίο δράσης. function add($x,$y) global $z; $total = $x + $y + $z; return $total;
$z = 5; echo "1 + 16 = ". add(1,16); Ενότητα 1.8 Χειρισμός φορμών στη PHP Το πιο σημαντικό χαρακτηριστικό της PHP είναι ότι μπορεί να δέχεται τηn τιμή κάθε στοιχείου (element) μίας φόρμας HTML και να την αναθέτει σε μία μεταβλητή. Για παράδειγμα, έστω ότι έχουμε την ακόλουθη φόρμα μιας HTML σελίδας με όνομα students.html: Please give student's name and his grade in math. <br /> <br /> <form action="show_grade.php" method="post"> Student: <input name="student" type="text" /> Grade: <input name="grade" type="text" /> <input type="submit" /> </form> Η φόρμα αυτή εμφανίζει στο φυλλομετρητή δύο text boxes και ένα κουμπί submit: Αν συμπληρώσετε τα δύο αυτά πεδία και πατήστε το κουμπί Submit τότε ο φυλλομετρητής θα καλέσει τη σελίδα show_grades.php δίνοντας ταυτοχρόνως τις τιμές student και grade. Οι τιμές αυτές χρησιμοποιούνται από τον κώδικα PHP της σελίδας για να εμφανίσει το όνομα του μαθητή και το βαθμό του στην οθόνη του χρήστη με ένα συγκεκριμένο τρόπο. Το αρχείο show_grades.php περιέχει τον ακόλουθο κώδικα PHP: The student echo $_POST["student"];.<br /> has grade echo $_POST["grade"]; in math.
Η μεταβλητή $_POST είναι ένας πίνακας (array) με μεταβλητές οι οποίες έχουν πάρει τιμές από την Post μέθοδο της φόρμας της students.html σελίδας. Οι μεταβλητές αυτές δεν εμφανίζονται στο χρήστη μέσω της γραμμής διευθύνσεων του φυλλομετρητή σε αντίθεση με τη μεταβλητή $_GET που οι μεταβλητές αυτές εμφανίζονται (αυτή η διαφορά έχει σημασία όταν μας ενδιαφέρει να δίνουμε στο χρήστη τη δυνατότητα να αντιγράφει τη διεύθυνση της σελίδας που βλέπει μαζί με τις τιμές της φόρμας). Ενότητα 2.2. Υπάρχοντες διακομιστές Σήμερα στην αγορά υπάρχουν δεκάδες Web Servers τους οποίους μπορείτε να χρησιμοποιήσετε για να υλοποιήσετε το δικό σας ιστότοπο. Παρακάτω παραθέτουμε μία λίστα (από το site Netcraft.com) με τους πιο γνωστούς τύπους διακομιστών καθώς και τον αριθμό των Web Sites που αυτοί έχουν χρησιμοποιηθεί. Vendor Product Web Sites Apache Apache 76,591,442 Microsoft IIS 55,502,886 Google GFE 8,555,391 Unknown Unknown 5,015,636 Oversee Oversee 1,573,701 lighttpd lighttpd 1,521,250 Other Other 1,014,690 nginx nginx 767,966 Zeus Zeus 505,092 IdeaWebServer IdeaWebServer 428,942 Sun Sun-ONE-Web-Server 372,673 Apache Coyote 353,934 LiteSpeed LiteSpeed 304,493 Jetty Jetty 226,466 Resin Resin 219,334 RapidSite RapidSite 219,130 Sun Enterprise 203,962
Vendor Product Web Sites tigershark tigershark 190,439 NOYB NOYB 161,778 Squeegit Squeegit 145,395 httpd httpd 144,274 WebserverX WebserverX 138,695 BaseHTTP BaseHTTP 125,985 Blk-Enterprise Blk-Enterprise 110,687 AOLserver AOLserver 100,319 Lotus Lotus-Domino 89,058 IBM IBM_HTTP_Server 87,930 icesrapture icesrapture 62,415 ConcentricHost-Ashurbanipal ConcentricHost-Ashurbanipal 46,684 Zope Zope 44,211 Mongrel Mongrel 37,714 Forwarder Forwarder 33,464 ZX_Spectrum ZX_Spectrum 31,436 ForAll.pl ForAll.pl 29,934 Acenet Acenet 28,580 IPL IPL 28,409 Joker.com Joker.com 26,344 az-webserver az-webserver 26,055 DinaHttpd DinaHttpd 24,306 thttpd thttpd 22,844 squid squid 22,761 Oracle Oracle-Application-Server-10g 21,325 Οι δύο πιο διαδεδομένοι διακομιστές είναι ο Apache και ο IIS της Microsoft. Σε αντίθεση με τον IIS όπου προϋποθέτει την αγορά του λειτουργικού
συστήματος MS Windows Server 2003 ή του MS Windows Server 2008, o Apache ανήκει στη κατηγορία ελεύθερου λογισμικού και μπορεί να εγκατασταθεί, χωρίς κόστος, σε ένα μεγάλο εύρος λειτουργικών συστημάτων όπως τα Windows XP, Vista, Mac OS X, Linux και άλλα. Στον παρακάτω στατιστικό πίνακα παρουσιάζεται το ποσοστό χρήσης των πιο διαδεδομένων διακομιστών στο διαδίκτυο από το 1995 μέχρι σήμερα. Εγκατάσταση του Apache Server Στο πλαίσιο της τρέχουσας επιμορφωτικής ενότητας θα χρησιμοποιήσουμε τον Apache Web Server. Όπως αναφέραμε στη προηγούμενη ενότητα ο Apache Web Server είναι ο πιο διαδεδομένος διακομιστής και θεωρείται ότι έχει παίξει σημαντικό ρόλο στην αρχική επέκταση του παγκόσμιου ιστού. Ήταν η πρώτη βιώσιμη εναλλακτική επιλογή που παρουσιάστηκε απέναντι στον εξυπηρετητή http της εταιρείας Netscape και από τότε έχει εξελιχθεί στο σημείο να ανταγωνίζεται άλλους εξυπηρετητές βασισμένους στο Unix καθώς και τον IIS σε λειτουργικότητα και απόδοση. Για να εγκαταστήσετε τον Apache Web Server στο προσωπικό σας υπολογιστή, αρκεί να κατεβάσετε και να τρέξετε το XAMPP. Το πρόγραμμα αυτό είναι μία ειδική έκδοση του Apache το οποίο αναλαμβάνει να πραγματοποιήσει για εσάς, εκτός από την εγκατάσταση του διακομιστή, την εγκατάσταση της PHP καθώς και της βάσης δεδομένων MySQL. Περισσότερες πληροφορίες για το τρόπο εγκατάστασης και λειτουργίας του XAMPP θα βρείτε στη πρώτη δραστηριότητα αυτής της επιμορφωτικής ενότητας.
Σύνδεση PHP με MySQL Για να δημιουργήσετε μία βάση δεδομένων, πρέπει πρώτα να συνδεθείτε με το διακομιστή της MySQL. Αυτό γίνεται με την ακόλουθη εντολή: mysql_connect(servername,username,password); Όπου servername αντιστοιχεί στη διεύθυνση του διακομιστή, username το όνομα του χρήστη που έχει δικαίωμα πρόσβασης σε αυτόν και password ο μυστικός κωδικός του χρήστη. Για παράδειγμα, αν η MySQL έχει εγκατασταθεί τοπικά στον υπολογιστή σας και ο administrator της MySQL σας έχει ανοίξει λογαριασμό με username "utest" και password "qwert!1" τότε ο ακόλουθος κώδικας PHP σας συνδέει με την MySQL. Στην περίπτωση που η σύνδεση αποτύχει, τότε η PHP μέσω της εντολής εντολής mysql_error() επιστρέφει ένα μήνυμα λάθους. $con = mysql_connect("localhost","utest","qwert!1"); if (!$con) die('could not connect: '. mysql_error()); Αφού έχετε συνδεθεί με το διακομιστή της βάσης μπορείτε να δημιουργήσετε μία νέα βάση δεδομένων με την εντολή: mysql_query("create DATABASE my_db",$con); Έτσι ο κώδικας σύνδεσης και δημιουργίας νέας βάσης γίνεται: $con = mysql_connect("localhost","utest","qwert!1"); if (!$con)
die('could not connect: '. mysql_error()); if (mysql_query("create DATABASE my_db",$con)) echo "Database created"; else echo "Error creating database: ".mysql_error(); mysql_close($con); Η εντολή mysql_query() της php είναι η πιο σημαντική από τις εντολές που αφορούν στην επικοινωνία με τη MySQL και χρησιμοποιείται όποτε θέλουμε να κάνουμε μία ερώτηση στη βάση. Ως είσοδο δέχεται ένα SQL query και στην έξοδο είτε επιστρέφει το αποτέλεσμα του query σε ένα πίνακα, είτε επιστρέφει ότι εκτελέστηκε επιτυχώς. Η χρήση της εντολής αυτής θα αναλυθεί περισσότερο στις επόμενες υπό-ενότητες. Η σύνδεση με μία βάση δεδομένων τερματίζει με την εντολή: mysql_close(mysql_connect(servername,username,password)); Ενότητα 3.2. Εισαγωγή πίνακα Ας υποθέσουμε ότι θέλουμε να εισάγουμε τον παρακάτω πίνακα με όνομα phone_book στη βάση δεδομένων my_db που μόλις δημιουργήσαμε. Ο πίνακας αυτός αναπαριστά έναn τηλεφωνικό κατάλογο ο οποίος έχει τρεις εγγραφές. Id LastName FirstName Address Age Phone 1 Papadopoulos Nikolaos Hlioupoleos 3, Athens 35 210 9838374 2 Xaralampous Petros Vouliagmenis 23, Athens 68 210 7832000 3 Karadimou Anna Trikoupi 8, Ioannina 22 26510 89328
Ο πίνακας αυτός αποτελείται από έξι πεδία: ένα Id (μοναδικό αριθμό που χαρακτηρίζει κάθε εγγραφή), το επίθετο, το όνομα, τη διεύθυνση την ηλικία και το τηλέφωνο μίας ομάδας ατόμων. Η εισαγωγή ενός νέου πίνακα πραγματοποιείται με την εντολή της php: mysql_query($sql,$con); Όπου η μεταβλητή $sql παίρνει ως τιμή το ακόλουθο SQL query: CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type,... ) όπου table_name είναι το όνομα του πίνακα που θέλετε να δημιουργήσετε, column_name το όνομα ενός πεδίου (στήλης) του πίνακα και data_type ο τύπος του πεδίου. Στο παράδειγμα μας, ο κώδικας που δημιουργεί τον παραπάνω πίνακα είναι ο ακόλουθος: $con = mysql_connect("localhost","utest","qwert!1"); // Select the database mysql_select_db("my_db", $con); // Insert the table $sql = "CREATE TABLE phone_book ( personid int NOT NULL, PRIMARY KEY(personID), LastName varchar(20) NOT NULL, FirstName varchar(20), Address varchar(30), Age int, Phone varchar(10) )"; mysql_query($sql,$con); mysql_close($con);
Κάνοντας χρήση της παραμέτρου KEY() ορίζουμε το πεδίο personid ως πρωταρχικό κλειδί του πίνακα, ενώ χαρακτηρίζοντάς το ως not null δεν επιτρέπουμε εισαγωγή εγγραφής με κενό το πεδίο personid. Ενότητα 3.3. Εισαγωγή δεδομένων σε πίνακα Η εισαγωγή δεδομένων σε έναν πίνακα που έχουμε ήδη δημιουργήσει γίνεται με το ακόλουθο query της SQL: INSERT INTO table_name (column1, column2,..., columnn) VALUES (value1, value2,...,valuen ) Ο αριθμός των τιμών value1, value2,... που εισάγουμε θα πρέπει να ίσος με το πλήθος των πεδίων του πίνακα. Για παράδειγμα, αν θέλουμε να εισάγουμε τα δεδομένα της πρώτης γραμμής του πίνακα phone_book θα πρέπει να γράψουμε την ακόλουθη php εντολή: mysql_query(" INSERT INTO phone_book (Id, LastName, FirstName, Address, Age, Phone) VALUES ('0', 'Papadopoulos', 'Nikolaos', 'Hlioupoleos 3, Athens', '35','210 9838374') ") Ενότητα 3.4. Επιλογή δεδομένων από πίνακες Η επιλογή δεδομένων από έναν ή περισσότερους πίνακες γίνεται με το ακόλουθο SQL query: SELECT (column1, column2,..., columnn) FROM (table1, table2,...,tablem) Στο παράδειγμά μας, αν θέλουμε να επιλέξουμε τα δεδομένα από όλα τα πεδία του πίνακα phone_book τότε θα πρέπει να εισάγουμε το ακόλουθο κώδικα PHP:
// Select the database mysql_select_db("my_db", mysql_connect("localhost","utest","qwert!1")); $result = mysql_query("select * FROM phone_book"); while($row = mysql_fetch_array($result)) echo $row['lastname']. " ". $row['firstname']. " ". $row['address']. " ". $row['age']. " ". $row['phone']. "<br>"; ενώ αν θέλουμε να επιλέξουμε όλα τα άτομα που η ηλικία τους είναι πάνω από 30 ετών τότε κάνουμε την ακόλουθη ερώτηση: // Select the database mysql_select_db("my_db", mysql_connect("localhost","utest","qwert!1")); $result = mysql_query("select * FROM phone_book WHERE age>30"); while($row = mysql_fetch_array($result)) echo $row['lastname']. " ". $row['firstname']. " ". $row['age']. "<br>"; Από τα παραπάνω παραδείγματα είναι εμφανές ότι η php εκτελώντας την εντολή mysql_fetch() δέχεται ως input ένα sql ερώτημα και επιστρέφει μία εγγραφή του πίνακα που απαντά στο ερώτημα σε μορφή πίνακα. Κάθε φορά που εκτελείται η mysql_fetch_array() η php ρωτά τη βάση και παίρνει την επόμενη εγγραφή μέχρι να μην υπάρχει άλλη.