PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

13
28/8/2015 PHP & MySQL Tutorial – Η Συντροφιά του Δαχτυλιδιού | deltaHacker data:text/html;charset=utf8,%3Cdiv%20class%3D%22postsingle%20clear%20span22%20last%20looppost0%20looppostfirst%20looppostlast%2… 1/13 PHP & MySQL Tutorial Η Συντροφιά του Δαχτυλιδιού Posted by praeto | 01/02/2008, 14:56 | Published in blast from the past Σας είπαν πως αν μάθετε τα βασικά της HTML θα καταφέρετε να δημιουργήσετε το δικό σας website αλλά το μόνο που καταφέρατε να φτιάξετε είναι ένα σύνολο βαρετών στατικών ιστοσελίδων; Αν θέλετε να δημιουργήσετε ένα πραγματικά λειτουργικό ιστοτόπο, ο οποίος να σερβίρειδυναμικά πληροφορίες και να αλληλεπιδρά με τον επισκέπτη, δεν έχετε παρά να ακολουθήσετε τις συμβουλές αυτού του tutorial. Τι εννοούμε όμως λέγοντας λειτουργικός ή δυναμικός ιστοτόπος; Πάρτε για παράδειγμα ένα site που επισκέπτεστε καθημερινά για την πληροφόρησή σας όπως το in.gr ή το Google News ή το αγαπημένο σας forum/blog (το οποίο -ελπίζουμε- είναι αυτό που διαβάζετε αυτή τη στιγμή). Θα έχετε παρατηρήσει φυσικά ότι -σε αντίθεση με τις στατικές HTML ιστοσελίδες- αν μπείτε με διαφορά μιας ώρας στην κεντρική σελίδα του ίδιου ιστοτόπου, το περιεχόμενο πιθανότατα θα έχει αλλάξει. Επίσης στις περισσότερες από αυτές τις σελίδες μπορείτε να γραφτείτε ως χρήστες με διαφορετικά επίπεδα πρόσβασης και έτσι να βλέπετε μόνο δημοσιεύσεις για τις οποίες έχετε τα κατάλληλα δικαιώματα ή αν μιλάμε για forum- να επιτρέπεται και σε σας τους ίδιους να προσθέτετε δημοσιεύσεις και σχόλια. Τέλος, θα έχετε παρατηρήσει ένα σωρό χαρακτηριστικά σε σελίδες, όπως αναζήτηση, δημοσκοπήσεις (polls), guestbooks κ.α. και καθώς αυτές οι λειτουργίες δεν μπορούν να δημιουργηθούν με απλή HTML, πιθανόν να απορείτε για τον τρόπο υλοποίησής τους. Για να κατασκευάσουν τέτοιου είδους εφαρμογές οι σχεδιαστές ενός site χρησιμοποιούν συνήθως τον συνδυασμό ενός δικτυακού συστήματος βάσεων δεδομένων και μιας σκριπτογλώσσας προγραμματισμού, ο κώδικας της οποίας όμως εκτελείται στον web server σε αντίθεση με την HTML της οποίας ο κώδικας εκτελείται στον browser του επισκέπτη (μην τρομάζετε :-), τα πράγματα θα γίνουν πολύ πιο κατανοητά όταν διαβάσετε όλο το tutorial). Εμείς εδώ θα χρησιμοποιήσουμε ως σύστημα βάσης δεδομένων την MySQL και ως σκριπτογλώσσα την PHP. Επιλέξαμε αυτόν τον συνδυασμό γιατί είναι μια από τις καλύτερες λύσεις από άποψη πληθώρας χαρακτηριστικών, δουλεύει άνετα σε όλα τα λειτουργικά συστήματα και η χρήση του παρέχεται δωρεάν (τι άλλο να ζητήσουμε!). Σε MySQL ή/και PHP βασίζονται εκατομμύρια sites μεταξύ των οποίων τα Yahoo!, YouTube, Flickr, FaceBook, Technorati, Wikipedia, digg και del.icio.us. Για να είμαστε δίκαιοι πάντως, να αναφέρουμε ότι δεν είναι λίγοι αυτοί που προτιμούν κάποια εμπορική λύση όπως τον συνδυασμό MSSQL & ASP της Microsoft. Όπως θα διαβάσατε ήδη στον τίτλο, αυτό είναι το πρώτο από τα τρία μέρη του tutorial στο οποίο θα ασχοληθούμε με τις απαιτούμενες εγκαταστάσεις που χρειάζονται για να προχωρήσετε στην ανάπτυξη δυναμικών σελίδων και θα κάνουμε μια εισαγωγή στην διαχείριση βάσεων MySQL. Στοεπόμενο μέρος θα δούμε τα βασικά για την γλώσσα PHP και τον τρόπο με τον οποίο ο κώδικάς της συνδυάζεται με αυτόν της HTML ενώ στο τρίτο και τελευταίο μέρος θα επιχειρήσουμε να

description

PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

Transcript of PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

Page 1: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 113

PHP amp MySQL Tutorial shy ΗΣυντροφιά του ΔαχτυλιδιούPosted by praeto | 01022008 1456 | Published in blast from the past

Σας είπαν πως αν μάθετε τα βασικά της HTML θα καταφέρετε ναδημιουργήσετε το δικό σας website αλλά το μόνο που καταφέρατενα φτιάξετε είναι ένα σύνολο βαρετών στατικών ιστοσελίδων Ανθέλετε να δημιουργήσετε ένα πραγματικά λειτουργικό ιστοτόπο οοποίος να ldquoσερβίρειrdquo δυναμικά πληροφορίες και να αλληλεπιδράμε τον επισκέπτη δεν έχετε παρά να ακολουθήσετε τις συμβουλέςαυτού του tutorial

Τι εννοούμε όμως λέγοντας λειτουργικός ή δυναμικός ιστοτόπος Πάρτε για παράδειγμα ένα site

που επισκέπτεστε καθημερινά για την πληροφόρησή σας όπως το ingr ή το Google News ήτο αγαπημένο σας forumblog (το οποίο -ελπίζουμε- είναι αυτό που διαβάζετε αυτή τη στιγμή)

Θα έχετε παρατηρήσει φυσικά ότι -σε αντίθεση με τις στατικές HTML ιστοσελίδες- αν μπείτε μεδιαφορά μιας ώρας στην κεντρική σελίδα του ίδιου ιστοτόπου το περιεχόμενο πιθανότατα θα έχειαλλάξει Επίσης στις περισσότερες από αυτές τις σελίδες μπορείτε να γραφτείτε ως χρήστες μεδιαφορετικά επίπεδα πρόσβασης και έτσι να βλέπετε μόνο δημοσιεύσεις για τις οποίες έχετε τακατάλληλα δικαιώματα ή ndashαν μιλάμε για forum- να επιτρέπεται και σε σας τους ίδιους ναπροσθέτετε δημοσιεύσεις και σχόλια Τέλος θα έχετε παρατηρήσει ένα σωρό χαρακτηριστικά σεσελίδες όπως αναζήτηση δημοσκοπήσεις (polls) guestbooks κα και καθώς αυτές οι λειτουργίεςδεν μπορούν να δημιουργηθούν με απλή HTML πιθανόν να απορείτε για τον τρόπο υλοποίησήςτους Για να κατασκευάσουν τέτοιου είδους εφαρμογές οι σχεδιαστές ενός site χρησιμοποιούν συνήθωςτον συνδυασμό ενός δικτυακού συστήματος βάσεων δεδομένων και μιας σκριπτογλώσσαςπρογραμματισμού ο κώδικας της οποίας όμως εκτελείται στον web server σε αντίθεση με τηνHTML της οποίας ο κώδικας εκτελείται στον browser του επισκέπτη (μην τρομάζετε -) ταπράγματα θα γίνουν πολύ πιο κατανοητά όταν διαβάσετε όλο το tutorial)

Εμείς εδώ θα χρησιμοποιήσουμε ως σύστημα βάσης δεδομένων την MySQL και ωςσκριπτογλώσσα την PHP Επιλέξαμε αυτόν τον συνδυασμό γιατί είναι μια από τις καλύτερες λύσειςαπό άποψη πληθώρας χαρακτηριστικών δουλεύει άνετα σε όλα τα λειτουργικά συστήματα και ηχρήση του παρέχεται δωρεάν (τι άλλο να ζητήσουμε) Σε MySQL ήκαι PHP βασίζονται εκατομμύριαsites μεταξύ των οποίων τα Yahoo YouTube Flickr FaceBook Technorati Wikipedia digg

και delicious Για να είμαστε δίκαιοι πάντως να αναφέρουμε ότι δεν είναι λίγοι αυτοί πουπροτιμούν κάποια εμπορική λύση όπως τον συνδυασμό MSSQL amp ASP της Microsoft

Όπως θα διαβάσατε ήδη στον τίτλο αυτό είναι το πρώτο από τα τρία μέρη του tutorial στο οποίοθα ασχοληθούμε με τις απαιτούμενες εγκαταστάσεις που χρειάζονται για να προχωρήσετε στηνανάπτυξη δυναμικών σελίδων και θα κάνουμε μια εισαγωγή στην διαχείριση βάσεων MySQL

Στοεπόμενο μέρος θα δούμε τα βασικά για την γλώσσα PHP και τον τρόπο με τον οποίο ο κώδικάςτης συνδυάζεται με αυτόν της HTML ενώ στο τρίτο και τελευταίο μέρος θα επιχειρήσουμε να

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 213

δέσουμε MySQL και PHP δημιουργώντας την πρώτη μας real world εφαρμογή

Τι θα χρειαστούμε

Αρχικά θα πρέπει να μετατρέψετε τονυπολογιστή σας σε (PHP enabled) web καιMySQL server Για τον σκοπό αυτό πρέπει νακατεβάσετε να εγκαταστήσετε και να ρυθμίσετετις τελευταίες (και ανάλογες για το λειτουργικόσύστημα που χρησιμοποιείτε) εκδόσεις τουApache Web Server της PHP και του MySQL

server Επειδή η περιγραφή της εγκατάστασηςκαι ρύθμισης όλων αυτών δεν είναι κάτι τόσοαπλό -όσο ίσως ακούγεται- ειδικά αν σκεφτείτετις διαφοροποιήσεις στα τρία κύρια λειτουργικάσυστήματα σας συστήνουμε ναχρησιμοποιήσετε το XAMPP που μπορείτε νακατεβάσετε από την επίσημη ιστοσελίδα του Το XAMPP που κυκλοφορεί σε 4 εκδόσεις για Linux

Windows MacOS X και Solaris είναι ουσιαστικά ένας installer που αναλαμβάνει να εγκαταστήσειApache PHP και MySQL και να κάνει τις απαραίτητες ρυθμίσεις για ομαλή λειτουργία των τριώνστο σύστημά σας χρησιμοποιώντας έναν απλό ldquoclick-nextrdquo wizard Ανάλογα με το λειτουργικόσας σύστημα το XAMPP θα σας προτείνει την εγκατάσταση και άλλων χαρακτηριστικών όπωςSMTP server FTP server κα τα οποία δεν θα σας φανούν χρήσιμα σε αυτό το tutorial αλλάίσως σας χρειαστούν στην συνέχεια Για παράδειγμα ο SMTP server είναι αναγκαίος αν θέλετε ταscript που θα αναπτύξετε για το site σας να στέλνουν αυτοματοποιημένα email στουςεπισκέπτες όπως τα email επαλήθευσης που λαμβάνετε όταν εγγράφεστε σε ένα forum

Στο tutorial αυτό για να διατηρήσουμε μια κοινή γραμμή συμβουλών θα υποθέσουμε ότιακολουθήσατε την μέθοδο XAMPP Επίσης δεδομένου των μικρών διαφοροποιήσεων του XAMPP

από λειτουργικό σε λειτουργικό και για να μην καταντήσουμε κουραστικοί όλες μας οι αναφορές θααφορούν την Windows έκδοσή του Ωστόσο είτε προτιμήσετε να στήσετε κάθε server χειροκίνητα

είτε στήσετε XAMPP σε μη-windows πλατφόρμα δεν θα πρέπει να δυσκολευτείτε ναπροσαρμόσετε τις συμβουλές μας στην περίπτωσή σας Όπως και να έχει πάντως τονίζουμε ότι το XAMPP μετά την εγκατάστασή του ρυθμίζει τον Apache

και τον MySQL server με γνώμονα την απροβλημάτιστη τοπική χρήση και όχι την ασφαλή χρήση

γεγονός που το καθιστά κατάλληλο μόνο ως περιβάλλον ανάπτυξης για την δοκιμή των σελίδων καιτων script που δημιουργείτε Το XAMPP με τις προκαθορισμένες ρυθμίσεις είναι ακατάλληλο γιαonline χρήση Ρυθμίστε το firewall σας ώστε να μην επιτρέπει εξερχόμενες συνδέσεις στουςservers διότι διαφορετικά θα αντιμετωπίσετε προβλήματα ασφάλειας στον υπολογιστή σας Ότανέχετε το τελικό αποτέλεσμα χρησιμοποιήστε ένα web hosting service για να ανεβάσετε τις σελίδεςσας ή κάντε χειροκίνητα τις ανάλογες ρυθμίσεις ασφαλείας στους επιμέρους servers του XAMPP

και ελευθερώστε την εξωτερική πρόσβαση στους servers από τις ρυθμίσεις του firewall σαςΠληροφορίες για το πώς να μετατρέψετε το XAMPP από περιβάλλον ανάπτυξης σε ασφαλή online

server θα βρείτε στην επίσημη σελίδα του

Πέρα από το XAMPP όταν στο δεύτερο μέρος αυτού του tutorial αρχίσετε να γράφετε scripts καισελίδες θα χρειαστείτε και ένα καλό editor κατάλληλο για σύνταξη κώδικα Καλό είναι ο editor

που θα επιλέξετε να παρέχει σήμανση κώδικα PHP και αναφορά αριθμού γραμμής (Δείτε ταχαρακτηριστικά αυτά στη σχετική εικόνα) Στο Linux δεν θα έχετε πρόβλημα καθώς συνήθως όλες

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 313

οι distributions περιλαμβάνουν έναν editor

που σέβεται τον εαυτό του όπως το TextEdit

του Gnome Στα Windows ο παρεχόμενοςeditor το notepad δεν κρίνεται κατάλληλοςγια σύνταξη κώδικα και σας προτείνουμε ναχρησιμοποιήσετε κάποιον άλλο όπως τονεμπορικό UltraEdit ή τον δωρεάν PSPad Ταίδια ισχύουν για το παρεχόμενο TextEdit τουMacOSX Προτιμήστε το IDE που παρέχει ηίδια η Apple το Xcode ή κάποιον εναλλακτικόeditor όπως ο BBEdit

Gentlemen start your engines

Αφού εγκαταστήσατε το XAMPP ανοίξτε τοXAMPP Control Panel και ξεκινήστε τονApache και τον MySQL server (Για λόγουςασφαλείας μην ξεχνάτε να σταματάτε τουςservers κάθε φορά που τελειώνετε τηνενασχόλησή σας με την ανάπτυξηιστοσελίδων) Αν θέλετε πριν προχωρήσετεπαρακάτω επαληθεύστε ότι το XAMPP

εγκαταστάθηκε σωστά πληκτρολογώντας τηνδιεύθυνση localhost στον browser σας Ανόλα πήγαν καλά θα πρέπει να εμφανιστεί μιασελίδα που σας καλωσορίζει στο XAMPP Είστε πλέον έτοιμοι να αρχίσετε την ουσιαστική δουλειά

Εισαγωγή στη δομή της MySQL

Ένας MySQL server αποτελείται από ένα σύνολο βάσεων δεδομένων (databases) Κάθε βάσηδεδομένων είναι ένα σύνολο πινάκων (tables) παρόμοιων με αυτών που μπορείτε να φτιάξετε σεένα πρόγραμμα spreadsheet όπως το Excel Οι γραμμές του πίνακα ονομάζονται εγγραφές(records) και οι στήλες του πίνακα ονομάζονται πεδία (fields) Δεν υπάρχει ουσιαστικό όριο στηνποσότητα βάσεων που περιέχονται στον server στην ποσότητα πινάκων που περιέχονται στιςβάσεις μα ούτε και στην ποσότητα πεδίων και εγγραφών που περιέχονται στους πίνακες Τα πεδίατων πινάκων μπορούν να περιέχουν μόνο ένα συγκεκριμένο τύπο πληροφορίας ο οποίος ορίζεταικατά την δημιουργία του πίνακα Για παράδειγμα ένα πεδίο που είναι ορισμένο ως ακέραιος αριθμόςδεν είναι κατάλληλο για αποθήκευση δεκαδικού αριθμού ή κειμένου Η δομή αυτή χρησιμοποιείταιαπό όλα τα σύγχρονα συστήματα βάσεων δεδομένων και έχει αποδειχτεί πολύ πρακτική για τηναποθήκευση τεράστιων όγκων δομημένης πληροφορίας

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 413

Δείτε την ανάλογη εικόνα με το παράδειγμα (στην οποία θα αναφερόμαστε σε όλη την διάρκειααυτού του πρώτου μέρους του tutorial) για να την κατανοήσετε καλύτερα Επίσης δείτε στονπίνακα που ακολουθεί κάποιους από τους πιο βασικούς τύπους πεδίων

Βασικοί τύποι πεδίων στην MySQL

Τύπος Χρήση Μέγεθος - Χαρακτηριστικά

ΤΙΝΥΙΝΤSMALLINTMEDIUMINTINT καιBIGINT

Αποθήκευσηακέραιων αριθμών

8162432 και 64 bits αντίστοιχα Αν χρησιμοποιηθούν μετην ιδιότητα UNSIGNED περιορίζονται σε αποθήκευση μηαρνητικών ακέραιων (φυσικών) Πχ ένας TINYINT αριθμός παίρνει τιμές από -128 έως 127δηλαδή έχει εύρος 2^8=256 Ένας TINYINT UNSIGNED δενμπορεί να πάρει αρνητικό πρόσημο οπότε παίρνει τιμές από0 έως 255 ώστε να διατηρηθεί το εύρος

FLOAT καιDOUBLE

Αποθήκευσηαριθμών κινητήςυποδιαστολής

32 και 64 bits αντίστοιχα Δεν μπορούν να είναι unsigned

DATEΑποθήκευσηημερομηνίας 24bits Μορφή ΕΕΕΕ-ΜΜ-ΗΗ

TIME Αποθήκευση ώρας 24bits Μορφή ΩΩΩΛΛΔΔ όπου η ώρα ΩΩΩ μπορεί ναπάρει τιμές από -838 έως 838

Αυτόματη ή μηαυτόματη

32bits Μορφή ΕΕΕΕ-ΜΜ-ΗΗ ΩΩΛΛΔΔ Σε ένα πεδίοτύπου TIMESTAMP μπορεί να ανατεθεί χειροκίνητα μια τιμήΔιαφορετικά αν την στιγμή που δημιουργούμε ή

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 513

TIMESTAMPαποθήκευσηημερομηνίας καιώρας

ενημερώνουμε μια εγγραφή που περιέχει ένα TIMESTAMPπεδίο παραλείψουμε να δώσουμε τιμή σε αυτό το πεδίο θατου ανατεθεί αυτόματα η τιμή της τρέχουσας ημερομηνίας καιώρας

CHAR(Μ) καιVARCHAR(Μ)

Αποθήκευση μικρούαλφαριθμητικού(string)

Η παράμετρος M μπορεί να πάρει τιμή έως και 255 καιυποδηλώνει τον μέγιστο αριθμό χαρακτήρων που θα έχει τοstring το οποίο έχουμε σκοπό να αποθηκεύσουμε στοπεδίο Πεδία τύπου VARCHAR καταλαμβάνουν μνήμη ίση σεbytes όσοι και οι χαρακτήρες του string που περιέχουν σεαντίθεση με τα μνημοβόρα πεδία τύπου CHAR πουκαταλαμβάνουν πάντα M bytes

TEXTΑποθήκευσηκειμένου (μεγάλουαλφαριθμητικού)

Μέχρι 64kbytes

Πίνακες και πρωτεύον κλειδί

Σε κάθε πίνακα βάσης δεδομένων είναι σημαντικό να υπάρχει μια στήλη (πεδίο) σε κάθε σειρά τηςοποίας να υπάρχει διαφορετική τιμή έτσι ώστε κάθε εγγραφή να αποκτήσει ένα μοναδικόχαρακτηριστικό έναν laquoαριθμό ταυτότηταςraquo με τον οποίο να μπορούμε να αναφερόμαστε σε αυτήνΤο ιδιαίτερο αυτό πεδίο το ορίζουμε κατά την κατασκευή του πίνακα δίνοντάς του την ιδιότητα τουπρωτεύοντος κλειδιού (primary key)

Για να κατανοήσετε καλύτερα την χρησιμότητα του πρωτεύοντος κλειδιού θα κάνουμε έναπαραλληλισμό του με τον αριθμό που χρησιμοποιείται στην αστυνομική σας ταυτότητα Ο αριθμόςαυτός είναι μοναδικός για κάθε πολίτη όπως ακριβώς το πεδίο του πρωτεύοντος κλειδιού έχειμοναδική τιμή για κάθε εγγραφή Σκεφτείτε λοιπόν πόσο δύσκολο θα ήταν για έναν αστυνομικό ναβρει την καρτέλα με τα στοιχεία ενός ατόμου αν δεν υπήρχε ο αριθμός ταυτότητας και ήταναναγκασμένος να ψάξει το αρχείο της αστυνομίας με βάση το ονοματεπώνυμο Πόσες συνωνυμίεςθα έπρεπε να απορρίψει πριν φτάσει στο σωστό άνθρωπο

Letrsquos cut to the chase

Ανοίξτε μια κονσόλα για να ξεκινήσουμε Μετακινηθείτε στον φάκελο bin της εγκατάστασης MySQL

και εκτελέστε το MySQL monitor ως εξής

Από εδώ μπορείτε να διαχειριστείτε με απλές εντολές ότι αφορά την mysql και τις βάσεις σαςΠληκτρολογήστε τις εντολές

Η πρώτη εντολή σας επιστρέφει πληροφορίες για την κατάσταση που βρίσκεται αυτήν την στιγμή οserver Μεταξύ των πληροφοριών μπορείτε να δείτε την βάση την οποία έχετε επιλέξει γιαεπεξεργασία Ακόμα δεν έχετε επιλέξει κάποια βάση οπότε το ανάλογο πεδίο είναι κενό Η δεύτερηεντολή σας επιστρέφει μια λίστα με βάσεις που υπάρχουν ήδη στο σύστημα Αν και δεν έχετεδημιουργήσει ακόμα μια δική σας βάση θα δείτε αρκετά αποτελέσματα καθώς το XAMPP εγκαθιστά

ccd xamppmysqlbinmysql ndashu root

STATUSSHOW DATABASES

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 613

μερικές μικρές demo βάσεις Προσέξτε πως οι εντολές στην MySQL τελειώνουν πάντα με τον χαρακτήρα τερματισμού laquoraquo Οχαρακτήρας αυτός είναι χρήσιμος όταν θέλετε να πληκτρολογήσετε μεγάλες σε μήκος εντολέςΜπορείτε οποιαδήποτε στιγμή κατά την πληκτρολόγηση μιας εντολής να πατήσετε το πλήκτροEnter H MySQL εφόσον δεν έχετε εισάγει χαρακτήρα τερματισμού δεν θα εκτελέσει την εντολήαλλά θα αλλάξει απλώς σειρά ώστε να συνεχίσετε να εισάγετε την μακροσκελή εντολή Για ναεκτελέσετε την εντολή αφού έχετε τελειώσει την πληκτρολόγησή της εισάγετε τον χαρακτήρα laquoraquo καιπατήστε Enter Παρότι ορισμένες εντολές της MySQL οι οποίες δεν αναμένεται να έχουν μεγάλομήκος (όπως η STATUS) δεν απαιτούν χαρακτήρα τερματισμού για να εκτελεστούν είναι καλό νασυνηθίσετε να τερματίζετε όλες τις εντολές σας Επίσης έχετε στο νου σας ότι ενώ εμείς γράφουμετις εντολές με κεφαλαία γράμματα ώστε να ξεχωρίζουν από τις παραμέτρους και τα ορίσματα αυτόδεν είναι υποχρεωτικό στην MySQL

Ήρθε η ώρα να δημιουργήσετε την πρώτη σας βάση Πληκτρολογήστε

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

Χρησιμοποιήστε την δεύτερη για να επαληθεύσετε το αποτέλεσμα της πρώτης Ξέρουμε ότι είναι η πρώτη σας βάση και ότι είστε περήφανοι για αυτήν αλλά πρέπει να μάθετε καιτον τρόπο διαγραφής μια βάσης οπότε πληκτρολογήστε

Η πρώτη εντολή θα διαγράψει εντελώς την βάση testDB Όσον αφορά την δεύτερη μάλλον είστεπλέον σε θέση να μαντέψετε τα αποτελέσματά της Επειδή για εκπαιδευτικούς σκοπούς διαγράψατε την testDB πριν προλάβετε να τηνχρησιμοποιήσετε δημιουργήστε μια νέα κενή βάση με όνομα MoviesCollection την οποίααργότερα θα laquoγεμίσετεraquo ώστε να αντικατοπτρίζει την βάση MoviesCollection της σχετικής εικόναςΑφού δημιουργήσετε την νέα βάση πληκτρολογήστε

Με την εντολή USE δηλώνετε την επιθυμία σας να χρησιμοποιήσετε την βάση MoviesCollection

για επεξεργασία Η STATUS απλά επιβεβαιώνει τα αποτελέσματα της USE αφού σας επιστρέφειμεταξύ άλλων και όπως ήδη αναφέραμε το όνομα της τρέχουσας βάσης (Current database)

Τώρα η εντολή

επιστρέφει μια λίστα με τους πίνακες της τρέχουσας βάσης Όπως είναι αναμενόμενο αφού δενέχετε εισάγει ακόμα δεδομένα στην βάση σας η λίστα αυτή είναι προς το παρόν κενή Αςδημιουργήσουμε τον πίνακα Movies της εικόνας

CREATE DATABASE testDBSHOW DATABASES

DROP DATABASE testDBSHOW DATABASES

USE MoviesCollectionSTATUS

SHOW TABLES

CREATE TABLE Movies(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYMovieName VARCHAR(200)ReleaseYear SMALLINT UNSIGNEDRating TINYINT)

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 713

Παρατηρήστε ότι όλες αυτές οι γραμμές κώδικα συγκροτούν μια μόλις εντολή την CREATE TABLE

η οποία τερματίζεται στην τελευταία γραμμή με τον χαρακτήρα τερματισμού (Το κάναμε αυτό γιαπρακτικούς λόγους αλλά εσείς αν θέλετε μπορείτε να δώσετε την εντολή σε μια γραμμή) Στηνπρώτη γραμμή δίνουμε εντολή να δημιουργηθεί ο πίνακας Movies και στις επόμενες γραμμές μέσασε μια παρένθεση περιγράφουμε τα πεδία του πίνακα

Το πεδίο id δηλώθηκε ως ακέραιος 24bit χωρίς πρόσημο Επίσης του δόθηκαν οι ιδιότητεςPRIMARY KEY και AUTO_INCREMENT Η πρώτη ιδιότητα χαρακτηρίζει το πεδίο ως πρωτεύονκλειδί και έτσι η MySQL δεν θα επιτρέψει ποτέ σε αυτό το πεδίο να πάρει ίδια τιμή σε δύοδιαφορετικές εγγραφές Και επειδή αυτό σας υποχρεώνει να ψάχνετε έναν ακέραιο που δεν έχειεπαναληφθεί κάθε φορά που θέλετε να εισάγετε μια νέα εγγραφή στον πίνακα έρχεται η ιδιότηταAUTO_INCREMENT να σας βοηθήσει Η χρήση της ιδιότητας αυτής κατά την δήλωση ενός πεδίουσας επιτρέπει όταν θέλετε να εισάγετε εγγραφές στον πίνακα να παραλείπετε -κατά βούληση- τηνεισαγωγή τιμής σε αυτό το πεδίο Αν όντως επιλέξετε να κάνετε αυτήν την παράληψη η MySQL θααναθέσει αυτόματα τιμή στο πεδίο έναν αριθμό κατά μια μονάδα μεγαλύτερο από τον αριθμό πουανατέθηκε στο ίδιο πεδίο κατά την εισαγωγή της προηγούμενης εγγραφής Για παράδειγμα αν στηνπρώτη εγγραφή αναθέσετε την τιμή 13 στο πεδίο id ενώ κατά την δεύτερη εγγραφή παραλείψετετην χειροκίνητη ανάθεση τιμής στο ίδιο πεδίο τότε η MySQL θα του δώσει αυτόματα την τιμή 14

Επίσης έχετε υπόψη ότι δηλώνοντας το πεδίο id ως 24bit ακέραιο άνευ πρόσημου καιταυτόχρονα ως πρωτεύον κλειδί περιορίζετε ουσιαστικά το πλήθος των εγγραφών αυτού τουπίνακα σε 2^24 (γεγονός όχι ιδιαίτερα περιοριστικό αν συγκρίνετε τον αριθμό αυτό με το πλήθοςτων κινηματογραφικών ταινιών παγκοσμίως -) ) Όσον αφορά τα υπόλοιπα πεδία το πεδίο MovieName δηλώθηκε ως αλφαριθμητικό με μέγιστομήκος τους 200 χαρακτήρες και το πεδίο ReleaseYear δηλώθηκε ως ακέραιος των 16bits χωρίςπρόσημο οπότε μπορεί να πάρει τιμές από 0 έως 2^16-1=65535 Στο πεδίο Rating

περιορίστηκε το εύρος του ακεραίου σε 8bit αλλά επιτράπηκε το αρνητικό πρόσημο ώστε ναυπάρχει δυνατότητα αρνητικής βαθμολογίας των ταινιών Έτσι το πεδίο Rating μπορεί να πάρειτιμές από -128 μέχρι 127

Ο πίνακας Movies είναι έτοιμος για εισαγωγή δεδομένων Χρησιμοποιήστε τις επόμενες εντολές γιανα ορίσετε και τους άλλους δύο πίνακες του παραδείγματός μας

Δοκιμάστε τώρα τις εντολές

Η εντολή DESCRIBE επιστρέφει τον τρόπο με τον οποίο είναι ορισμένος ένας πίνακας σεπερίπτωση που το ξεχάσατε ή για επαλήθευση σωστού ορισμού Αν λοιπόν ορίσατε κάποιονπίνακα λανθασμένα ή για οποιονδήποτε άλλο λόγο θέλετε να διαγράψετε ένα πίνακα (μαζί με όλα ταδεδομένα που περιέχει) μπορείτε να χρησιμοποιήσετε την εντολή

CREATE TABLE Directors(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYName VARCHAR(120)BirthYear SMALLINT UNSIGNED)CREATE TABLE MovDirLink(MovieID MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYDirectorID MEDIUMINT UNSIGNED)

DESCRIBE MoviesDESCRIBE DirectorsDESCRIBE MovDirLink

DROP TABLE όνομα πίνακα

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 813

Είναι ώρα να προσθέσετε εγγραφές στους πίνακες Για να εισάγετε τις πρώτες δύο εγγραφές στονπίνακα Movies αντιγράφοντας τον πίνακα-δείγμα της εικόνας πληκτρολογήστε τα εξής

Η χρήση της INSERT INTO είναι αρκετά προφανής και είστε πλέον σε θέση να αντιγράψετε πλήρωςκαι τους τρεις πίνακες του παραδείγματος της εικόνας Κάντε το Παρατηρήστε ότι η MySQL δενενοχλείται είτε χρησιμοποιήσετε quotes (lsquo) είτε double-quotes (rdquo) για την εισαγωγήαλφαριθμητικών Αυτό θα φανεί ιδιαίτερα χρήσιμο στο τρίτο μέρος αυτού του tutorial όταν κώδικαςMySQL θα μπλέξει με κώδικα PHP και ΗΤML tags Προσέξτε επίσης ότι κατά την εισαγωγή τηςδεύτερης εγγραφής δεν χρειάστηκε να ανατεθεί χειροκίνητα τιμή στο πεδίο id καθώς η MySQL θαδώσει αυτόματα την τιμή 622 (621+1) Τέλος παρότι σιχαινόμαστε να διορθώνουμε τα λάθη σας -) παρατηρούμε ότι στην ίδια εγγραφή κάνατε -Ρ ένα λάθος πληκτρολόγησης στο όνομα της ταινίαςΔιορθώστε το λάθος χρησιμοποιώντας την εντολή UPDATE

Η εντολή UPDATE έχει την δυνατότητα να ενημερώσει ταυτόχρονα πολλές εγγραφές οπότεχρειάζεται ιδιαίτερη προσοχή στην υπόθεση που ακολουθεί μετά τον όρο WHERE Με τηνσυγκεκριμένη εντολή ζητάτε από την MySQL να ενημερώσει το πεδίο MovieName όλων τωνεγγραφών για τις οποίες ισχύει η υπόθεση id=622 Στην περίπτωση που παραλείψετε να γράψετετο WHERE id=622 όλες σας οι ταινίες θα μετονομαστούν σε King Kong Μην ξεχνάτε λοιπόν ναεισάγετε τον όρο WHERE και να προτιμάτε η υπόθεση που τον ακολουθεί να βασίζεται στοπρωτεύον κλειδί του πίνακα τον οποίο ενημερώνετε (όπως εδώ έγινε χρήση του πεδίου id) καθώςμε αυτόν τον τρόπο είστε σίγουροι ότι ενημερώνετε ακριβώς τις εγγραφές που θέλετε Ας υποθέσουμε τώρα ότι θέλετε να διαγράψετε κάποιες εγγραφές από τον πίνακα Movies και αςυποθέσουμε περαιτέρω ότι οι εγγραφές αυτές είναι οι ταινίες που είτε είναι παλιές (εκδόθηκαν πριντο 1980) είτε δεν σας αρέσουν (έχουν αρνητικό rating) Χρησιμοποιήστε την εντολή

Όπως βλέπετε η DELETE FROM έχει παρόμοια σύνταξη με την UPDATE και συνεπώς η χρήση τηςχρειάζεται την ίδια προσοχή Επίσης παρατηρήστε ότι μπορείτε να χρησιμοποιήσετε και άλλουςτελεστές στην υπόθεση της WHERE πέρα από την ισότητα της υπόθεσης id=622 H MySQL

υποστηρίζει όλους τους κοινούς τελεστές όπως τους = lt gt OR AND κα

Με την DELETE ολοκληρώνεται το σετ εντολών που χρειάζεστε για να επεξεργαστείτε τις βάσεις σαςκαι τους πίνακές σας Ωστόσο η εντολή που θα χρησιμοποιήσετε πιο συχνά από όλες τις άλλεςείναι χωρίς αμφιβολία η SELECT η οποία επιστρέφει -σύμφωνα με κάποια κριτήρια- πληροφορίεςαπό τις βάσεις σας Άλλωστε από την αρχή του tutorial πληκτρολογείτε εντολές χωρίς να είστε σεθέση να δείτε τα αποτελέσματα των εντολών σας και κατά πόσο αυτές ήταν αποτελεσματικέςΔώστε τέλος σε αυτή την κατάσταση πληκτρολογώντας

Αυτές οι τρεις εντολές θα σας επιστρέψουν το πλήρες περιεχόμενο των πινάκων Movies

INSERT INTO Movies VALUES(621 ldquoForrest Gumprdquo 1994 105)INSERT INTO Movies VALUES(NULL lsquoKing Longrsquo 2005 29)

UPDATE Movies SET MovieName=rdquoKing Kongrdquo WHERE id=622

DELETE FROM Movies WHERE ReleaseYearlt1980 OR Ratinggt0

SELECT FROM MoviesSELECT FROM DirectorsSELECT FROM MovDirLink

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 2: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 213

δέσουμε MySQL και PHP δημιουργώντας την πρώτη μας real world εφαρμογή

Τι θα χρειαστούμε

Αρχικά θα πρέπει να μετατρέψετε τονυπολογιστή σας σε (PHP enabled) web καιMySQL server Για τον σκοπό αυτό πρέπει νακατεβάσετε να εγκαταστήσετε και να ρυθμίσετετις τελευταίες (και ανάλογες για το λειτουργικόσύστημα που χρησιμοποιείτε) εκδόσεις τουApache Web Server της PHP και του MySQL

server Επειδή η περιγραφή της εγκατάστασηςκαι ρύθμισης όλων αυτών δεν είναι κάτι τόσοαπλό -όσο ίσως ακούγεται- ειδικά αν σκεφτείτετις διαφοροποιήσεις στα τρία κύρια λειτουργικάσυστήματα σας συστήνουμε ναχρησιμοποιήσετε το XAMPP που μπορείτε νακατεβάσετε από την επίσημη ιστοσελίδα του Το XAMPP που κυκλοφορεί σε 4 εκδόσεις για Linux

Windows MacOS X και Solaris είναι ουσιαστικά ένας installer που αναλαμβάνει να εγκαταστήσειApache PHP και MySQL και να κάνει τις απαραίτητες ρυθμίσεις για ομαλή λειτουργία των τριώνστο σύστημά σας χρησιμοποιώντας έναν απλό ldquoclick-nextrdquo wizard Ανάλογα με το λειτουργικόσας σύστημα το XAMPP θα σας προτείνει την εγκατάσταση και άλλων χαρακτηριστικών όπωςSMTP server FTP server κα τα οποία δεν θα σας φανούν χρήσιμα σε αυτό το tutorial αλλάίσως σας χρειαστούν στην συνέχεια Για παράδειγμα ο SMTP server είναι αναγκαίος αν θέλετε ταscript που θα αναπτύξετε για το site σας να στέλνουν αυτοματοποιημένα email στουςεπισκέπτες όπως τα email επαλήθευσης που λαμβάνετε όταν εγγράφεστε σε ένα forum

Στο tutorial αυτό για να διατηρήσουμε μια κοινή γραμμή συμβουλών θα υποθέσουμε ότιακολουθήσατε την μέθοδο XAMPP Επίσης δεδομένου των μικρών διαφοροποιήσεων του XAMPP

από λειτουργικό σε λειτουργικό και για να μην καταντήσουμε κουραστικοί όλες μας οι αναφορές θααφορούν την Windows έκδοσή του Ωστόσο είτε προτιμήσετε να στήσετε κάθε server χειροκίνητα

είτε στήσετε XAMPP σε μη-windows πλατφόρμα δεν θα πρέπει να δυσκολευτείτε ναπροσαρμόσετε τις συμβουλές μας στην περίπτωσή σας Όπως και να έχει πάντως τονίζουμε ότι το XAMPP μετά την εγκατάστασή του ρυθμίζει τον Apache

και τον MySQL server με γνώμονα την απροβλημάτιστη τοπική χρήση και όχι την ασφαλή χρήση

γεγονός που το καθιστά κατάλληλο μόνο ως περιβάλλον ανάπτυξης για την δοκιμή των σελίδων καιτων script που δημιουργείτε Το XAMPP με τις προκαθορισμένες ρυθμίσεις είναι ακατάλληλο γιαonline χρήση Ρυθμίστε το firewall σας ώστε να μην επιτρέπει εξερχόμενες συνδέσεις στουςservers διότι διαφορετικά θα αντιμετωπίσετε προβλήματα ασφάλειας στον υπολογιστή σας Ότανέχετε το τελικό αποτέλεσμα χρησιμοποιήστε ένα web hosting service για να ανεβάσετε τις σελίδεςσας ή κάντε χειροκίνητα τις ανάλογες ρυθμίσεις ασφαλείας στους επιμέρους servers του XAMPP

και ελευθερώστε την εξωτερική πρόσβαση στους servers από τις ρυθμίσεις του firewall σαςΠληροφορίες για το πώς να μετατρέψετε το XAMPP από περιβάλλον ανάπτυξης σε ασφαλή online

server θα βρείτε στην επίσημη σελίδα του

Πέρα από το XAMPP όταν στο δεύτερο μέρος αυτού του tutorial αρχίσετε να γράφετε scripts καισελίδες θα χρειαστείτε και ένα καλό editor κατάλληλο για σύνταξη κώδικα Καλό είναι ο editor

που θα επιλέξετε να παρέχει σήμανση κώδικα PHP και αναφορά αριθμού γραμμής (Δείτε ταχαρακτηριστικά αυτά στη σχετική εικόνα) Στο Linux δεν θα έχετε πρόβλημα καθώς συνήθως όλες

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 313

οι distributions περιλαμβάνουν έναν editor

που σέβεται τον εαυτό του όπως το TextEdit

του Gnome Στα Windows ο παρεχόμενοςeditor το notepad δεν κρίνεται κατάλληλοςγια σύνταξη κώδικα και σας προτείνουμε ναχρησιμοποιήσετε κάποιον άλλο όπως τονεμπορικό UltraEdit ή τον δωρεάν PSPad Ταίδια ισχύουν για το παρεχόμενο TextEdit τουMacOSX Προτιμήστε το IDE που παρέχει ηίδια η Apple το Xcode ή κάποιον εναλλακτικόeditor όπως ο BBEdit

Gentlemen start your engines

Αφού εγκαταστήσατε το XAMPP ανοίξτε τοXAMPP Control Panel και ξεκινήστε τονApache και τον MySQL server (Για λόγουςασφαλείας μην ξεχνάτε να σταματάτε τουςservers κάθε φορά που τελειώνετε τηνενασχόλησή σας με την ανάπτυξηιστοσελίδων) Αν θέλετε πριν προχωρήσετεπαρακάτω επαληθεύστε ότι το XAMPP

εγκαταστάθηκε σωστά πληκτρολογώντας τηνδιεύθυνση localhost στον browser σας Ανόλα πήγαν καλά θα πρέπει να εμφανιστεί μιασελίδα που σας καλωσορίζει στο XAMPP Είστε πλέον έτοιμοι να αρχίσετε την ουσιαστική δουλειά

Εισαγωγή στη δομή της MySQL

Ένας MySQL server αποτελείται από ένα σύνολο βάσεων δεδομένων (databases) Κάθε βάσηδεδομένων είναι ένα σύνολο πινάκων (tables) παρόμοιων με αυτών που μπορείτε να φτιάξετε σεένα πρόγραμμα spreadsheet όπως το Excel Οι γραμμές του πίνακα ονομάζονται εγγραφές(records) και οι στήλες του πίνακα ονομάζονται πεδία (fields) Δεν υπάρχει ουσιαστικό όριο στηνποσότητα βάσεων που περιέχονται στον server στην ποσότητα πινάκων που περιέχονται στιςβάσεις μα ούτε και στην ποσότητα πεδίων και εγγραφών που περιέχονται στους πίνακες Τα πεδίατων πινάκων μπορούν να περιέχουν μόνο ένα συγκεκριμένο τύπο πληροφορίας ο οποίος ορίζεταικατά την δημιουργία του πίνακα Για παράδειγμα ένα πεδίο που είναι ορισμένο ως ακέραιος αριθμόςδεν είναι κατάλληλο για αποθήκευση δεκαδικού αριθμού ή κειμένου Η δομή αυτή χρησιμοποιείταιαπό όλα τα σύγχρονα συστήματα βάσεων δεδομένων και έχει αποδειχτεί πολύ πρακτική για τηναποθήκευση τεράστιων όγκων δομημένης πληροφορίας

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 413

Δείτε την ανάλογη εικόνα με το παράδειγμα (στην οποία θα αναφερόμαστε σε όλη την διάρκειααυτού του πρώτου μέρους του tutorial) για να την κατανοήσετε καλύτερα Επίσης δείτε στονπίνακα που ακολουθεί κάποιους από τους πιο βασικούς τύπους πεδίων

Βασικοί τύποι πεδίων στην MySQL

Τύπος Χρήση Μέγεθος - Χαρακτηριστικά

ΤΙΝΥΙΝΤSMALLINTMEDIUMINTINT καιBIGINT

Αποθήκευσηακέραιων αριθμών

8162432 και 64 bits αντίστοιχα Αν χρησιμοποιηθούν μετην ιδιότητα UNSIGNED περιορίζονται σε αποθήκευση μηαρνητικών ακέραιων (φυσικών) Πχ ένας TINYINT αριθμός παίρνει τιμές από -128 έως 127δηλαδή έχει εύρος 2^8=256 Ένας TINYINT UNSIGNED δενμπορεί να πάρει αρνητικό πρόσημο οπότε παίρνει τιμές από0 έως 255 ώστε να διατηρηθεί το εύρος

FLOAT καιDOUBLE

Αποθήκευσηαριθμών κινητήςυποδιαστολής

32 και 64 bits αντίστοιχα Δεν μπορούν να είναι unsigned

DATEΑποθήκευσηημερομηνίας 24bits Μορφή ΕΕΕΕ-ΜΜ-ΗΗ

TIME Αποθήκευση ώρας 24bits Μορφή ΩΩΩΛΛΔΔ όπου η ώρα ΩΩΩ μπορεί ναπάρει τιμές από -838 έως 838

Αυτόματη ή μηαυτόματη

32bits Μορφή ΕΕΕΕ-ΜΜ-ΗΗ ΩΩΛΛΔΔ Σε ένα πεδίοτύπου TIMESTAMP μπορεί να ανατεθεί χειροκίνητα μια τιμήΔιαφορετικά αν την στιγμή που δημιουργούμε ή

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 513

TIMESTAMPαποθήκευσηημερομηνίας καιώρας

ενημερώνουμε μια εγγραφή που περιέχει ένα TIMESTAMPπεδίο παραλείψουμε να δώσουμε τιμή σε αυτό το πεδίο θατου ανατεθεί αυτόματα η τιμή της τρέχουσας ημερομηνίας καιώρας

CHAR(Μ) καιVARCHAR(Μ)

Αποθήκευση μικρούαλφαριθμητικού(string)

Η παράμετρος M μπορεί να πάρει τιμή έως και 255 καιυποδηλώνει τον μέγιστο αριθμό χαρακτήρων που θα έχει τοstring το οποίο έχουμε σκοπό να αποθηκεύσουμε στοπεδίο Πεδία τύπου VARCHAR καταλαμβάνουν μνήμη ίση σεbytes όσοι και οι χαρακτήρες του string που περιέχουν σεαντίθεση με τα μνημοβόρα πεδία τύπου CHAR πουκαταλαμβάνουν πάντα M bytes

TEXTΑποθήκευσηκειμένου (μεγάλουαλφαριθμητικού)

Μέχρι 64kbytes

Πίνακες και πρωτεύον κλειδί

Σε κάθε πίνακα βάσης δεδομένων είναι σημαντικό να υπάρχει μια στήλη (πεδίο) σε κάθε σειρά τηςοποίας να υπάρχει διαφορετική τιμή έτσι ώστε κάθε εγγραφή να αποκτήσει ένα μοναδικόχαρακτηριστικό έναν laquoαριθμό ταυτότηταςraquo με τον οποίο να μπορούμε να αναφερόμαστε σε αυτήνΤο ιδιαίτερο αυτό πεδίο το ορίζουμε κατά την κατασκευή του πίνακα δίνοντάς του την ιδιότητα τουπρωτεύοντος κλειδιού (primary key)

Για να κατανοήσετε καλύτερα την χρησιμότητα του πρωτεύοντος κλειδιού θα κάνουμε έναπαραλληλισμό του με τον αριθμό που χρησιμοποιείται στην αστυνομική σας ταυτότητα Ο αριθμόςαυτός είναι μοναδικός για κάθε πολίτη όπως ακριβώς το πεδίο του πρωτεύοντος κλειδιού έχειμοναδική τιμή για κάθε εγγραφή Σκεφτείτε λοιπόν πόσο δύσκολο θα ήταν για έναν αστυνομικό ναβρει την καρτέλα με τα στοιχεία ενός ατόμου αν δεν υπήρχε ο αριθμός ταυτότητας και ήταναναγκασμένος να ψάξει το αρχείο της αστυνομίας με βάση το ονοματεπώνυμο Πόσες συνωνυμίεςθα έπρεπε να απορρίψει πριν φτάσει στο σωστό άνθρωπο

Letrsquos cut to the chase

Ανοίξτε μια κονσόλα για να ξεκινήσουμε Μετακινηθείτε στον φάκελο bin της εγκατάστασης MySQL

και εκτελέστε το MySQL monitor ως εξής

Από εδώ μπορείτε να διαχειριστείτε με απλές εντολές ότι αφορά την mysql και τις βάσεις σαςΠληκτρολογήστε τις εντολές

Η πρώτη εντολή σας επιστρέφει πληροφορίες για την κατάσταση που βρίσκεται αυτήν την στιγμή οserver Μεταξύ των πληροφοριών μπορείτε να δείτε την βάση την οποία έχετε επιλέξει γιαεπεξεργασία Ακόμα δεν έχετε επιλέξει κάποια βάση οπότε το ανάλογο πεδίο είναι κενό Η δεύτερηεντολή σας επιστρέφει μια λίστα με βάσεις που υπάρχουν ήδη στο σύστημα Αν και δεν έχετεδημιουργήσει ακόμα μια δική σας βάση θα δείτε αρκετά αποτελέσματα καθώς το XAMPP εγκαθιστά

ccd xamppmysqlbinmysql ndashu root

STATUSSHOW DATABASES

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 613

μερικές μικρές demo βάσεις Προσέξτε πως οι εντολές στην MySQL τελειώνουν πάντα με τον χαρακτήρα τερματισμού laquoraquo Οχαρακτήρας αυτός είναι χρήσιμος όταν θέλετε να πληκτρολογήσετε μεγάλες σε μήκος εντολέςΜπορείτε οποιαδήποτε στιγμή κατά την πληκτρολόγηση μιας εντολής να πατήσετε το πλήκτροEnter H MySQL εφόσον δεν έχετε εισάγει χαρακτήρα τερματισμού δεν θα εκτελέσει την εντολήαλλά θα αλλάξει απλώς σειρά ώστε να συνεχίσετε να εισάγετε την μακροσκελή εντολή Για ναεκτελέσετε την εντολή αφού έχετε τελειώσει την πληκτρολόγησή της εισάγετε τον χαρακτήρα laquoraquo καιπατήστε Enter Παρότι ορισμένες εντολές της MySQL οι οποίες δεν αναμένεται να έχουν μεγάλομήκος (όπως η STATUS) δεν απαιτούν χαρακτήρα τερματισμού για να εκτελεστούν είναι καλό νασυνηθίσετε να τερματίζετε όλες τις εντολές σας Επίσης έχετε στο νου σας ότι ενώ εμείς γράφουμετις εντολές με κεφαλαία γράμματα ώστε να ξεχωρίζουν από τις παραμέτρους και τα ορίσματα αυτόδεν είναι υποχρεωτικό στην MySQL

Ήρθε η ώρα να δημιουργήσετε την πρώτη σας βάση Πληκτρολογήστε

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

Χρησιμοποιήστε την δεύτερη για να επαληθεύσετε το αποτέλεσμα της πρώτης Ξέρουμε ότι είναι η πρώτη σας βάση και ότι είστε περήφανοι για αυτήν αλλά πρέπει να μάθετε καιτον τρόπο διαγραφής μια βάσης οπότε πληκτρολογήστε

Η πρώτη εντολή θα διαγράψει εντελώς την βάση testDB Όσον αφορά την δεύτερη μάλλον είστεπλέον σε θέση να μαντέψετε τα αποτελέσματά της Επειδή για εκπαιδευτικούς σκοπούς διαγράψατε την testDB πριν προλάβετε να τηνχρησιμοποιήσετε δημιουργήστε μια νέα κενή βάση με όνομα MoviesCollection την οποίααργότερα θα laquoγεμίσετεraquo ώστε να αντικατοπτρίζει την βάση MoviesCollection της σχετικής εικόναςΑφού δημιουργήσετε την νέα βάση πληκτρολογήστε

Με την εντολή USE δηλώνετε την επιθυμία σας να χρησιμοποιήσετε την βάση MoviesCollection

για επεξεργασία Η STATUS απλά επιβεβαιώνει τα αποτελέσματα της USE αφού σας επιστρέφειμεταξύ άλλων και όπως ήδη αναφέραμε το όνομα της τρέχουσας βάσης (Current database)

Τώρα η εντολή

επιστρέφει μια λίστα με τους πίνακες της τρέχουσας βάσης Όπως είναι αναμενόμενο αφού δενέχετε εισάγει ακόμα δεδομένα στην βάση σας η λίστα αυτή είναι προς το παρόν κενή Αςδημιουργήσουμε τον πίνακα Movies της εικόνας

CREATE DATABASE testDBSHOW DATABASES

DROP DATABASE testDBSHOW DATABASES

USE MoviesCollectionSTATUS

SHOW TABLES

CREATE TABLE Movies(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYMovieName VARCHAR(200)ReleaseYear SMALLINT UNSIGNEDRating TINYINT)

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 713

Παρατηρήστε ότι όλες αυτές οι γραμμές κώδικα συγκροτούν μια μόλις εντολή την CREATE TABLE

η οποία τερματίζεται στην τελευταία γραμμή με τον χαρακτήρα τερματισμού (Το κάναμε αυτό γιαπρακτικούς λόγους αλλά εσείς αν θέλετε μπορείτε να δώσετε την εντολή σε μια γραμμή) Στηνπρώτη γραμμή δίνουμε εντολή να δημιουργηθεί ο πίνακας Movies και στις επόμενες γραμμές μέσασε μια παρένθεση περιγράφουμε τα πεδία του πίνακα

Το πεδίο id δηλώθηκε ως ακέραιος 24bit χωρίς πρόσημο Επίσης του δόθηκαν οι ιδιότητεςPRIMARY KEY και AUTO_INCREMENT Η πρώτη ιδιότητα χαρακτηρίζει το πεδίο ως πρωτεύονκλειδί και έτσι η MySQL δεν θα επιτρέψει ποτέ σε αυτό το πεδίο να πάρει ίδια τιμή σε δύοδιαφορετικές εγγραφές Και επειδή αυτό σας υποχρεώνει να ψάχνετε έναν ακέραιο που δεν έχειεπαναληφθεί κάθε φορά που θέλετε να εισάγετε μια νέα εγγραφή στον πίνακα έρχεται η ιδιότηταAUTO_INCREMENT να σας βοηθήσει Η χρήση της ιδιότητας αυτής κατά την δήλωση ενός πεδίουσας επιτρέπει όταν θέλετε να εισάγετε εγγραφές στον πίνακα να παραλείπετε -κατά βούληση- τηνεισαγωγή τιμής σε αυτό το πεδίο Αν όντως επιλέξετε να κάνετε αυτήν την παράληψη η MySQL θααναθέσει αυτόματα τιμή στο πεδίο έναν αριθμό κατά μια μονάδα μεγαλύτερο από τον αριθμό πουανατέθηκε στο ίδιο πεδίο κατά την εισαγωγή της προηγούμενης εγγραφής Για παράδειγμα αν στηνπρώτη εγγραφή αναθέσετε την τιμή 13 στο πεδίο id ενώ κατά την δεύτερη εγγραφή παραλείψετετην χειροκίνητη ανάθεση τιμής στο ίδιο πεδίο τότε η MySQL θα του δώσει αυτόματα την τιμή 14

Επίσης έχετε υπόψη ότι δηλώνοντας το πεδίο id ως 24bit ακέραιο άνευ πρόσημου καιταυτόχρονα ως πρωτεύον κλειδί περιορίζετε ουσιαστικά το πλήθος των εγγραφών αυτού τουπίνακα σε 2^24 (γεγονός όχι ιδιαίτερα περιοριστικό αν συγκρίνετε τον αριθμό αυτό με το πλήθοςτων κινηματογραφικών ταινιών παγκοσμίως -) ) Όσον αφορά τα υπόλοιπα πεδία το πεδίο MovieName δηλώθηκε ως αλφαριθμητικό με μέγιστομήκος τους 200 χαρακτήρες και το πεδίο ReleaseYear δηλώθηκε ως ακέραιος των 16bits χωρίςπρόσημο οπότε μπορεί να πάρει τιμές από 0 έως 2^16-1=65535 Στο πεδίο Rating

περιορίστηκε το εύρος του ακεραίου σε 8bit αλλά επιτράπηκε το αρνητικό πρόσημο ώστε ναυπάρχει δυνατότητα αρνητικής βαθμολογίας των ταινιών Έτσι το πεδίο Rating μπορεί να πάρειτιμές από -128 μέχρι 127

Ο πίνακας Movies είναι έτοιμος για εισαγωγή δεδομένων Χρησιμοποιήστε τις επόμενες εντολές γιανα ορίσετε και τους άλλους δύο πίνακες του παραδείγματός μας

Δοκιμάστε τώρα τις εντολές

Η εντολή DESCRIBE επιστρέφει τον τρόπο με τον οποίο είναι ορισμένος ένας πίνακας σεπερίπτωση που το ξεχάσατε ή για επαλήθευση σωστού ορισμού Αν λοιπόν ορίσατε κάποιονπίνακα λανθασμένα ή για οποιονδήποτε άλλο λόγο θέλετε να διαγράψετε ένα πίνακα (μαζί με όλα ταδεδομένα που περιέχει) μπορείτε να χρησιμοποιήσετε την εντολή

CREATE TABLE Directors(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYName VARCHAR(120)BirthYear SMALLINT UNSIGNED)CREATE TABLE MovDirLink(MovieID MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYDirectorID MEDIUMINT UNSIGNED)

DESCRIBE MoviesDESCRIBE DirectorsDESCRIBE MovDirLink

DROP TABLE όνομα πίνακα

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 813

Είναι ώρα να προσθέσετε εγγραφές στους πίνακες Για να εισάγετε τις πρώτες δύο εγγραφές στονπίνακα Movies αντιγράφοντας τον πίνακα-δείγμα της εικόνας πληκτρολογήστε τα εξής

Η χρήση της INSERT INTO είναι αρκετά προφανής και είστε πλέον σε θέση να αντιγράψετε πλήρωςκαι τους τρεις πίνακες του παραδείγματος της εικόνας Κάντε το Παρατηρήστε ότι η MySQL δενενοχλείται είτε χρησιμοποιήσετε quotes (lsquo) είτε double-quotes (rdquo) για την εισαγωγήαλφαριθμητικών Αυτό θα φανεί ιδιαίτερα χρήσιμο στο τρίτο μέρος αυτού του tutorial όταν κώδικαςMySQL θα μπλέξει με κώδικα PHP και ΗΤML tags Προσέξτε επίσης ότι κατά την εισαγωγή τηςδεύτερης εγγραφής δεν χρειάστηκε να ανατεθεί χειροκίνητα τιμή στο πεδίο id καθώς η MySQL θαδώσει αυτόματα την τιμή 622 (621+1) Τέλος παρότι σιχαινόμαστε να διορθώνουμε τα λάθη σας -) παρατηρούμε ότι στην ίδια εγγραφή κάνατε -Ρ ένα λάθος πληκτρολόγησης στο όνομα της ταινίαςΔιορθώστε το λάθος χρησιμοποιώντας την εντολή UPDATE

Η εντολή UPDATE έχει την δυνατότητα να ενημερώσει ταυτόχρονα πολλές εγγραφές οπότεχρειάζεται ιδιαίτερη προσοχή στην υπόθεση που ακολουθεί μετά τον όρο WHERE Με τηνσυγκεκριμένη εντολή ζητάτε από την MySQL να ενημερώσει το πεδίο MovieName όλων τωνεγγραφών για τις οποίες ισχύει η υπόθεση id=622 Στην περίπτωση που παραλείψετε να γράψετετο WHERE id=622 όλες σας οι ταινίες θα μετονομαστούν σε King Kong Μην ξεχνάτε λοιπόν ναεισάγετε τον όρο WHERE και να προτιμάτε η υπόθεση που τον ακολουθεί να βασίζεται στοπρωτεύον κλειδί του πίνακα τον οποίο ενημερώνετε (όπως εδώ έγινε χρήση του πεδίου id) καθώςμε αυτόν τον τρόπο είστε σίγουροι ότι ενημερώνετε ακριβώς τις εγγραφές που θέλετε Ας υποθέσουμε τώρα ότι θέλετε να διαγράψετε κάποιες εγγραφές από τον πίνακα Movies και αςυποθέσουμε περαιτέρω ότι οι εγγραφές αυτές είναι οι ταινίες που είτε είναι παλιές (εκδόθηκαν πριντο 1980) είτε δεν σας αρέσουν (έχουν αρνητικό rating) Χρησιμοποιήστε την εντολή

Όπως βλέπετε η DELETE FROM έχει παρόμοια σύνταξη με την UPDATE και συνεπώς η χρήση τηςχρειάζεται την ίδια προσοχή Επίσης παρατηρήστε ότι μπορείτε να χρησιμοποιήσετε και άλλουςτελεστές στην υπόθεση της WHERE πέρα από την ισότητα της υπόθεσης id=622 H MySQL

υποστηρίζει όλους τους κοινούς τελεστές όπως τους = lt gt OR AND κα

Με την DELETE ολοκληρώνεται το σετ εντολών που χρειάζεστε για να επεξεργαστείτε τις βάσεις σαςκαι τους πίνακές σας Ωστόσο η εντολή που θα χρησιμοποιήσετε πιο συχνά από όλες τις άλλεςείναι χωρίς αμφιβολία η SELECT η οποία επιστρέφει -σύμφωνα με κάποια κριτήρια- πληροφορίεςαπό τις βάσεις σας Άλλωστε από την αρχή του tutorial πληκτρολογείτε εντολές χωρίς να είστε σεθέση να δείτε τα αποτελέσματα των εντολών σας και κατά πόσο αυτές ήταν αποτελεσματικέςΔώστε τέλος σε αυτή την κατάσταση πληκτρολογώντας

Αυτές οι τρεις εντολές θα σας επιστρέψουν το πλήρες περιεχόμενο των πινάκων Movies

INSERT INTO Movies VALUES(621 ldquoForrest Gumprdquo 1994 105)INSERT INTO Movies VALUES(NULL lsquoKing Longrsquo 2005 29)

UPDATE Movies SET MovieName=rdquoKing Kongrdquo WHERE id=622

DELETE FROM Movies WHERE ReleaseYearlt1980 OR Ratinggt0

SELECT FROM MoviesSELECT FROM DirectorsSELECT FROM MovDirLink

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 3: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 313

οι distributions περιλαμβάνουν έναν editor

που σέβεται τον εαυτό του όπως το TextEdit

του Gnome Στα Windows ο παρεχόμενοςeditor το notepad δεν κρίνεται κατάλληλοςγια σύνταξη κώδικα και σας προτείνουμε ναχρησιμοποιήσετε κάποιον άλλο όπως τονεμπορικό UltraEdit ή τον δωρεάν PSPad Ταίδια ισχύουν για το παρεχόμενο TextEdit τουMacOSX Προτιμήστε το IDE που παρέχει ηίδια η Apple το Xcode ή κάποιον εναλλακτικόeditor όπως ο BBEdit

Gentlemen start your engines

Αφού εγκαταστήσατε το XAMPP ανοίξτε τοXAMPP Control Panel και ξεκινήστε τονApache και τον MySQL server (Για λόγουςασφαλείας μην ξεχνάτε να σταματάτε τουςservers κάθε φορά που τελειώνετε τηνενασχόλησή σας με την ανάπτυξηιστοσελίδων) Αν θέλετε πριν προχωρήσετεπαρακάτω επαληθεύστε ότι το XAMPP

εγκαταστάθηκε σωστά πληκτρολογώντας τηνδιεύθυνση localhost στον browser σας Ανόλα πήγαν καλά θα πρέπει να εμφανιστεί μιασελίδα που σας καλωσορίζει στο XAMPP Είστε πλέον έτοιμοι να αρχίσετε την ουσιαστική δουλειά

Εισαγωγή στη δομή της MySQL

Ένας MySQL server αποτελείται από ένα σύνολο βάσεων δεδομένων (databases) Κάθε βάσηδεδομένων είναι ένα σύνολο πινάκων (tables) παρόμοιων με αυτών που μπορείτε να φτιάξετε σεένα πρόγραμμα spreadsheet όπως το Excel Οι γραμμές του πίνακα ονομάζονται εγγραφές(records) και οι στήλες του πίνακα ονομάζονται πεδία (fields) Δεν υπάρχει ουσιαστικό όριο στηνποσότητα βάσεων που περιέχονται στον server στην ποσότητα πινάκων που περιέχονται στιςβάσεις μα ούτε και στην ποσότητα πεδίων και εγγραφών που περιέχονται στους πίνακες Τα πεδίατων πινάκων μπορούν να περιέχουν μόνο ένα συγκεκριμένο τύπο πληροφορίας ο οποίος ορίζεταικατά την δημιουργία του πίνακα Για παράδειγμα ένα πεδίο που είναι ορισμένο ως ακέραιος αριθμόςδεν είναι κατάλληλο για αποθήκευση δεκαδικού αριθμού ή κειμένου Η δομή αυτή χρησιμοποιείταιαπό όλα τα σύγχρονα συστήματα βάσεων δεδομένων και έχει αποδειχτεί πολύ πρακτική για τηναποθήκευση τεράστιων όγκων δομημένης πληροφορίας

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 413

Δείτε την ανάλογη εικόνα με το παράδειγμα (στην οποία θα αναφερόμαστε σε όλη την διάρκειααυτού του πρώτου μέρους του tutorial) για να την κατανοήσετε καλύτερα Επίσης δείτε στονπίνακα που ακολουθεί κάποιους από τους πιο βασικούς τύπους πεδίων

Βασικοί τύποι πεδίων στην MySQL

Τύπος Χρήση Μέγεθος - Χαρακτηριστικά

ΤΙΝΥΙΝΤSMALLINTMEDIUMINTINT καιBIGINT

Αποθήκευσηακέραιων αριθμών

8162432 και 64 bits αντίστοιχα Αν χρησιμοποιηθούν μετην ιδιότητα UNSIGNED περιορίζονται σε αποθήκευση μηαρνητικών ακέραιων (φυσικών) Πχ ένας TINYINT αριθμός παίρνει τιμές από -128 έως 127δηλαδή έχει εύρος 2^8=256 Ένας TINYINT UNSIGNED δενμπορεί να πάρει αρνητικό πρόσημο οπότε παίρνει τιμές από0 έως 255 ώστε να διατηρηθεί το εύρος

FLOAT καιDOUBLE

Αποθήκευσηαριθμών κινητήςυποδιαστολής

32 και 64 bits αντίστοιχα Δεν μπορούν να είναι unsigned

DATEΑποθήκευσηημερομηνίας 24bits Μορφή ΕΕΕΕ-ΜΜ-ΗΗ

TIME Αποθήκευση ώρας 24bits Μορφή ΩΩΩΛΛΔΔ όπου η ώρα ΩΩΩ μπορεί ναπάρει τιμές από -838 έως 838

Αυτόματη ή μηαυτόματη

32bits Μορφή ΕΕΕΕ-ΜΜ-ΗΗ ΩΩΛΛΔΔ Σε ένα πεδίοτύπου TIMESTAMP μπορεί να ανατεθεί χειροκίνητα μια τιμήΔιαφορετικά αν την στιγμή που δημιουργούμε ή

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 513

TIMESTAMPαποθήκευσηημερομηνίας καιώρας

ενημερώνουμε μια εγγραφή που περιέχει ένα TIMESTAMPπεδίο παραλείψουμε να δώσουμε τιμή σε αυτό το πεδίο θατου ανατεθεί αυτόματα η τιμή της τρέχουσας ημερομηνίας καιώρας

CHAR(Μ) καιVARCHAR(Μ)

Αποθήκευση μικρούαλφαριθμητικού(string)

Η παράμετρος M μπορεί να πάρει τιμή έως και 255 καιυποδηλώνει τον μέγιστο αριθμό χαρακτήρων που θα έχει τοstring το οποίο έχουμε σκοπό να αποθηκεύσουμε στοπεδίο Πεδία τύπου VARCHAR καταλαμβάνουν μνήμη ίση σεbytes όσοι και οι χαρακτήρες του string που περιέχουν σεαντίθεση με τα μνημοβόρα πεδία τύπου CHAR πουκαταλαμβάνουν πάντα M bytes

TEXTΑποθήκευσηκειμένου (μεγάλουαλφαριθμητικού)

Μέχρι 64kbytes

Πίνακες και πρωτεύον κλειδί

Σε κάθε πίνακα βάσης δεδομένων είναι σημαντικό να υπάρχει μια στήλη (πεδίο) σε κάθε σειρά τηςοποίας να υπάρχει διαφορετική τιμή έτσι ώστε κάθε εγγραφή να αποκτήσει ένα μοναδικόχαρακτηριστικό έναν laquoαριθμό ταυτότηταςraquo με τον οποίο να μπορούμε να αναφερόμαστε σε αυτήνΤο ιδιαίτερο αυτό πεδίο το ορίζουμε κατά την κατασκευή του πίνακα δίνοντάς του την ιδιότητα τουπρωτεύοντος κλειδιού (primary key)

Για να κατανοήσετε καλύτερα την χρησιμότητα του πρωτεύοντος κλειδιού θα κάνουμε έναπαραλληλισμό του με τον αριθμό που χρησιμοποιείται στην αστυνομική σας ταυτότητα Ο αριθμόςαυτός είναι μοναδικός για κάθε πολίτη όπως ακριβώς το πεδίο του πρωτεύοντος κλειδιού έχειμοναδική τιμή για κάθε εγγραφή Σκεφτείτε λοιπόν πόσο δύσκολο θα ήταν για έναν αστυνομικό ναβρει την καρτέλα με τα στοιχεία ενός ατόμου αν δεν υπήρχε ο αριθμός ταυτότητας και ήταναναγκασμένος να ψάξει το αρχείο της αστυνομίας με βάση το ονοματεπώνυμο Πόσες συνωνυμίεςθα έπρεπε να απορρίψει πριν φτάσει στο σωστό άνθρωπο

Letrsquos cut to the chase

Ανοίξτε μια κονσόλα για να ξεκινήσουμε Μετακινηθείτε στον φάκελο bin της εγκατάστασης MySQL

και εκτελέστε το MySQL monitor ως εξής

Από εδώ μπορείτε να διαχειριστείτε με απλές εντολές ότι αφορά την mysql και τις βάσεις σαςΠληκτρολογήστε τις εντολές

Η πρώτη εντολή σας επιστρέφει πληροφορίες για την κατάσταση που βρίσκεται αυτήν την στιγμή οserver Μεταξύ των πληροφοριών μπορείτε να δείτε την βάση την οποία έχετε επιλέξει γιαεπεξεργασία Ακόμα δεν έχετε επιλέξει κάποια βάση οπότε το ανάλογο πεδίο είναι κενό Η δεύτερηεντολή σας επιστρέφει μια λίστα με βάσεις που υπάρχουν ήδη στο σύστημα Αν και δεν έχετεδημιουργήσει ακόμα μια δική σας βάση θα δείτε αρκετά αποτελέσματα καθώς το XAMPP εγκαθιστά

ccd xamppmysqlbinmysql ndashu root

STATUSSHOW DATABASES

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 613

μερικές μικρές demo βάσεις Προσέξτε πως οι εντολές στην MySQL τελειώνουν πάντα με τον χαρακτήρα τερματισμού laquoraquo Οχαρακτήρας αυτός είναι χρήσιμος όταν θέλετε να πληκτρολογήσετε μεγάλες σε μήκος εντολέςΜπορείτε οποιαδήποτε στιγμή κατά την πληκτρολόγηση μιας εντολής να πατήσετε το πλήκτροEnter H MySQL εφόσον δεν έχετε εισάγει χαρακτήρα τερματισμού δεν θα εκτελέσει την εντολήαλλά θα αλλάξει απλώς σειρά ώστε να συνεχίσετε να εισάγετε την μακροσκελή εντολή Για ναεκτελέσετε την εντολή αφού έχετε τελειώσει την πληκτρολόγησή της εισάγετε τον χαρακτήρα laquoraquo καιπατήστε Enter Παρότι ορισμένες εντολές της MySQL οι οποίες δεν αναμένεται να έχουν μεγάλομήκος (όπως η STATUS) δεν απαιτούν χαρακτήρα τερματισμού για να εκτελεστούν είναι καλό νασυνηθίσετε να τερματίζετε όλες τις εντολές σας Επίσης έχετε στο νου σας ότι ενώ εμείς γράφουμετις εντολές με κεφαλαία γράμματα ώστε να ξεχωρίζουν από τις παραμέτρους και τα ορίσματα αυτόδεν είναι υποχρεωτικό στην MySQL

Ήρθε η ώρα να δημιουργήσετε την πρώτη σας βάση Πληκτρολογήστε

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

Χρησιμοποιήστε την δεύτερη για να επαληθεύσετε το αποτέλεσμα της πρώτης Ξέρουμε ότι είναι η πρώτη σας βάση και ότι είστε περήφανοι για αυτήν αλλά πρέπει να μάθετε καιτον τρόπο διαγραφής μια βάσης οπότε πληκτρολογήστε

Η πρώτη εντολή θα διαγράψει εντελώς την βάση testDB Όσον αφορά την δεύτερη μάλλον είστεπλέον σε θέση να μαντέψετε τα αποτελέσματά της Επειδή για εκπαιδευτικούς σκοπούς διαγράψατε την testDB πριν προλάβετε να τηνχρησιμοποιήσετε δημιουργήστε μια νέα κενή βάση με όνομα MoviesCollection την οποίααργότερα θα laquoγεμίσετεraquo ώστε να αντικατοπτρίζει την βάση MoviesCollection της σχετικής εικόναςΑφού δημιουργήσετε την νέα βάση πληκτρολογήστε

Με την εντολή USE δηλώνετε την επιθυμία σας να χρησιμοποιήσετε την βάση MoviesCollection

για επεξεργασία Η STATUS απλά επιβεβαιώνει τα αποτελέσματα της USE αφού σας επιστρέφειμεταξύ άλλων και όπως ήδη αναφέραμε το όνομα της τρέχουσας βάσης (Current database)

Τώρα η εντολή

επιστρέφει μια λίστα με τους πίνακες της τρέχουσας βάσης Όπως είναι αναμενόμενο αφού δενέχετε εισάγει ακόμα δεδομένα στην βάση σας η λίστα αυτή είναι προς το παρόν κενή Αςδημιουργήσουμε τον πίνακα Movies της εικόνας

CREATE DATABASE testDBSHOW DATABASES

DROP DATABASE testDBSHOW DATABASES

USE MoviesCollectionSTATUS

SHOW TABLES

CREATE TABLE Movies(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYMovieName VARCHAR(200)ReleaseYear SMALLINT UNSIGNEDRating TINYINT)

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 713

Παρατηρήστε ότι όλες αυτές οι γραμμές κώδικα συγκροτούν μια μόλις εντολή την CREATE TABLE

η οποία τερματίζεται στην τελευταία γραμμή με τον χαρακτήρα τερματισμού (Το κάναμε αυτό γιαπρακτικούς λόγους αλλά εσείς αν θέλετε μπορείτε να δώσετε την εντολή σε μια γραμμή) Στηνπρώτη γραμμή δίνουμε εντολή να δημιουργηθεί ο πίνακας Movies και στις επόμενες γραμμές μέσασε μια παρένθεση περιγράφουμε τα πεδία του πίνακα

Το πεδίο id δηλώθηκε ως ακέραιος 24bit χωρίς πρόσημο Επίσης του δόθηκαν οι ιδιότητεςPRIMARY KEY και AUTO_INCREMENT Η πρώτη ιδιότητα χαρακτηρίζει το πεδίο ως πρωτεύονκλειδί και έτσι η MySQL δεν θα επιτρέψει ποτέ σε αυτό το πεδίο να πάρει ίδια τιμή σε δύοδιαφορετικές εγγραφές Και επειδή αυτό σας υποχρεώνει να ψάχνετε έναν ακέραιο που δεν έχειεπαναληφθεί κάθε φορά που θέλετε να εισάγετε μια νέα εγγραφή στον πίνακα έρχεται η ιδιότηταAUTO_INCREMENT να σας βοηθήσει Η χρήση της ιδιότητας αυτής κατά την δήλωση ενός πεδίουσας επιτρέπει όταν θέλετε να εισάγετε εγγραφές στον πίνακα να παραλείπετε -κατά βούληση- τηνεισαγωγή τιμής σε αυτό το πεδίο Αν όντως επιλέξετε να κάνετε αυτήν την παράληψη η MySQL θααναθέσει αυτόματα τιμή στο πεδίο έναν αριθμό κατά μια μονάδα μεγαλύτερο από τον αριθμό πουανατέθηκε στο ίδιο πεδίο κατά την εισαγωγή της προηγούμενης εγγραφής Για παράδειγμα αν στηνπρώτη εγγραφή αναθέσετε την τιμή 13 στο πεδίο id ενώ κατά την δεύτερη εγγραφή παραλείψετετην χειροκίνητη ανάθεση τιμής στο ίδιο πεδίο τότε η MySQL θα του δώσει αυτόματα την τιμή 14

Επίσης έχετε υπόψη ότι δηλώνοντας το πεδίο id ως 24bit ακέραιο άνευ πρόσημου καιταυτόχρονα ως πρωτεύον κλειδί περιορίζετε ουσιαστικά το πλήθος των εγγραφών αυτού τουπίνακα σε 2^24 (γεγονός όχι ιδιαίτερα περιοριστικό αν συγκρίνετε τον αριθμό αυτό με το πλήθοςτων κινηματογραφικών ταινιών παγκοσμίως -) ) Όσον αφορά τα υπόλοιπα πεδία το πεδίο MovieName δηλώθηκε ως αλφαριθμητικό με μέγιστομήκος τους 200 χαρακτήρες και το πεδίο ReleaseYear δηλώθηκε ως ακέραιος των 16bits χωρίςπρόσημο οπότε μπορεί να πάρει τιμές από 0 έως 2^16-1=65535 Στο πεδίο Rating

περιορίστηκε το εύρος του ακεραίου σε 8bit αλλά επιτράπηκε το αρνητικό πρόσημο ώστε ναυπάρχει δυνατότητα αρνητικής βαθμολογίας των ταινιών Έτσι το πεδίο Rating μπορεί να πάρειτιμές από -128 μέχρι 127

Ο πίνακας Movies είναι έτοιμος για εισαγωγή δεδομένων Χρησιμοποιήστε τις επόμενες εντολές γιανα ορίσετε και τους άλλους δύο πίνακες του παραδείγματός μας

Δοκιμάστε τώρα τις εντολές

Η εντολή DESCRIBE επιστρέφει τον τρόπο με τον οποίο είναι ορισμένος ένας πίνακας σεπερίπτωση που το ξεχάσατε ή για επαλήθευση σωστού ορισμού Αν λοιπόν ορίσατε κάποιονπίνακα λανθασμένα ή για οποιονδήποτε άλλο λόγο θέλετε να διαγράψετε ένα πίνακα (μαζί με όλα ταδεδομένα που περιέχει) μπορείτε να χρησιμοποιήσετε την εντολή

CREATE TABLE Directors(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYName VARCHAR(120)BirthYear SMALLINT UNSIGNED)CREATE TABLE MovDirLink(MovieID MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYDirectorID MEDIUMINT UNSIGNED)

DESCRIBE MoviesDESCRIBE DirectorsDESCRIBE MovDirLink

DROP TABLE όνομα πίνακα

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 813

Είναι ώρα να προσθέσετε εγγραφές στους πίνακες Για να εισάγετε τις πρώτες δύο εγγραφές στονπίνακα Movies αντιγράφοντας τον πίνακα-δείγμα της εικόνας πληκτρολογήστε τα εξής

Η χρήση της INSERT INTO είναι αρκετά προφανής και είστε πλέον σε θέση να αντιγράψετε πλήρωςκαι τους τρεις πίνακες του παραδείγματος της εικόνας Κάντε το Παρατηρήστε ότι η MySQL δενενοχλείται είτε χρησιμοποιήσετε quotes (lsquo) είτε double-quotes (rdquo) για την εισαγωγήαλφαριθμητικών Αυτό θα φανεί ιδιαίτερα χρήσιμο στο τρίτο μέρος αυτού του tutorial όταν κώδικαςMySQL θα μπλέξει με κώδικα PHP και ΗΤML tags Προσέξτε επίσης ότι κατά την εισαγωγή τηςδεύτερης εγγραφής δεν χρειάστηκε να ανατεθεί χειροκίνητα τιμή στο πεδίο id καθώς η MySQL θαδώσει αυτόματα την τιμή 622 (621+1) Τέλος παρότι σιχαινόμαστε να διορθώνουμε τα λάθη σας -) παρατηρούμε ότι στην ίδια εγγραφή κάνατε -Ρ ένα λάθος πληκτρολόγησης στο όνομα της ταινίαςΔιορθώστε το λάθος χρησιμοποιώντας την εντολή UPDATE

Η εντολή UPDATE έχει την δυνατότητα να ενημερώσει ταυτόχρονα πολλές εγγραφές οπότεχρειάζεται ιδιαίτερη προσοχή στην υπόθεση που ακολουθεί μετά τον όρο WHERE Με τηνσυγκεκριμένη εντολή ζητάτε από την MySQL να ενημερώσει το πεδίο MovieName όλων τωνεγγραφών για τις οποίες ισχύει η υπόθεση id=622 Στην περίπτωση που παραλείψετε να γράψετετο WHERE id=622 όλες σας οι ταινίες θα μετονομαστούν σε King Kong Μην ξεχνάτε λοιπόν ναεισάγετε τον όρο WHERE και να προτιμάτε η υπόθεση που τον ακολουθεί να βασίζεται στοπρωτεύον κλειδί του πίνακα τον οποίο ενημερώνετε (όπως εδώ έγινε χρήση του πεδίου id) καθώςμε αυτόν τον τρόπο είστε σίγουροι ότι ενημερώνετε ακριβώς τις εγγραφές που θέλετε Ας υποθέσουμε τώρα ότι θέλετε να διαγράψετε κάποιες εγγραφές από τον πίνακα Movies και αςυποθέσουμε περαιτέρω ότι οι εγγραφές αυτές είναι οι ταινίες που είτε είναι παλιές (εκδόθηκαν πριντο 1980) είτε δεν σας αρέσουν (έχουν αρνητικό rating) Χρησιμοποιήστε την εντολή

Όπως βλέπετε η DELETE FROM έχει παρόμοια σύνταξη με την UPDATE και συνεπώς η χρήση τηςχρειάζεται την ίδια προσοχή Επίσης παρατηρήστε ότι μπορείτε να χρησιμοποιήσετε και άλλουςτελεστές στην υπόθεση της WHERE πέρα από την ισότητα της υπόθεσης id=622 H MySQL

υποστηρίζει όλους τους κοινούς τελεστές όπως τους = lt gt OR AND κα

Με την DELETE ολοκληρώνεται το σετ εντολών που χρειάζεστε για να επεξεργαστείτε τις βάσεις σαςκαι τους πίνακές σας Ωστόσο η εντολή που θα χρησιμοποιήσετε πιο συχνά από όλες τις άλλεςείναι χωρίς αμφιβολία η SELECT η οποία επιστρέφει -σύμφωνα με κάποια κριτήρια- πληροφορίεςαπό τις βάσεις σας Άλλωστε από την αρχή του tutorial πληκτρολογείτε εντολές χωρίς να είστε σεθέση να δείτε τα αποτελέσματα των εντολών σας και κατά πόσο αυτές ήταν αποτελεσματικέςΔώστε τέλος σε αυτή την κατάσταση πληκτρολογώντας

Αυτές οι τρεις εντολές θα σας επιστρέψουν το πλήρες περιεχόμενο των πινάκων Movies

INSERT INTO Movies VALUES(621 ldquoForrest Gumprdquo 1994 105)INSERT INTO Movies VALUES(NULL lsquoKing Longrsquo 2005 29)

UPDATE Movies SET MovieName=rdquoKing Kongrdquo WHERE id=622

DELETE FROM Movies WHERE ReleaseYearlt1980 OR Ratinggt0

SELECT FROM MoviesSELECT FROM DirectorsSELECT FROM MovDirLink

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 4: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 413

Δείτε την ανάλογη εικόνα με το παράδειγμα (στην οποία θα αναφερόμαστε σε όλη την διάρκειααυτού του πρώτου μέρους του tutorial) για να την κατανοήσετε καλύτερα Επίσης δείτε στονπίνακα που ακολουθεί κάποιους από τους πιο βασικούς τύπους πεδίων

Βασικοί τύποι πεδίων στην MySQL

Τύπος Χρήση Μέγεθος - Χαρακτηριστικά

ΤΙΝΥΙΝΤSMALLINTMEDIUMINTINT καιBIGINT

Αποθήκευσηακέραιων αριθμών

8162432 και 64 bits αντίστοιχα Αν χρησιμοποιηθούν μετην ιδιότητα UNSIGNED περιορίζονται σε αποθήκευση μηαρνητικών ακέραιων (φυσικών) Πχ ένας TINYINT αριθμός παίρνει τιμές από -128 έως 127δηλαδή έχει εύρος 2^8=256 Ένας TINYINT UNSIGNED δενμπορεί να πάρει αρνητικό πρόσημο οπότε παίρνει τιμές από0 έως 255 ώστε να διατηρηθεί το εύρος

FLOAT καιDOUBLE

Αποθήκευσηαριθμών κινητήςυποδιαστολής

32 και 64 bits αντίστοιχα Δεν μπορούν να είναι unsigned

DATEΑποθήκευσηημερομηνίας 24bits Μορφή ΕΕΕΕ-ΜΜ-ΗΗ

TIME Αποθήκευση ώρας 24bits Μορφή ΩΩΩΛΛΔΔ όπου η ώρα ΩΩΩ μπορεί ναπάρει τιμές από -838 έως 838

Αυτόματη ή μηαυτόματη

32bits Μορφή ΕΕΕΕ-ΜΜ-ΗΗ ΩΩΛΛΔΔ Σε ένα πεδίοτύπου TIMESTAMP μπορεί να ανατεθεί χειροκίνητα μια τιμήΔιαφορετικά αν την στιγμή που δημιουργούμε ή

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 513

TIMESTAMPαποθήκευσηημερομηνίας καιώρας

ενημερώνουμε μια εγγραφή που περιέχει ένα TIMESTAMPπεδίο παραλείψουμε να δώσουμε τιμή σε αυτό το πεδίο θατου ανατεθεί αυτόματα η τιμή της τρέχουσας ημερομηνίας καιώρας

CHAR(Μ) καιVARCHAR(Μ)

Αποθήκευση μικρούαλφαριθμητικού(string)

Η παράμετρος M μπορεί να πάρει τιμή έως και 255 καιυποδηλώνει τον μέγιστο αριθμό χαρακτήρων που θα έχει τοstring το οποίο έχουμε σκοπό να αποθηκεύσουμε στοπεδίο Πεδία τύπου VARCHAR καταλαμβάνουν μνήμη ίση σεbytes όσοι και οι χαρακτήρες του string που περιέχουν σεαντίθεση με τα μνημοβόρα πεδία τύπου CHAR πουκαταλαμβάνουν πάντα M bytes

TEXTΑποθήκευσηκειμένου (μεγάλουαλφαριθμητικού)

Μέχρι 64kbytes

Πίνακες και πρωτεύον κλειδί

Σε κάθε πίνακα βάσης δεδομένων είναι σημαντικό να υπάρχει μια στήλη (πεδίο) σε κάθε σειρά τηςοποίας να υπάρχει διαφορετική τιμή έτσι ώστε κάθε εγγραφή να αποκτήσει ένα μοναδικόχαρακτηριστικό έναν laquoαριθμό ταυτότηταςraquo με τον οποίο να μπορούμε να αναφερόμαστε σε αυτήνΤο ιδιαίτερο αυτό πεδίο το ορίζουμε κατά την κατασκευή του πίνακα δίνοντάς του την ιδιότητα τουπρωτεύοντος κλειδιού (primary key)

Για να κατανοήσετε καλύτερα την χρησιμότητα του πρωτεύοντος κλειδιού θα κάνουμε έναπαραλληλισμό του με τον αριθμό που χρησιμοποιείται στην αστυνομική σας ταυτότητα Ο αριθμόςαυτός είναι μοναδικός για κάθε πολίτη όπως ακριβώς το πεδίο του πρωτεύοντος κλειδιού έχειμοναδική τιμή για κάθε εγγραφή Σκεφτείτε λοιπόν πόσο δύσκολο θα ήταν για έναν αστυνομικό ναβρει την καρτέλα με τα στοιχεία ενός ατόμου αν δεν υπήρχε ο αριθμός ταυτότητας και ήταναναγκασμένος να ψάξει το αρχείο της αστυνομίας με βάση το ονοματεπώνυμο Πόσες συνωνυμίεςθα έπρεπε να απορρίψει πριν φτάσει στο σωστό άνθρωπο

Letrsquos cut to the chase

Ανοίξτε μια κονσόλα για να ξεκινήσουμε Μετακινηθείτε στον φάκελο bin της εγκατάστασης MySQL

και εκτελέστε το MySQL monitor ως εξής

Από εδώ μπορείτε να διαχειριστείτε με απλές εντολές ότι αφορά την mysql και τις βάσεις σαςΠληκτρολογήστε τις εντολές

Η πρώτη εντολή σας επιστρέφει πληροφορίες για την κατάσταση που βρίσκεται αυτήν την στιγμή οserver Μεταξύ των πληροφοριών μπορείτε να δείτε την βάση την οποία έχετε επιλέξει γιαεπεξεργασία Ακόμα δεν έχετε επιλέξει κάποια βάση οπότε το ανάλογο πεδίο είναι κενό Η δεύτερηεντολή σας επιστρέφει μια λίστα με βάσεις που υπάρχουν ήδη στο σύστημα Αν και δεν έχετεδημιουργήσει ακόμα μια δική σας βάση θα δείτε αρκετά αποτελέσματα καθώς το XAMPP εγκαθιστά

ccd xamppmysqlbinmysql ndashu root

STATUSSHOW DATABASES

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 613

μερικές μικρές demo βάσεις Προσέξτε πως οι εντολές στην MySQL τελειώνουν πάντα με τον χαρακτήρα τερματισμού laquoraquo Οχαρακτήρας αυτός είναι χρήσιμος όταν θέλετε να πληκτρολογήσετε μεγάλες σε μήκος εντολέςΜπορείτε οποιαδήποτε στιγμή κατά την πληκτρολόγηση μιας εντολής να πατήσετε το πλήκτροEnter H MySQL εφόσον δεν έχετε εισάγει χαρακτήρα τερματισμού δεν θα εκτελέσει την εντολήαλλά θα αλλάξει απλώς σειρά ώστε να συνεχίσετε να εισάγετε την μακροσκελή εντολή Για ναεκτελέσετε την εντολή αφού έχετε τελειώσει την πληκτρολόγησή της εισάγετε τον χαρακτήρα laquoraquo καιπατήστε Enter Παρότι ορισμένες εντολές της MySQL οι οποίες δεν αναμένεται να έχουν μεγάλομήκος (όπως η STATUS) δεν απαιτούν χαρακτήρα τερματισμού για να εκτελεστούν είναι καλό νασυνηθίσετε να τερματίζετε όλες τις εντολές σας Επίσης έχετε στο νου σας ότι ενώ εμείς γράφουμετις εντολές με κεφαλαία γράμματα ώστε να ξεχωρίζουν από τις παραμέτρους και τα ορίσματα αυτόδεν είναι υποχρεωτικό στην MySQL

Ήρθε η ώρα να δημιουργήσετε την πρώτη σας βάση Πληκτρολογήστε

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

Χρησιμοποιήστε την δεύτερη για να επαληθεύσετε το αποτέλεσμα της πρώτης Ξέρουμε ότι είναι η πρώτη σας βάση και ότι είστε περήφανοι για αυτήν αλλά πρέπει να μάθετε καιτον τρόπο διαγραφής μια βάσης οπότε πληκτρολογήστε

Η πρώτη εντολή θα διαγράψει εντελώς την βάση testDB Όσον αφορά την δεύτερη μάλλον είστεπλέον σε θέση να μαντέψετε τα αποτελέσματά της Επειδή για εκπαιδευτικούς σκοπούς διαγράψατε την testDB πριν προλάβετε να τηνχρησιμοποιήσετε δημιουργήστε μια νέα κενή βάση με όνομα MoviesCollection την οποίααργότερα θα laquoγεμίσετεraquo ώστε να αντικατοπτρίζει την βάση MoviesCollection της σχετικής εικόναςΑφού δημιουργήσετε την νέα βάση πληκτρολογήστε

Με την εντολή USE δηλώνετε την επιθυμία σας να χρησιμοποιήσετε την βάση MoviesCollection

για επεξεργασία Η STATUS απλά επιβεβαιώνει τα αποτελέσματα της USE αφού σας επιστρέφειμεταξύ άλλων και όπως ήδη αναφέραμε το όνομα της τρέχουσας βάσης (Current database)

Τώρα η εντολή

επιστρέφει μια λίστα με τους πίνακες της τρέχουσας βάσης Όπως είναι αναμενόμενο αφού δενέχετε εισάγει ακόμα δεδομένα στην βάση σας η λίστα αυτή είναι προς το παρόν κενή Αςδημιουργήσουμε τον πίνακα Movies της εικόνας

CREATE DATABASE testDBSHOW DATABASES

DROP DATABASE testDBSHOW DATABASES

USE MoviesCollectionSTATUS

SHOW TABLES

CREATE TABLE Movies(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYMovieName VARCHAR(200)ReleaseYear SMALLINT UNSIGNEDRating TINYINT)

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 713

Παρατηρήστε ότι όλες αυτές οι γραμμές κώδικα συγκροτούν μια μόλις εντολή την CREATE TABLE

η οποία τερματίζεται στην τελευταία γραμμή με τον χαρακτήρα τερματισμού (Το κάναμε αυτό γιαπρακτικούς λόγους αλλά εσείς αν θέλετε μπορείτε να δώσετε την εντολή σε μια γραμμή) Στηνπρώτη γραμμή δίνουμε εντολή να δημιουργηθεί ο πίνακας Movies και στις επόμενες γραμμές μέσασε μια παρένθεση περιγράφουμε τα πεδία του πίνακα

Το πεδίο id δηλώθηκε ως ακέραιος 24bit χωρίς πρόσημο Επίσης του δόθηκαν οι ιδιότητεςPRIMARY KEY και AUTO_INCREMENT Η πρώτη ιδιότητα χαρακτηρίζει το πεδίο ως πρωτεύονκλειδί και έτσι η MySQL δεν θα επιτρέψει ποτέ σε αυτό το πεδίο να πάρει ίδια τιμή σε δύοδιαφορετικές εγγραφές Και επειδή αυτό σας υποχρεώνει να ψάχνετε έναν ακέραιο που δεν έχειεπαναληφθεί κάθε φορά που θέλετε να εισάγετε μια νέα εγγραφή στον πίνακα έρχεται η ιδιότηταAUTO_INCREMENT να σας βοηθήσει Η χρήση της ιδιότητας αυτής κατά την δήλωση ενός πεδίουσας επιτρέπει όταν θέλετε να εισάγετε εγγραφές στον πίνακα να παραλείπετε -κατά βούληση- τηνεισαγωγή τιμής σε αυτό το πεδίο Αν όντως επιλέξετε να κάνετε αυτήν την παράληψη η MySQL θααναθέσει αυτόματα τιμή στο πεδίο έναν αριθμό κατά μια μονάδα μεγαλύτερο από τον αριθμό πουανατέθηκε στο ίδιο πεδίο κατά την εισαγωγή της προηγούμενης εγγραφής Για παράδειγμα αν στηνπρώτη εγγραφή αναθέσετε την τιμή 13 στο πεδίο id ενώ κατά την δεύτερη εγγραφή παραλείψετετην χειροκίνητη ανάθεση τιμής στο ίδιο πεδίο τότε η MySQL θα του δώσει αυτόματα την τιμή 14

Επίσης έχετε υπόψη ότι δηλώνοντας το πεδίο id ως 24bit ακέραιο άνευ πρόσημου καιταυτόχρονα ως πρωτεύον κλειδί περιορίζετε ουσιαστικά το πλήθος των εγγραφών αυτού τουπίνακα σε 2^24 (γεγονός όχι ιδιαίτερα περιοριστικό αν συγκρίνετε τον αριθμό αυτό με το πλήθοςτων κινηματογραφικών ταινιών παγκοσμίως -) ) Όσον αφορά τα υπόλοιπα πεδία το πεδίο MovieName δηλώθηκε ως αλφαριθμητικό με μέγιστομήκος τους 200 χαρακτήρες και το πεδίο ReleaseYear δηλώθηκε ως ακέραιος των 16bits χωρίςπρόσημο οπότε μπορεί να πάρει τιμές από 0 έως 2^16-1=65535 Στο πεδίο Rating

περιορίστηκε το εύρος του ακεραίου σε 8bit αλλά επιτράπηκε το αρνητικό πρόσημο ώστε ναυπάρχει δυνατότητα αρνητικής βαθμολογίας των ταινιών Έτσι το πεδίο Rating μπορεί να πάρειτιμές από -128 μέχρι 127

Ο πίνακας Movies είναι έτοιμος για εισαγωγή δεδομένων Χρησιμοποιήστε τις επόμενες εντολές γιανα ορίσετε και τους άλλους δύο πίνακες του παραδείγματός μας

Δοκιμάστε τώρα τις εντολές

Η εντολή DESCRIBE επιστρέφει τον τρόπο με τον οποίο είναι ορισμένος ένας πίνακας σεπερίπτωση που το ξεχάσατε ή για επαλήθευση σωστού ορισμού Αν λοιπόν ορίσατε κάποιονπίνακα λανθασμένα ή για οποιονδήποτε άλλο λόγο θέλετε να διαγράψετε ένα πίνακα (μαζί με όλα ταδεδομένα που περιέχει) μπορείτε να χρησιμοποιήσετε την εντολή

CREATE TABLE Directors(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYName VARCHAR(120)BirthYear SMALLINT UNSIGNED)CREATE TABLE MovDirLink(MovieID MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYDirectorID MEDIUMINT UNSIGNED)

DESCRIBE MoviesDESCRIBE DirectorsDESCRIBE MovDirLink

DROP TABLE όνομα πίνακα

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 813

Είναι ώρα να προσθέσετε εγγραφές στους πίνακες Για να εισάγετε τις πρώτες δύο εγγραφές στονπίνακα Movies αντιγράφοντας τον πίνακα-δείγμα της εικόνας πληκτρολογήστε τα εξής

Η χρήση της INSERT INTO είναι αρκετά προφανής και είστε πλέον σε θέση να αντιγράψετε πλήρωςκαι τους τρεις πίνακες του παραδείγματος της εικόνας Κάντε το Παρατηρήστε ότι η MySQL δενενοχλείται είτε χρησιμοποιήσετε quotes (lsquo) είτε double-quotes (rdquo) για την εισαγωγήαλφαριθμητικών Αυτό θα φανεί ιδιαίτερα χρήσιμο στο τρίτο μέρος αυτού του tutorial όταν κώδικαςMySQL θα μπλέξει με κώδικα PHP και ΗΤML tags Προσέξτε επίσης ότι κατά την εισαγωγή τηςδεύτερης εγγραφής δεν χρειάστηκε να ανατεθεί χειροκίνητα τιμή στο πεδίο id καθώς η MySQL θαδώσει αυτόματα την τιμή 622 (621+1) Τέλος παρότι σιχαινόμαστε να διορθώνουμε τα λάθη σας -) παρατηρούμε ότι στην ίδια εγγραφή κάνατε -Ρ ένα λάθος πληκτρολόγησης στο όνομα της ταινίαςΔιορθώστε το λάθος χρησιμοποιώντας την εντολή UPDATE

Η εντολή UPDATE έχει την δυνατότητα να ενημερώσει ταυτόχρονα πολλές εγγραφές οπότεχρειάζεται ιδιαίτερη προσοχή στην υπόθεση που ακολουθεί μετά τον όρο WHERE Με τηνσυγκεκριμένη εντολή ζητάτε από την MySQL να ενημερώσει το πεδίο MovieName όλων τωνεγγραφών για τις οποίες ισχύει η υπόθεση id=622 Στην περίπτωση που παραλείψετε να γράψετετο WHERE id=622 όλες σας οι ταινίες θα μετονομαστούν σε King Kong Μην ξεχνάτε λοιπόν ναεισάγετε τον όρο WHERE και να προτιμάτε η υπόθεση που τον ακολουθεί να βασίζεται στοπρωτεύον κλειδί του πίνακα τον οποίο ενημερώνετε (όπως εδώ έγινε χρήση του πεδίου id) καθώςμε αυτόν τον τρόπο είστε σίγουροι ότι ενημερώνετε ακριβώς τις εγγραφές που θέλετε Ας υποθέσουμε τώρα ότι θέλετε να διαγράψετε κάποιες εγγραφές από τον πίνακα Movies και αςυποθέσουμε περαιτέρω ότι οι εγγραφές αυτές είναι οι ταινίες που είτε είναι παλιές (εκδόθηκαν πριντο 1980) είτε δεν σας αρέσουν (έχουν αρνητικό rating) Χρησιμοποιήστε την εντολή

Όπως βλέπετε η DELETE FROM έχει παρόμοια σύνταξη με την UPDATE και συνεπώς η χρήση τηςχρειάζεται την ίδια προσοχή Επίσης παρατηρήστε ότι μπορείτε να χρησιμοποιήσετε και άλλουςτελεστές στην υπόθεση της WHERE πέρα από την ισότητα της υπόθεσης id=622 H MySQL

υποστηρίζει όλους τους κοινούς τελεστές όπως τους = lt gt OR AND κα

Με την DELETE ολοκληρώνεται το σετ εντολών που χρειάζεστε για να επεξεργαστείτε τις βάσεις σαςκαι τους πίνακές σας Ωστόσο η εντολή που θα χρησιμοποιήσετε πιο συχνά από όλες τις άλλεςείναι χωρίς αμφιβολία η SELECT η οποία επιστρέφει -σύμφωνα με κάποια κριτήρια- πληροφορίεςαπό τις βάσεις σας Άλλωστε από την αρχή του tutorial πληκτρολογείτε εντολές χωρίς να είστε σεθέση να δείτε τα αποτελέσματα των εντολών σας και κατά πόσο αυτές ήταν αποτελεσματικέςΔώστε τέλος σε αυτή την κατάσταση πληκτρολογώντας

Αυτές οι τρεις εντολές θα σας επιστρέψουν το πλήρες περιεχόμενο των πινάκων Movies

INSERT INTO Movies VALUES(621 ldquoForrest Gumprdquo 1994 105)INSERT INTO Movies VALUES(NULL lsquoKing Longrsquo 2005 29)

UPDATE Movies SET MovieName=rdquoKing Kongrdquo WHERE id=622

DELETE FROM Movies WHERE ReleaseYearlt1980 OR Ratinggt0

SELECT FROM MoviesSELECT FROM DirectorsSELECT FROM MovDirLink

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 5: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 513

TIMESTAMPαποθήκευσηημερομηνίας καιώρας

ενημερώνουμε μια εγγραφή που περιέχει ένα TIMESTAMPπεδίο παραλείψουμε να δώσουμε τιμή σε αυτό το πεδίο θατου ανατεθεί αυτόματα η τιμή της τρέχουσας ημερομηνίας καιώρας

CHAR(Μ) καιVARCHAR(Μ)

Αποθήκευση μικρούαλφαριθμητικού(string)

Η παράμετρος M μπορεί να πάρει τιμή έως και 255 καιυποδηλώνει τον μέγιστο αριθμό χαρακτήρων που θα έχει τοstring το οποίο έχουμε σκοπό να αποθηκεύσουμε στοπεδίο Πεδία τύπου VARCHAR καταλαμβάνουν μνήμη ίση σεbytes όσοι και οι χαρακτήρες του string που περιέχουν σεαντίθεση με τα μνημοβόρα πεδία τύπου CHAR πουκαταλαμβάνουν πάντα M bytes

TEXTΑποθήκευσηκειμένου (μεγάλουαλφαριθμητικού)

Μέχρι 64kbytes

Πίνακες και πρωτεύον κλειδί

Σε κάθε πίνακα βάσης δεδομένων είναι σημαντικό να υπάρχει μια στήλη (πεδίο) σε κάθε σειρά τηςοποίας να υπάρχει διαφορετική τιμή έτσι ώστε κάθε εγγραφή να αποκτήσει ένα μοναδικόχαρακτηριστικό έναν laquoαριθμό ταυτότηταςraquo με τον οποίο να μπορούμε να αναφερόμαστε σε αυτήνΤο ιδιαίτερο αυτό πεδίο το ορίζουμε κατά την κατασκευή του πίνακα δίνοντάς του την ιδιότητα τουπρωτεύοντος κλειδιού (primary key)

Για να κατανοήσετε καλύτερα την χρησιμότητα του πρωτεύοντος κλειδιού θα κάνουμε έναπαραλληλισμό του με τον αριθμό που χρησιμοποιείται στην αστυνομική σας ταυτότητα Ο αριθμόςαυτός είναι μοναδικός για κάθε πολίτη όπως ακριβώς το πεδίο του πρωτεύοντος κλειδιού έχειμοναδική τιμή για κάθε εγγραφή Σκεφτείτε λοιπόν πόσο δύσκολο θα ήταν για έναν αστυνομικό ναβρει την καρτέλα με τα στοιχεία ενός ατόμου αν δεν υπήρχε ο αριθμός ταυτότητας και ήταναναγκασμένος να ψάξει το αρχείο της αστυνομίας με βάση το ονοματεπώνυμο Πόσες συνωνυμίεςθα έπρεπε να απορρίψει πριν φτάσει στο σωστό άνθρωπο

Letrsquos cut to the chase

Ανοίξτε μια κονσόλα για να ξεκινήσουμε Μετακινηθείτε στον φάκελο bin της εγκατάστασης MySQL

και εκτελέστε το MySQL monitor ως εξής

Από εδώ μπορείτε να διαχειριστείτε με απλές εντολές ότι αφορά την mysql και τις βάσεις σαςΠληκτρολογήστε τις εντολές

Η πρώτη εντολή σας επιστρέφει πληροφορίες για την κατάσταση που βρίσκεται αυτήν την στιγμή οserver Μεταξύ των πληροφοριών μπορείτε να δείτε την βάση την οποία έχετε επιλέξει γιαεπεξεργασία Ακόμα δεν έχετε επιλέξει κάποια βάση οπότε το ανάλογο πεδίο είναι κενό Η δεύτερηεντολή σας επιστρέφει μια λίστα με βάσεις που υπάρχουν ήδη στο σύστημα Αν και δεν έχετεδημιουργήσει ακόμα μια δική σας βάση θα δείτε αρκετά αποτελέσματα καθώς το XAMPP εγκαθιστά

ccd xamppmysqlbinmysql ndashu root

STATUSSHOW DATABASES

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 613

μερικές μικρές demo βάσεις Προσέξτε πως οι εντολές στην MySQL τελειώνουν πάντα με τον χαρακτήρα τερματισμού laquoraquo Οχαρακτήρας αυτός είναι χρήσιμος όταν θέλετε να πληκτρολογήσετε μεγάλες σε μήκος εντολέςΜπορείτε οποιαδήποτε στιγμή κατά την πληκτρολόγηση μιας εντολής να πατήσετε το πλήκτροEnter H MySQL εφόσον δεν έχετε εισάγει χαρακτήρα τερματισμού δεν θα εκτελέσει την εντολήαλλά θα αλλάξει απλώς σειρά ώστε να συνεχίσετε να εισάγετε την μακροσκελή εντολή Για ναεκτελέσετε την εντολή αφού έχετε τελειώσει την πληκτρολόγησή της εισάγετε τον χαρακτήρα laquoraquo καιπατήστε Enter Παρότι ορισμένες εντολές της MySQL οι οποίες δεν αναμένεται να έχουν μεγάλομήκος (όπως η STATUS) δεν απαιτούν χαρακτήρα τερματισμού για να εκτελεστούν είναι καλό νασυνηθίσετε να τερματίζετε όλες τις εντολές σας Επίσης έχετε στο νου σας ότι ενώ εμείς γράφουμετις εντολές με κεφαλαία γράμματα ώστε να ξεχωρίζουν από τις παραμέτρους και τα ορίσματα αυτόδεν είναι υποχρεωτικό στην MySQL

Ήρθε η ώρα να δημιουργήσετε την πρώτη σας βάση Πληκτρολογήστε

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

Χρησιμοποιήστε την δεύτερη για να επαληθεύσετε το αποτέλεσμα της πρώτης Ξέρουμε ότι είναι η πρώτη σας βάση και ότι είστε περήφανοι για αυτήν αλλά πρέπει να μάθετε καιτον τρόπο διαγραφής μια βάσης οπότε πληκτρολογήστε

Η πρώτη εντολή θα διαγράψει εντελώς την βάση testDB Όσον αφορά την δεύτερη μάλλον είστεπλέον σε θέση να μαντέψετε τα αποτελέσματά της Επειδή για εκπαιδευτικούς σκοπούς διαγράψατε την testDB πριν προλάβετε να τηνχρησιμοποιήσετε δημιουργήστε μια νέα κενή βάση με όνομα MoviesCollection την οποίααργότερα θα laquoγεμίσετεraquo ώστε να αντικατοπτρίζει την βάση MoviesCollection της σχετικής εικόναςΑφού δημιουργήσετε την νέα βάση πληκτρολογήστε

Με την εντολή USE δηλώνετε την επιθυμία σας να χρησιμοποιήσετε την βάση MoviesCollection

για επεξεργασία Η STATUS απλά επιβεβαιώνει τα αποτελέσματα της USE αφού σας επιστρέφειμεταξύ άλλων και όπως ήδη αναφέραμε το όνομα της τρέχουσας βάσης (Current database)

Τώρα η εντολή

επιστρέφει μια λίστα με τους πίνακες της τρέχουσας βάσης Όπως είναι αναμενόμενο αφού δενέχετε εισάγει ακόμα δεδομένα στην βάση σας η λίστα αυτή είναι προς το παρόν κενή Αςδημιουργήσουμε τον πίνακα Movies της εικόνας

CREATE DATABASE testDBSHOW DATABASES

DROP DATABASE testDBSHOW DATABASES

USE MoviesCollectionSTATUS

SHOW TABLES

CREATE TABLE Movies(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYMovieName VARCHAR(200)ReleaseYear SMALLINT UNSIGNEDRating TINYINT)

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 713

Παρατηρήστε ότι όλες αυτές οι γραμμές κώδικα συγκροτούν μια μόλις εντολή την CREATE TABLE

η οποία τερματίζεται στην τελευταία γραμμή με τον χαρακτήρα τερματισμού (Το κάναμε αυτό γιαπρακτικούς λόγους αλλά εσείς αν θέλετε μπορείτε να δώσετε την εντολή σε μια γραμμή) Στηνπρώτη γραμμή δίνουμε εντολή να δημιουργηθεί ο πίνακας Movies και στις επόμενες γραμμές μέσασε μια παρένθεση περιγράφουμε τα πεδία του πίνακα

Το πεδίο id δηλώθηκε ως ακέραιος 24bit χωρίς πρόσημο Επίσης του δόθηκαν οι ιδιότητεςPRIMARY KEY και AUTO_INCREMENT Η πρώτη ιδιότητα χαρακτηρίζει το πεδίο ως πρωτεύονκλειδί και έτσι η MySQL δεν θα επιτρέψει ποτέ σε αυτό το πεδίο να πάρει ίδια τιμή σε δύοδιαφορετικές εγγραφές Και επειδή αυτό σας υποχρεώνει να ψάχνετε έναν ακέραιο που δεν έχειεπαναληφθεί κάθε φορά που θέλετε να εισάγετε μια νέα εγγραφή στον πίνακα έρχεται η ιδιότηταAUTO_INCREMENT να σας βοηθήσει Η χρήση της ιδιότητας αυτής κατά την δήλωση ενός πεδίουσας επιτρέπει όταν θέλετε να εισάγετε εγγραφές στον πίνακα να παραλείπετε -κατά βούληση- τηνεισαγωγή τιμής σε αυτό το πεδίο Αν όντως επιλέξετε να κάνετε αυτήν την παράληψη η MySQL θααναθέσει αυτόματα τιμή στο πεδίο έναν αριθμό κατά μια μονάδα μεγαλύτερο από τον αριθμό πουανατέθηκε στο ίδιο πεδίο κατά την εισαγωγή της προηγούμενης εγγραφής Για παράδειγμα αν στηνπρώτη εγγραφή αναθέσετε την τιμή 13 στο πεδίο id ενώ κατά την δεύτερη εγγραφή παραλείψετετην χειροκίνητη ανάθεση τιμής στο ίδιο πεδίο τότε η MySQL θα του δώσει αυτόματα την τιμή 14

Επίσης έχετε υπόψη ότι δηλώνοντας το πεδίο id ως 24bit ακέραιο άνευ πρόσημου καιταυτόχρονα ως πρωτεύον κλειδί περιορίζετε ουσιαστικά το πλήθος των εγγραφών αυτού τουπίνακα σε 2^24 (γεγονός όχι ιδιαίτερα περιοριστικό αν συγκρίνετε τον αριθμό αυτό με το πλήθοςτων κινηματογραφικών ταινιών παγκοσμίως -) ) Όσον αφορά τα υπόλοιπα πεδία το πεδίο MovieName δηλώθηκε ως αλφαριθμητικό με μέγιστομήκος τους 200 χαρακτήρες και το πεδίο ReleaseYear δηλώθηκε ως ακέραιος των 16bits χωρίςπρόσημο οπότε μπορεί να πάρει τιμές από 0 έως 2^16-1=65535 Στο πεδίο Rating

περιορίστηκε το εύρος του ακεραίου σε 8bit αλλά επιτράπηκε το αρνητικό πρόσημο ώστε ναυπάρχει δυνατότητα αρνητικής βαθμολογίας των ταινιών Έτσι το πεδίο Rating μπορεί να πάρειτιμές από -128 μέχρι 127

Ο πίνακας Movies είναι έτοιμος για εισαγωγή δεδομένων Χρησιμοποιήστε τις επόμενες εντολές γιανα ορίσετε και τους άλλους δύο πίνακες του παραδείγματός μας

Δοκιμάστε τώρα τις εντολές

Η εντολή DESCRIBE επιστρέφει τον τρόπο με τον οποίο είναι ορισμένος ένας πίνακας σεπερίπτωση που το ξεχάσατε ή για επαλήθευση σωστού ορισμού Αν λοιπόν ορίσατε κάποιονπίνακα λανθασμένα ή για οποιονδήποτε άλλο λόγο θέλετε να διαγράψετε ένα πίνακα (μαζί με όλα ταδεδομένα που περιέχει) μπορείτε να χρησιμοποιήσετε την εντολή

CREATE TABLE Directors(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYName VARCHAR(120)BirthYear SMALLINT UNSIGNED)CREATE TABLE MovDirLink(MovieID MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYDirectorID MEDIUMINT UNSIGNED)

DESCRIBE MoviesDESCRIBE DirectorsDESCRIBE MovDirLink

DROP TABLE όνομα πίνακα

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 813

Είναι ώρα να προσθέσετε εγγραφές στους πίνακες Για να εισάγετε τις πρώτες δύο εγγραφές στονπίνακα Movies αντιγράφοντας τον πίνακα-δείγμα της εικόνας πληκτρολογήστε τα εξής

Η χρήση της INSERT INTO είναι αρκετά προφανής και είστε πλέον σε θέση να αντιγράψετε πλήρωςκαι τους τρεις πίνακες του παραδείγματος της εικόνας Κάντε το Παρατηρήστε ότι η MySQL δενενοχλείται είτε χρησιμοποιήσετε quotes (lsquo) είτε double-quotes (rdquo) για την εισαγωγήαλφαριθμητικών Αυτό θα φανεί ιδιαίτερα χρήσιμο στο τρίτο μέρος αυτού του tutorial όταν κώδικαςMySQL θα μπλέξει με κώδικα PHP και ΗΤML tags Προσέξτε επίσης ότι κατά την εισαγωγή τηςδεύτερης εγγραφής δεν χρειάστηκε να ανατεθεί χειροκίνητα τιμή στο πεδίο id καθώς η MySQL θαδώσει αυτόματα την τιμή 622 (621+1) Τέλος παρότι σιχαινόμαστε να διορθώνουμε τα λάθη σας -) παρατηρούμε ότι στην ίδια εγγραφή κάνατε -Ρ ένα λάθος πληκτρολόγησης στο όνομα της ταινίαςΔιορθώστε το λάθος χρησιμοποιώντας την εντολή UPDATE

Η εντολή UPDATE έχει την δυνατότητα να ενημερώσει ταυτόχρονα πολλές εγγραφές οπότεχρειάζεται ιδιαίτερη προσοχή στην υπόθεση που ακολουθεί μετά τον όρο WHERE Με τηνσυγκεκριμένη εντολή ζητάτε από την MySQL να ενημερώσει το πεδίο MovieName όλων τωνεγγραφών για τις οποίες ισχύει η υπόθεση id=622 Στην περίπτωση που παραλείψετε να γράψετετο WHERE id=622 όλες σας οι ταινίες θα μετονομαστούν σε King Kong Μην ξεχνάτε λοιπόν ναεισάγετε τον όρο WHERE και να προτιμάτε η υπόθεση που τον ακολουθεί να βασίζεται στοπρωτεύον κλειδί του πίνακα τον οποίο ενημερώνετε (όπως εδώ έγινε χρήση του πεδίου id) καθώςμε αυτόν τον τρόπο είστε σίγουροι ότι ενημερώνετε ακριβώς τις εγγραφές που θέλετε Ας υποθέσουμε τώρα ότι θέλετε να διαγράψετε κάποιες εγγραφές από τον πίνακα Movies και αςυποθέσουμε περαιτέρω ότι οι εγγραφές αυτές είναι οι ταινίες που είτε είναι παλιές (εκδόθηκαν πριντο 1980) είτε δεν σας αρέσουν (έχουν αρνητικό rating) Χρησιμοποιήστε την εντολή

Όπως βλέπετε η DELETE FROM έχει παρόμοια σύνταξη με την UPDATE και συνεπώς η χρήση τηςχρειάζεται την ίδια προσοχή Επίσης παρατηρήστε ότι μπορείτε να χρησιμοποιήσετε και άλλουςτελεστές στην υπόθεση της WHERE πέρα από την ισότητα της υπόθεσης id=622 H MySQL

υποστηρίζει όλους τους κοινούς τελεστές όπως τους = lt gt OR AND κα

Με την DELETE ολοκληρώνεται το σετ εντολών που χρειάζεστε για να επεξεργαστείτε τις βάσεις σαςκαι τους πίνακές σας Ωστόσο η εντολή που θα χρησιμοποιήσετε πιο συχνά από όλες τις άλλεςείναι χωρίς αμφιβολία η SELECT η οποία επιστρέφει -σύμφωνα με κάποια κριτήρια- πληροφορίεςαπό τις βάσεις σας Άλλωστε από την αρχή του tutorial πληκτρολογείτε εντολές χωρίς να είστε σεθέση να δείτε τα αποτελέσματα των εντολών σας και κατά πόσο αυτές ήταν αποτελεσματικέςΔώστε τέλος σε αυτή την κατάσταση πληκτρολογώντας

Αυτές οι τρεις εντολές θα σας επιστρέψουν το πλήρες περιεχόμενο των πινάκων Movies

INSERT INTO Movies VALUES(621 ldquoForrest Gumprdquo 1994 105)INSERT INTO Movies VALUES(NULL lsquoKing Longrsquo 2005 29)

UPDATE Movies SET MovieName=rdquoKing Kongrdquo WHERE id=622

DELETE FROM Movies WHERE ReleaseYearlt1980 OR Ratinggt0

SELECT FROM MoviesSELECT FROM DirectorsSELECT FROM MovDirLink

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 6: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 613

μερικές μικρές demo βάσεις Προσέξτε πως οι εντολές στην MySQL τελειώνουν πάντα με τον χαρακτήρα τερματισμού laquoraquo Οχαρακτήρας αυτός είναι χρήσιμος όταν θέλετε να πληκτρολογήσετε μεγάλες σε μήκος εντολέςΜπορείτε οποιαδήποτε στιγμή κατά την πληκτρολόγηση μιας εντολής να πατήσετε το πλήκτροEnter H MySQL εφόσον δεν έχετε εισάγει χαρακτήρα τερματισμού δεν θα εκτελέσει την εντολήαλλά θα αλλάξει απλώς σειρά ώστε να συνεχίσετε να εισάγετε την μακροσκελή εντολή Για ναεκτελέσετε την εντολή αφού έχετε τελειώσει την πληκτρολόγησή της εισάγετε τον χαρακτήρα laquoraquo καιπατήστε Enter Παρότι ορισμένες εντολές της MySQL οι οποίες δεν αναμένεται να έχουν μεγάλομήκος (όπως η STATUS) δεν απαιτούν χαρακτήρα τερματισμού για να εκτελεστούν είναι καλό νασυνηθίσετε να τερματίζετε όλες τις εντολές σας Επίσης έχετε στο νου σας ότι ενώ εμείς γράφουμετις εντολές με κεφαλαία γράμματα ώστε να ξεχωρίζουν από τις παραμέτρους και τα ορίσματα αυτόδεν είναι υποχρεωτικό στην MySQL

Ήρθε η ώρα να δημιουργήσετε την πρώτη σας βάση Πληκτρολογήστε

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

Χρησιμοποιήστε την δεύτερη για να επαληθεύσετε το αποτέλεσμα της πρώτης Ξέρουμε ότι είναι η πρώτη σας βάση και ότι είστε περήφανοι για αυτήν αλλά πρέπει να μάθετε καιτον τρόπο διαγραφής μια βάσης οπότε πληκτρολογήστε

Η πρώτη εντολή θα διαγράψει εντελώς την βάση testDB Όσον αφορά την δεύτερη μάλλον είστεπλέον σε θέση να μαντέψετε τα αποτελέσματά της Επειδή για εκπαιδευτικούς σκοπούς διαγράψατε την testDB πριν προλάβετε να τηνχρησιμοποιήσετε δημιουργήστε μια νέα κενή βάση με όνομα MoviesCollection την οποίααργότερα θα laquoγεμίσετεraquo ώστε να αντικατοπτρίζει την βάση MoviesCollection της σχετικής εικόναςΑφού δημιουργήσετε την νέα βάση πληκτρολογήστε

Με την εντολή USE δηλώνετε την επιθυμία σας να χρησιμοποιήσετε την βάση MoviesCollection

για επεξεργασία Η STATUS απλά επιβεβαιώνει τα αποτελέσματα της USE αφού σας επιστρέφειμεταξύ άλλων και όπως ήδη αναφέραμε το όνομα της τρέχουσας βάσης (Current database)

Τώρα η εντολή

επιστρέφει μια λίστα με τους πίνακες της τρέχουσας βάσης Όπως είναι αναμενόμενο αφού δενέχετε εισάγει ακόμα δεδομένα στην βάση σας η λίστα αυτή είναι προς το παρόν κενή Αςδημιουργήσουμε τον πίνακα Movies της εικόνας

CREATE DATABASE testDBSHOW DATABASES

DROP DATABASE testDBSHOW DATABASES

USE MoviesCollectionSTATUS

SHOW TABLES

CREATE TABLE Movies(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYMovieName VARCHAR(200)ReleaseYear SMALLINT UNSIGNEDRating TINYINT)

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 713

Παρατηρήστε ότι όλες αυτές οι γραμμές κώδικα συγκροτούν μια μόλις εντολή την CREATE TABLE

η οποία τερματίζεται στην τελευταία γραμμή με τον χαρακτήρα τερματισμού (Το κάναμε αυτό γιαπρακτικούς λόγους αλλά εσείς αν θέλετε μπορείτε να δώσετε την εντολή σε μια γραμμή) Στηνπρώτη γραμμή δίνουμε εντολή να δημιουργηθεί ο πίνακας Movies και στις επόμενες γραμμές μέσασε μια παρένθεση περιγράφουμε τα πεδία του πίνακα

Το πεδίο id δηλώθηκε ως ακέραιος 24bit χωρίς πρόσημο Επίσης του δόθηκαν οι ιδιότητεςPRIMARY KEY και AUTO_INCREMENT Η πρώτη ιδιότητα χαρακτηρίζει το πεδίο ως πρωτεύονκλειδί και έτσι η MySQL δεν θα επιτρέψει ποτέ σε αυτό το πεδίο να πάρει ίδια τιμή σε δύοδιαφορετικές εγγραφές Και επειδή αυτό σας υποχρεώνει να ψάχνετε έναν ακέραιο που δεν έχειεπαναληφθεί κάθε φορά που θέλετε να εισάγετε μια νέα εγγραφή στον πίνακα έρχεται η ιδιότηταAUTO_INCREMENT να σας βοηθήσει Η χρήση της ιδιότητας αυτής κατά την δήλωση ενός πεδίουσας επιτρέπει όταν θέλετε να εισάγετε εγγραφές στον πίνακα να παραλείπετε -κατά βούληση- τηνεισαγωγή τιμής σε αυτό το πεδίο Αν όντως επιλέξετε να κάνετε αυτήν την παράληψη η MySQL θααναθέσει αυτόματα τιμή στο πεδίο έναν αριθμό κατά μια μονάδα μεγαλύτερο από τον αριθμό πουανατέθηκε στο ίδιο πεδίο κατά την εισαγωγή της προηγούμενης εγγραφής Για παράδειγμα αν στηνπρώτη εγγραφή αναθέσετε την τιμή 13 στο πεδίο id ενώ κατά την δεύτερη εγγραφή παραλείψετετην χειροκίνητη ανάθεση τιμής στο ίδιο πεδίο τότε η MySQL θα του δώσει αυτόματα την τιμή 14

Επίσης έχετε υπόψη ότι δηλώνοντας το πεδίο id ως 24bit ακέραιο άνευ πρόσημου καιταυτόχρονα ως πρωτεύον κλειδί περιορίζετε ουσιαστικά το πλήθος των εγγραφών αυτού τουπίνακα σε 2^24 (γεγονός όχι ιδιαίτερα περιοριστικό αν συγκρίνετε τον αριθμό αυτό με το πλήθοςτων κινηματογραφικών ταινιών παγκοσμίως -) ) Όσον αφορά τα υπόλοιπα πεδία το πεδίο MovieName δηλώθηκε ως αλφαριθμητικό με μέγιστομήκος τους 200 χαρακτήρες και το πεδίο ReleaseYear δηλώθηκε ως ακέραιος των 16bits χωρίςπρόσημο οπότε μπορεί να πάρει τιμές από 0 έως 2^16-1=65535 Στο πεδίο Rating

περιορίστηκε το εύρος του ακεραίου σε 8bit αλλά επιτράπηκε το αρνητικό πρόσημο ώστε ναυπάρχει δυνατότητα αρνητικής βαθμολογίας των ταινιών Έτσι το πεδίο Rating μπορεί να πάρειτιμές από -128 μέχρι 127

Ο πίνακας Movies είναι έτοιμος για εισαγωγή δεδομένων Χρησιμοποιήστε τις επόμενες εντολές γιανα ορίσετε και τους άλλους δύο πίνακες του παραδείγματός μας

Δοκιμάστε τώρα τις εντολές

Η εντολή DESCRIBE επιστρέφει τον τρόπο με τον οποίο είναι ορισμένος ένας πίνακας σεπερίπτωση που το ξεχάσατε ή για επαλήθευση σωστού ορισμού Αν λοιπόν ορίσατε κάποιονπίνακα λανθασμένα ή για οποιονδήποτε άλλο λόγο θέλετε να διαγράψετε ένα πίνακα (μαζί με όλα ταδεδομένα που περιέχει) μπορείτε να χρησιμοποιήσετε την εντολή

CREATE TABLE Directors(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYName VARCHAR(120)BirthYear SMALLINT UNSIGNED)CREATE TABLE MovDirLink(MovieID MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYDirectorID MEDIUMINT UNSIGNED)

DESCRIBE MoviesDESCRIBE DirectorsDESCRIBE MovDirLink

DROP TABLE όνομα πίνακα

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 813

Είναι ώρα να προσθέσετε εγγραφές στους πίνακες Για να εισάγετε τις πρώτες δύο εγγραφές στονπίνακα Movies αντιγράφοντας τον πίνακα-δείγμα της εικόνας πληκτρολογήστε τα εξής

Η χρήση της INSERT INTO είναι αρκετά προφανής και είστε πλέον σε θέση να αντιγράψετε πλήρωςκαι τους τρεις πίνακες του παραδείγματος της εικόνας Κάντε το Παρατηρήστε ότι η MySQL δενενοχλείται είτε χρησιμοποιήσετε quotes (lsquo) είτε double-quotes (rdquo) για την εισαγωγήαλφαριθμητικών Αυτό θα φανεί ιδιαίτερα χρήσιμο στο τρίτο μέρος αυτού του tutorial όταν κώδικαςMySQL θα μπλέξει με κώδικα PHP και ΗΤML tags Προσέξτε επίσης ότι κατά την εισαγωγή τηςδεύτερης εγγραφής δεν χρειάστηκε να ανατεθεί χειροκίνητα τιμή στο πεδίο id καθώς η MySQL θαδώσει αυτόματα την τιμή 622 (621+1) Τέλος παρότι σιχαινόμαστε να διορθώνουμε τα λάθη σας -) παρατηρούμε ότι στην ίδια εγγραφή κάνατε -Ρ ένα λάθος πληκτρολόγησης στο όνομα της ταινίαςΔιορθώστε το λάθος χρησιμοποιώντας την εντολή UPDATE

Η εντολή UPDATE έχει την δυνατότητα να ενημερώσει ταυτόχρονα πολλές εγγραφές οπότεχρειάζεται ιδιαίτερη προσοχή στην υπόθεση που ακολουθεί μετά τον όρο WHERE Με τηνσυγκεκριμένη εντολή ζητάτε από την MySQL να ενημερώσει το πεδίο MovieName όλων τωνεγγραφών για τις οποίες ισχύει η υπόθεση id=622 Στην περίπτωση που παραλείψετε να γράψετετο WHERE id=622 όλες σας οι ταινίες θα μετονομαστούν σε King Kong Μην ξεχνάτε λοιπόν ναεισάγετε τον όρο WHERE και να προτιμάτε η υπόθεση που τον ακολουθεί να βασίζεται στοπρωτεύον κλειδί του πίνακα τον οποίο ενημερώνετε (όπως εδώ έγινε χρήση του πεδίου id) καθώςμε αυτόν τον τρόπο είστε σίγουροι ότι ενημερώνετε ακριβώς τις εγγραφές που θέλετε Ας υποθέσουμε τώρα ότι θέλετε να διαγράψετε κάποιες εγγραφές από τον πίνακα Movies και αςυποθέσουμε περαιτέρω ότι οι εγγραφές αυτές είναι οι ταινίες που είτε είναι παλιές (εκδόθηκαν πριντο 1980) είτε δεν σας αρέσουν (έχουν αρνητικό rating) Χρησιμοποιήστε την εντολή

Όπως βλέπετε η DELETE FROM έχει παρόμοια σύνταξη με την UPDATE και συνεπώς η χρήση τηςχρειάζεται την ίδια προσοχή Επίσης παρατηρήστε ότι μπορείτε να χρησιμοποιήσετε και άλλουςτελεστές στην υπόθεση της WHERE πέρα από την ισότητα της υπόθεσης id=622 H MySQL

υποστηρίζει όλους τους κοινούς τελεστές όπως τους = lt gt OR AND κα

Με την DELETE ολοκληρώνεται το σετ εντολών που χρειάζεστε για να επεξεργαστείτε τις βάσεις σαςκαι τους πίνακές σας Ωστόσο η εντολή που θα χρησιμοποιήσετε πιο συχνά από όλες τις άλλεςείναι χωρίς αμφιβολία η SELECT η οποία επιστρέφει -σύμφωνα με κάποια κριτήρια- πληροφορίεςαπό τις βάσεις σας Άλλωστε από την αρχή του tutorial πληκτρολογείτε εντολές χωρίς να είστε σεθέση να δείτε τα αποτελέσματα των εντολών σας και κατά πόσο αυτές ήταν αποτελεσματικέςΔώστε τέλος σε αυτή την κατάσταση πληκτρολογώντας

Αυτές οι τρεις εντολές θα σας επιστρέψουν το πλήρες περιεχόμενο των πινάκων Movies

INSERT INTO Movies VALUES(621 ldquoForrest Gumprdquo 1994 105)INSERT INTO Movies VALUES(NULL lsquoKing Longrsquo 2005 29)

UPDATE Movies SET MovieName=rdquoKing Kongrdquo WHERE id=622

DELETE FROM Movies WHERE ReleaseYearlt1980 OR Ratinggt0

SELECT FROM MoviesSELECT FROM DirectorsSELECT FROM MovDirLink

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 7: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 713

Παρατηρήστε ότι όλες αυτές οι γραμμές κώδικα συγκροτούν μια μόλις εντολή την CREATE TABLE

η οποία τερματίζεται στην τελευταία γραμμή με τον χαρακτήρα τερματισμού (Το κάναμε αυτό γιαπρακτικούς λόγους αλλά εσείς αν θέλετε μπορείτε να δώσετε την εντολή σε μια γραμμή) Στηνπρώτη γραμμή δίνουμε εντολή να δημιουργηθεί ο πίνακας Movies και στις επόμενες γραμμές μέσασε μια παρένθεση περιγράφουμε τα πεδία του πίνακα

Το πεδίο id δηλώθηκε ως ακέραιος 24bit χωρίς πρόσημο Επίσης του δόθηκαν οι ιδιότητεςPRIMARY KEY και AUTO_INCREMENT Η πρώτη ιδιότητα χαρακτηρίζει το πεδίο ως πρωτεύονκλειδί και έτσι η MySQL δεν θα επιτρέψει ποτέ σε αυτό το πεδίο να πάρει ίδια τιμή σε δύοδιαφορετικές εγγραφές Και επειδή αυτό σας υποχρεώνει να ψάχνετε έναν ακέραιο που δεν έχειεπαναληφθεί κάθε φορά που θέλετε να εισάγετε μια νέα εγγραφή στον πίνακα έρχεται η ιδιότηταAUTO_INCREMENT να σας βοηθήσει Η χρήση της ιδιότητας αυτής κατά την δήλωση ενός πεδίουσας επιτρέπει όταν θέλετε να εισάγετε εγγραφές στον πίνακα να παραλείπετε -κατά βούληση- τηνεισαγωγή τιμής σε αυτό το πεδίο Αν όντως επιλέξετε να κάνετε αυτήν την παράληψη η MySQL θααναθέσει αυτόματα τιμή στο πεδίο έναν αριθμό κατά μια μονάδα μεγαλύτερο από τον αριθμό πουανατέθηκε στο ίδιο πεδίο κατά την εισαγωγή της προηγούμενης εγγραφής Για παράδειγμα αν στηνπρώτη εγγραφή αναθέσετε την τιμή 13 στο πεδίο id ενώ κατά την δεύτερη εγγραφή παραλείψετετην χειροκίνητη ανάθεση τιμής στο ίδιο πεδίο τότε η MySQL θα του δώσει αυτόματα την τιμή 14

Επίσης έχετε υπόψη ότι δηλώνοντας το πεδίο id ως 24bit ακέραιο άνευ πρόσημου καιταυτόχρονα ως πρωτεύον κλειδί περιορίζετε ουσιαστικά το πλήθος των εγγραφών αυτού τουπίνακα σε 2^24 (γεγονός όχι ιδιαίτερα περιοριστικό αν συγκρίνετε τον αριθμό αυτό με το πλήθοςτων κινηματογραφικών ταινιών παγκοσμίως -) ) Όσον αφορά τα υπόλοιπα πεδία το πεδίο MovieName δηλώθηκε ως αλφαριθμητικό με μέγιστομήκος τους 200 χαρακτήρες και το πεδίο ReleaseYear δηλώθηκε ως ακέραιος των 16bits χωρίςπρόσημο οπότε μπορεί να πάρει τιμές από 0 έως 2^16-1=65535 Στο πεδίο Rating

περιορίστηκε το εύρος του ακεραίου σε 8bit αλλά επιτράπηκε το αρνητικό πρόσημο ώστε ναυπάρχει δυνατότητα αρνητικής βαθμολογίας των ταινιών Έτσι το πεδίο Rating μπορεί να πάρειτιμές από -128 μέχρι 127

Ο πίνακας Movies είναι έτοιμος για εισαγωγή δεδομένων Χρησιμοποιήστε τις επόμενες εντολές γιανα ορίσετε και τους άλλους δύο πίνακες του παραδείγματός μας

Δοκιμάστε τώρα τις εντολές

Η εντολή DESCRIBE επιστρέφει τον τρόπο με τον οποίο είναι ορισμένος ένας πίνακας σεπερίπτωση που το ξεχάσατε ή για επαλήθευση σωστού ορισμού Αν λοιπόν ορίσατε κάποιονπίνακα λανθασμένα ή για οποιονδήποτε άλλο λόγο θέλετε να διαγράψετε ένα πίνακα (μαζί με όλα ταδεδομένα που περιέχει) μπορείτε να χρησιμοποιήσετε την εντολή

CREATE TABLE Directors(id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYName VARCHAR(120)BirthYear SMALLINT UNSIGNED)CREATE TABLE MovDirLink(MovieID MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEYDirectorID MEDIUMINT UNSIGNED)

DESCRIBE MoviesDESCRIBE DirectorsDESCRIBE MovDirLink

DROP TABLE όνομα πίνακα

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 813

Είναι ώρα να προσθέσετε εγγραφές στους πίνακες Για να εισάγετε τις πρώτες δύο εγγραφές στονπίνακα Movies αντιγράφοντας τον πίνακα-δείγμα της εικόνας πληκτρολογήστε τα εξής

Η χρήση της INSERT INTO είναι αρκετά προφανής και είστε πλέον σε θέση να αντιγράψετε πλήρωςκαι τους τρεις πίνακες του παραδείγματος της εικόνας Κάντε το Παρατηρήστε ότι η MySQL δενενοχλείται είτε χρησιμοποιήσετε quotes (lsquo) είτε double-quotes (rdquo) για την εισαγωγήαλφαριθμητικών Αυτό θα φανεί ιδιαίτερα χρήσιμο στο τρίτο μέρος αυτού του tutorial όταν κώδικαςMySQL θα μπλέξει με κώδικα PHP και ΗΤML tags Προσέξτε επίσης ότι κατά την εισαγωγή τηςδεύτερης εγγραφής δεν χρειάστηκε να ανατεθεί χειροκίνητα τιμή στο πεδίο id καθώς η MySQL θαδώσει αυτόματα την τιμή 622 (621+1) Τέλος παρότι σιχαινόμαστε να διορθώνουμε τα λάθη σας -) παρατηρούμε ότι στην ίδια εγγραφή κάνατε -Ρ ένα λάθος πληκτρολόγησης στο όνομα της ταινίαςΔιορθώστε το λάθος χρησιμοποιώντας την εντολή UPDATE

Η εντολή UPDATE έχει την δυνατότητα να ενημερώσει ταυτόχρονα πολλές εγγραφές οπότεχρειάζεται ιδιαίτερη προσοχή στην υπόθεση που ακολουθεί μετά τον όρο WHERE Με τηνσυγκεκριμένη εντολή ζητάτε από την MySQL να ενημερώσει το πεδίο MovieName όλων τωνεγγραφών για τις οποίες ισχύει η υπόθεση id=622 Στην περίπτωση που παραλείψετε να γράψετετο WHERE id=622 όλες σας οι ταινίες θα μετονομαστούν σε King Kong Μην ξεχνάτε λοιπόν ναεισάγετε τον όρο WHERE και να προτιμάτε η υπόθεση που τον ακολουθεί να βασίζεται στοπρωτεύον κλειδί του πίνακα τον οποίο ενημερώνετε (όπως εδώ έγινε χρήση του πεδίου id) καθώςμε αυτόν τον τρόπο είστε σίγουροι ότι ενημερώνετε ακριβώς τις εγγραφές που θέλετε Ας υποθέσουμε τώρα ότι θέλετε να διαγράψετε κάποιες εγγραφές από τον πίνακα Movies και αςυποθέσουμε περαιτέρω ότι οι εγγραφές αυτές είναι οι ταινίες που είτε είναι παλιές (εκδόθηκαν πριντο 1980) είτε δεν σας αρέσουν (έχουν αρνητικό rating) Χρησιμοποιήστε την εντολή

Όπως βλέπετε η DELETE FROM έχει παρόμοια σύνταξη με την UPDATE και συνεπώς η χρήση τηςχρειάζεται την ίδια προσοχή Επίσης παρατηρήστε ότι μπορείτε να χρησιμοποιήσετε και άλλουςτελεστές στην υπόθεση της WHERE πέρα από την ισότητα της υπόθεσης id=622 H MySQL

υποστηρίζει όλους τους κοινούς τελεστές όπως τους = lt gt OR AND κα

Με την DELETE ολοκληρώνεται το σετ εντολών που χρειάζεστε για να επεξεργαστείτε τις βάσεις σαςκαι τους πίνακές σας Ωστόσο η εντολή που θα χρησιμοποιήσετε πιο συχνά από όλες τις άλλεςείναι χωρίς αμφιβολία η SELECT η οποία επιστρέφει -σύμφωνα με κάποια κριτήρια- πληροφορίεςαπό τις βάσεις σας Άλλωστε από την αρχή του tutorial πληκτρολογείτε εντολές χωρίς να είστε σεθέση να δείτε τα αποτελέσματα των εντολών σας και κατά πόσο αυτές ήταν αποτελεσματικέςΔώστε τέλος σε αυτή την κατάσταση πληκτρολογώντας

Αυτές οι τρεις εντολές θα σας επιστρέψουν το πλήρες περιεχόμενο των πινάκων Movies

INSERT INTO Movies VALUES(621 ldquoForrest Gumprdquo 1994 105)INSERT INTO Movies VALUES(NULL lsquoKing Longrsquo 2005 29)

UPDATE Movies SET MovieName=rdquoKing Kongrdquo WHERE id=622

DELETE FROM Movies WHERE ReleaseYearlt1980 OR Ratinggt0

SELECT FROM MoviesSELECT FROM DirectorsSELECT FROM MovDirLink

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 8: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 813

Είναι ώρα να προσθέσετε εγγραφές στους πίνακες Για να εισάγετε τις πρώτες δύο εγγραφές στονπίνακα Movies αντιγράφοντας τον πίνακα-δείγμα της εικόνας πληκτρολογήστε τα εξής

Η χρήση της INSERT INTO είναι αρκετά προφανής και είστε πλέον σε θέση να αντιγράψετε πλήρωςκαι τους τρεις πίνακες του παραδείγματος της εικόνας Κάντε το Παρατηρήστε ότι η MySQL δενενοχλείται είτε χρησιμοποιήσετε quotes (lsquo) είτε double-quotes (rdquo) για την εισαγωγήαλφαριθμητικών Αυτό θα φανεί ιδιαίτερα χρήσιμο στο τρίτο μέρος αυτού του tutorial όταν κώδικαςMySQL θα μπλέξει με κώδικα PHP και ΗΤML tags Προσέξτε επίσης ότι κατά την εισαγωγή τηςδεύτερης εγγραφής δεν χρειάστηκε να ανατεθεί χειροκίνητα τιμή στο πεδίο id καθώς η MySQL θαδώσει αυτόματα την τιμή 622 (621+1) Τέλος παρότι σιχαινόμαστε να διορθώνουμε τα λάθη σας -) παρατηρούμε ότι στην ίδια εγγραφή κάνατε -Ρ ένα λάθος πληκτρολόγησης στο όνομα της ταινίαςΔιορθώστε το λάθος χρησιμοποιώντας την εντολή UPDATE

Η εντολή UPDATE έχει την δυνατότητα να ενημερώσει ταυτόχρονα πολλές εγγραφές οπότεχρειάζεται ιδιαίτερη προσοχή στην υπόθεση που ακολουθεί μετά τον όρο WHERE Με τηνσυγκεκριμένη εντολή ζητάτε από την MySQL να ενημερώσει το πεδίο MovieName όλων τωνεγγραφών για τις οποίες ισχύει η υπόθεση id=622 Στην περίπτωση που παραλείψετε να γράψετετο WHERE id=622 όλες σας οι ταινίες θα μετονομαστούν σε King Kong Μην ξεχνάτε λοιπόν ναεισάγετε τον όρο WHERE και να προτιμάτε η υπόθεση που τον ακολουθεί να βασίζεται στοπρωτεύον κλειδί του πίνακα τον οποίο ενημερώνετε (όπως εδώ έγινε χρήση του πεδίου id) καθώςμε αυτόν τον τρόπο είστε σίγουροι ότι ενημερώνετε ακριβώς τις εγγραφές που θέλετε Ας υποθέσουμε τώρα ότι θέλετε να διαγράψετε κάποιες εγγραφές από τον πίνακα Movies και αςυποθέσουμε περαιτέρω ότι οι εγγραφές αυτές είναι οι ταινίες που είτε είναι παλιές (εκδόθηκαν πριντο 1980) είτε δεν σας αρέσουν (έχουν αρνητικό rating) Χρησιμοποιήστε την εντολή

Όπως βλέπετε η DELETE FROM έχει παρόμοια σύνταξη με την UPDATE και συνεπώς η χρήση τηςχρειάζεται την ίδια προσοχή Επίσης παρατηρήστε ότι μπορείτε να χρησιμοποιήσετε και άλλουςτελεστές στην υπόθεση της WHERE πέρα από την ισότητα της υπόθεσης id=622 H MySQL

υποστηρίζει όλους τους κοινούς τελεστές όπως τους = lt gt OR AND κα

Με την DELETE ολοκληρώνεται το σετ εντολών που χρειάζεστε για να επεξεργαστείτε τις βάσεις σαςκαι τους πίνακές σας Ωστόσο η εντολή που θα χρησιμοποιήσετε πιο συχνά από όλες τις άλλεςείναι χωρίς αμφιβολία η SELECT η οποία επιστρέφει -σύμφωνα με κάποια κριτήρια- πληροφορίεςαπό τις βάσεις σας Άλλωστε από την αρχή του tutorial πληκτρολογείτε εντολές χωρίς να είστε σεθέση να δείτε τα αποτελέσματα των εντολών σας και κατά πόσο αυτές ήταν αποτελεσματικέςΔώστε τέλος σε αυτή την κατάσταση πληκτρολογώντας

Αυτές οι τρεις εντολές θα σας επιστρέψουν το πλήρες περιεχόμενο των πινάκων Movies

INSERT INTO Movies VALUES(621 ldquoForrest Gumprdquo 1994 105)INSERT INTO Movies VALUES(NULL lsquoKing Longrsquo 2005 29)

UPDATE Movies SET MovieName=rdquoKing Kongrdquo WHERE id=622

DELETE FROM Movies WHERE ReleaseYearlt1980 OR Ratinggt0

SELECT FROM MoviesSELECT FROM DirectorsSELECT FROM MovDirLink

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 9: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylast2hellip 913

Directors και MovDirLink Οι δύο τελευταίοι πίνακες θα πρέπει να είναι όπως ακριβώς στηνεικόνα από όπου πήρατε τα δεδομένα ενώ από τον πίνακα Movies θα λείπουν οι εγγραφές με id623 και 626 αφού τις διαγράψατε με την τελευταία DELETE FROM Βέβαια η SELECT κάνει πολλάπαραπάνω από το να επιστρέφει ολόκληρους πίνακες Μια πιο παραμετροποιήσιμη σύνταξη τηςSELECT είναι

Όπως γίνεται φανερό η SELECT έχει την δυνατότητα να επιστρέφει ένα υποσύνολο πεδίων απόένα υποσύνολο εγγραφών ενός πίνακα Για παράδειγμα αν θέλετε να δείτε τα ονόματα μόνο τωνσκηνοθετών που γεννήθηκαν μετά το 1955 θα γράψετε

Αν θέλετε επιπλέον τα αποτελέσματα να είναι ταξινομημένα κατά χρονολογία γέννησης σε αύξουσαή φθίνουσα σειρά θα αλλάξετε την εντολή σε μια από τις δύο παρακάτω

Μπορείτε να χρησιμοποιήσετε ένα αστερίσκο () αντί μιας πλήρους λίστας πεδίων ώστε η SELECT

να επιστρέψει ολόκληρες εγγραφές Για παράδειγμα οι δύο παρακάτω εντολές θα έχουν το ίδιοαποτέλεσμα

Τέλος μια από τις πολλές ευελιξίες της MySQL είναι το γεγονός ότι τα αποτελέσματά μιας SELECT

μπορούν να χρησιμοποιηθούν από μια υπόθεση WHERE σε μια εντολή UPDATE DELETE ή καιμια άλλη SELECT Έτσι στη δική μας βάση μπορούμε να πληροφορηθούμε για την χρονολογίαγέννησης του σκηνοθέτη της ταινίας Beowulf πληροφορία που χρειάζεται δεδομένα από τρειςδιαφορετικούς πίνακες σε μια εντολή και χωρίς να πάρουμε περιττές πληροφορίες όπως το id τηςταινίας και το id του σκηνοθέτη

Με αυτήν την παρατήρηση τελειώνει η εκμάθηση των κυριότερων εντολών MySQL Με τις γνώσειςαυτές μπορείτε να δημιουργήσετε και να χειριστείτε αρκετά αποδοτικά απλές βάσεις όπως αυτή τουπαραδείγματός μας Εφόσον αυτό που διαβάζετε είναι ένα tutorial και όχι εγχειρίδιο έχετε υπόψηότι δεν καλύφθηκαν όλες οι εντολές και οι τύποι πεδίων της MySQL Αλλά ακόμη και οι εντολές πουκαλύφθηκαν μπορούν να πάρουν ακόμα πιο περίπλοκη μορφή ώστε να έχουν πιο αποδοτικάαποτελέσματα Αν θέλετε να περισσότερες πληροφορίες δεν έχετε παρά να επισκεφθείτετην επίσημη ιστοσελίδα της MySQL όπου θα βρείτε πλούσιο documentation

Εναλλακτική διαχείριση βάσεων MySQL με το phpMyAdmin

Επιστρέψτε στον browser σας στον οποίο έχετε ανοιχτή την σελίδα που σας καλωσορίζει στο

SELECT όνομα_πεδίου1 όνομα_πεδίου2 όνομα_πεδίου3 FROM όνομα_πίνακα[WHERE υπόθεση][ORDER BY όνομα_πεδίου [DESC]]

SELECT Name FROM Directors WHERE BirthYeargt1955

SELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYearSELECT Name FROM Directors WHERE BirthYeargt1955 ORDER BY BirthYear DESC

SELECT id Name BirthYear FROM Directors WHERE BirthYearlt1965SELECT FROM Directors WHERE BirthYearlt1965

SELECT BirthYear FROM Directors WHERE id=(SELECT DirectorID FROM MovDirLink WHERE MovieID=(SELECT id FROM Movies WHERE MovieName=rdquoBeowulfrdquo))

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 10: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1013

Μοιράσου το

Tags

27 articles posted

XAMPP Στην αριστερή στήλη κάτω από τον τίτλο Tools

θαβρείτεένα

σύνδεσμο με όνομα phpMyAdmin Ακολουθώντας τονσύνδεσμο θα ανοίξει μέσα στον browser το εργαλείοphpMyAdmin το οποίο όπως υπονοεί το όνομά του είναι μια εφαρμογή γραμμένη σε PHP για τηνδιαχείριση του MySQL server μέσω περιβάλλοντος γραφικών Δεδομένου ότι σπαταλήσατε χρόνογια να εξασκηθείτε και να κατανοήσετε πλήρως τις παραπάνω παραγράφους είμαστε σίγουροι ότιθα βρείτε κατευθείαν τον δρόμο σας μέσα στις επιλογές του phpMyAdmin

Παρά το γεγονός ότι ως xakers -) προτιμούμε πάντα την γραμμή εντολών αναφέρουμε τοphpMyAdmin αφού τα περισσότερα πακέτα Web Hosting δεν παρέχουν την δυνατότηταδιαχείρισης των βάσεών μας μέσω κονσόλας τερματικού αλλά μόνο μέσω του phpMyAdmin Έτσιόταν δημιουργήσετε ένα project και αποφασίσετε να το δημοσιεύσετε online χρησιμοποιώντας τιςυπηρεσίες κάποιου Web Host οι γνώσεις που θα έχετε αποκομίσει από την τοπική χρήση τουphpMyAdmin θα είναι ανεκτίμητες Σημειώστε ότι τo phpMyAdmin δεν είναι μέρος του πακέτου MySQL και πρέπει να το κατεβάσετεκαι να το εγκαταστήσετε ξεχωριστά στην περίπτωση που δεν επιλέξατε το XAMPP σαν λύση

Επίλογος

Η δική μας δουλειά τελείωσε και η δική σας μόλις ξεκινάει Επεκτείνετε την βάση MovieCollection

με νέους πίνακες και πεδία ώστε να γίνει πρακτική Φέρτε την στα μέτρα σας εισάγετε τις ταινίεςσας και κάντε την να δουλέψει για εσάς Με μια εντολή μάθετε ποιές ταινίες από την συλλογή σαςέχετε να δείτε εδώ και πολύ καιρό ποιες είναι κωμωδίες σε ποιες πρωταγωνιστεί ο αγαπημένοςσας ηθοποιός και ποιες πληρούν όλα τα παραπάνω κριτήρια ταυτόχρονα Μέχρι την δημοσίευσητου δεύτερου μέρους αυτού του tutorial όπου θα μάθετε να γράφετε κώδικα PHP έχετε ένα μήνακαιρό να γίνετε Lord Of The Databases -)

CMS coding MySQL PHP programming

Author praeto

Ο praeto γεννήθηκε το 1933 στη Λαϊκή Δημοκρατία του Tannu Tuva Γόνος άξεστων χωρικών του

αρέσει να προγραμματίζει μεγάλα project σε brainfuck να τρώει μπριάμ φούρνου και να ακούει

trendy pop remixes της death metal Ταυτόχρονα Για να ηρεμεί Ενίοτε διασκεδάζει

διακωμωδώντας στερεότυπα πρότυπα Αυτά

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 11: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1113

Comment Link

Comment Link

Comment Link

Comment Link

Related Posts

Μετακόμιση site σε νέο host amp ενίσχυση της ασφάλειαςsubZraw | 30062015 0020 | Premium | 0 CommentsΠρόσφατα χρειάστηκε να μετακομίσουμε το site του deltaHacker το οποίο βασίζεται στο WordPress από τον VPS provider όπουβρισκόταν σε άλλον Ένας από τους λόγους ήταν τα capital controls σε αντίθεση με τον παλιό ο νέος read more

Ανάπτυξη εφαρμογών σε C για το NET [μέρος 7ο]multiPetros | 30062015 0015 | Premium | 0 CommentsΦτάσαμε αισίως στο 7ο μέρος της σειράς και σrsquo αυτό το άρθρο θα ασχοληθούμε με το περιβάλλον των Windows 7 Η συγκεκριμένηέκδοση θεωρείται από πολλούς ως η πιο στιβαρή του δημοφιλούς λειτουργικού Στο παρόν άρθρο read more

Δημιουργία του δικού μας ransomwareThiseas | 31052015 0010 | Premium | 8 CommentsΗ δημιουργία ενός malware δεν είναι εύκολη υπόθεση Συχνά απαιτείται η συμμετοχή αρκετών προγραμματιστών όπου καθέναςαναλαμβάνει συγκεκριμένο κομμάτι Πράγματι ένα malware αποτελείται από διαφορετικά μέρη και κάθε προγραμματιστής αναλαμβάνει ναναπτύξει εκείνο στο οποίο ειδικεύεται read more

7 Responses to ldquoPHP amp MySQL Tutorial - Η Συντροφιά του Δαχτυλιδιούrdquo

sotiris stilianos | 01082011 at 0758

ωραίο το tutorial αλλά υπάρχει και πιο εύκολος τρόπος στα windowze με τοπρόγραμμα easyphp

Log in to Reply

subZraw | 01082011 at 0818

Ναι σίγουρα υπάρχει Να σημειώσω μόνο ότι σύμφωνα και με το πνεύμα τουhacking ο ευκολότερος τρόπος δεν είναι πάντα κι ο καλύτερος )

Log in to Reply

praeto | 01082011 at 2251

Υπάρχουν δεκάδες AMP stacks Η επιλογή του XAMPP έγινε καθαρά για λόγουςομοιομορφίας καθώς διαθέτει έκδοση για κάθε major OS

Για τα δικά μου γούστα λόγου χάρη δεν θα χρησιμοποιούσα καν Apache Καιεδώ που τα λέμε θα προτιμούσα και PostgreSQL αντί για MySQL Αλλά δεν είναιτα γούστα του καθενός το θέμα μας είναι

Log in to Reply

MortisGR | 01082011 at 1705

Kαλησπέρα και καλό μήνα 2 πραγματάκια θέλω να ρωτήσω

1) Υπάρχει τρόπος να μετονομάσω κάποιο πεδίο ενός πίνακα που εκ παραδρομήςδιαπίστωσα ότι ήταν λάθος (ορθογραφικό λαθος S)

2) Η εντολή που δίνουμε για επιλεκτική διαγραφή είναι αλήθεια πως με μπέρδεψε δενξέρω αν είναι γραμμένη λάθος περιέχει κάτι παραπάνω (DELETE FROM Movies

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 12: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1213

Comment Link

Comment Link

Comment Link

WHERE ReleaseYearlt1980 OR Ratinggt0) Τι είναι το lt (επίσης έτσιδιαγράφονται αυτές με rating πάνω από 0 -)

Ευχαριστώ

Log in to Reply

subZraw | 01082011 at 1734

Ναι μπορείς ν αλλάξεις όποιο πεδίο θέλεις Επίσης οι έξτρα χαρακτήρες πουεντόπισες είναι HTML entities που από λάθος μπήκαν στο κείμενο (ταδιόρθωσα ήδη) Για περισσότερες λεπτομέρειες όμως θα πρέπει να περιμένεις τοσυγγραφέα του άρθρου ο οποίος για λίγες μέρες θα λείπει σε άδεια Δεν θα τανσωστό να επέμβω εγώ αν και είμαι βέβαιος ότι μέχρι ν απαντήσει ο praeto θαχεις βρει μόνος σου τη λύση )

Log in to Reply

praeto | 01082011 at 2244

1) Μετονομασία στήλης μπορεί να γίνει εύκολα με μια εντολή ALTER TABLE

Γκούγκλαρε mysql rename table column and you shall find )

2) Μετά την διόρθωση του λάθους πρέπει να ξεκαθάρισε το θέμα φαντάζομαι Καιναι η εντολή διαγράφει ταινίες με rating μεγαλύτερο από 0 το οποίο έχει νόημαεφόσον το rating δέχεται αρνητικές τιμές

Log in to Reply

Mr_Root | 06042013 at 1556

Πρώτη μου επαφή με το αντικείμενο και έχω κάποια προβληματάκια

Εστησα το lampp σε linux mint

Ξεκινάω το lampp με sudo optlampplampp start

Επειτα ξεκινάω την mysql με optlamppbinmysql

Το status και το show databases μου απαντάει κανονικάαλλά όταν πάω να δημιουργήσω μια καινούργια βάση μου λέει ότι δεν έχω τααπαραίτητα δικαιώματα

mysqlgt CREATE DATABASE testDB

ERROR 1044 (42000) Access denied for user localhost to database

testDB

mysqlgt

ήmysqlgt mysql -u root

-gt status

ERROR 1064 (42000) You have an error in your SQL syntax check the

manual that corresponds to your MySQL server version for the right syntax

to use near mysql -u root

status at line 1

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply

Page 13: PHP & MySQL Tutorial – Η Συντροφιά Του Δαχτυλιδιού

2882015 PHP amp MySQL Tutorial ndash Η Συντροφιά του Δαχτυλιδιού | deltaHacker

datatexthtmlcharset=utfshy83Cdiv20class3D22postshysingle20clear20spanshy2220last20loopshypostshy020loopshypostshyfirst20loopshypostshylasthellip 1313

mysqlgt

Εχω βάλει κωδικούς για ροοτ στην mysql κκαι στο lampp gia ton default χρηστη

Επίσης αν ξέρει κάποιος να μου πει που πρέπει να κάνω ξεζιπάρισμα το drupal γιανα το στήσω τοπικά στο pc μου

Log in to Reply