1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Εβδομάδα 8, Συνέχεια] 2 00:00:02,000 --> 00:00:04,000 [David J. Malan] [Πανεπιστήμιο του Χάρβαρντ] 3 00:00:04,000 --> 00:00:08,000 [Αυτό είναι CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:13,000 >> Αυτό είναι CS50, έτσι αυτό είναι το τέλος της εβδομάδας 8 εδώ. 5 00:00:13,000 --> 00:00:16,000 Βεβαίως είχαμε και ένα κομμάτι από ένα τυφώνα νωρίτερα αυτή την εβδομάδα, 6 00:00:16,000 --> 00:00:19,000 έτσι τώρα είναι πραγματικά ακριβώς εσείς και εγώ σε αυτή την αίθουσα διαλέξεων, 7 00:00:19,000 --> 00:00:22,000 αλλά σήμερα θα συνεχίσουμε τη συζήτησή μας σχετικά με την PHP 8 00:00:22,000 --> 00:00:25,000 και για web προγραμματισμό γενικότερα, και έχουμε εισαγάγει επίσης την ιδέα 9 00:00:25,000 --> 00:00:29,000 των βάσεων δεδομένων, ιδιαίτερα για ένα θέμα που ονομάζεται MySQL, η οποία είναι αρκετά δημοφιλής αυτές τις μέρες, 10 00:00:29,000 --> 00:00:34,000 σε μεγάλο βαθμό, λόγω της κλιμάκωσης της, καθώς και επειδή είναι του ελεύθερου και ανοικτού κώδικα. 11 00:00:34,000 --> 00:00:37,000 >> Αλλά πρώτα, μια ματιά όπου αφήσαμε τελευταία φορά. 12 00:00:37,000 --> 00:00:40,000 Υπενθυμίζουμε ότι ψάχναμε στις διάφορες Frosh παραδείγματα ΔΥ, 13 00:00:40,000 --> 00:00:44,000 και αυτή ήταν η φρικτή μορφή που ήρθα με περίπου 15 + χρόνια πριν 14 00:00:44,000 --> 00:00:49,000 ώστε να έχουν οι μαθητές στο μητρώο πανεπιστημιούπολη για το καινούριο εντός των τειχών σπορ 15 00:00:49,000 --> 00:00:52,000 χωρίς να χρειάζεται να οδοιπορικό πια σε όλη την αυλή για να Wigglesworth 16 00:00:52,000 --> 00:00:56,000 να σύρετε ένα φυσικό κομμάτι χαρτί κάτω από πόρτα κάποιου επόπτη. 17 00:00:56,000 --> 00:00:59,000 Αντί περάσαμε τα πάντα σε απευθείας σύνδεση, αλλά να το κάνουμε αυτό χρειάζεται να κάνουν χρήση 18 00:00:59,000 --> 00:01:03,000 από λίγες τεχνολογίες, έτσι ώστε ένα, χρειαζόμασταν HTML, Hypertext Markup Language, 19 00:01:03,000 --> 00:01:07,000 η οποία είναι και πάλι αυτή η γλώσσα σήμανσης με την οποία κάνετε ιστοσελίδες δομικά. 20 00:01:07,000 --> 00:01:10,000 >> Χρησιμοποιώντας ένα κομμάτι του CSS αυτές τις μέρες, επικαλυπτόμενα φύλλα στυλ, 21 00:01:10,000 --> 00:01:16,000 σύμφωνα με την οποία χρησιμοποιούμε stylizations της ιστοσελίδας χρησιμοποιώντας μια ελαφρώς διαφορετική σύνταξη, 22 00:01:16,000 --> 00:01:19,000 ενώ η HTML ήταν όλα σχετικά με τη δομή τους. 23 00:01:19,000 --> 00:01:21,000 Πρέπει επίσης να εισαγάγει μια γλώσσα προγραμματισμού web. 24 00:01:21,000 --> 00:01:25,000 Σε αυτή την περίπτωση, θα χρησιμοποιήσουμε PHP, PHP και πρόκειται να επιτρέψει σε μας 25 00:01:25,000 --> 00:01:28,000 σε δυναμικά περιεχόμενο εξόδου, καθώς και προγραμματικές κάνει πράγματα, όπως 26 00:01:28,000 --> 00:01:33,000 αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου, όπως ήταν η περίπτωση στο σημείωμα που άφησε την τελευταία εβδομάδα. 27 00:01:33,000 --> 00:01:35,000 >> Υπενθυμίζουμε ότι ο κώδικας για αυτό ήταν σε 2 μέρη. 28 00:01:35,000 --> 00:01:38,000 Ένα, είχαμε froshims3.php, 29 00:01:38,000 --> 00:01:42,000 και αυτό ήταν σε μεγάλο βαθμό σήμανσης με μια φόρμα HTML στο εσωτερικό του, 30 00:01:42,000 --> 00:01:45,000 ένα μικροσκοπικό κομμάτι του CSS μέχρι εδώ στα χαρακτηριστικά στυλ 31 00:01:45,000 --> 00:01:48,000 έτσι ώστε η ίδια η φόρμα θα πρέπει να επικεντρώνεται στη σελίδα, αλλά πέρα ​​από αυτό 32 00:01:48,000 --> 00:01:51,000 είχαμε κάποιες εκπρόσωπος εισόδους μορφή, ένα πεδίο κειμένου, ένα πλαίσιο ελέγχου, 33 00:01:51,000 --> 00:01:55,000 κάποια ραδιόφωνο κουμπιά, ένα μενού επιλογής, και ένα κουμπί submit. 34 00:01:55,000 --> 00:02:01,000 Και μέσω αυτής της φόρμας, θα υποβληθεί σε ένα αρχείο που ονομάζεται προφανώς register3.php, 35 00:02:01,000 --> 00:02:04,000 το οποίο η ίδια κοίταξε λίγο κάτι σαν αυτό. 36 00:02:04,000 --> 00:02:08,000 Τώρα, το μεγαλύτερο μέρος του κώδικα σε register3.php, ανάκληση, ήταν όλα σχετικά με e-mail. 37 00:02:08,000 --> 00:02:11,000 Το έκανε λίγο την επικύρωση του εντύπου που υποβλήθηκε για να βεβαιωθείτε ότι 38 00:02:11,000 --> 00:02:14,000 ότι οι τομείς που όντως πραγματοποιήθηκαν και ότι αναμενόταν. 39 00:02:14,000 --> 00:02:18,000 Στη συνέχεια καλέσαμε κάποια PHP λειτουργίες χρησιμοποιώντας ελαφρώς νέα σύνταξη, 40 00:02:18,000 --> 00:02:20,000 ακόμα κι αν αυτό είναι δανεισμένο από C. 41 00:02:20,000 --> 00:02:24,000 >> Ο εν λόγω φορέας βέλος μας επιτρέπει να κάνουν χρήση του κάτι που ονομάζεται αντικειμενοστραφούς προγραμματισμού. 42 00:02:24,000 --> 00:02:27,000 Δεν θα υπεισέλθω σε ότι σε κάθε λεπτομέρεια εδώ, αλλά ξέρω για τώρα 43 00:02:27,000 --> 00:02:31,000 Είναι ένας τρόπος με λειτουργίες που σχετίζονται με τα αντικείμενα, 44 00:02:31,000 --> 00:02:34,000 που είναι ένας ειδικός τύπος της δομής, όπως είδαμε σε C. 45 00:02:34,000 --> 00:02:37,000 Αλλά για τώρα, μόλις λάβει την πίστη ότι αυτή είναι η σωστή σύνταξη για χρήση 46 00:02:37,000 --> 00:02:41,000 όταν χρησιμοποιείτε μια βιβλιοθήκη σαν αυτή βιβλιοθήκη PHPMailer. 47 00:02:41,000 --> 00:02:44,000 Και στη συνέχεια, μέχρι το τέλος αυτού του αρχείου είχαμε δημιουργείται δυναμικά ένα e-mail 48 00:02:44,000 --> 00:02:47,000 που έστειλα στο λογαριασμό μου jharvard@cs50.net 49 00:02:47,000 --> 00:02:50,000 από το λογαριασμό μου jharvard@cs50.net, 50 00:02:50,000 --> 00:02:54,000 και ενημερώσαμε τον χρήστη κατά συνέπεια, ότι είχαν εγγραφεί για αυτό το άθλημα. 51 00:02:54,000 --> 00:02:57,000 Αυτό είναι λίγο πολύ αυτό το Frosh ΔΥ ιστοσελίδα έκανε όλα αυτά τα χρόνια 52 00:02:57,000 --> 00:03:00,000 όταν αυτό εφαρμόζεται, χορηγείται, σε μια διαφορετική γλώσσα, 53 00:03:00,000 --> 00:03:02,000 αλλά ίσως σας δείχνει τη δύναμη που έχετε 54 00:03:02,000 --> 00:03:05,000 τώρα που μπορείτε να εκφραστείτε όχι μόνο μέσω προγραμματισμού 55 00:03:05,000 --> 00:03:08,000 σε ένα χαμηλό επίπεδο σε μια γλώσσα όπως η C, αλλά σε ένα πολύ υψηλότερο επίπεδο 56 00:03:08,000 --> 00:03:11,000 με αυτές τις πολύ πραγματικές εφαρμογές όπως το ηλεκτρονικό ταχυδρομείο για να λύσει πραγματικά 57 00:03:11,000 --> 00:03:13,000 κάποια προβλήματα του πραγματικού κόσμου. 58 00:03:13,000 --> 00:03:16,000 >> Τώρα, βέβαια, αν μπορώ να χρησιμοποιήσω αυτό το σενάριο να δημιουργήσει κάποια 59 00:03:16,000 --> 00:03:20,000 e-mail δυναμικά από jharvard@cs50.net, το οποίο είναι πράγματι ένα λογαριασμό 60 00:03:20,000 --> 00:03:23,000 ότι έχω πρόσβαση, δεν είναι αρκετά προσεκτικοί για να στείλετε 61 00:03:23,000 --> 00:03:26,000 ταχυδρομήσετε μόνο από τους λογαριασμούς που είναι πραγματικά δικό σας, 62 00:03:26,000 --> 00:03:30,000 μήπως μπορείτε να πάρετε τα πράγματα σε λίγο ζεστό νερό στη ζωή. 63 00:03:30,000 --> 00:03:35,000 Με αυτόν εν λόγω, ας τώρα μετάβαση στην επίλυση ενός εντελώς διαφορετικό πρόβλημα, 64 00:03:35,000 --> 00:03:37,000 ότι διατηρούν τα κράτη. 65 00:03:37,000 --> 00:03:39,000 Τώρα, τι ακριβώς σημαίνει αυτό; 66 00:03:39,000 --> 00:03:42,000 HTTP, αυτό το Hypertext Transfer Protocol, 67 00:03:42,000 --> 00:03:45,000 Είναι πραγματικά ένας άπατρις πρωτόκολλο, και αυτό σημαίνει ότι 68 00:03:45,000 --> 00:03:48,000 όταν σηκώσει κάτι όπως το Google.com και στη συνέχεια πατήστε enter 69 00:03:48,000 --> 00:03:51,000 συνήθως browser σας έχει κάποιο είδος της νηματουργίας εικονίδιο ότι τότε 70 00:03:51,000 --> 00:03:54,000 αποτελέσματα σε κάποια ιστοσελίδα να κατεβάσει, 71 00:03:54,000 --> 00:03:57,000 και στη συνέχεια, αυτό το μικρό εικονίδιο σταματήσει να γυρίζει, και που πράγματι προτείνει 72 00:03:57,000 --> 00:04:02,000 HTTP ότι έχει ολοκληρώσει κάποιο είδος της σύνδεσης με το διακομιστή και αυτό είναι όλο. 73 00:04:02,000 --> 00:04:05,000 HTTP είναι ανιθαγενείς, υπό την έννοια ότι δεν διατηρεί 74 00:04:05,000 --> 00:04:08,000 μια μόνιμη σύνδεση με το διακομιστή με τον ίδιο τρόπο δεν Skype 75 00:04:08,000 --> 00:04:11,000 ή GChat κάνει επειδή με HTTP 76 00:04:11,000 --> 00:04:15,000 η υπόθεση είναι ότι από τη στιγμή που έχετε απέφερε μια ιστοσελίδα που είναι αυτό. 77 00:04:15,000 --> 00:04:18,000 >> Τώρα, στην πραγματικότητα, αυτές τις μέρες σε ιστοσελίδες όπως το Facebook και το Google Maps 78 00:04:18,000 --> 00:04:21,000 και το Twitter και σαν να υπάρχει μια πολύ πιο δυναμική την οποία 79 00:04:21,000 --> 00:04:25,000 ακόμη και μετά από αυτό το εικονίδιο σταματήσει να γυρίζει μπορείτε στην πραγματικότητα να πάρει περισσότερες αναβαθμίσεις 80 00:04:25,000 --> 00:04:29,000 από το διακομιστή, πιο tweets, περισσότερο ενημερώσεις κατάστασης στο Facebook και τα παρόμοια. 81 00:04:29,000 --> 00:04:33,000 Αλλά ακόμη και που χρησιμοποιεί μια τεχνική που θα μιλήσουμε για σε μια εβδομάδα ή δύο 82 00:04:33,000 --> 00:04:36,000 γνωστή ως Ajax χρησιμοποιώντας μια γλώσσα που ονομάζεται JavaScript, 83 00:04:36,000 --> 00:04:38,000 αλλά στο τέλος της ημέρας, HTTP εξακολουθεί να είναι απάτριδες. 84 00:04:38,000 --> 00:04:42,000 Και όμως, αν θέλετε να θυμάστε κάπως τα πράγματα για κάποιον χρήστη 85 00:04:42,000 --> 00:04:44,000 ακόμη και αφού έχουν αποσυνδεθεί από το διακομιστή σας 86 00:04:44,000 --> 00:04:47,000 PHP δεν σας προσφέρουν ένα μέσο για να γίνει αυτό 87 00:04:47,000 --> 00:04:52,000 επειδή, όπως είδαμε τελευταία φορά, η PHP έχει μια σειρά από superglobals, 88 00:04:52,000 --> 00:04:55,000 και μια superglobal είναι, πάλι, ένα ειδικό καθολική μεταβλητή 89 00:04:55,000 --> 00:04:59,000 Αυτός είναι ο παραδοθεί σε σας από τον web server και PHP από μόνη της. 90 00:04:59,000 --> 00:05:02,000 >> Δεν χρειάζεται να κάνετε τίποτα για να θέσει αξίες σε αυτό, 91 00:05:02,000 --> 00:05:05,000 και μεταξύ των superglobals που έχουμε δει μέχρι στιγμής είναι να πάρει και μετά, 92 00:05:05,000 --> 00:05:08,000 η οποία είναι όπου τα πεδία φόρμας που αυτόματα για σας, 93 00:05:08,000 --> 00:05:11,000 καθώς και ένα ζευγάρι των άλλων ότι δεν έχουμε δει ακόμη. 94 00:05:11,000 --> 00:05:17,000 Μέσα από $ _SERVER είναι μερικές ειδικές μεταβλητές που σχετίζονται με το ίδιο το διακομιστή. 95 00:05:17,000 --> 00:05:22,000 Ποια είναι η διεύθυνση IP, το πρωτόκολλο αυτό, HTTP ή HTTPS δεν χρησιμοποιείτε, 96 00:05:22,000 --> 00:05:25,000 ποια μέθοδο αίτημα δεν χρησιμοποιείτε και τα παρόμοια, οπότε δεν υπάρχει κάποια ενδιαφέρουσα, 97 00:05:25,000 --> 00:05:29,000 ζουμερά λεπτομέρειες σχετικά με το διακομιστή, και στην πραγματικότητα, ο χρήστης εκεί, καθώς και. 98 00:05:29,000 --> 00:05:33,000 Υπάρχει $ _COOKIE, η οποία είναι όταν αυτά τα πράγματα που ονομάζονται cookies αποθηκεύονται. 99 00:05:33,000 --> 00:05:36,000 Εμείς δεν θα περνούν το χρόνο τους για τα μπισκότα σήμερα, 100 00:05:36,000 --> 00:05:40,000 αλλά ξέρω για τώρα ότι ένα cookie είναι μόνο ένα μικρό κομμάτι των πληροφοριών 101 00:05:40,000 --> 00:05:43,000 ότι ένας web server μπορεί να φυτέψει σε ένα πρόγραμμα περιήγησης στο Web 102 00:05:43,000 --> 00:05:46,000 και με τη σειρά της μνήμης RAM ή σκληρό δίσκο του υπολογιστή του χρήστη 103 00:05:46,000 --> 00:05:49,000 για την αποθήκευση πληροφοριών σχετικά με ένα χρήστη, για παράδειγμα, το όνομα χρήστη τους 104 00:05:49,000 --> 00:05:52,000 έτσι ώστε να μην χρειάζεται να το πληκτρολογήσετε κάθε φορά που συνδέεστε σε κάποια ή 105 00:05:52,000 --> 00:05:55,000 μοναδικό αριθμό ή κωδικό αναγνώρισης για αυτόν τον χρήστη 106 00:05:55,000 --> 00:05:58,000 έτσι ώστε να μην χρειάζεται να τους ταλαιπωρούν με τα ίδια είδη των ερωτήσεων σχετικά με 107 00:05:58,000 --> 00:06:00,000 προτιμήσεις στο μέλλον, αλλά οι περισσότεροι από τόκους 108 00:06:00,000 --> 00:06:02,000 τώρα είναι $ _SESSION. 109 00:06:02,000 --> 00:06:07,000 >> Αυτό superglobal, η οποία, όπως και οι άλλοι, παραδίδεται σε εσάς αυτόματα από την PHP 110 00:06:07,000 --> 00:06:10,000 όταν είστε γραπτώς PHP που βασίζονται ιστοσελίδες 111 00:06:10,000 --> 00:06:13,000 μπορεί να αποθηκεύσει οτιδήποτε θέλετε, χορδές, ακέραιοι, 112 00:06:13,000 --> 00:06:16,000 κυμαινόμενο σημεία, αξίες, πίνακες, αντικείμενα, 113 00:06:16,000 --> 00:06:20,000 πραγματικά τίποτα που θέλετε, και σας επιτρέπει να το αποθηκεύσετε με τέτοιο τρόπο 114 00:06:20,000 --> 00:06:23,000 ότι ακόμη και αν ο χρήστης που επισκέπτεται τώρα και τότε 115 00:06:23,000 --> 00:06:26,000 έρχεται πίσω από ένα λεπτό τώρα ή 5 λεπτά από τώρα, γιατί 116 00:06:26,000 --> 00:06:28,000 παίρνουν το χρόνο τους κάνοντας κλικ πριν από κάποια άλλη σύνδεση 117 00:06:28,000 --> 00:06:32,000 PHP θα εξασφαλίσει ότι ό, τι βάζετε στο εν λόγω συνεδρίαση superglobal 118 00:06:32,000 --> 00:06:37,000 μερικά λεπτά ή 5 λεπτά πριν θα είναι ακόμα εκεί, όταν οι αποδόσεις των χρηστών. 119 00:06:37,000 --> 00:06:40,000 Και κάτω από την κουκούλα superglobal αυτό υλοποιείται μέσω των 120 00:06:40,000 --> 00:06:44,000 αυτά τα πράγματα τα λεγόμενα cookies, αλλά για τώρα, είναι απλά μια αφηρημένη 121 00:06:44,000 --> 00:06:47,000 το οποίο είναι το είδος της προγραμματικής ισοδύναμο του ένα καλάθι αγορών. 122 00:06:47,000 --> 00:06:50,000 Ό, τι, ο προγραμματιστής, να θέσει σε ότι 123 00:06:50,000 --> 00:06:53,000 superglobal associative array θα υπάρχει κάποια σειρά από λεπτά αργότερα 124 00:06:53,000 --> 00:06:59,000 μέχρι να το διαγράψετε ή μέχρι ο χρήστης να κλείσει του ή της περιήγησης εντελώς. 125 00:06:59,000 --> 00:07:02,000 >> Ας ρίξουμε μια ματιά σε ένα παράδειγμα για το πώς αυτό το πράγμα είναι στην πραγματικότητα χρησιμοποιείται. 126 00:07:02,000 --> 00:07:07,000 Στο μεταξύ counter.php κομμάτια σημερινή κώδικα 127 00:07:07,000 --> 00:07:09,000 έχουμε την ακόλουθη γραμμή. 128 00:07:09,000 --> 00:07:13,000 Στην αρχή αυτού του αρχείου έχουμε ένα μάτσο μπλε παρατηρήσεις, οι οποίες χωρίς ενδιαφέρον για τώρα. 129 00:07:13,000 --> 00:07:15,000 Όμως, στη γραμμή 13 έχουμε μια νέα γραμμή, 130 00:07:15,000 --> 00:07:18,000 session_start, και αυτό κάνει πραγματικότητα ακριβώς αυτό που λέει. 131 00:07:18,000 --> 00:07:20,000 Ξεκινά συνεδρίες. 132 00:07:20,000 --> 00:07:25,000 Σας δίνει τη δυνατότητα να χρησιμοποιεί το εν λόγω μεγάλο superglobal $ _SESSION, και είναι τόσο απλό. 133 00:07:25,000 --> 00:07:30,000 Τώρα, αν θα προχωρήσουμε να εξετάσουμε στη γραμμή 16, ας προσπαθήσουμε να καταλάβουμε τι είναι αυτό ιστοσελίδα πρόκειται να κάνει. 134 00:07:30,000 --> 00:07:35,000 Αν (isset ($ _SESSION ["μετρητή"]), τότε προχωρήστε 135 00:07:35,000 --> 00:07:39,000 και κατάστημα στο μετρητή μεταβλητή, πεζά μετρητή, 136 00:07:39,000 --> 00:07:42,000 $ _SESSION ["Μετρητή"]. 137 00:07:42,000 --> 00:07:45,000 Αυτό φαίνεται να κηρύσσει μια τοπική μεταβλητή που ονομάζεται μετρητής 138 00:07:45,000 --> 00:07:48,000 στο εσωτερικό του οποίου είναι βάζοντας ένα αντίγραφο του ό, τι είναι μέσα από την superglobal 139 00:07:48,000 --> 00:07:52,000 που ονομάζεται σύνοδος στη θέση "μετρητή". 140 00:07:52,000 --> 00:07:56,000 Αλλιώς, προφανώς, αυτή η μικρή τοπική μεταβλητή μετρητή, αρχικοποιείται σε 0. 141 00:07:56,000 --> 00:08:01,000 >> Στη συνέχεια, όμως λίγες γραμμές αργότερα σε 26 ειδοποίηση ότι το αντίγραφο της συνόδου του μετρητή, 142 00:08:01,000 --> 00:08:06,000 κλειδί του, έχει ένα νέο καθορισμένη τιμή η οποία είναι η παρούσα αξία της συν 1. 143 00:08:06,000 --> 00:08:09,000 Εν ολίγοις, αυτό το αρχείο φαίνεται να είναι ενημέρωση 144 00:08:09,000 --> 00:08:13,000 ένα μετρητή που είναι αποθηκευμένο στο εσωτερικό της συνόδου superglobal 145 00:08:13,000 --> 00:08:16,000 με προσαύξηση αυτή κατά 1, αλλά διατηρεί πρώτα ένα αντίγραφο της προηγούμενης τιμής 146 00:08:16,000 --> 00:08:20,000 από την αποθήκευσή του σε μια τοπική μεταβλητή που ονομάζεται $ μετρητή, 147 00:08:20,000 --> 00:08:22,000 και στη συνέχεια, εδώ κάτω να δούμε τι απομένει. 148 00:08:22,000 --> 00:08:24,000 Αποδεικνύεται ότι είναι λίγο πολύ απλά HTML. 149 00:08:24,000 --> 00:08:29,000 Στο κάτω μέρος της σελίδας βλέπουμε στη γραμμή 37 που έχουν επισκεφθεί αυτό το site 150 00:08:29,000 --> 00:08:33,000 μετρητής πολλές φορές, έτσι υπάρχει ένα ζευγάρι ενδιαφέροντα χαρακτηριστικά εδώ. 151 00:08:33,000 --> 00:08:36,000 Ένα, αυτό είναι σαφώς μια μεταβλητή, αλλά αυτό δεν αρκεί απλά να θέσει 152 00:08:36,000 --> 00:08:39,000 $ Μετρητή στο σώμα του HTML σας, γιατί φυσικά 153 00:08:39,000 --> 00:08:43,000 αν είναι μόνο εκεί, ανάμεσα HTML PHP σας πρόκειται να υποθέσουμε ότι είναι απλά HTML. 154 00:08:43,000 --> 00:08:48,000 Μπορείτε κυριολεκτικά θέλουν $ αντίθετη προς εκτύπωση στην οθόνη. 155 00:08:48,000 --> 00:08:51,000 >> Αλλά αντ 'αυτού με τη ρίψη σε λειτουργία PHP 156 00:08:51,000 --> 00:08:55,000 με αυτό το κομμάτι της σύνταξης μπορούμε να εισάγουμε δυναμικά μια τιμή εδώ 157 00:08:55,000 --> 00:08:58,000 πολύ παρόμοια στο πνεύμα με αυτό που κάναμε την τελευταία φορά με 158 00:08:58,000 --> 00:09:00,000 εισαγωγή τιμών σε χορδές. 159 00:09:00,000 --> 00:09:04,000 Στην πραγματικότητα, αυτό είναι μόνο μια σημείωση στενογραφίας για να πούμε κάτι τέτοιο κυριολεκτικά, 160 00:09:04,000 --> 00:09:12,000 εκτύπωσης ($ counter) ή ακόμη και κάτι σαν printf (% s, σε αντίθεση), 161 00:09:12,000 --> 00:09:14,000 ή ακόμα, όπως μπορεί να έχετε δει σε απευθείας σύνδεση ή σε βιβλία, 162 00:09:14,000 --> 00:09:17,000 υπάρχει μια συνάρτηση σε PHP που ονομάζεται ηχώ 163 00:09:17,000 --> 00:09:20,000 η οποία κάνει το ίδιο πράγμα, και όλα αυτά είναι απλά πλέον ασθμαίνων τρόπους 164 00:09:20,000 --> 00:09:25,000 του λέγοντας 00:09:28,000 Σε αυτή την περίπτωση ένα δεν χρειάζεται να θέσει 166 00:09:28,000 --> 00:09:30,000 η PHP λέξη μετά το ερωτηματικό. 167 00:09:30,000 --> 00:09:34,000 Αυτό είναι σημειογραφία στενογραφία για, και πάλι, αυτό που μόλις είδαμε πριν από λίγο 168 00:09:34,000 --> 00:09:37,000 η οποία απηχεί κάποια αξία. 169 00:09:37,000 --> 00:09:39,000 >> Ας δούμε τι το τελικό αποτέλεσμα αυτού είναι στην πραγματικότητα. 170 00:09:39,000 --> 00:09:43,000 Επιτρέψτε μου να πάει πάνω σε counter.php αρχείο μας, 171 00:09:43,000 --> 00:09:47,000 και θα δούμε ότι ο David έκανε μόνο ένα λάθος με το παιχνίδι με τον κώδικα εκεί. 172 00:09:47,000 --> 00:09:50,000 Ας πάμε λύση ό, τι μπάχαλο, 173 00:09:50,000 --> 00:09:54,000 και το σφάλμα φαίνεται να είναι εκεί, πάει, στη γραμμή 37. 174 00:09:54,000 --> 00:09:59,000 Σύμφωνα με την αρχή αυτής της σελίδας Έχω επισκεφθεί αυτό το χώρο 0 φορές. 175 00:09:59,000 --> 00:10:02,000 Λοιπόν, ας προχωρήσουμε τώρα, και στην κορυφή του προγράμματος περιήγησης κάντε κλικ στο 176 00:10:02,000 --> 00:10:05,000 reload εικονίδιο, και κάντε κλικ στο κουμπί reload, 177 00:10:05,000 --> 00:10:12,000 και τώρα έχω επισκεφθεί το site 1 φορά, 2, 3, 4, 5, 6, 7, 8. 178 00:10:12,000 --> 00:10:16,000 Και πράγματι, αν κοιτάξουμε την πηγή αυτής της σελίδας η πραγματική του πηγαίου κώδικα αλλάζει, 179 00:10:16,000 --> 00:10:19,000 και παρατηρήστε την παντελή απουσία οποιασδήποτε PHP, και αυτό γιατί 180 00:10:19,000 --> 00:10:23,000 PHP κώδικας ερμηνεύεται αξιολογείται ή διακομιστή, 181 00:10:23,000 --> 00:10:27,000 και έτσι αυτό σημαίνει ότι η έξοδος από την PHP script, είναι αυτό που τελικά αποστέλλονται στο πρόγραμμα περιήγησης, 182 00:10:27,000 --> 00:10:31,000 η οποία στην περίπτωση αυτή είναι μερικές πρώτες HTML και μερικές πρώτες κείμενο. 183 00:10:31,000 --> 00:10:33,000 Τι συμβαίνει εδώ; 184 00:10:33,000 --> 00:10:37,000 >> Λοιπόν, με σχετικά λίγες γραμμές κώδικα, είμαι σε θέση να αποθηκεύσει 185 00:10:37,000 --> 00:10:40,000 επίμονα κατά τη διάρκεια αρκετών δευτερολέπτων, ή εάν περιμέναμε αρκετό καιρό, 186 00:10:40,000 --> 00:10:44,000 λεπτά, ακόμα και ώρες, κάποια τιμή σε ένα τρόπο που καθιστά HTTP 187 00:10:44,000 --> 00:10:47,000 stateful φαίνεται σαν να έχουμε διατηρούνται 188 00:10:47,000 --> 00:10:51,000 αυτή η σύνδεση με το διακομιστή, και αυτό είναι ακριβώς ό, τι θυμόμαστε μου είπε την τελευταία φορά, 189 00:10:51,000 --> 00:10:55,000 αλλά στην πραγματικότητα υπάρχει ένα σωρό πολυπλοκότητα συμβαίνει κάτω από την κουκούλα 190 00:10:55,000 --> 00:10:59,000 που αφορούν τα cookies που είναι PHP που επιτρέπει να μου δώσει αυτή την ψευδαίσθηση 191 00:10:59,000 --> 00:11:02,000 αυτού καλάθι αγορών-όπως το χαρακτηριστικό γνώρισμα. 192 00:11:02,000 --> 00:11:05,000 Προς το παρόν, ένα ασήμαντο παράδειγμα όπου είμαστε απλώς αποθηκεύσει έναν ακέραιο, 193 00:11:05,000 --> 00:11:08,000 αλλά αυτό το χαρακτηριστικό θα έρθει πίσω να είναι μεγάλης αξίας 194 00:11:08,000 --> 00:11:10,000 όταν αρχίσουμε να μιλάμε για πιο σύνθετα έργα, 195 00:11:10,000 --> 00:11:12,000 μεταξύ των οποίων και το πρόβλημα που 7. 196 00:11:12,000 --> 00:11:16,000 Αυτό είναι πολύ τελευταίο πρόβλημα που σας σε CS50. 197 00:11:16,000 --> 00:11:19,000 Το ξέρω, είναι τόσο λυπηρό, αλλά αυτό που θα βρείτε είναι ότι θα πάμε να συνάψουν 198 00:11:19,000 --> 00:11:22,000 αυτό το μέρος του εξαμήνου από τη μετάβαση στην πραγματικότητα 199 00:11:22,000 --> 00:11:25,000 από το πλαίσιο του Γ σίγουρα στο πλαίσιο της PHP 200 00:11:25,000 --> 00:11:27,000 αλλά ενώ χρησιμοποιώντας μερικά από τα ίδια βασικά 201 00:11:27,000 --> 00:11:29,000 έχουμε μιλήσει για αρκετό καιρό. 202 00:11:29,000 --> 00:11:33,000 >> Ο στόχος με PSET 7 είναι να εφαρμόσει CS50 Οικονομικών, 203 00:11:33,000 --> 00:11:37,000 η οποία είναι η δική σας έκδοση του Yahoo ή το Google Finance Οικονομικών 204 00:11:37,000 --> 00:11:40,000 ή ακόμα και Etrade.com σύμφωνα με την οποία έχετε τη δυνατότητα να 205 00:11:40,000 --> 00:11:43,000 κοιτάζω προς τα πάνω οι τιμές των μετοχών για συγκεκριμένα σύμβολα, αλλά ακόμη περισσότερο από ότι 206 00:11:43,000 --> 00:11:48,000 έχετε τη δυνατότητα να «αγοράσουν» και «πουλήσει» τα αποθέματα 207 00:11:48,000 --> 00:11:51,000 που διαπραγματεύονται σε διάφορα χρηματιστήρια, διότι, όπως αυτή αρχική σελίδα 208 00:11:51,000 --> 00:11:55,000 προτείνει εδώ, το οποίο είναι πραγματικά ο βαθμός στον οποίο έχουμε αρχίσει 209 00:11:55,000 --> 00:11:59,000 το σύνολο πρόβλημα για σας, έχετε μια φόρμα σύνδεσης που ζητάει ένα όνομα χρήστη και έναν κωδικό πρόσβασης. 210 00:11:59,000 --> 00:12:03,000 Έχει ένα κουμπί submit, αλλά στη συνέχεια, όπως θα δούμε τελικά, 211 00:12:03,000 --> 00:12:06,000 δεν υπάρχει τίποτα πραγματικά συμβαίνει κάτω από την κουκούλα, γιατί ακόμη 212 00:12:06,000 --> 00:12:09,000 παραμένει για να εφαρμόσει τη δυνατότητα να εγγραφείτε νέους χρήστες, 213 00:12:09,000 --> 00:12:12,000 η δυνατότητα να αγοράσουν μετοχές, να πωλήσει τα αποθέματα, 214 00:12:12,000 --> 00:12:14,000 για να δούμε πραγματικά τις τρέχουσες τιμές των μετοχών. 215 00:12:14,000 --> 00:12:17,000 >> Και πράγματι, αυτό θα είναι το πραγματικό κόσμο όσο το δυνατόν επειδή κάναμε 216 00:12:17,000 --> 00:12:20,000 περιλαμβάνει ένα κομμάτι του κώδικα που θα σας επιτρέψει με μια ενιαία λειτουργία 217 00:12:20,000 --> 00:12:25,000 να διερευνούν το Yahoo Finance, η οποία κάνει θαυμάσια δεδομένα διατίθενται δωρεάν 218 00:12:25,000 --> 00:12:31,000 για την αναζήτηση των τιμών των μετοχών με βάση το σύμβολο της μετοχής ή ticker σύμβολο, 219 00:12:31,000 --> 00:12:34,000 και μπορείτε να πάρετε πίσω την τρέχουσα τιμή της μετοχής της ημέρας. 220 00:12:34,000 --> 00:12:37,000 Τα δεδομένα που είστε πραγματικά να δει σε αυτό το συγκεκριμένο PSET θα είναι 221 00:12:37,000 --> 00:12:40,000 σχετικά με το πραγματικό κόσμο, όπως μπορεί να πάρει, ώστε να είστε πραγματικά διασυνδέεται 222 00:12:40,000 --> 00:12:43,000 με πραγματικό παγκόσμιων αποθεμάτων, οι πραγματικές τιμές κόσμο, 223 00:12:43,000 --> 00:12:47,000 και θα δούμε πόσα χρήματα μπορείτε να κάνετε ίσως 224 00:12:47,000 --> 00:12:51,000 κατά τη διάρκεια των επόμενων ημερών να παίζει με το δικό του σύνολο πρόβλημά σας. 225 00:12:51,000 --> 00:12:55,000 >> Αλλά ας πρώτα να ορίσετε το στάδιο για το πώς να σχεδιάσουν κάτι που είναι σίγουρα πιο περίπλοκο 226 00:12:55,000 --> 00:12:59,000 από counter.php, αυτό είναι πιο περίπλοκη από ό, τι οποιοδήποτε από τα παραδείγματα Frosh ΔΥ μέχρι στιγμής, 227 00:12:59,000 --> 00:13:02,000 και ας προσπαθήσουμε να εισαγάγει μερικά παραδείγματα εδώ που μας επιτρέπουν 228 00:13:02,000 --> 00:13:06,000 τόσο για PSET 7 και ίσως για τον τελικό έργο σας αν το κάνετε web-based κάτι 229 00:13:06,000 --> 00:13:11,000 για να κρατήσει τον κωδικό σας καλά οργανωμένη, για να κρατήσει τον εαυτό σας υγιής, 230 00:13:11,000 --> 00:13:15,000 και να κάνουμε ένα βήμα προς τη συνεργασία, είτε σε τελικό σχέδιο του CS50 231 00:13:15,000 --> 00:13:18,000 ή πέρα ​​αν συνεχίσουν να προγραμματίσετε κάτι στο μέλλον. 232 00:13:18,000 --> 00:13:21,000 Υπάρχει αυτή η γενική παράδειγμα σχεδιασμού 233 00:13:21,000 --> 00:13:24,000 στην επιστήμη των υπολογιστών και στην ανάπτυξη λογισμικού γενικότερα 234 00:13:24,000 --> 00:13:27,000 γνωστή ως MVC, μοντέλο θέα ελεγκτή, 235 00:13:27,000 --> 00:13:30,000 και αυτό είναι μια ανόητη ακρωνύμιο που περιγράφει μια πολύ ωραία ιδέα, 236 00:13:30,000 --> 00:13:34,000 η οποία είναι ο διαχωρισμός των διαφόρων πτυχών του προγράμματος, 237 00:13:34,000 --> 00:13:39,000 Ειδικότερα η διατήρηση χωριστών τη λογική ή την επιχειρηματική λογική μιας ιστοσελίδας 238 00:13:39,000 --> 00:13:42,000 έτσι ώστε οτιδήποτε που περιλαμβάνει τα πράγματα όπως 239 00:13:42,000 --> 00:13:45,000 καλώντας λειτουργίες και διερευνούν τις βάσεις δεδομένων και τα παρόμοια 240 00:13:45,000 --> 00:13:48,000 Δεν συμβαίνει μεταξύ σας HTML 241 00:13:48,000 --> 00:13:51,000 αλλά μάλλον σε ξεχωριστά αρχεία, και πράγματι, δεν υπάρχει αυτό το αρχείο 242 00:13:51,000 --> 00:13:54,000 συνήθως ότι έχετε καλέσει ο ελεγκτής 243 00:13:54,000 --> 00:13:56,000 αυτό είναι πραγματικά οι εγκέφαλοι πίσω από την πράξη, και θα δούμε ένα παράδειγμα 244 00:13:56,000 --> 00:13:58,000 από αυτό σε μια στιγμή. 245 00:13:58,000 --> 00:14:01,000 >> Υπάρχει ένα μοντέλο το οποίο κώδικα προγραμματισμού 246 00:14:01,000 --> 00:14:05,000 που κάνει την ομιλία σε βάσεις δεδομένων σας, ότι οι συνομιλίες για το Yahoo Finance και τα παρόμοια, 247 00:14:05,000 --> 00:14:08,000 και στη συνέχεια υπάρχει το V στο MVC, οι απόψεις, 248 00:14:08,000 --> 00:14:11,000 όλα τα πράγματα που είναι σχετικές με την αισθητική, τα αρχεία που περιέχουν στην πραγματικότητα 249 00:14:11,000 --> 00:14:14,000 HTML, CSS ίσως σας και τα παρόμοια. 250 00:14:14,000 --> 00:14:17,000 Η ιδέα εδώ, όπως υποδηλώνει η εικόνα αυτή, είναι ότι ο ελεγκτής 251 00:14:17,000 --> 00:14:21,000 είναι το αρχείο, όπως θα δούμε σύντομα και όπως θα δείτε σε ιδιαίτερα PSET 7, 252 00:14:21,000 --> 00:14:24,000 ότι ο κόσμος μιλά για προγράμματα περιήγησης στο Web μέσω τους. 253 00:14:24,000 --> 00:14:27,000 Αυτό είναι το αρχείο που παίρνει επισκέφθηκε στο δημόσιο Διαδίκτυο, 254 00:14:27,000 --> 00:14:30,000 αλλά ο ελεγκτής να μιλά δυνητικά ένα μοντέλο, 255 00:14:30,000 --> 00:14:34,000 η οποία είναι ένα ή περισσότερα άλλα αρχεία που περιέχουν κώδικα που σχετίζονται με τα δεδομένα, 256 00:14:34,000 --> 00:14:37,000 κώδικα που σχετίζονται με βάσεις δεδομένων και τα παρόμοια, και στη συνέχεια να μιλά 257 00:14:37,000 --> 00:14:40,000 ο ελεγκτής ένα ή περισσότερα άλλα γνωστά ως αρχεία απόψεων, 258 00:14:40,000 --> 00:14:43,000 που είναι η αισθητική της ιστοσελίδας, τα πρότυπα του είδους, 259 00:14:43,000 --> 00:14:47,000 ότι θα μπορούσε να λάβει κάποια δεδομένα ως είσοδο, αλλά στο τέλος της ημέρας 260 00:14:47,000 --> 00:14:50,000 η μόνη λογική μέσα από μια άποψη θα πρέπει να είναι η παροχή των δεδομένων αυτών, 261 00:14:50,000 --> 00:14:53,000 επανάληψη σε βρόχο και πραγματικά φτύσιμο από κάποια 262 00:14:53,000 --> 00:14:56,000 HTML με βάση τους απόδοση ή ακόμη και κάτι σαν ένα PDF. 263 00:14:56,000 --> 00:14:59,000 >> Τι είναι ωραίο για το MVC είναι ότι μπορείτε να έχετε διαφορετικές απόψεις 264 00:14:59,000 --> 00:15:02,000 με βάση τον τύπο της συσκευής, με βάση τον τύπο της μορφής αρχείου που πραγματικά 265 00:15:02,000 --> 00:15:04,000 θέλουμε να δείξουμε στον χρήστη. 266 00:15:04,000 --> 00:15:10,000 Ας ρίξουμε μια ματιά σε μερικά σταδιακά όλο και πιο πολύπλοκες και καλά σχεδιασμένα παραδείγματα 267 00:15:10,000 --> 00:15:13,000 ξεκινώντας πρώτα με την έκδοση 0 εδώ. 268 00:15:13,000 --> 00:15:16,000 Επιτρέψτε μου να πάμε μπροστά και να ανοίξει το MVC κατάλογο μας σήμερα 269 00:15:16,000 --> 00:15:21,000 ένα αρχείο με όνομα index.php στον κατάλογο 0. 270 00:15:21,000 --> 00:15:26,000 Παρατηρήστε αυτό είναι μια εξαιρετικά απλή και πολύ underwhelming ιστοσελίδα 271 00:15:26,000 --> 00:15:29,000 αυτό είναι το είδος της έκδοση 0 της αρχικής σελίδας για CS50, 272 00:15:29,000 --> 00:15:32,000 και παρατηρήστε πώς έχουμε μια σύνδεση με διαλέξεις, έχουμε μια σύνδεση με ύλης, 273 00:15:32,000 --> 00:15:35,000 και αν ακολουθήσετε το σύνδεσμο για να διαλέξεις ειδοποίηση ότι η διεύθυνση URL 274 00:15:35,000 --> 00:15:39,000 επάνω στην κορυφή πρόκειται να αλλάξει στο lectures.php. 275 00:15:39,000 --> 00:15:44,000 Αν στη συνέχεια, ακολουθήστε το link για να εβδομάδα 1 ειδοποίηση ότι οι αλλαγές URL για week1.php. 276 00:15:44,000 --> 00:15:46,000 Φαίνεται να υπάρχει μια αρκετά απλή ιεραρχική δομή εδώ. 277 00:15:46,000 --> 00:15:49,000 >> Ας ρίξουμε μια γρήγορη ματιά κάτω από την κουκούλα στο πώς αυτό είναι που αναφέρονται, 278 00:15:49,000 --> 00:15:53,000 και πράγματι, αν κοιτάζω index.php είναι αρκετά απλή. 279 00:15:53,000 --> 00:15:57,000 Στην πραγματικότητα, ακόμα κι αν αυτό που ονομάζεται ένα αρχείο PHP δεν υπάρχει πραγματικό κώδικα προγραμματισμού. 280 00:15:57,000 --> 00:16:01,000 Υπάρχει ένα σχόλιο που έγραψα εδώ σε PHP ακριβώς έτσι ο χρήστης δεν καταλήγουν να βλέπουν αυτό. 281 00:16:01,000 --> 00:16:05,000 Φυσικά, όπως και πριν, κάτι που είναι στο μεταξύ ετικέτες PHP 282 00:16:05,000 --> 00:16:08,000 ερμηνεύεται παίρνει, ακόμα κι αν είναι ένα σχόλιο και να ερμηνεύσει ένα σχόλιο 283 00:16:08,000 --> 00:16:11,000 Σημαίνει απλώς να το πετάξετε στο τέλος της ημέρας και όχι στην πραγματικότητα 284 00:16:11,000 --> 00:16:15,000 στείλετε στο πρόγραμμα περιήγησης, έτσι ώστε τα πάντα εδώ είναι μόνο αισθητική. 285 00:16:15,000 --> 00:16:20,000 Αν ανοίξει ομοίως lectures.php αυτό είναι πολύ απλά ένα σκληρό κωδικοποιημένο αρχείο. 286 00:16:20,000 --> 00:16:23,000 Συμβαίνει να λέγεται κάτι. Php, 287 00:16:23,000 --> 00:16:27,000 αλλά είναι πραγματικά ακριβώς. html, και week1.php, week2.php 288 00:16:27,000 --> 00:16:31,000 ομοίως είναι ακριβώς σήμανσης, έτσι υπάρχει μια δέσμη των ελλείψεων αυτού του σχεδιασμού. 289 00:16:31,000 --> 00:16:33,000 Ένας, είναι ένα τεράστιο ποσό του copy / paste. 290 00:16:33,000 --> 00:16:37,000 Ακόμα κι αν το μόνο πράγμα που αλλάζει μεταξύ αυτών των αρχείων είναι η μη διατεταγμένη λίστα, 291 00:16:37,000 --> 00:16:41,000 οι ετικέτες li, ωστόσο έχω ακόμη έγγραφο τύπο, HTML, το κεφάλι, 292 00:16:41,000 --> 00:16:44,000 τίτλο, κοντά σώμα, κοντά HTML και περισσότερο 293 00:16:44,000 --> 00:16:47,000 σε κάθε αρχείο, πράγμα που σημαίνει ότι αν ποτέ θέλουν να αναδιαρθρώσουν 294 00:16:47,000 --> 00:16:50,000 αυτή την ιστοσελίδα ή το restylize έχω να πάω και να αλλάξετε 295 00:16:50,000 --> 00:16:54,000 όλα αυτά τα αρχεία χειροκίνητα ή με κάποια μαζική βρείτε και να αντικαταστήσετε. 296 00:16:54,000 --> 00:17:01,000 >> Ας κάνουμε ένα βήμα προς μια πιο έξυπνη, πιο σκέψης του σχεδιασμού στην έκδοση 1 εδώ 297 00:17:01,000 --> 00:17:04,000 όπου σύμφωνα με το μου διάβασα ότι έχουμε συμπεριλάβει, έτσι ώστε να μπορείτε να παίξετε μαζί με 298 00:17:04,000 --> 00:17:07,000 οι πιο χαλαρό στο σπίτι ειδοποίηση ότι έχουμε εδώ 299 00:17:07,000 --> 00:17:10,000 περίληψη των αρχείων στην έκδοση 1 του παρόντος site, 300 00:17:10,000 --> 00:17:13,000 και φαίνεται ότι έχω λάβει από τον εαυτό μου να συνυπολογίσει 301 00:17:13,000 --> 00:17:17,000 κάποια κοινή κώδικα, header.php και footer.php. 302 00:17:17,000 --> 00:17:20,000 Λοιπόν, ας ρίξουμε μια ματιά στο τι είναι μέσα στην πρώτη από αυτές. 303 00:17:20,000 --> 00:17:23,000 Header.php φαίνεται οικείο, 304 00:17:23,000 --> 00:17:26,000 αλλά παρατηρήσετε πού να πάρει αποκοπεί; 305 00:17:26,000 --> 00:17:30,000 Αμέσως μετά την γραμμή 19, έτσι ώστε να είναι τα πάντα που ήταν κοινό 306 00:17:30,000 --> 00:17:33,000 από το index.php αρχεία, lectures.php, 307 00:17:33,000 --> 00:17:36,000 week1 και week2.php από το προηγούμενο παράδειγμα. 308 00:17:36,000 --> 00:17:40,000 Αυτό που έκανα ήταν αντίγραφο και πάντα περικοπή που ήταν κοινό σε όλα αυτά τα αρχεία, 309 00:17:40,000 --> 00:17:44,000 το βάζουμε σε ένα ξεχωριστό αρχείο κεφαλίδας, και ομοίως σε footer.php 310 00:17:44,000 --> 00:17:48,000 δεν έχω εφαρμόσει την ίδια αρχή σύμφωνα με την οποία οι μόνες ενδιαφέρουσες γραμμές 311 00:17:48,000 --> 00:17:52,000 footer.php σε αυτά τα δύο, κοντά σώμα και κοντά HTML. 312 00:17:52,000 --> 00:17:55,000 >> Αλλά τι σημαίνει αυτό τώρα είναι ότι στη νέα έκδοση 313 00:17:55,000 --> 00:17:59,000 του index.php ειδοποίηση πόσο απλό μπορεί να πάρει. 314 00:17:59,000 --> 00:18:02,000 Σύμφωνοι, λίγο πιο αινιγματικά αναζητούν, λίγο λιγότερο διαισθητική 315 00:18:02,000 --> 00:18:06,000 να ακολουθήσει πάνω προς τα κάτω, αλλά ο Θεός μου, όλα αυτά τα πλεονασμού έχει πλέον φύγει. 316 00:18:06,000 --> 00:18:10,000 Ζητούμε τη χρήση PHP λειτουργία κυριολεκτικά ονομάζεται απαιτούν επάνω στην κορυφή, 317 00:18:10,000 --> 00:18:15,000 το οποίο είναι πολύ θυμίζει, θυμάμαι, από το C # include μηχανισμό. 318 00:18:15,000 --> 00:18:17,000 Ζητούμε header.php στην κορυφή. 319 00:18:17,000 --> 00:18:20,000 Ζητούμε footer.php στο κάτω μέρος, και το μόνο πράγμα που είναι διαφορετικό 320 00:18:20,000 --> 00:18:25,000 ή ειδικές για αυτό το αρχείο είναι το περιεχόμενο που είναι γραφτό να είναι μοναδικό σε αυτό. 321 00:18:25,000 --> 00:18:29,000 Αν και εγώ θα πάω σε, ας πούμε, lectures.php, η ίδια αρχή ισχύει. 322 00:18:29,000 --> 00:18:32,000 Και πάλι, μερικά σχόλια επάνω στην κορυφή, αλλά τότε θα απαιτούν κεφαλίδα, υποσέλιδο απαιτούν, 323 00:18:32,000 --> 00:18:35,000 και στο μεταξύ είναι μόνο το περιεχόμενο που πραγματικά αλλάξει. 324 00:18:35,000 --> 00:18:38,000 Και αν ψάξαμε στο εβδομάδα 1 Εβδομάδα 2 και θα βλέπαμε 325 00:18:38,000 --> 00:18:42,000 ότι η ίδια αρχή είχε εφαρμοσθεί εκεί. 326 00:18:42,000 --> 00:18:44,000 Λοιπόν, δεν είμαστε αρκετά γίνει εκεί. 327 00:18:44,000 --> 00:18:48,000 >> Ας ρίξουμε μια ματιά στην έκδοση 2, η οποία έχει παρόμοια δομή, 328 00:18:48,000 --> 00:18:50,000 παρατηρήσετε αλλά τώρα έχω εισαχθεί κάτι άλλο. 329 00:18:50,000 --> 00:18:53,000 Στη γραμμή 10 που έχω εισαχθεί helpers.php, 330 00:18:53,000 --> 00:18:55,000 το οποίο περιέχει προφανώς βοηθητικές λειτουργίες. 331 00:18:55,000 --> 00:18:58,000 Μια λειτουργία βοηθού είναι γενικά ένα σχετικά σύντομο συνάρτηση 332 00:18:58,000 --> 00:19:01,000 που γράφω για να σας βοηθήσει σε διάφορα μέρη, 333 00:19:01,000 --> 00:19:04,000 και ας δούμε τι υπάρχει στο εσωτερικό της helpers.php. 334 00:19:04,000 --> 00:19:07,000 Σε αυτή την περίπτωση, φαίνεται σαν να έχει 2 λειτουργίες. 335 00:19:07,000 --> 00:19:10,000 Ανάκληση από την άλλη μέρα με το παράδειγμα μας κύβο 336 00:19:10,000 --> 00:19:13,000 μπορείτε να ορίσετε τις δικές σας λειτουργίες σε PHP, και ό, τι έχω κάνει είναι τώρα έχω 337 00:19:13,000 --> 00:19:17,000 καθορισμένες λειτουργίες που ονομάζεται καθιστούν υποσέλιδο και να καταστήσει κεφαλίδα, 338 00:19:17,000 --> 00:19:21,000 των οποίων η πρώτη λαμβάνει μία παράμετρο που ονομάζεται δεδομένων, 339 00:19:21,000 --> 00:19:25,000 του οποίου η προεπιλεγμένη τιμή είναι μια κενή σειρά, όπως προτείνεται εκεί, 340 00:19:25,000 --> 00:19:29,000 και μπορούμε να γράψουμε πραγματικά αυτό ακόμα πιο συνοπτικά στην τελευταία έκδοση του PHP 341 00:19:29,000 --> 00:19:32,000 λέγοντας ανοικτή αγκύλη, κλειστή αγκύλη. 342 00:19:32,000 --> 00:19:35,000 Αυτό σημαίνει ότι μια κενή σειρά μεγέθους 0, αλλά παρ 'όλα αυτά μια σειρά. 343 00:19:35,000 --> 00:19:38,000 >> Αυτή η λειτουργία απόσπασμα είναι ένα μικρό ειδικό σε ότι 344 00:19:38,000 --> 00:19:41,000 αυτό που κάνει είναι να παίρνει ως όρισμα ένα associative array 345 00:19:41,000 --> 00:19:45,000 που έχει 0 ή περισσότερα ζεύγη κλειδιών αξία, και αν έχετε ένα κλειδί από foo 346 00:19:45,000 --> 00:19:48,000 και η τιμή του μπαρ η λειτουργία απόσπασμα 347 00:19:48,000 --> 00:19:51,000 δημιουργεί μια κατάσταση στην οποία τώρα, όπως της γραμμής 11, 348 00:19:51,000 --> 00:19:57,000 έχετε μια τοπική μεταβλητή που ονομάζεται $ foo των οποίων η αξία είναι το μπαρ. 349 00:19:57,000 --> 00:19:59,000 Και αν είχατε περισσότερα πλήκτρα και τις αξίες του πίνακα δεδομένων, 350 00:19:59,000 --> 00:20:03,000 παρομοίως θα μπορούν να εξάγονται μέσα στην τοπική εμβέλεια 351 00:20:03,000 --> 00:20:06,000 ή όνομα χώρου, έτσι ώστε και footer.php 352 00:20:06,000 --> 00:20:09,000 η ίδια ιδέα εδώ κάτω, έτσι ώστε header.php 353 00:20:09,000 --> 00:20:12,000 έχουν πρόσβαση σε αυτές τις μεταβλητές. 354 00:20:12,000 --> 00:20:15,000 Στην πραγματικότητα, επιτρέψτε μου να ανοίξει και πάλι header.php 355 00:20:15,000 --> 00:20:18,000 και να επιστήσει την προσοχή σε ό, τι τώρα μοιάζει σε αυτή την έκδοση. 356 00:20:18,000 --> 00:20:22,000 >> Αντί κωδικοποίηση σκληρά CS50 ως τίτλο για κάθε σελίδα 357 00:20:22,000 --> 00:20:24,000 παρατηρήσετε το δυναμισμό που είναι δυνατό τώρα. 358 00:20:24,000 --> 00:20:29,000 Στη γραμμή 5 είμαι επαναλαμβάνοντας μια μεταβλητή τίτλο, 359 00:20:29,000 --> 00:20:34,000 αλλά πρώτα είμαι περνώντας ότι η μεταβλητή τίτλο σε μια λειτουργία που ονομάζεται υπάρχει τίποτα άλλο. 360 00:20:34,000 --> 00:20:38,000 Ένα ηλίθιο όνομα για μια λειτουργία, αρκεί να είναι, αλλά το κάνει πραγματικά αυτό που λέει. 361 00:20:38,000 --> 00:20:41,000 Εξασφαλίζει ότι υπάρχουν ειδικοί χαρακτήρες 362 00:20:41,000 --> 00:20:46,000 στη σειρά που είναι ήδη περάσει σε δραπέτευσε είναι σωστά HTML. 363 00:20:46,000 --> 00:20:49,000 Αυτό είναι στην πραγματικότητα ένας τρόπος για να αποφευχθεί κάτι που ονομάζεται ένα σταυρό επίθεση site scripting 364 00:20:49,000 --> 00:20:52,000 σύμφωνα με την οποία κάποιος μπορεί να κακόβουλα ή λάθος 365 00:20:52,000 --> 00:20:55,000 εισφέρει τη δική τους HTML στην ιστοσελίδα σας 366 00:20:55,000 --> 00:20:59,000 με επικόλληση σε κάποια μορφή, για παράδειγμα, 367 00:20:59,000 --> 00:21:02,000 κάτι που δεν περίμενα ήταν αρκετά, ιδιαίτερα JavaScript κώδικα, 368 00:21:02,000 --> 00:21:05,000 όπως θα μιλήσουμε για σε μια εβδομάδα ή δύο χρόνια. 369 00:21:05,000 --> 00:21:08,000 >> Αυτό τώρα header.php, είναι μια άποψη 370 00:21:08,000 --> 00:21:12,000 με την έννοια ότι επιτρέπει σε σας για να δείτε τα περιεχόμενα αισθητικά από κάποιο σύνολο δεδομένων. 371 00:21:12,000 --> 00:21:14,000 Αλλά πιο συγκεκριμένα, είναι ένα πρότυπο. 372 00:21:14,000 --> 00:21:19,000 Αυτό είναι ένα είδος σχέδιο τώρα από ό, τι θέλουμε η επικεφαλίδα της κάθε σελίδας για να μοιάσει, 373 00:21:19,000 --> 00:21:23,000 αλλά υπάρχει κάποια δυναμική στο ότι θέλουμε ο τίτλος να εισαχθεί δυναμικά 374 00:21:23,000 --> 00:21:26,000 με βάση την μεταβλητή επικεφαλίδι 375 00:21:26,000 --> 00:21:30,000 που εξήχθη όταν καλέσαμε, και πάλι, 376 00:21:30,000 --> 00:21:33,000 η λειτουργία κεφαλίδας render. 377 00:21:33,000 --> 00:21:36,000 Τώρα, αν κοιτάξαμε υποσέλιδο καθιστούν, υπάρχει πραγματικά δεν είναι πολύ χρήση αυτού του δικαιώματος τώρα 378 00:21:36,000 --> 00:21:40,000 επειδή σε footer.php δεν υπάρχει απολύτως δυναμισμό. 379 00:21:40,000 --> 00:21:43,000 Θα μπορούσαν να υπάρχουν, αλλά αυτή τη στιγμή είναι ένα σκληρό κωδικοποιημένο κατάλογο των 2 ετικέτες, 380 00:21:43,000 --> 00:21:46,000 αλλά η ίδια ιδέα εφαρμόζεται, έτσι ώστε πράγματι υποδεικνύει γιατί 381 00:21:46,000 --> 00:21:49,000 δεν θα χάνετε χρόνο με κεφαλιά καθιστούν και καθιστούν υποσέλιδο λειτουργία; 382 00:21:49,000 --> 00:21:52,000 Επιτρέψτε μου να πάω αντίθετα τώρα στην έκδοση 3, 383 00:21:52,000 --> 00:21:56,000 και στην έκδοση 3 σε βοηθούς, αποφάσισα να απλοποιήσει ακόμη περισσότερο. 384 00:21:56,000 --> 00:21:58,000 >> Επιτρέψτε μου να έχουν μια λειτουργία render. 385 00:21:58,000 --> 00:22:02,000 Επιτρέψτε μου να έχουν πάρει ένα άλλο επιχείρημα, αυτή τη φορά ονομάζεται πρότυπο, 386 00:22:02,000 --> 00:22:05,000 το οποίο προορίζεται να είναι το όνομα ενός προτύπου, 387 00:22:05,000 --> 00:22:11,000 και στη συνέχεια θα ενώσετε. presumptuously php με την αξία της μεταβλητής, 388 00:22:11,000 --> 00:22:17,000 και στη συνέχεια, αν υπάρχει foo.php, bar.php ή header.php και footer.php, 389 00:22:17,000 --> 00:22:20,000 τότε είμαι πρόκειται να πάει μπροστά και να εξαγάγετε τα μεταβλητά δεδομένα 390 00:22:20,000 --> 00:22:23,000 και στη συνέχεια να απαιτήσει αυτό το μονοπάτι. 391 00:22:23,000 --> 00:22:29,000 Με άλλα λόγια, να χρησιμοποιήσετε αυτό τώρα, αν έχω ανοίξει index.php 392 00:22:29,000 --> 00:22:32,000 παρατηρήσετε ότι δεν τους λέω κεφαλίδα καθιστούν πια. 393 00:22:32,000 --> 00:22:36,000 Απλά καλέστε καθιστούν, αλλά έχω περάσει σε μια χρηματιστηριακή αξία της κεφαλίδας 394 00:22:36,000 --> 00:22:39,000 να καταστήσει σαφές πρότυπο που εγώ πραγματικά θέλετε να φορτώσετε. 395 00:22:39,000 --> 00:22:41,000 >> Στη συνέχεια, εδώ παρατηρήσετε τι κάνω. 396 00:22:41,000 --> 00:22:44,000 Είμαι περνώντας σε ένα δυναμικά κλειδί του τίτλου, 397 00:22:44,000 --> 00:22:47,000 η αξία των CS50, και αυτό πάρα πολύ, όπως είδαμε πριν, 398 00:22:47,000 --> 00:22:51,000 θα μπορούσε να γίνει πιο σύντομη στην τελευταία έκδοση του PHP 399 00:22:51,000 --> 00:22:54,000 όπου μπορεί να αντικαταστήσει τη λειτουργία πίνακα με αγκύλες, 400 00:22:54,000 --> 00:22:57,000 που προτείνω είναι ακόμη πιο ευανάγνωστο και σίγουρα 401 00:22:57,000 --> 00:22:59,000 λίγο πιο εύκολο να πληκτρολογήσετε. 402 00:22:59,000 --> 00:23:02,000 Και βέβαια, με την κλήση καθιστούν υποσέλιδο στο κάτω μέρος, 403 00:23:02,000 --> 00:23:05,000 δεν ενοχλεί περνώντας σε ένα δεύτερο επιχείρημα καθόλου, δεν associative array, 404 00:23:05,000 --> 00:23:07,000 γιατί δεν υπάρχει τίποτα δυναμική στο εσωτερικό του υποσέλιδου. 405 00:23:07,000 --> 00:23:10,000 Είναι μερικά μόνο από κοντά για ετικέτες HTML. 406 00:23:10,000 --> 00:23:14,000 Καλό, είμαστε λήψη μέτρων προς την κατεύθυνση πραγματικά καθαρισμού πράγματα εδώ, 407 00:23:14,000 --> 00:23:17,000 αλλά επιτρέψτε μου να ανοίξει 2 τελικό παραδείγματα. 408 00:23:17,000 --> 00:23:21,000 Αυτό και μόνο, αριθμός 4, ειδοποίηση ότι έχω κάνει μια συνειδητή απόφαση τώρα 409 00:23:21,000 --> 00:23:26,000 Προς βελτίωση μετά το προηγούμενο παράδειγμα με τελικά χρησιμοποιώντας κάποια ιεραρχία για αρχεία μου. 410 00:23:26,000 --> 00:23:29,000 >> Παρατηρήστε ότι στην παρούσα περίληψη, σε αυτό μου να διαβάσω, έχω εισήγαγε 411 00:23:29,000 --> 00:23:32,000 περιλαμβάνει ένα κατάλογο και ένα κατάλογο προτύπων 412 00:23:32,000 --> 00:23:35,000 το περιεχόμενο του οποίου πρόκειται να είναι τα πράγματα που θέλετε να συμπεριλάβετε 413 00:23:35,000 --> 00:23:38,000 και τα πρότυπα που θέλω να καταστήσει, αντίστοιχα. 414 00:23:38,000 --> 00:23:42,000 Αυτό είναι πραγματικά μου είναι πρωκτού και προσπαθεί να κρατήσει τα πράγματα τακτοποιημένα, 415 00:23:42,000 --> 00:23:45,000 διατηρεί τα σχετικά αρχεία μαζί, αλλά το τελικό αποτέλεσμα 416 00:23:45,000 --> 00:23:48,000 είναι ότι έχουμε τώρα μια ελαφρώς τακτοποιών εγκατάσταση, αλλά πρέπει να θυμόμαστε τώρα 417 00:23:48,000 --> 00:23:51,000 σε, για παράδειγμα, index.php 418 00:23:51,000 --> 00:23:55,000 όταν χρειαζόμαστε το αρχείο helpers.php 419 00:23:55,000 --> 00:24:01,000 πρέπει να απαιτούν τώρα μέσω includes / helpers.php 420 00:24:01,000 --> 00:24:06,000 αντί να λέμε απλώς helpers.php επειδή τώρα είναι πραγματικά σε ένα υποκατάλογο. 421 00:24:06,000 --> 00:24:09,000 Τώρα, ως ένα μέρος, θα δείτε σε αυτά τα παραδείγματα και κάποιες άλλες 422 00:24:09,000 --> 00:24:11,000 λειτουργίες, όπως απαιτούν, απαιτούν μια φορά. 423 00:24:11,000 --> 00:24:15,000 Υπάρχει πράγματι μια λειτουργία που ονομάζεται περιλαμβάνουν το ίδιο, και όλα έχουν ελαφρώς διαφορετική συμπεριφορά. 424 00:24:15,000 --> 00:24:18,000 Εδώ λέω να απαιτήσει μια φορά να κάνουν σούπερ σαφές ότι θέλω μόνο εκείνους 425 00:24:18,000 --> 00:24:20,000 βοηθοί που περιλαμβάνονται στο έργο μου φορά. 426 00:24:20,000 --> 00:24:24,000 Αλλά αν είμαι προσεκτικός και αν είμαι πραγματικά να σκεφτόμαστε με τη λογική μου σωστά 427 00:24:24,000 --> 00:24:27,000 θα πρέπει να αρκεί απλά πάρα πολύ να πω απαιτούν επάνω στην κορυφή 428 00:24:27,000 --> 00:24:31,000 εφ 'όσον εγώ δεν απαιτούν κατά λάθος το ίδιο αρχείο αλλού. 429 00:24:31,000 --> 00:24:34,000 Στην πραγματικότητα, αυτό είναι ένα ελαφρώς πιο αποτελεσματικό τρόπο αντιμετώπισης των πραγμάτων στη συνέχεια, χρησιμοποιώντας 430 00:24:34,000 --> 00:24:38,000 απαιτούν μία φορά, γι 'αυτό θα το τακτοποιήσει κάτω ακριβώς απαιτούν. 431 00:24:38,000 --> 00:24:40,000 >> Ας πάρουμε ένα βήμα παραπέρα. 432 00:24:40,000 --> 00:24:46,000 Αυτό το τελευταίο παράδειγμα τώρα, έκδοση 5, έχει μια ακόμα πιο καθαρή ιεραρχία των φακέλων. 433 00:24:46,000 --> 00:24:50,000 Παρατηρήστε τι έχω κάνει εδώ ανά το διαβάσει μου σε αυτή την τελική έκδοση 434 00:24:50,000 --> 00:24:54,000 Είναι τώρα έχω HTML κατάλογο μου, που είχα όλο αυτό το διάστημα, 435 00:24:54,000 --> 00:24:58,000 αλλά στο εσωτερικό του υπάρχει τώρα μόνο index.php, lectures.php, 436 00:24:58,000 --> 00:25:01,000 week1.php και week2.php. 437 00:25:01,000 --> 00:25:05,000 Ο κατάλογος περιλαμβάνει τώρα ζει μαζί με την HTML κατάλογο, 438 00:25:05,000 --> 00:25:08,000 έτσι στο ίδιο επίπεδο σαν αδέρφια, να το πω έτσι. 439 00:25:08,000 --> 00:25:10,000 Έτσι κάνει το φάκελο προτύπων. 440 00:25:10,000 --> 00:25:14,000 Το κλειδί εδώ είναι takeaway που έχω εισαχθεί λίγο περισσότερη δομή, 441 00:25:14,000 --> 00:25:17,000 αλλά το βασικό χαρακτηριστικό είναι ότι τώρα μόνο τα αρχεία 442 00:25:17,000 --> 00:25:21,000 που πρέπει να είναι προσβάσιμη ιστοσελίδα, δημόσια προσπελάσιμη 443 00:25:21,000 --> 00:25:25,000 από μια διεύθυνση URL για το δημόσιο Διαδίκτυο είναι σε μορφή HTML κατάλογο μου. 444 00:25:25,000 --> 00:25:28,000 >> Εν τω μεταξύ, άλλα αρχεία, helpers.php, footer.php, 445 00:25:28,000 --> 00:25:32,000 header.php, που είναι αναμφισβήτητα ίσως πιο ευαίσθητο, 446 00:25:32,000 --> 00:25:35,000 βοηθοί ίσως έχει στην πραγματικότητα κάποια ονόματα χρηστών και κωδικούς πρόσβασης ή κάποια πνευματική 447 00:25:35,000 --> 00:25:39,000 ιδιοκτησία του ορυχείου, λειτουργεί πραγματικά δεν θέλουν τον κόσμο να δει, ακόμη και αν κατά λάθος. 448 00:25:39,000 --> 00:25:45,000 Είναι καλή πρακτική να κρατήσει έξω από το δημόσιο κατάλογο HTML 449 00:25:45,000 --> 00:25:48,000 όλα τα αρχεία που οι ίδιοι δεν πρέπει να είναι δημόσιες. 450 00:25:48,000 --> 00:25:51,000 Το μόνο που έχετε να κάνετε σε αυτή την περίπτωση κατά την εξέταση, για παράδειγμα, 451 00:25:51,000 --> 00:25:55,000 index.php αρχείο του καταλόγου της HTML, 452 00:25:55,000 --> 00:25:58,000 παρατηρήσετε εμείς απλά πρέπει να είναι λίγο πιο προσεκτικοί όταν απαιτείται 453 00:25:58,000 --> 00:26:00,000 ή απαιτούν μια φορά αυτό το αρχείο. 454 00:26:00,000 --> 00:26:03,000 Θα πρέπει πρώτα να κάνετε .. για να μεταβείτε στο αρχικό κατάλογο, 455 00:26:03,000 --> 00:26:06,000 τότε μην / includes / helpers.php 456 00:26:06,000 --> 00:26:12,000 να βουτήξει πίσω για να πάρει το αρχείο που με νοιάζει. 457 00:26:12,000 --> 00:26:16,000 >> Οποιεσδήποτε ερωτήσεις, στη συνέχεια για MVC 458 00:26:16,000 --> 00:26:20,000 ή αυτή η σχετικά απλή ενσάρκωση αυτής; 459 00:26:20,000 --> 00:26:23,000 Και επιτρέψτε μου να κάνω σαφές ότι επικεντρωθήκαμε αρκετά για το 460 00:26:23,000 --> 00:26:27,000 V εδώ, τις απόψεις και το factoring από αυτά τα πρότυπα. 461 00:26:27,000 --> 00:26:30,000 Εμείς δεν έχουμε διακρίνονται πραγματικά από Μ Ε ακριβώς ακόμα. 462 00:26:30,000 --> 00:26:33,000 Στην πραγματικότητα, υπάρχει πραγματικά δεν είναι εδώ Μ, και ακόμη μας C, 463 00:26:33,000 --> 00:26:36,000 ελεγκτή, δεν κάνει πραγματικά όλα αυτά πολύ, αλλά θα πάρει πολύ περισσότερο 464 00:26:36,000 --> 00:26:39,000 εξοικειωμένοι με τις δύο από αυτές τις 2 γράμματα από το MVC, 465 00:26:39,000 --> 00:26:43,000 ή μάλλον, θα έχετε πολύ πιο εξοικειωμένοι με την C 466 00:26:43,000 --> 00:26:49,000 MVC για το σύνολο πρόβλημα 7, έτσι υπάρχει περισσότερο από ότι στον ορίζοντα. 467 00:26:49,000 --> 00:26:51,000 Ερωτήσεις; 468 00:26:51,000 --> 00:26:53,000 Δεν υπάρχει πραγματικά κανένας εδώ. 469 00:26:53,000 --> 00:26:57,000 >> Εντάξει, ας προχωρήσουμε τώρα στο δεύτερο και τελευταίο θέμα για σήμερα. 470 00:26:57,000 --> 00:27:00,000 Αυτή είναι η εισαγωγή μιας βάσης δεδομένων. 471 00:27:00,000 --> 00:27:03,000 Μέχρι αυτό το σημείο είχαμε μερικά τρόπους για την αποθήκευση δεδομένων. 472 00:27:03,000 --> 00:27:05,000 Έχουμε χρησιμοποιούνται μεταβλητές. 473 00:27:05,000 --> 00:27:08,000 Επιστροφή στην Γ αρχείο μας, I / O συζήτηση που άρχισε να χρησιμοποιεί αρχεία κειμένου 474 00:27:08,000 --> 00:27:11,000 και τη χρήση αρχείων, όπως fprintf, και τότε ακόμη που ξεκίνησε 475 00:27:11,000 --> 00:27:14,000 μιλάμε για αρχεία CSV λίγο, τιμές διαχωρισμένες με κόμμα, 476 00:27:14,000 --> 00:27:17,000 έτσι όλα αυτά μας επέτρεψε να έχουμε δεδομένα που είναι αποθηκευμένα 477 00:27:17,000 --> 00:27:19,000 είτε μη-σταθερά ή επίμονα. 478 00:27:19,000 --> 00:27:23,000 Αλλά ακόμα και CSVS δεν είναι πραγματικά ευνοϊκό για αναζήτηση 479 00:27:23,000 --> 00:27:25,000 και την εισαγωγή και διαγραφή. 480 00:27:25,000 --> 00:27:28,000 Είναι πραγματικά ακριβώς ένα ηλίθιο αρχείο κειμένου διαχωρίζονται με κόμματα 481 00:27:28,000 --> 00:27:30,000 ανά γραμμή με γραμμή με γραμμή, οπότε αν θέλετε να 482 00:27:30,000 --> 00:27:32,000 αναζητήσετε το αρχείο το καλύτερο που μπορείτε να κάνετε είναι πραγματικά γραμμική αναζήτηση. 483 00:27:32,000 --> 00:27:34,000 Θα πρέπει να ξεκινήσουμε από την αρχή του αρχείου, διαβάστε το όλο θέμα σε, 484 00:27:34,000 --> 00:27:36,000 και να αναζητήσει κάποια αξία των τόκων. 485 00:27:36,000 --> 00:27:39,000 Αν θέλετε να εισάγετε σε αυτό που έχετε να κάνετε το ίδιο πράγμα, 486 00:27:39,000 --> 00:27:41,000 επανάληψη από πάνω και την εισαγωγή σε ένα συγκεκριμένο τόπο, 487 00:27:41,000 --> 00:27:45,000 και στην πραγματικότητα, θα πρέπει να κάνετε όλα τα ψάχνοντας τον εαυτό σας λογική. 488 00:27:45,000 --> 00:27:49,000 >> Δεν μπορείτε να κάνετε έξυπνες μοτίβο που ταιριάζουν σε ένα αρχείο CSV αν εσείς οι ίδιοι γράφουν τον κώδικα. 489 00:27:49,000 --> 00:27:51,000 Δεν μπορείτε να κάνετε διήθηση από ένα αρχείο CSV 490 00:27:51,000 --> 00:27:53,000 εκτός και αν εσείς οι ίδιοι γράφουν τον κώδικα. 491 00:27:53,000 --> 00:27:56,000 Δεν θα ήταν ωραίο αν κάποιος άλλος βάλει σε όλες τις προσπάθειες 492 00:27:56,000 --> 00:27:59,000 πραγματικά να κάνει την αναζήτηση και εύκολη εισαγωγή εύκολη 493 00:27:59,000 --> 00:28:01,000 και τη διαγραφή και την ενημέρωση και ούτω καθεξής; 494 00:28:01,000 --> 00:28:04,000 Αυτό είναι ακριβώς ό, τι είναι μια βάση δεδομένων. 495 00:28:04,000 --> 00:28:07,000 SQL, Structured Query Language, είναι μια ακόμη γλώσσα 496 00:28:07,000 --> 00:28:10,000 ότι είμαστε εδώ σήμερα την εισαγωγή, αλλά αυτό είναι πάρα πολύ αρκετά προσιτές, 497 00:28:10,000 --> 00:28:13,000 και τι είμαστε πραγματικά πρόκειται να κάνετε είναι απλά να κόβω από αυτό μερικά από τα πιο βασικά 498 00:28:13,000 --> 00:28:16,000 χαρακτηριστικά, έτσι ώστε για PSET 7, και αν το κάνετε web-based κάτι, 499 00:28:16,000 --> 00:28:19,000 τελικό σχέδιο σας, έχετε τη δυνατότητα να εκφράσουν τον εαυτό σας 500 00:28:19,000 --> 00:28:22,000 από άποψη ερωτήματα δεδομένων. 501 00:28:22,000 --> 00:28:25,000 Έχετε τη δυνατότητα να αποθηκεύσετε ένα λίγο ή πολύ τα δεδομένα 502 00:28:25,000 --> 00:28:28,000 σε μια πολύ πιο δομημένο τρόπο που θα στο τέλος της ημέρας 503 00:28:28,000 --> 00:28:32,000 κάνουν τη ζωή σας πιο εύκολη, διότι με τον SQL μπορείτε να εκφραστείτε 504 00:28:32,000 --> 00:28:35,000 πολύ μεγαλύτερη ακρίβεια, πολύ πιο μεθοδικά ώστε να 505 00:28:35,000 --> 00:28:40,000 πάρει πίσω κάποιο υποσύνολο των δεδομένων από ένα μεγαλύτερο σώμα των δεδομένων. 506 00:28:40,000 --> 00:28:45,000 >> Μπορείτε να σκεφτείτε μια βάση δεδομένων, στην περίπτωση αυτή, μια βάση δεδομένων SQL, πραγματικά, όπως το Excel 507 00:28:45,000 --> 00:28:48,000 Αριθμοί ή όπου είναι ένα υπολογιστικό φύλλο, 508 00:28:48,000 --> 00:28:50,000 ή ίσως πολλαπλά υπολογιστικά φύλλα, και ένα υπολογιστικό φύλλο, φυσικά, 509 00:28:50,000 --> 00:28:53,000 έχει γραμμές και στήλες, και αυτό γιατί 510 00:28:53,000 --> 00:28:56,000 SQL βάσεις δεδομένων είναι σχεσιακές, σχεσιακή, με την έννοια 511 00:28:56,000 --> 00:28:59,000 που αποθηκεύουν τα δεδομένα όσον αφορά αυτούς τους πίνακες, 512 00:28:59,000 --> 00:29:01,000 γραμμές και στήλες. 513 00:29:01,000 --> 00:29:03,000 Είναι υψηλότερη απόδοση από ό, τι κάτι σαν ένα υπολογιστικό φύλλο, 514 00:29:03,000 --> 00:29:05,000 και ένα φύλλο προορίζεται να χρησιμοποιηθεί από έναν άνθρωπο. 515 00:29:05,000 --> 00:29:08,000 Μια βάση δεδομένων προορίζεται να χρησιμοποιηθεί από έναν προγραμματιστή 516 00:29:08,000 --> 00:29:12,000 κατά τη σύνταξη κώδικα, οπότε η ενσάρκωση μιας βάσης δεδομένων 517 00:29:12,000 --> 00:29:14,000 πρόκειται να είναι είτε γραμμή εντολών. 518 00:29:14,000 --> 00:29:18,000 >> Μια από τις πιο δημοφιλείς σχεσιακές βάσεις δεδομένων είναι εκεί έξω, και πάλι, MySQL, 519 00:29:18,000 --> 00:29:22,000 η οποία είναι θαυμάσια ελεύθερο, πολύ υψηλές επιδόσεις, και αυτό είναι που 520 00:29:22,000 --> 00:29:24,000 Facebook χρησιμοποιείται από πολύ νωρίς και σε κάποιο βαθμό ακόμη και σήμερα 521 00:29:24,000 --> 00:29:27,000 για να αποθηκεύσετε πολλά στοιχεία του, και θα δούμε σε μια στιγμή 522 00:29:27,000 --> 00:29:30,000 ότι χρησιμοποιώντας σχετικώς απλές εντολές 523 00:29:30,000 --> 00:29:33,000 μπορούμε να επιλέξουμε δεδομένων, εισαγωγή δεδομένων, ενημέρωση των δεδομένων, 524 00:29:33,000 --> 00:29:37,000 διαγράψετε τα δεδομένα και τα παρόμοια, αλλά ευτυχώς, υπάρχει μια πιο φιλική προς το χρήστη διεπαφή 525 00:29:37,000 --> 00:29:39,000 από ό, τι απλά πληκτρολογώντας σε ένα μαύρο και άσπρο ερώτηση εδώ. 526 00:29:39,000 --> 00:29:43,000 Θα χρησιμοποιήσουμε για PSET 7 και πέρα ​​ένα δωρεάν εργαλείο που ονομάζεται phpMyAdmin. 527 00:29:43,000 --> 00:29:45,000 Το όνομα είναι τυχαίο. 528 00:29:45,000 --> 00:29:47,000 Το εργαλείο που συμβαίνει να εφαρμοστούν σε PHP, 529 00:29:47,000 --> 00:29:49,000 αλλά αυτό είναι ουσιαστικά άνευ σημασίας. 530 00:29:49,000 --> 00:29:53,000 Τι είναι χρήσιμο για το phpMyAdmin είναι ότι είναι μια web-based χρησιμότητα. 531 00:29:53,000 --> 00:29:55,000 Έχουμε το προ-εγκατεστημένο στη συσκευή για σας, 532 00:29:55,000 --> 00:29:58,000 και με αυτό μπορείτε να δημιουργήσετε πίνακες σε μια βάση δεδομένων, 533 00:29:58,000 --> 00:30:01,000 μπορείτε να εισάγετε δεδομένα, να διαγράψετε τα δεδομένα, και γενικά δείτε 534 00:30:01,000 --> 00:30:04,000 τα δεδομένα σας σε ένα αρκετά φιλικό προς το χρήστη περιβάλλον. 535 00:30:04,000 --> 00:30:07,000 Οι χρήστες σας δεν πρόκειται να χρησιμοποιήσετε το phpMyAdmin. 536 00:30:07,000 --> 00:30:09,000 >> Αυτό είναι πραγματικά ακριβώς μια διοικητική ή προγραμματιστή εργαλείο 537 00:30:09,000 --> 00:30:12,000 με την οποία για να δείτε και να σακί γύρω από τα δεδομένα σας και να καταλάβω πώς να το δομήσει, 538 00:30:12,000 --> 00:30:15,000 μοιάζει πολύ με τον εαυτό σας να χρησιμοποιήσετε το Excel ή αριθμών, 539 00:30:15,000 --> 00:30:19,000 αλλά αυτό πρόκειται να είναι ένας πολύ καλός τρόπος για οπτικοποίηση τι συμβαίνει κάτω από την κουκούλα 540 00:30:19,000 --> 00:30:22,000 ώστε να μπορείτε να επικεντρωθεί στην επίλυση προβλημάτων ενδιαφέρον και όχι τόσο 541 00:30:22,000 --> 00:30:25,000 σχετικά με τις απόκρυφες εντολές. 542 00:30:25,000 --> 00:30:28,000 Ας ρίξουμε μια ματιά σε ένα παράδειγμα των δεδομένων που μπορούν να αποθηκευτούν tabularly 543 00:30:28,000 --> 00:30:30,000 σε μια σχεσιακή βάση δεδομένων. 544 00:30:30,000 --> 00:30:32,000 Εδώ είναι ένα τέτοιο παράδειγμα. 545 00:30:32,000 --> 00:30:35,000 Τώρα, δυστυχώς, phpMyAdmin έσφαλε στην πλευρά του ρίχνει πάρα πολλές λέξεις 546 00:30:35,000 --> 00:30:38,000 γραφικά και σε σας, αλλά αν ακονίσετε το μόνο για το 547 00:30:38,000 --> 00:30:42,000 ID στήλη, η στήλη το όνομα χρήστη και το hash στήλη, 548 00:30:42,000 --> 00:30:45,000 αυτό είναι ουσιαστικά ένα λογιστικό φύλλο, αλλά αυτό συμβαίνει να είναι ένα απόσπασμα 549 00:30:45,000 --> 00:30:49,000 από έναν εσωτερικό πίνακα της συσκευής 550 00:30:49,000 --> 00:30:53,000 χρησιμοποιώντας ένα αρχείο που σας παρέχουμε με το σύνολο πρόβλημα 7. 551 00:30:53,000 --> 00:30:57,000 >> Ειδικότερα, σας δίνουμε ένα αρχείο που αντιπροσωπεύει 552 00:30:57,000 --> 00:31:01,000 πίνακα του χρήστη, έτσι, ένα υπολογιστικό φύλλο που περιέχει τους χρήστες με 3 στήλες, 553 00:31:01,000 --> 00:31:05,000 ένα από τα οποία είναι ένα μοναδικό αναγνωριστικό που ξεκινούν από 1 και να αυξάνεται στη συνέχεια. 554 00:31:05,000 --> 00:31:08,000 Η δεύτερη στήλη είναι ένα όνομα χρήστη, και όσοι από εσάς έκανε Hacker, 555 00:31:08,000 --> 00:31:12,000 η έκδοση Hacker για PSET 2, μπορεί να αναγνωρίσει μερικά από αυτά τα ονόματα χρηστών τουλάχιστον. 556 00:31:12,000 --> 00:31:16,000 Στη δεξιά πλευρά είναι κωδικοί πρόσβασης, αλλά δεν είναι κυριολεκτική κωδικούς πρόσβασης. 557 00:31:16,000 --> 00:31:19,000 Είναι hashes τους, έτσι ώστε να αποδεικνύεται 558 00:31:19,000 --> 00:31:22,000 ότι η αποθήκευση κωδικών πρόσβασης σε μια βάση δεδομένων είναι μια πραγματικά κακή ιδέα. 559 00:31:22,000 --> 00:31:25,000 Έχετε διαβάσει όλα τα πιθανώς σε κάποιο σημείο του κάποια ιστοσελίδα 560 00:31:25,000 --> 00:31:28,000 ή κάποιου βάση δεδομένων της εταιρείας είναι σε κίνδυνο, και τότε θα πρέπει να 561 00:31:28,000 --> 00:31:31,000 αλλάξετε τον κωδικό πρόσβασής σας, θα πρέπει να λάβουν τις επιστροφές για τα πράγματα 562 00:31:31,000 --> 00:31:34,000 επειδή κάποιος κακός πραγματικά έσπασε υπόψη σας, ως αποτέλεσμα. 563 00:31:34,000 --> 00:31:38,000 >> Αποθήκευση κωδικών πρόσβασης σε μορφή απλού κειμένου, χωρίς κρυπτογράφηση σε μια βάση δεδομένων 564 00:31:38,000 --> 00:31:41,000 είναι εντελώς γαϊδούρινος, και ακόμη είναι πολύ διασκεδαστικό 565 00:31:41,000 --> 00:31:44,000 τότε για να διαβάσετε για μερικές πολύ γνωστές εταιρείες 566 00:31:44,000 --> 00:31:47,000 μερικές φορές στον Τύπο είναι σε κίνδυνο βάσεις δεδομένων των οποίων, 567 00:31:47,000 --> 00:31:50,000 και το μέρος δεν είναι αστείο, αλλά το γεγονός ότι περιέχουν οι βάσεις δεδομένων χωρίς κρυπτογράφηση 568 00:31:50,000 --> 00:31:53,000 κωδικοί πρόσβασης είναι γελοίο επειδή κυριολεκτικά με μία γραμμή κώδικα 569 00:31:53,000 --> 00:31:57,000 που μπορεί να προστατεύσει από τη συγκεκριμένη απειλή, και αυτό είναι ό, τι έχουμε κάνει εδώ. 570 00:31:57,000 --> 00:32:00,000 Ακόμη και για μας λίγο ψεύτικο CS50 έκδοση Οικονομικών 571 00:32:00,000 --> 00:32:03,000 είμαστε κρυπτογράφηση κωδικών πρόσβασης μόνο για το καλό μέτρο, και το γεγονός ότι 572 00:32:03,000 --> 00:32:07,000 όλα αυτά τα κωδικούς πρόσβασης ξεκινούν με $ 1 $ είναι απλά μια σύμβαση. 573 00:32:07,000 --> 00:32:10,000 That σημαίνει απλώς ότι είναι κρυπτογραφημένο ή πραγματικά κατακερματίζεται, 574 00:32:10,000 --> 00:32:13,000 που είναι σαν μια λειτουργία κρυπτογράφησης μονόδρομη 575 00:32:13,000 --> 00:32:17,000 σύμφωνα με την οποία δεν μπορείτε να αντιστρέφουν τις συνέπειες του με κάτι που ονομάζεται MD5. 576 00:32:17,000 --> 00:32:21,000 >> Το γεγονός ότι είναι 50 μετά από αυτό σημαίνει ότι μια τιμή άλατος 577 00:32:21,000 --> 00:32:24,000 της 50 χρησιμοποιήθηκε για hashing όλους αυτούς τους κωδικούς πρόσβασης εκτός από μία. 578 00:32:24,000 --> 00:32:27,000 Mine, βέβαια, όπως μπορείτε να δείτε εκεί, HA, 579 00:32:27,000 --> 00:32:30,000 ήταν χρησιμοποιώντας ένα διαφορετικό άλας, έτσι ώστε όσοι από εσάς πήρε λίγο σκόνταψε επάνω 580 00:32:30,000 --> 00:32:33,000 ίσως σε Hacker 2, που μπορεί να ήταν το αποτέλεσμα του ότι χρησιμοποίησε μας 581 00:32:33,000 --> 00:32:36,000 ένα διαφορετικό hash από τους άλλους, επειδή ο κωδικός μου είναι στην πραγματικότητα το ίδιο 582 00:32:36,000 --> 00:32:38,000 ως κάποιον άλλο χρήστη εκεί. 583 00:32:38,000 --> 00:32:41,000 Στην πραγματικότητα, εάν έχετε περιμένει όλες αυτές οι εβδομάδες για να μάθετε 584 00:32:41,000 --> 00:32:44,000 τι αυτοί οι κωδικοί πρόσβασης ήταν εδώ ήταν οι κωδικοί πρόσβασης που έχουν προσβληθεί 585 00:32:44,000 --> 00:32:48,000 να σπάσει στην έκδοση Hacker του συνόλου πρόβλημα 2, έτσι ώστε κανένας πάρα πολύ δύσκολο. 586 00:32:48,000 --> 00:32:50,000 Στην πραγματικότητα, το Malan ήταν η ίδια όπως jharvard, 587 00:32:50,000 --> 00:32:54,000 αλλά αν πάμε πίσω φαίνονταν διαφορετικά. 588 00:32:54,000 --> 00:32:58,000 >> Έμφαση στην jharvard σε βαθύ κόκκινο χρώμα, επειδή παστώθηκαν με διαφορετικό τρόπο. 589 00:32:58,000 --> 00:33:01,000 Ο αλγόριθμος διαταραγμένο με τέτοιο τρόπο ώστε το 590 00:33:01,000 --> 00:33:05,000 hash αξία, η κρυπτογραφημένη τιμή φαίνεται λίγο διαφορετικό 591 00:33:05,000 --> 00:33:08,000 επειδή οι είσοδοι ήταν ελαφρώς διαφορετικές, αλλά ο κωδικός πρόσβασης κάτω από την κουκούλα 592 00:33:08,000 --> 00:33:10,000 ήταν ακόμα τελικά βυσσινί. 593 00:33:10,000 --> 00:33:12,000 Τώρα, ποιος νοιάζεται γι 'αυτό; 594 00:33:12,000 --> 00:33:15,000 Λοιπόν, σας εξοπλίζουμε με τους χρήστες του δείγματος, τα ονόματα των χρηστών του δείγματος 595 00:33:15,000 --> 00:33:18,000 και hashes των κωδικών τους, έτσι ώστε να έχετε πραγματικά ορισμένα 596 00:33:18,000 --> 00:33:23,000 πελάτες για CS50 Οικονομικών, όταν ξεκινάτε για πρώτη πάρει από το έδαφος με τον κωδικό σας. 597 00:33:23,000 --> 00:33:27,000 Θα πρέπει να εφαρμόσουν περισσότερους πίνακες στο εσωτερικό της MySQL, μέσα από τη βάση δεδομένων. 598 00:33:27,000 --> 00:33:30,000 Θα πρέπει να δημιουργήσουμε περισσότερες υπολογιστικά φύλλα, αποτελεσματικά, αλλά αποφασίσαμε να σας δώσουμε αυτό το ένα 599 00:33:30,000 --> 00:33:33,000 για να ξεκινήσετε, και θα δείτε ότι το σύνολο προδιαγραφές πρόβλημα 600 00:33:33,000 --> 00:33:37,000 βόλτες σας μέσα από τη διαδικασία της εισαγωγής αυτού του πίνακα 601 00:33:37,000 --> 00:33:39,000 και επίσης εξηγεί τι μερικά από τα χαρακτηριστικά είναι, 602 00:33:39,000 --> 00:33:41,000 και θα δείτε επίσης ότι σας παρέχουμε με τον κωδικό 603 00:33:41,000 --> 00:33:44,000 για να χειριστεί την κατακερματισμού ή την κρυπτογράφηση των κωδικών αυτών, 604 00:33:44,000 --> 00:33:49,000 έτσι ώστε να μην χρειάζεται να ανησυχείτε πάρα πολύ για το τι MD5 ή τα παρόμοια είναι πραγματικά όλα τα σχετικά. 605 00:33:49,000 --> 00:33:53,000 >> Έτσι, SQL, δομημένη γλώσσα ερωτημάτων. 606 00:33:53,000 --> 00:33:56,000 Αυτό είναι, πολύ απλά, η γλώσσα είμαστε έτοιμοι να αρχίσετε να χρησιμοποιείτε το PSET 7 607 00:33:56,000 --> 00:34:01,000 και ίσως πέρα ​​να ζητήσει τα δεδομένα από κάποια βάση δεδομένων. 608 00:34:01,000 --> 00:34:06,000 Τα δεδομένα, και πάλι, αποθηκεύονται σε αυτές tabularly σχεσιακές πίνακες, οι στήλες και γραμμές, 609 00:34:06,000 --> 00:34:09,000 αλλά χρησιμοποιώντας κάποια σχετικά απλή σύνταξη, όπως διαγραφή, 610 00:34:09,000 --> 00:34:12,000 εισάγουν, να επικαιροποιούν και να επιλέξετε να κάνουμε ακριβώς αυτό. 611 00:34:12,000 --> 00:34:15,000 Μπορούμε να διαγράψετε από τη βάση δεδομένων, εισαγωγή, 612 00:34:15,000 --> 00:34:19,000 ενημέρωση δεδομένων, καθώς και επιλεγμένα, δηλαδή, ανάκτηση δεδομένων από τη βάση δεδομένων. 613 00:34:19,000 --> 00:34:21,000 Πώς μπορούμε να το κάνουμε αυτό; 614 00:34:21,000 --> 00:34:23,000 Επιτρέψτε μου να προχωρήσει στη συσκευή. 615 00:34:23,000 --> 00:34:28,000 Επιτρέψτε μου να σηκώσει http://localhost, 616 00:34:28,000 --> 00:34:30,000 η οποία, και πάλι, είναι ο τοπικός ίδια η συσκευή. 617 00:34:30,000 --> 00:34:32,000 Αυτό είναι το προεπιλεγμένο ψευδώνυμό του. 618 00:34:32,000 --> 00:34:35,000 Και επιτρέψτε μου να πάω στο / phpmyadmin. 619 00:34:35,000 --> 00:34:39,000 Αυτό συμβαίνει να είναι μια ειδική διεύθυνση URL ότι η συσκευή είναι προρυθμισμένη για να κατανοήσουμε 620 00:34:39,000 --> 00:34:42,000 αυτό ζητά αμέσως με ένα όνομα χρήστη και έναν κωδικό πρόσβασης. 621 00:34:42,000 --> 00:34:46,000 >> Ως συνήθως, θα πάω να πληκτρολογήσετε jharvard και βυσσινί, 622 00:34:46,000 --> 00:34:48,000 αλλά συνειδητοποιούν ότι αυτό είναι το λογαριασμό διαχειριστή στον υπολογιστή. 623 00:34:48,000 --> 00:34:53,000 Είναι απλά μια σύμπτωση ότι υπάρχει επίσης ένα jharvard εγγραφεί για CS50 Οικονομικών. 624 00:34:53,000 --> 00:34:56,000 Jharvard, βυσσινί, δώστε μου δίνει το user interface που είδαμε 625 00:34:56,000 --> 00:34:59,000 μια γεύση από μια στιγμή πριν, και είναι λίγο συντριπτική κατά την πρώτη, 626 00:34:59,000 --> 00:35:02,000 αλλά να είστε σίγουροι, δεν πρόκειται ποτέ να πρέπει να κάνετε κλικ τις περισσότερες από τις συνδέσεις σε αυτό το εργαλείο. 627 00:35:02,000 --> 00:35:05,000 Θα καταλήξετε με ένα μικρό υποσύνολο που είναι εξαιρετικά χρήσιμο, 628 00:35:05,000 --> 00:35:08,000 η πρώτη από τις οποίες είναι βάσεις δεδομένων μέχρι εδώ. 629 00:35:08,000 --> 00:35:11,000 Αν πάω μέχρι βάσεις δεδομένων, παρατηρούμε ότι είμαι ζητηθεί να δημιουργήσετε μια βάση δεδομένων. 630 00:35:11,000 --> 00:35:14,000 Αυτό είναι σαν τη δημιουργία ενός νέου αρχείου Excel, αποτελεσματικά. 631 00:35:14,000 --> 00:35:18,000 Πάω να πάει μπροστά και να καλέσει αυτή την διάλεξη, και είμαι απλώς πρόκειται να αγνοήσει το πεδίο εκεί, αντιπαραβολή. 632 00:35:18,000 --> 00:35:20,000 Έχει να κάνει με την αναπαράσταση των δεδομένων σε αυτό, 633 00:35:20,000 --> 00:35:24,000 και πάω να δημιουργήσει κλικ, και τώρα παρατηρώ όπως έχω αφήσει να πάει από τη δημιουργία 634 00:35:24,000 --> 00:35:27,000 στην αριστερή πλευρά όπου λέει κανένα βάσεις δεδομένων 635 00:35:27,000 --> 00:35:30,000 Θα δούμε σύντομα τη βάση δεδομένων διάλεξη. 636 00:35:30,000 --> 00:35:32,000 >> Αν τώρα κλικ στην αριστερή πλευρά, η βάση δεδομένων διάλεξη, 637 00:35:32,000 --> 00:35:34,000 παρατηρήσετε τις καρτέλες μου αλλάξει λίγο. 638 00:35:34,000 --> 00:35:38,000 Έχω δομή, SQL, εξαγωγή, εισαγωγή και κάποια άλλα πράγματα. 639 00:35:38,000 --> 00:35:40,000 Δομή είναι λίγο πολύ κενό. 640 00:35:40,000 --> 00:35:43,000 Δεν υπάρχουν πίνακες που βρέθηκαν στη βάση δεδομένων, όπως λέει εδώ, 641 00:35:43,000 --> 00:35:47,000 έτσι ας δημιουργήσουμε έναν πίνακα, και ας προχωρήσουμε και να δημιουργήσουμε έναν πίνακα 642 00:35:47,000 --> 00:35:53,000 όπως φοιτητές, και πόσες στήλες θέλουμε; 643 00:35:53,000 --> 00:35:55,000 Ας κρατήσουμε αυτό το απλό, και ας ρεκόρ για κάθε μαθητή 644 00:35:55,000 --> 00:35:58,000 ένας αριθμός ταυτότητας, το όνομα και μια διεύθυνση ηλεκτρονικού ταχυδρομείου. 645 00:35:58,000 --> 00:36:02,000 >> Θα κρατήσουμε απλό, όπως ότι, έτσι 3 στήλες, πάμε. 646 00:36:02,000 --> 00:36:05,000 Η μορφή που βλέπετε εδώ είναι τώρα λίγο ακατάστατη και συντριπτική, 647 00:36:05,000 --> 00:36:08,000 αλλά εμείς απλά πρέπει να περάσει μέσα από αυτό ανά σειρά, έτσι ώστε πολύ γρήγορα ας δώσει 648 00:36:08,000 --> 00:36:14,000 η πρώτη στήλη σε αυτή τη βάση δεδομένων το όνομα της ταυτότητας για το μοναδικό αναγνωριστικό. 649 00:36:14,000 --> 00:36:17,000 Θα είναι ένας ακέραιος. Μπορώ να αγνοήσει πραγματικά μήκος και αξίες. 650 00:36:17,000 --> 00:36:21,000 Μια int πρόκειται να είναι 32 bit δεν έχει σημασία τι πληκτρολογείτε εκεί, οπότε ας το αφήσετε κενό. 651 00:36:21,000 --> 00:36:24,000 Προεπιλεγμένη τιμή, θα μπορούσα να κάνω είναι μηδενική, όπως ορίζεται. 652 00:36:24,000 --> 00:36:27,000 Πάω να το αφήσουμε μόνο του. Ας μην ανησυχούν για τις προκαθορισμένες τιμές. 653 00:36:27,000 --> 00:36:29,000 Ας μετακινηθείτε πάνω από εδώ προς τα δεξιά, χαρακτηριστικά. 654 00:36:29,000 --> 00:36:31,000 Αυτό είναι ενδιαφέρον. 655 00:36:31,000 --> 00:36:33,000 Ας πάμε μπροστά και κάπως αυθαίρετα να πω ότι πρέπει να είναι αναγνωριστικά ανυπόγραφο. 656 00:36:33,000 --> 00:36:35,000 Ας μη χάνουμε κανένα αρνητικούς αριθμούς. 657 00:36:35,000 --> 00:36:37,000 >> Πάμε 0 - 4000000000, ή να δώσει, 658 00:36:37,000 --> 00:36:40,000 και στη συνέχεια, ας μην αγγίζετε κανένα από αυτούς τους τομείς ακριβώς ακόμα εκεί, 659 00:36:40,000 --> 00:36:43,000 αλλά στη συνέχεια, επιτρέψτε μου να πληκτρολογήσετε το όνομα εδώ κάτω, 660 00:36:43,000 --> 00:36:46,000 και στη συνέχεια το άλλο ήταν e-mail, έτσι ώστε η σύλληψη είναι e-mail 661 00:36:46,000 --> 00:36:50,000 και το όνομα, προφανώς δεν είναι ακέραιοι, οπότε ας αλλάξουμε αυτά σε ένα διαφορετικό πεδίο. 662 00:36:50,000 --> 00:36:53,000 Βγάζει varchar, μεταβλητού μήκους char, 663 00:36:53,000 --> 00:36:56,000 Είναι σαν ένα string σε μια βάση δεδομένων SQL 664 00:36:56,000 --> 00:36:59,000 αλλά ένα μεταβλητό μήκος, και πραγματικά πρέπει να πω εκ των προτέρων την 665 00:36:59,000 --> 00:37:02,000 μέγιστο μήκος του string, έτσι Πάω να κάπως αυθαίρετα 666 00:37:02,000 --> 00:37:05,000 με σύμβαση τύπου 255 χαρακτήρες. 667 00:37:05,000 --> 00:37:08,000 Θα μπορούσα να πω συνολικά 32. Θα μπορούσα να πω 1.000. 668 00:37:08,000 --> 00:37:11,000 Μπορείτε είδος του πρέπει να αποφασίσει για τον εαυτό σας με βάση δημογραφικά στοιχεία σας τι είναι 669 00:37:11,000 --> 00:37:14,000 το όνομα του μαθητή μακρύτερη και να πάει με αυτόν τον αριθμό ή ένα λίγο μεγαλύτερο, 670 00:37:14,000 --> 00:37:17,000 αλλά τι είναι ωραίο για ένα varchar είναι ότι δεν πρόκειται να τα απόβλητα 671 00:37:17,000 --> 00:37:19,000 255 byte στο όνομα του κάθε μαθητή. 672 00:37:19,000 --> 00:37:23,000 Αν είναι DAVID δεν πρόκειται να χρησιμοποιήσετε ένα σύνολο 255 byte, 673 00:37:23,000 --> 00:37:26,000 αλλά αυτό είναι ένα άνω όριο, έτσι θα πάω με 255 μόνο με σύμβαση, 674 00:37:26,000 --> 00:37:30,000 αλλά θα μπορούσαμε να συζητήσουμε ότι για να είναι κάποιος χαμηλότερη τιμή, καθώς και για τη διεύθυνση ηλεκτρονικού ταχυδρομείου 675 00:37:30,000 --> 00:37:34,000 ακριβώς για να είναι συνεπής 255, αλλά και πάλι, θα μπορούσαμε να έχουμε την ίδια συζήτηση. 676 00:37:34,000 --> 00:37:36,000 Αλλά Πάω να κάνω κάτι άλλο εδώ στη δεξιά πλευρά. 677 00:37:36,000 --> 00:37:40,000 >> Τι είναι ισχυρή για μια βάση δεδομένων είναι ότι μπορεί να κάνει πολλά από την άρση βαρών 678 00:37:40,000 --> 00:37:42,000 ή σύνθετη εργασία για σας. 679 00:37:42,000 --> 00:37:46,000 Συγκεκριμένα, εγώ πραγματικά δεν με νοιάζει τι είναι οι αριθμοί ταυτότητας των φοιτητών μου. 680 00:37:46,000 --> 00:37:49,000 Είναι ακριβώς σημαίνει να είναι ένα μοναδικό αναγνωριστικό σε μια βάση δεδομένων 681 00:37:49,000 --> 00:37:52,000 έτσι έχω μια 32-bit αναπαράσταση σύντομη αυτού του φοιτητή 682 00:37:52,000 --> 00:37:55,000 έτσι ώστε να έχω κάποιο τρόπο μοναδικά εντοπισμό τους 683 00:37:55,000 --> 00:37:58,000 ώστε να αποφεύγεται 2 Davids, για παράδειγμα, σε μια τάξη. 684 00:37:58,000 --> 00:38:01,000 Στην πραγματικότητα, Πάω να επιλέξετε αυτό το πλαίσιο AI, αύξηση αυτοκινήτων, 685 00:38:01,000 --> 00:38:04,000 έτσι ώστε η βάση δεδομένων, MySQL, υπολογίζει 686 00:38:04,000 --> 00:38:08,000 τι ID πρόσφατα εισαχθεί κάθε μαθητή θα είναι. 687 00:38:08,000 --> 00:38:11,000 Δεν χρειάζεται καν να ενδιαφέρεται γι 'αυτό το κωδικό μου, 688 00:38:11,000 --> 00:38:13,000 και είμαι επίσης πρόκειται να επιλέξουν κάτι κάτω από το μενού του δείκτη. 689 00:38:13,000 --> 00:38:17,000 Ο δείκτης πέσει κάτω εδώ έχει πρωταρχική, μοναδική, 690 00:38:17,000 --> 00:38:19,000 δείκτη και πλήρες κείμενο. 691 00:38:19,000 --> 00:38:21,000 Μπορείτε να μαντέψετε τι ίσως ένα ζευγάρι από αυτά τα πράγματα είναι, 692 00:38:21,000 --> 00:38:24,000 αλλά βγάζει σε σχεσιακές βάσεις δεδομένων 693 00:38:24,000 --> 00:38:28,000 που ο προγραμματιστής ή ο διαχειριστής της βάσης δεδομένων για να πάρει προληπτικά 694 00:38:28,000 --> 00:38:32,000 δίνουν συμβουλές για τη βάση δεδομένων ως προς το ποια πεδία 695 00:38:32,000 --> 00:38:34,000 σε έναν πίνακα είναι λίγο ειδική. 696 00:38:34,000 --> 00:38:37,000 >> Για παράδειγμα, στην περίπτωση αυτή Πάω να πω ότι η ταυτότητα 697 00:38:37,000 --> 00:38:42,000 πρόκειται να είναι ένα πρωτεύον ευρετήριο, αλλιώς γνωστή ως πρωτεύον κλειδί. 698 00:38:42,000 --> 00:38:44,000 Αυτό σημαίνει εξ ορισμού ότι είναι πλέον ταυτότητα 699 00:38:44,000 --> 00:38:48,000 θα προσδιορίσει μοναδικά μαθητές σε αυτόν τον πίνακα. 700 00:38:48,000 --> 00:38:53,000 Δεν φοιτητής θα έχει την ίδια ταυτότητα, γιατί είμαι επιβάλλει αυτόν τον περιορισμό ή το δείκτη. 701 00:38:53,000 --> 00:38:55,000 Επιπλέον, αυτό που πρόκειται να κάνει για μένα είναι ότι πρόκειται να πει 702 00:38:55,000 --> 00:38:58,000 MySQL ότι είναι ιδιαίτερη ταυτότητα. 703 00:38:58,000 --> 00:39:03,000 Με νοιάζει ιδιαίτερα για ταυτότητα, έτσι ώστε να προχωρήσει και να κάνει μαγικά φανταχτερό δομή των δεδομένων σας, 704 00:39:03,000 --> 00:39:05,000 δημιουργήσει κάποιο είδος δέντρου. 705 00:39:05,000 --> 00:39:08,000 Συνήθως είναι κάτι που ονομάζεται το Β-δέντρο, το οποίο εμείς δεν εξετάσουμε εβδομάδες πριν, 706 00:39:08,000 --> 00:39:11,000 αλλά αυτό είναι μια άλλη τέτοια δομή δεδομένων παρόμοια στο πνεύμα με τα δυαδικά δέντρα 707 00:39:11,000 --> 00:39:15,000 και ότι προσπαθεί κοιτάξαμε, αλλά πρόκειται να πω 708 00:39:15,000 --> 00:39:18,000 στη βάση δεδομένων στον τομέα αυτό είναι τόσο σημαντικό το γεγονός ότι εγώ κατά πάσα πιθανότητα 709 00:39:18,000 --> 00:39:22,000 θέλουν να είναι σε θέση να ψάξει για αυτό, να προχωρήσει και να δημιουργήσει κάποια φανταχτερή 710 00:39:22,000 --> 00:39:25,000 δομή δεδομένων στη μνήμη για να επιταχύνει αναζητήσεις έτσι ώστε ιδανικά 711 00:39:25,000 --> 00:39:28,000 ότι είναι σταθερό χρόνο ή τουλάχιστον όσο πιο κοντά σε αυτό όσο το δυνατόν 712 00:39:28,000 --> 00:39:32,000 έτσι ώστε να μην περιέλθει σε γραμμική αναζήτηση, η οποία δεν πρόκειται να είναι 713 00:39:32,000 --> 00:39:34,000 το πιο υψηλές επιδόσεις προσέγγιση. 714 00:39:34,000 --> 00:39:37,000 Αντίθετα, διεύθυνση ηλεκτρονικού ταχυδρομείου θα μπορούσε να έχει ένα πρωτεύον κλειδί. 715 00:39:37,000 --> 00:39:41,000 >> Στη θεωρία, τη διεύθυνση ηλεκτρονικού ταχυδρομείου του καθενός είναι μοναδική, εκτός και αν είστε μοιράζονται κάποιο λογαριασμό, 716 00:39:41,000 --> 00:39:45,000 αλλά είναι γενικά δεν είναι καλό να χρησιμοποιήσετε κάτι σαν ένα string 717 00:39:45,000 --> 00:39:49,000 ως πρωτεύον κλειδί, γιατί αν ο σκοπός της ζωής είναι να προσδιορίσει επακριβώς 718 00:39:49,000 --> 00:39:55,000 σειρές στον πίνακα δεν υπάρχει κανένας λόγος να χρησιμοποιήσει 255 bytes μέγιστη 719 00:39:55,000 --> 00:39:58,000 να προσδιορίσει μοναδικά κάποιος αν μπορείτε να πάρετε μακριά με μόλις 4 bytes 720 00:39:58,000 --> 00:40:00,000 ή 32-bit int. 721 00:40:00,000 --> 00:40:03,000 Σε γενικές γραμμές, ένα πρωτεύον κλειδί πρέπει να είναι σύντομη και περιεκτική 722 00:40:03,000 --> 00:40:07,000 και ιδανικά κάτι σαν έναν ακέραιο αριθμό ή ένα μεγάλο int, η οποία συμβαίνει να είναι 64 bits. 723 00:40:07,000 --> 00:40:11,000 Αλλά μια διεύθυνση ηλεκτρονικού ταχυδρομείου θα πρέπει να είναι μοναδικό, και ένα από τα χαρακτηριστικά της βάσης δεδομένων είναι πολύ 724 00:40:11,000 --> 00:40:14,000 είναι να τονίσει τη μοναδικότητα για μένα. 725 00:40:14,000 --> 00:40:18,000 Με την επιλογή μοναδικό εδώ δίπλα στο e-mail, ακόμα και αν η ίδια e-mail 726 00:40:18,000 --> 00:40:21,000 κυλάει έξω από την οθόνη, λέω στη βάση δεδομένων 727 00:40:21,000 --> 00:40:23,000 Δεν με εμπιστεύονται. 728 00:40:23,000 --> 00:40:26,000 Μην επιτρέψτε μου να εισάγετε στη βάση δεδομένων 729 00:40:26,000 --> 00:40:29,000 την ίδια διεύθυνση ηλεκτρονικού ταχυδρομείου δύο φορές, ακόμη και αν είμαι ηλίθιος και δεν είμαι 730 00:40:29,000 --> 00:40:32,000 πολύ καλή με ifs μου και άλλο ifs και πραγματικό κώδικα PHP 731 00:40:32,000 --> 00:40:37,000 και εγώ λάθος επιτρέπουν στο χρήστη να εγγραφείτε με μια υπάρχουσα διεύθυνση email 732 00:40:37,000 --> 00:40:40,000 η βάση δεδομένων είναι ένα ακόμη επίπεδο της άμυνας για την ορθότητα 733 00:40:40,000 --> 00:40:44,000 να εξασφαλίσει ότι οι διπλές διεύθυνση ηλεκτρονικού ταχυδρομείου δεν καταλήγουν στο τραπέζι. 734 00:40:44,000 --> 00:40:49,000 >> Τώρα, αντίθετα, για όνομα που πιθανώς δεν θέλετε να κάνετε αυτό το μοναδικό 735 00:40:49,000 --> 00:40:51,000 γιατί τότε θα μπορούσε να υπάρξει ποτέ να είναι 2 ή 2 Davids Mike Smiths, για παράδειγμα, 736 00:40:51,000 --> 00:40:55,000 στη βάση δεδομένων σας, έτσι ώστε το ένα απλά θα αφήσει μόνο του. 737 00:40:55,000 --> 00:40:58,000 Πάω να πάει μπροστά και να σώσει κάντε κλικ στο κάτω δεξιά, 738 00:40:58,000 --> 00:41:02,000 και ό, τι φαίνεται καλό, αλλά παρατηρήσετε εδώ 739 00:41:02,000 --> 00:41:04,000 αυτό είναι ένα μέρος που για την ώρα δεν θα ξοδεύουν πάρα πολύ χρόνο για 740 00:41:04,000 --> 00:41:07,000 γιατί η σύνταξη είναι ένα μικρό συγκρότημα, και δεν έχουμε να δημιουργήσουμε πίνακες 741 00:41:07,000 --> 00:41:10,000 όλα αυτά συχνά, αλλά το ίδιο SQL είναι μια γλώσσα, 742 00:41:10,000 --> 00:41:13,000 η σύνταξη για την οποία είναι ακριβώς εδώ που έχω υπογράμμισε. 743 00:41:13,000 --> 00:41:18,000 Τι κάνει το phpMyAdmin είναι πραγματικά δημιουργεί μια web-based GUI για εσάς 744 00:41:18,000 --> 00:41:23,000 με την οποία μπορείτε να εξοικονομήσετε χρόνο και δεν χρειάζεται να πληκτρολογήσετε με μη αυτόματο τρόπο από 745 00:41:23,000 --> 00:41:26,000 ένα αρκετά μεγάλο ερώτημα SQL σαν αυτό. 746 00:41:26,000 --> 00:41:29,000 >> Με άλλα λόγια, εάν θέλετε να δημιουργήσετε χειροκίνητα τον πίνακα αυτό, 747 00:41:29,000 --> 00:41:32,000 είτε σε αυτό το μαύρο και άσπρο εντολών ή ακόμη και σε phpMyAdmin 748 00:41:32,000 --> 00:41:35,000 χρησιμοποιώντας αυτή την άλλη καρτέλα, αυτή η καρτέλα SQL, όπου μπορείτε να πληκτρολογήσετε σε οποιαδήποτε ερωτήματα SQL 749 00:41:35,000 --> 00:41:38,000 θέλετε, ειλικρινά, αυτό θα είχε πάρει μου ένα λεπτό 750 00:41:38,000 --> 00:41:41,000 να θυμάστε πραγματικά το σύνολο της σύνταξης, και ακόμα και τότε εγώ κατά πάσα πιθανότητα θα έχουν 751 00:41:41,000 --> 00:41:45,000 κάνει κάποια λάθη, έτσι ώστε αυτό το εργαλείο είναι χρήσιμο για τέτοια πράγματα, και αυτό είναι επίσης διδακτικό. 752 00:41:45,000 --> 00:41:49,000 Μπορείτε να αρχίσετε να συμπεράνουμε ποια είναι η σύνταξη είναι 753 00:41:49,000 --> 00:41:52,000 μόνο από το ωραίο χρώμα κωδικοποίησης ότι το phpMyAdmin είναι η προσθήκη 754 00:41:52,000 --> 00:41:54,000 για την οπτική άνεση μας. 755 00:41:54,000 --> 00:41:56,000 Αλλά τώρα ας κάνουμε αυτό αντ 'αυτού. 756 00:41:56,000 --> 00:42:00,000 Επιτρέψτε μου να μεταβείτε στην καρτέλα ένθετο στην κορυφή, και επιτρέψτε μου να πάω μπροστά και τοποθετήστε για παράδειγμα 757 00:42:00,000 --> 00:42:04,000 ένα αναγνωριστικό του ας πούμε-στην πραγματικότητα δεν με νοιάζει. 758 00:42:04,000 --> 00:42:07,000 Είναι πρόκειται να αυτόματη αύξηση. Πάω να αφήσει τη συμφωνία με βάση αυτό. 759 00:42:07,000 --> 00:42:11,000 Αλλά θα είμαι Δαβίδ, και e-mail μου θα πρέπει να είναι malan@harvard.edu. 760 00:42:11,000 --> 00:42:16,000 >> Ας προχωρήσουμε εδώ και να θέσει σε Mike Smith ως ένα άλλο. 761 00:42:16,000 --> 00:42:18,000 Θα δώσω στον εαυτό μου ένα επώνυμο, καθώς και, 762 00:42:18,000 --> 00:42:22,000 και θα έχουμε να τον smith@example.com, 763 00:42:22,000 --> 00:42:24,000 και στη συνέχεια, όπου μπορώ να πάω το επόμενο βήμα; 764 00:42:24,000 --> 00:42:27,000 Λοιπόν, αυτό μοιάζει με go είναι το κουμπί για να κάνετε κλικ, και voila. 765 00:42:27,000 --> 00:42:30,000 Παρατηρήστε τις εισαχθεί κορυφή 2 σειρές. 766 00:42:30,000 --> 00:42:32,000 Αυτό είναι το πραγματικό ερώτημα SQL. 767 00:42:32,000 --> 00:42:36,000 Αυτό είναι το εργαλείο phpMyAdmin εκτελούνται για μένα, 768 00:42:36,000 --> 00:42:40,000 αλλά το τελικό αποτέλεσμα, ειδοποίηση, αν εγώ τώρα πάω στην καρτέλα αναζήτησης, 769 00:42:40,000 --> 00:42:43,000 είναι να δούμε 2 σειρές σε αυτόν τον πίνακα, που θυμίζει πολύ αισθητικά 770 00:42:43,000 --> 00:42:46,000 του πίνακα που είδαμε νωρίτερα για τους χρήστες μας από PSET 7, 771 00:42:46,000 --> 00:42:51,000 ένας εκ των οποίων είναι ο David Malan, ένας εκ των οποίων είναι τώρα ο Mike Smith. 772 00:42:51,000 --> 00:42:54,000 Αλλά ακριβώς για να είναι σαφής, δεν χρειάζεται να χρησιμοποιήσετε το phpMyAdmin, 773 00:42:54,000 --> 00:42:56,000 και πράγματι, πρόκειται να σύντομα να γράψετε κώδικα για PSET 7 774 00:42:56,000 --> 00:43:01,000 που αυτοματοποιεί τη διαδικασία της προσθήκης γραμμών, διαγραφή γραμμών, ενημέρωση σειρές και τα παρόμοια, 775 00:43:01,000 --> 00:43:04,000 οπότε επιτρέψτε μου αντί να πάω στην καρτέλα SQL εδώ 776 00:43:04,000 --> 00:43:14,000 και πληκτρολογήστε επιλέξτε * από τους μαθητές όπου 777 00:43:14,000 --> 00:43:18,000 email = "malan@harvard.edu." 778 00:43:18,000 --> 00:43:21,000 >> Με άλλα λόγια, ας υποθέσουμε ότι τώρα έχετε 779 00:43:21,000 --> 00:43:26,000 κάποια μορφή HTML, και πληκτρολογεί ο χρήστης σε διεύθυνση ηλεκτρονικού ταχυδρομείου τους, μεταξύ άλλων τομέων, 780 00:43:26,000 --> 00:43:29,000 και ο στόχος είναι τώρα σε PHP στο πίσω άκρο κώδικα 781 00:43:29,000 --> 00:43:31,000 για να δούμε πραγματικά τις άλλες λεπτομέρειες του συγκεκριμένου χρήστη. 782 00:43:31,000 --> 00:43:34,000 Ποιο είναι το πλήρες όνομά σας; Ποιος είναι ο αριθμός ταυτότητας σας; 783 00:43:34,000 --> 00:43:37,000 Θα μπορούσατε να γράψετε ένα ερώτημα SQL σαν αυτό, επιλέξτε * από τους φοιτητές 784 00:43:37,000 --> 00:43:40,000 όπου email = "malan@harvard.edu." 785 00:43:40,000 --> 00:43:46,000 Και αν εγώ πάω στη συνέχεια κάντε κλικ, παρατηρούμε ότι θα πρέπει, και μάλιστα εγώ, να πάρει πίσω μόνο μία γραμμή. 786 00:43:46,000 --> 00:43:50,000 Mike έχει παραλειφθεί από αυτό το σύνολο αποτέλεσμα, καθώς η συλλογή των σειρών 787 00:43:50,000 --> 00:43:53,000 γενικά ονομάζεται, γιατί δεν έχουν την ίδια διεύθυνση ηλεκτρονικού ταχυδρομείου με μένα. 788 00:43:53,000 --> 00:43:57,000 >> Τώρα, πάλι, εδώ για PSET 7 θα χρησιμοποιήσετε το phpMyAdmin ως διοικητικό εργαλείο 789 00:43:57,000 --> 00:44:00,000 και ένα παιδαγωγικό εργαλείο για να μάθετε τον τρόπο σας 790 00:44:00,000 --> 00:44:03,000 όλο τον κόσμο της SQL, αλλά στο τέλος της ημέρας 791 00:44:03,000 --> 00:44:08,000 θα πάμε να γράφει αυτά τα ερωτήματα μέσα από πραγματικό κώδικα PHP, 792 00:44:08,000 --> 00:44:11,000 και έτσι μείνετε συντονισμένοι στο πέρασμα του Zamyla ιδίως 793 00:44:11,000 --> 00:44:14,000 όπου θα πάρετε μια περιοδεία του κώδικα διανομής για το σύνολο πρόβλημα 794 00:44:14,000 --> 00:44:18,000 όπου θα έχουμε δεδομένη όχι μόνο την αισθητική για τη σελίδα σύνδεσης 795 00:44:18,000 --> 00:44:21,000 και το ωραίο σέξι λογότυπο που λέει CS50 Οικονομικών, αλλά έχουμε δώσει, επίσης, 796 00:44:21,000 --> 00:44:24,000 μια δέσμη των λειτουργιών που θα κάνουν τη ζωή σας λίγο πιο εύκολη. 797 00:44:24,000 --> 00:44:27,000 Έχουμε γράψει επίσης μέρος της PSET για σας, 798 00:44:27,000 --> 00:44:32,000 η είσοδος μέρος αυτού κυρίως, για να σας δώσει μια αίσθηση του αντιπροσωπευτικού σχεδιασμού 799 00:44:32,000 --> 00:44:36,000 η οποία χρησιμοποιεί στην πραγματικότητα έναν ελεγκτή, για παράδειγμα, index.php, 800 00:44:36,000 --> 00:44:40,000 login.php και τα παρόμοια, και τότε θα δείτε το PSET έχει επίσης έναν κατάλογο προτύπων 801 00:44:40,000 --> 00:44:43,000 που έχει όλες τις απόψεις σας, όλα από την αισθητική. 802 00:44:43,000 --> 00:44:46,000 Και έτσι η συνολική ροή εργασίας σε PSET 7 θα είναι ότι 803 00:44:46,000 --> 00:44:49,000 χρήστες σας επισκέπτονται έναν ελεγκτή μέσω ενός URL σε ένα πρόγραμμα περιήγησης. 804 00:44:49,000 --> 00:44:53,000 Αυτό ελεγκτής περιέχει PHP κώδικα που έγραψε, και στο εσωτερικό του PHP κώδικα σας 805 00:44:53,000 --> 00:44:57,000 μπορεί να μερικές γραμμές του SQL ένθετη μεταξύ των διπλών εισαγωγικών 806 00:44:57,000 --> 00:45:00,000 και να περάσει σε μια λειτουργία που ονομάζεται γράψαμε ερώτημα 807 00:45:00,000 --> 00:45:03,000 που θα σας βοηθήσουν να μιλήσουμε με τη βάση δεδομένων χωρίς τη χρήση κάτι σαν 808 00:45:03,000 --> 00:45:05,000 ένα διοικητικό εργαλείο, όπως το phpMyAdmin. 809 00:45:05,000 --> 00:45:08,000 >> Θα είστε σε θέση να γράψετε SQL σε κώδικα PHP 810 00:45:08,000 --> 00:45:11,000 και να πάρετε πίσω μια σειρά από PHP στο σύνολο των αποτελεσμάτων, 811 00:45:11,000 --> 00:45:14,000 από τις σειρές που ταιριάζουν στην πραγματικότητα αυτό το ερώτημα. 812 00:45:14,000 --> 00:45:18,000 Και ομοίως, θα είστε σε θέση να κάνετε ένθετα ή διαγράφει 813 00:45:18,000 --> 00:45:22,000 ή ενημερώσεις ή τα παρόμοια, η σύνταξη του οποίου είναι αρκετά παρόμοια, 814 00:45:22,000 --> 00:45:25,000 και θα δείτε από ορισμένες αναφορές σε απευθείας σύνδεση, από τον κώδικα της διανομής 815 00:45:25,000 --> 00:45:29,000 και από το ίδιο το πακέτο PSET ακριβώς πώς να πάει για να κάνει αυτό. 816 00:45:29,000 --> 00:45:33,000 Συνειδητοποιήστε τελικά είμαστε πραγματικά το ξύσιμο μόνο την επιφάνεια του SQL 817 00:45:33,000 --> 00:45:36,000 και της MySQL, αλλά η ισχύς του είναι πραγματικά ότι σας απαλλάσσει 818 00:45:36,000 --> 00:45:40,000 να επικεντρωθεί στα προβλήματα που θέλετε να λύσει, οι περιπτώσεις χρήσης που θέλουν να εφαρμόσουν 819 00:45:40,000 --> 00:45:43,000 χωρίς να χρειάζεται να ανησυχείτε τόσο πολύ, τουλάχιστον αρχικά, 820 00:45:43,000 --> 00:45:47,000 σχετικά με το πού και πώς μπορείτε να αποθηκεύσετε και να αναζητήσετε τη βάση δεδομένων σας, 821 00:45:47,000 --> 00:45:50,000 και αυτό είναι κυριολεκτικά όπου του ίδιου του Facebook πήρε την έναρξή του 822 00:45:50,000 --> 00:45:53,000 χρησιμοποιώντας MySQL και στη συνέχεια, χρησιμοποιώντας περισσότερους servers MySQL και στη συνέχεια περισσότερους servers MySQL 823 00:45:53,000 --> 00:45:57,000 πριν από καιρό έως ότου τότε έπρεπε να αρχίσουμε να σκεφτόμαστε πραγματικά σκληρά για το πώς να 824 00:45:57,000 --> 00:46:00,000 αποθήκευσης δεδομένων, πώς να αποθηκεύουν τα πράγματα ακόμη πιο αποτελεσματικά, 825 00:46:00,000 --> 00:46:04,000 έτσι ακόμα κι αν θα πάρουμε ως δεδομένο το γεγονός ότι οι δείκτες και μοναδικούς περιορισμούς 826 00:46:04,000 --> 00:46:08,000 και ούτω καθεξής μόνο δουλειά υπάρχει μια πολύ ενδιαφέρουσα συζήτηση 827 00:46:08,000 --> 00:46:12,000 ότι αυτό μπορεί όλα να οδηγήσει τελικά, έτσι ώστε να συνειδητοποιήσουμε ότι είμαστε το ξύσιμο μόνο την επιφάνεια 828 00:46:12,000 --> 00:46:17,000 από ό, τι θα μπορούσε τελικά για εσάς ή τα έργα σας γίνει αρκετά ένα κομμάτι των μεγάλων δεδομένων. 829 00:46:17,000 --> 00:46:22,000 >> Με αυτόν εν λόγω, ας τελειώσει εδώ, και θα σας δούμε την επόμενη εβδομάδα. 830 00:46:28,000 --> 00:46:30,000 [CS50.TV]