1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [8. nädalal, Jätkub] 2 00:00:02,000 --> 00:00:04,000 [David J. Malan] [Harvardi Ülikool] 3 00:00:04,000 --> 00:00:08,000 [See on CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:13,000 >> See on CS50, nii et see on lõpuks 8. nädal siin. 5 00:00:13,000 --> 00:00:16,000 Meil muidugi oli natuke orkaani varem sel nädalal, 6 00:00:16,000 --> 00:00:19,000 nii kohe on tõesti ainult sina ja mina selles saalis, 7 00:00:19,000 --> 00:00:22,000 kuid täna me jätkame vestlust PHP 8 00:00:22,000 --> 00:00:25,000 ja umbes veebi programmeerimine üldisemalt, ja me ka tutvustada ideed 9 00:00:25,000 --> 00:00:29,000 andmebaaside, eriti üks nn MySQL, mis on üsna populaarne nendel päevadel, 10 00:00:29,000 --> 00:00:34,000 Suures osas tänu oma mastaapsuse samuti sellepärast, et oleks tasuta ja avatud lähtekoodiga. 11 00:00:34,000 --> 00:00:37,000 >> Aga kõigepealt pilk, kus me pooleli jäime viimast korda. 12 00:00:37,000 --> 00:00:40,000 Tuletame meelde, et otsisime mitu Frosh IEd näiteid, 13 00:00:40,000 --> 00:00:44,000 ja see oli kole vorm, mida ma tulid välja mõned 15 + aastat tagasi 14 00:00:44,000 --> 00:00:49,000 et on õpilaste loengusse registrisse uustulnuk ettevõttesisene sport 15 00:00:49,000 --> 00:00:52,000 ilma et oleks tegelikult trek enam üle õue Wigglesworth 16 00:00:52,000 --> 00:00:56,000 libisema füüsilise paberile all mõned Proctor uks. 17 00:00:56,000 --> 00:00:59,000 Selle asemel kolisime kõike online, kuid selleks oli vaja kasutada 18 00:00:59,000 --> 00:01:03,000 Mõne tehnoloogiaid, nii et üks, meil oli vaja HTML, hüpertekst-märgistuskeel, 19 00:01:03,000 --> 00:01:07,000 mis jälle on see märgistuskeel, millega te teete veebilehti struktuuriga. 20 00:01:07,000 --> 00:01:10,000 >> Kasutades natuke CSS nendel päevadel, kaskaadlaadistikke, 21 00:01:10,000 --> 00:01:16,000 mille me kasutame stylizations selle veebilehe kasutades veidi teistsugune süntaks, 22 00:01:16,000 --> 00:01:19,000 arvestades HTML oli kõike selle struktuuri. 23 00:01:19,000 --> 00:01:21,000 Samuti peame kasutusele veebi programmeerimine keeles. 24 00:01:21,000 --> 00:01:25,000 Sellisel juhul me kasutame PHP ja PHP läheb võimaldavad meil 25 00:01:25,000 --> 00:01:28,000 dünaamiliselt väljund sisu, samuti teha programmiline asjad 26 00:01:28,000 --> 00:01:33,000 E-kirjade saatmine, nagu juhtus märkusele jätsime eelmisel nädalal. 27 00:01:33,000 --> 00:01:35,000 >> Tuletame meelde, et kood oli see 2 osa. 28 00:01:35,000 --> 00:01:38,000 Üks oli meil froshims3.php, 29 00:01:38,000 --> 00:01:42,000 ja seda suuresti juurdehindlus koos HTML-vormi sees on, 30 00:01:42,000 --> 00:01:45,000 killuke CSS siin stiilis atribuudid 31 00:01:45,000 --> 00:01:48,000 nii et vorm ise oleks keskendunud leht, kuid pärast seda 32 00:01:48,000 --> 00:01:51,000 meil oli mingi tüüpiline vorm sisendid, tekstiväli, märkeruut, 33 00:01:51,000 --> 00:01:55,000 mõned nööpe, valige Menüü ja submit nuppu. 34 00:01:55,000 --> 00:02:01,000 Ja selle vormi kaudu, me esitatud toimikust, et oli ilmselt nn register3.php, 35 00:02:01,000 --> 00:02:04,000 mis ise vaatasin natuke midagi sellist. 36 00:02:04,000 --> 00:02:08,000 Nüüd on enamik koodi register3.php, mäletate, oli kõike e. 37 00:02:08,000 --> 00:02:11,000 Ta tegi natuke kinnitamise vorm, mis esitati veenduda 38 00:02:11,000 --> 00:02:14,000 et põllud tegelikult kui oodati. 39 00:02:14,000 --> 00:02:18,000 Siis me kutsusime mõned PHP funktsioonide veidi uus süntaks, 40 00:02:18,000 --> 00:02:20,000 kuigi see on laenatud C. 41 00:02:20,000 --> 00:02:24,000 >> See nool operaator lubab meil kasutada midagi, mida nimetatakse objektorienteeritud programmeerimine. 42 00:02:24,000 --> 00:02:27,000 Me ei hakka et igal detail siin, kuid tean nüüd 43 00:02:27,000 --> 00:02:31,000 see on viis, mille funktsioonid on seotud esemed, 44 00:02:31,000 --> 00:02:34,000 mis on eri tüüpi struktuuri, nagu me nägime C. 45 00:02:34,000 --> 00:02:37,000 Aga nüüd, lihtsalt võtta usus, et see on õige süntaks kasutada 46 00:02:37,000 --> 00:02:41,000 kasutades raamatukogu niimoodi PHPMailer raamatukogu. 47 00:02:41,000 --> 00:02:44,000 Ja siis lõpuks seda faili olime dünaamiliselt loodud talle 48 00:02:44,000 --> 00:02:47,000 mis sai saata minu jharvard@cs50.net konto 49 00:02:47,000 --> 00:02:50,000 minu jharvard@cs50.net konto 50 00:02:50,000 --> 00:02:54,000 ja me teavitanud kasutaja vastavalt, et nad olid olnud registreeritud seda spordiala. 51 00:02:54,000 --> 00:02:57,000 See on päris palju, mida Frosh IEd saidi tegid kõik need aastad tagasi 52 00:02:57,000 --> 00:03:00,000 kui ma seda rakendanud, antud mõnes muus keeles, 53 00:03:00,000 --> 00:03:02,000 kuid see näitab ehk jõud, mis teil on 54 00:03:02,000 --> 00:03:05,000 Nüüd, et sa ennast väljendada mitte ainult programmiliselt 55 00:03:05,000 --> 00:03:08,000 madalal tasemel keeles nagu C, kuid palju kõrgem 56 00:03:08,000 --> 00:03:11,000 Nende väga reaalses maailmas rakendusi nagu e tegelikult lahendada 57 00:03:11,000 --> 00:03:13,000 mõned reaalses maailmas probleeme. 58 00:03:13,000 --> 00:03:16,000 >> Nüüd, muidugi, kuigi ma kasutan selle skripti genereerida mõned 59 00:03:16,000 --> 00:03:20,000 e dünaamiliselt jharvard@cs50.net, mis on tõepoolest konto 60 00:03:20,000 --> 00:03:23,000 et mul on juurdepääs, ei olla üsna ettevaatlik saata 61 00:03:23,000 --> 00:03:26,000 ainult posti kontodelt, on tegelikult oma, 62 00:03:26,000 --> 00:03:30,000 muidu asjad sulle natuke kuuma vett elus. 63 00:03:30,000 --> 00:03:35,000 Olles seda öelnud, lähme nüüd üleminekut lahendada erinevaid probleeme kokku, 64 00:03:35,000 --> 00:03:37,000 et säilitada riikides. 65 00:03:37,000 --> 00:03:39,000 Nüüd, mida see tegelikult tähendab? 66 00:03:39,000 --> 00:03:42,000 HTTP, see Hypertext Transfer Protocol, 67 00:03:42,000 --> 00:03:45,000 on tegelikult kodakondsuseta protokoll, ja mida see tähendab, et 68 00:03:45,000 --> 00:03:48,000 kui sa tõmba midagi nagu Google.com ja seejärel vajutage enter 69 00:03:48,000 --> 00:03:51,000 tavaliselt teie brauseris on mingi ketramine ikoon, siis 70 00:03:51,000 --> 00:03:54,000 tulemusi mõnedes veebileht laetakse, 71 00:03:54,000 --> 00:03:57,000 ja siis see väike ikoon lõpetab keerlemise ja et tõepoolest viitab 72 00:03:57,000 --> 00:04:02,000 et HTTP on lõpetanud mingi ühendus serveriga ja ongi kõik. 73 00:04:02,000 --> 00:04:05,000 HTTP on kodakondsuseta selles mõttes, et see ei hoia 74 00:04:05,000 --> 00:04:08,000 püsiv ühendus serveriga samamoodi Skype ei 75 00:04:08,000 --> 00:04:11,000 või gchat ei sest HTTP 76 00:04:11,000 --> 00:04:15,000 eeldus on, et kui olete tõmmatud veebilehe ongi kõik. 77 00:04:15,000 --> 00:04:18,000 >> Nüüd tegelikult nendel päevadel saidid nagu Facebook ja Google Maps 78 00:04:18,000 --> 00:04:21,000 ja Twitter jms seal on palju rohkem dünaamikat, mille 79 00:04:21,000 --> 00:04:25,000 isegi pärast seda ikoon peatub ketramine saate tegelikult saada rohkem uudiseid 80 00:04:25,000 --> 00:04:29,000 serverist rohkem tweets, rohkem staatuse uuendusi Facebookis jms. 81 00:04:29,000 --> 00:04:33,000 Kuid isegi see kasutab tehnikat, et me räägime ka nädal või kaks 82 00:04:33,000 --> 00:04:36,000 tuntakse Ajax kasutades keeles nimetatakse JavaScript, 83 00:04:36,000 --> 00:04:38,000 kuid lõpus päeval, HTTP on ikka kodakondsuseta. 84 00:04:38,000 --> 00:04:42,000 Ja veel, kui sa tahad kuidagi mäletan asju kasutaja 85 00:04:42,000 --> 00:04:44,000 isegi pärast olen lahti oma server 86 00:04:44,000 --> 00:04:47,000 PHP ei pakuvad teile vahend selle 87 00:04:47,000 --> 00:04:52,000 sest nagu me nägime viimast korda, PHP on mitmeid superglobals, 88 00:04:52,000 --> 00:04:55,000 ja superglobal on jällegi eriline globaalne muutuja 89 00:04:55,000 --> 00:04:59,000 et teada andis teile veebiserver ja PHP ise. 90 00:04:59,000 --> 00:05:02,000 >> Sa ei pea midagi tegema panna väärtusi see, 91 00:05:02,000 --> 00:05:05,000 ja vahel superglobals oleme näinud siiani on GET ja POST, 92 00:05:05,000 --> 00:05:08,000 mis on koht, kus vormiväljad panna automaatselt teie eest, 93 00:05:08,000 --> 00:05:11,000 samuti paar teised, et me ei ole näinud veel. 94 00:05:11,000 --> 00:05:17,000 Toas on $ _SERVER mõned erilised seotud muutujate server ise. 95 00:05:17,000 --> 00:05:22,000 Mis on IP-aadress, mida protokoll, HTTP või HTTPS sa kasutasid, 96 00:05:22,000 --> 00:05:25,000 mida päringu meetodit sa kasutada jms, nii et seal mõned huvitavad, 97 00:05:25,000 --> 00:05:29,000 mahlane üksikasju server, ja tegelikult, kasutaja seal hästi. 98 00:05:29,000 --> 00:05:33,000 Seal on $ _COOKIE, mis on koht, kus neid asju nimetatakse salvestada küpsiseid. 99 00:05:33,000 --> 00:05:36,000 Me ei kuluta aega küpsised end täna, 100 00:05:36,000 --> 00:05:40,000 kuid tean nüüd, et Küpsis on vaid väike osa teabest 101 00:05:40,000 --> 00:05:43,000 et veebiserver saab taime kohta veebibrauser 102 00:05:43,000 --> 00:05:46,000 ning omakorda selle RAM või oma arvuti kõvakettale 103 00:05:46,000 --> 00:05:49,000 et salvestada teavet kasutaja näiteks oma kasutajanimi 104 00:05:49,000 --> 00:05:52,000 nii et nad ei pea seda iga kord, kui nad sisse logida või mõned 105 00:05:52,000 --> 00:05:55,000 unikaalne number või tunnus, et kasutaja 106 00:05:55,000 --> 00:05:58,000 nii et sa ei pea vaevama neid sama liiki küsimusi 107 00:05:58,000 --> 00:06:00,000 eelistusi tulevikus, kuid enamik huvi 108 00:06:00,000 --> 00:06:02,000 praegu on $ _SESSION. 109 00:06:02,000 --> 00:06:07,000 >> See superglobal, mis sarnaselt teistele, antakse sulle automaatselt PHP poolt 110 00:06:07,000 --> 00:06:10,000 kui olete kirjalikult PHP-põhinevad veebilehed 111 00:06:10,000 --> 00:06:13,000 saab salvestada ükskõik mida tahad, stringid, täisarvud, 112 00:06:13,000 --> 00:06:16,000 ujuva punkti, väärtused, massiivid, esemeid, 113 00:06:16,000 --> 00:06:20,000 tõesti kõike, mida soovite, ja see võimaldab salvestada see nii 114 00:06:20,000 --> 00:06:23,000 et isegi kui kasutaja külastab teie nüüd ja siis 115 00:06:23,000 --> 00:06:26,000 tuleb tagasi minuti kaugusel nüüd või 5 minuti kaugusel nüüd, sest 116 00:06:26,000 --> 00:06:28,000 nad võtavad oma aja, enne kui klõpsate mõnda muud linki 117 00:06:28,000 --> 00:06:32,000 PHP tagab, et mida iganes sa panna, et istung superglobal 118 00:06:32,000 --> 00:06:37,000 minut või 5 minutit tagasi on siiski olemas, kui kasutaja naaseb. 119 00:06:37,000 --> 00:06:40,000 Ja all kapuuts see superglobal rakendatakse teel 120 00:06:40,000 --> 00:06:44,000 neid asju nimetatakse küpsiseid, kuid nüüd, see on lihtsalt võtmiseks 121 00:06:44,000 --> 00:06:47,000 kusjuures see on omamoodi programmilise samaväärne ostukorv. 122 00:06:47,000 --> 00:06:50,000 Mida iganes sa, programmeerija, panna, et 123 00:06:50,000 --> 00:06:53,000 superglobal assotsiatiivne massiiv on seal mõned mitu minutit hiljem 124 00:06:53,000 --> 00:06:59,000 kuni te selle kustutate või kuni kasutaja lõpetab oma brauseri kokku. 125 00:06:59,000 --> 00:07:02,000 >> Võtame pilk näide sellest, kuidas asi tegelikult kasutatakse. 126 00:07:02,000 --> 00:07:07,000 Aastal counter.php seas tänapäeva tükid kood 127 00:07:07,000 --> 00:07:09,000 meil on selline rida. 128 00:07:09,000 --> 00:07:13,000 Alguses seda faili on meil hunnik sinine kommentaarid, mis on ebahuvitav nüüd. 129 00:07:13,000 --> 00:07:15,000 Kuid rida 13 on meil uus liin, 130 00:07:15,000 --> 00:07:18,000 session_start ja et tegelikult ei täpselt, mida ta ütleb. 131 00:07:18,000 --> 00:07:20,000 See algab istungid. 132 00:07:20,000 --> 00:07:25,000 See võimaldab teil kasutada seda suurt superglobal $ _SESSION, ja see on nii lihtne. 133 00:07:25,000 --> 00:07:30,000 Nüüd, kui me lähtume vaadata real 16, proovime aru saada, mis see veebileht saab teha. 134 00:07:30,000 --> 00:07:35,000 If (isset ($ _SESSION ["counter"]) siis lase käia 135 00:07:35,000 --> 00:07:39,000 ja kaupluse leti muutuja, väiketähed loendur 136 00:07:39,000 --> 00:07:42,000 $ _SESSION ["Counter"]. 137 00:07:42,000 --> 00:07:45,000 See tundub olevat kuulutab kohaliku muutuja nimega counter 138 00:07:45,000 --> 00:07:48,000 mille sees ta paneb koopia olenemata on sees superglobal 139 00:07:48,000 --> 00:07:52,000 kutsunud istungi location "counter." 140 00:07:52,000 --> 00:07:56,000 Else, ilmselt see väike kohalik muutuja loendur, käivitub kuni 0. 141 00:07:56,000 --> 00:08:01,000 >> Aga siis paar rida hiljem 26 teate, et seanss on koopia loendur 142 00:08:01,000 --> 00:08:06,000 oma võti, on uus väärtus omistatakse mis on oma praeguse väärtuse pluss 1. 143 00:08:06,000 --> 00:08:09,000 Lühidalt, see fail tundub olevat ajakohastamine 144 00:08:09,000 --> 00:08:13,000 counter, mis on talletatud istungi superglobal 145 00:08:13,000 --> 00:08:16,000 poolt incrementing see 1, kuid see esimene säilitab koopia eelmisest väärtus 146 00:08:16,000 --> 00:08:20,000 talletades seda kohaliku muutuja nimega $ counter, 147 00:08:20,000 --> 00:08:22,000 ja siis siin all vaatame, mis jääb. 148 00:08:22,000 --> 00:08:24,000 Selgub, et see on päris palju lihtsalt HTML. 149 00:08:24,000 --> 00:08:29,000 Allosas see leht näeme rida 37, kus olen käinud selle saidi 150 00:08:29,000 --> 00:08:33,000 counter mitu korda, nii et seal on paar huvitavaid funktsioone siin. 151 00:08:33,000 --> 00:08:36,000 Üks on see selgelt erinev, kuid see ei ole piisav, et lihtsalt panna 152 00:08:36,000 --> 00:08:39,000 $ Counter kehas HTML sest loomulikult 153 00:08:39,000 --> 00:08:43,000 kui see on lihtsalt seal hulgas oma HTML PHP läheb eeldada, et on lihtsalt HTML. 154 00:08:43,000 --> 00:08:48,000 Sa sõna otseses mõttes tahavad $ vastuollu trükitakse ekraanile. 155 00:08:48,000 --> 00:08:51,000 >> Kuid selle asemel, visates sisse PHP režiim 156 00:08:51,000 --> 00:08:55,000 seda tükk süntaks saame dünaamiliselt lisada väärtust siin 157 00:08:55,000 --> 00:08:58,000 väga sarnase sisuga, mida me tegime viimane kord koos 158 00:08:58,000 --> 00:09:00,000 sisestades väärtused stringid. 159 00:09:00,000 --> 00:09:04,000 Tegelikult on see lihtsalt stenografisti märke öelda midagi selle sõna otseses mõttes, 160 00:09:04,000 --> 00:09:12,000 print ($ loendur) või isegi midagi printf (% s, counter), 161 00:09:12,000 --> 00:09:14,000 või isegi, kui olete näinud internetis või õpikutes, 162 00:09:14,000 --> 00:09:17,000 seal on funktsioon PHP nimetatakse kaja 163 00:09:17,000 --> 00:09:20,000 mis teeb sama asja, ja kõik need on lihtsalt enam Hengästynyt võimalusi 164 00:09:20,000 --> 00:09:25,000 öelda 00:09:28,000 Sel ühel juhul sa ei pea panna 166 00:09:28,000 --> 00:09:30,000 sõna PHP küsimärk. 167 00:09:30,000 --> 00:09:34,000 See on stenografisti märke, samas, mida me just nägime hetkeks tagasi 168 00:09:34,000 --> 00:09:37,000 mis kajastas mingi väärtus. 169 00:09:37,000 --> 00:09:39,000 >> Vaatame, mida Lõpptulemus on see tegelikult on. 170 00:09:39,000 --> 00:09:43,000 Laske mul minna üle meie counter.php faili, 171 00:09:43,000 --> 00:09:47,000 ja me näeme, et David lihtsalt eksinud, mängides kood seal. 172 00:09:47,000 --> 00:09:50,000 Lähme fix iganes ta silmamunad, 173 00:09:50,000 --> 00:09:54,000 ja viga tundub olevat seal käinud, on line 37. 174 00:09:54,000 --> 00:09:59,000 Vastavalt lehekülje ülaosas Olen seda saiti külastas 0 korda. 175 00:09:59,000 --> 00:10:02,000 Noh, lähme edasi nüüd, ja ülaosas brauseri kliki 176 00:10:02,000 --> 00:10:05,000 laadige ikoon ja ma nuppu reload 177 00:10:05,000 --> 00:10:12,000 ja nüüd olen külastanud saidi 1 kord, 2, 3, 4, 5, 6, 7, 8. 178 00:10:12,000 --> 00:10:16,000 Ja tõepoolest, kui me vaatame seda lehekülge lähtekoodi muutub 179 00:10:16,000 --> 00:10:19,000 ja märkate täieliku puudumise tõttu PHP, ja see on, sest 180 00:10:19,000 --> 00:10:23,000 PHP kood hinnatakse või tõlgendada serveripoolne, 181 00:10:23,000 --> 00:10:27,000 ja nii see tähendab, et väljund PHP skripti on Mis lõpuks saadetakse brauseri, 182 00:10:27,000 --> 00:10:31,000 mis antud juhul on natuke toorest HTML ja natuke toorest teksti. 183 00:10:31,000 --> 00:10:33,000 Mis siin toimub? 184 00:10:33,000 --> 00:10:37,000 >> Noh, kus on suhteliselt vähe rida koodi Võin salvestada 185 00:10:37,000 --> 00:10:40,000 püsivalt jooksul mitu sekundit või kui me piisavalt kaua oodanud, 186 00:10:40,000 --> 00:10:44,000 minutit, isegi tunni, mõned väärtus viisil, mis muudab HTTP 187 00:10:44,000 --> 00:10:47,000 Tundub olekuteadliku nagu me oleme säilitanud 188 00:10:47,000 --> 00:10:51,000 see ühendus serveriga, ja see on lihtsalt mäleta, mida ma ütlesin see viimane kord, 189 00:10:51,000 --> 00:10:55,000 kuid tegelikult on terve hunnik keerukus toimub all kapuuts 190 00:10:55,000 --> 00:10:59,000 kaasates küpsised, mis on võimaldada PHP mulle see illusioon 191 00:10:59,000 --> 00:11:02,000 Selle ostukorv-sarnane omadus. 192 00:11:02,000 --> 00:11:05,000 Praegu triviaalne näide, kus me lihtsalt ladustamiseks täisarv, 193 00:11:05,000 --> 00:11:08,000 kuid see funktsioon tulevad tagasi tuua suurt kasu 194 00:11:08,000 --> 00:11:10,000 kui me hakkame rääkima rohkem keerukate projektide 195 00:11:10,000 --> 00:11:12,000 nende seas Ülesanded nr 7. 196 00:11:12,000 --> 00:11:16,000 See on teie viimane probleem sätestatud CS50. 197 00:11:16,000 --> 00:11:19,000 Ma tean, see on nii kurb, aga mida sa leiad, et me ei kavatse sõlmida 198 00:11:19,000 --> 00:11:22,000 see osa semester poolt tegelikult üleminekutel 199 00:11:22,000 --> 00:11:25,000 kontekstist tulenevalt C kindlasti kontekstis PHP 200 00:11:25,000 --> 00:11:27,000 kuid samas kasutades mõned väga sama põhialuste 201 00:11:27,000 --> 00:11:29,000 me rääkisime mõnda aega. 202 00:11:29,000 --> 00:11:33,000 >> Eesmärgiks koos pset 7 on rakendada CS50 Finance, 203 00:11:33,000 --> 00:11:37,000 mis on oma versiooni Yahoo Finance ja Google Finance 204 00:11:37,000 --> 00:11:40,000 või isegi Etrade.com mille kaudu teil on võime 205 00:11:40,000 --> 00:11:43,000 otsida aktsiahindade jaoks antud sümboleid, kuid isegi rohkem 206 00:11:43,000 --> 00:11:48,000 Teil on võimalus "osta" ja "müüa" varude 207 00:11:48,000 --> 00:11:51,000 millega kaubeldakse erinevate börside sest see kodulehekülg 208 00:11:51,000 --> 00:11:55,000 siin ütleb, mis on tõesti mil määral me oleme alustanud 209 00:11:55,000 --> 00:11:59,000 Ülesanded teile, teil on sisäänkirjautumislomake, mis küsib kasutajanime ja parooli. 210 00:11:59,000 --> 00:12:03,000 See on submit nupp, kuid seejärel, kui me lõpuks näha, 211 00:12:03,000 --> 00:12:06,000 ei ole midagi tegelikult toimub all kapuuts veel, sest see 212 00:12:06,000 --> 00:12:09,000 jääb teil rakendada võime registreerida uusi kasutajaid, 213 00:12:09,000 --> 00:12:12,000 võime osta varusid, et müüa aktsiad, 214 00:12:12,000 --> 00:12:14,000 tegelikult otsida praeguse aktsia hinnaga. 215 00:12:14,000 --> 00:12:17,000 >> Ja tõepoolest, see on nagu reaalses maailmas kui võimalik, sest me tegime 216 00:12:17,000 --> 00:12:20,000 sisaldama natuke koodi, mis võimaldab teil ühe funktsiooni 217 00:12:20,000 --> 00:12:25,000 päringu Yahoo Finance, mis imeliselt teeb kättesaadavaks tasuta andmeid 218 00:12:25,000 --> 00:12:31,000 otsimise aktsiate hinnad põhinevad aktsia sümbol või sümbolit, 219 00:12:31,000 --> 00:12:34,000 ja sa saad tagasi praeguse aktsia hinna päev. 220 00:12:34,000 --> 00:12:37,000 Andmeid sa tegelikult näeme selles konkreetses pset on 221 00:12:37,000 --> 00:12:40,000 umbes nagu reaalses maailmas, sest see võib saada nii, et sa oled tegelikult liidestamine 222 00:12:40,000 --> 00:12:43,000 reaalses maailmas varud, reaalses maailmas hinnad 223 00:12:43,000 --> 00:12:47,000 ja me näeme, kui palju raha saate teha ehk 224 00:12:47,000 --> 00:12:51,000 üle järgmise mitu päeva mänginud koos oma probleemi komplekti. 225 00:12:51,000 --> 00:12:55,000 >> Aga Vaatame esmalt määrata etapil kuidas kavandada midagi, mis on kindlasti keerulisem 226 00:12:55,000 --> 00:12:59,000 kui counter.php, see on keerulisem kui ükskõik Frosh IEd näiteid seni 227 00:12:59,000 --> 00:13:02,000 ja proovime lisada mõne paradigmad siin, mis võimaldavad meil 228 00:13:02,000 --> 00:13:06,000 nii pset 7 ja võibolla oma lõpliku projekti kui sa midagi veebipõhine 229 00:13:06,000 --> 00:13:11,000 hoida oma koodi hästi organiseeritud, et ennast terve mõistusega, 230 00:13:11,000 --> 00:13:15,000 ja võtta samm koostöövõimalusi, kas CS50 lõpliku projekti 231 00:13:15,000 --> 00:13:18,000 või kaugemale, kui te jätkate programmeerida midagi tulevikus. 232 00:13:18,000 --> 00:13:21,000 Seal on see üldplaneering paradigma 233 00:13:21,000 --> 00:13:24,000 infotehnoloogia ja tarkvara arendamise üldisemalt 234 00:13:24,000 --> 00:13:27,000 tuntud MVC, mudel vaatamiseks töötleja, 235 00:13:27,000 --> 00:13:30,000 ja see on tobe lühend, mis kirjeldab väga kena mõte, 236 00:13:30,000 --> 00:13:34,000 mis on eraldatud erinevaid aspekte programmi 237 00:13:34,000 --> 00:13:39,000 konkreetselt eraldi hoidmisest loogika või äriloogika veebilehte 238 00:13:39,000 --> 00:13:42,000 nii et kõike, mis on seotud asjad 239 00:13:42,000 --> 00:13:45,000 helistaja funktsioone ja päringute andmebaaside jms 240 00:13:45,000 --> 00:13:48,000 juhtub ei hulgas oma HTML 241 00:13:48,000 --> 00:13:51,000 vaid eraldi failidena, ja tõepoolest, seal on see üks fail 242 00:13:51,000 --> 00:13:54,000 tavaliselt, millele olete helistanud kontroller 243 00:13:54,000 --> 00:13:56,000 see on tõesti aju taga operatsiooni, ja me näeme näiteks 244 00:13:56,000 --> 00:13:58,000 Käesoleva vaid hetk. 245 00:13:58,000 --> 00:14:01,000 >> Seal on mudel, mis on programmeerimise koodi 246 00:14:01,000 --> 00:14:05,000 et ei rääkinud oma andmebaasid, mis räägib Yahoo Finance jms, 247 00:14:05,000 --> 00:14:08,000 ja siis seal on V MVC, seisukohti, 248 00:14:08,000 --> 00:14:11,000 kõik asjad, mis on seotud esteetika, faile, mis tegelikult sisaldavad 249 00:14:11,000 --> 00:14:14,000 HTML, võibolla oma CSS jms. 250 00:14:14,000 --> 00:14:17,000 Mõte, kuna see võib oletada, et kontroller 251 00:14:17,000 --> 00:14:21,000 on fail, nagu me varsti näeme ja kui sa eriti näha pset 7, 252 00:14:21,000 --> 00:14:24,000 et maailm räägib läbi oma brausereid. 253 00:14:24,000 --> 00:14:27,000 See on fail, mis saab külastatud avaliku Interneti, 254 00:14:27,000 --> 00:14:30,000 kuid kontroller räägib potentsiaalselt mudel, 255 00:14:30,000 --> 00:14:34,000 mis on ühe või mitme muu failid, mis sisaldavad koodi seotud andmed, 256 00:14:34,000 --> 00:14:37,000 koodi seotud andmebaaside jms, ja siis räägib 257 00:14:37,000 --> 00:14:40,000 kontroller ühe või mitme teise faili tuntud seisukohad, 258 00:14:40,000 --> 00:14:43,000 mis on esteetika veebilehe malle kehvasti, 259 00:14:43,000 --> 00:14:47,000 mis võib võtta mõned andmed sisendi, kuid lõpus päev 260 00:14:47,000 --> 00:14:50,000 ainult loogika sees, et peaks olema renderdamine, et andmed, 261 00:14:50,000 --> 00:14:53,000 itereerimise üle aasa ja tegelikult sülitada välja mõned 262 00:14:53,000 --> 00:14:56,000 HTML-põhine üleviimise, või isegi midagi PDF-is. 263 00:14:56,000 --> 00:14:59,000 >> Mis on ilus umbes MVC on see, et sul võib olla eri arvamusi 264 00:14:59,000 --> 00:15:02,000 põhineb tüüpi seade, mis põhineb tüüpi faili vorming, mida tegelikult 265 00:15:02,000 --> 00:15:04,000 tahan näidata kasutajale. 266 00:15:04,000 --> 00:15:10,000 Võtame pilk mõned järk-järgult keerulisemaks ja hästi kavandatud näited 267 00:15:10,000 --> 00:15:13,000 alustades kõigepealt versiooni 0 siin. 268 00:15:13,000 --> 00:15:16,000 Lubage mul minna ja avada meie MVC kataloog täna 269 00:15:16,000 --> 00:15:21,000 fail nimega index.php kataloog 0. 270 00:15:21,000 --> 00:15:26,000 Teade see on super lihtne ja väga underwhelming veebilehte 271 00:15:26,000 --> 00:15:29,000 see on omamoodi versioon 0 koduleht CS50, 272 00:15:29,000 --> 00:15:32,000 ja teate, kuidas meil on link Loengud on meil link õppekava, 273 00:15:32,000 --> 00:15:35,000 ja kui ma järgige linki Loengud teate, et URL 274 00:15:35,000 --> 00:15:39,000 üles üles ei muutu et lectures.php. 275 00:15:39,000 --> 00:15:44,000 Kui ma siis järgige linki nädal 1 märkate, et URL muudatusi week1.php. 276 00:15:44,000 --> 00:15:46,000 Tundub, et üsna lihtne hierarhiline struktuur siit. 277 00:15:46,000 --> 00:15:49,000 >> Võtame pilgu all kapuuts, kuidas see on sätestatud, 278 00:15:49,000 --> 00:15:53,000 ja tõepoolest, kui ma vaatan index.php see on üsna lihtne. 279 00:15:53,000 --> 00:15:57,000 Tegelikult, kuigi ma helistasin selle PHP faili pole tegelik programmeerimine kood. 280 00:15:57,000 --> 00:16:01,000 Seal on kommentaar, et ma kirjutasin siin PHP lihtsalt nii kasutaja ei lõpuks nägema seda. 281 00:16:01,000 --> 00:16:05,000 Muidugi, kui enne, midagi, mis on vahepeal PHP sildid 282 00:16:05,000 --> 00:16:08,000 saab tõlgendada, isegi kui see on kommentaar, ning tõlgendama kommentaar 283 00:16:08,000 --> 00:16:11,000 tähendab lihtsalt see ära visata lõpus päeval ja tegelikult ei 284 00:16:11,000 --> 00:16:15,000 saatke see brauser, nii et kõik siin on lihtsalt esteetikat. 285 00:16:15,000 --> 00:16:20,000 Kui ma avada sarnaselt lectures.php ka see on lihtsalt kõva kodeeritud faili. 286 00:16:20,000 --> 00:16:23,000 See juhtub nimetada midagi. PHP, 287 00:16:23,000 --> 00:16:27,000 kuid see on tõesti lihtsalt. html ja week1.php, week2.php 288 00:16:27,000 --> 00:16:31,000 Samamoodi on lihtsalt juurdehindlus, nii et seal on hunnik puudusi see disain. 289 00:16:31,000 --> 00:16:33,000 Üks, see on tohutu copy / paste. 290 00:16:33,000 --> 00:16:37,000 Kuigi ainus asi, mis muutub nende seas failid on ebakorrapärane nimekirja, 291 00:16:37,000 --> 00:16:41,000 li sildid, ma siiski doc tüüp, HTML, pea, 292 00:16:41,000 --> 00:16:44,000 pealkiri lähedal keha lähedal HTML ja rohkem 293 00:16:44,000 --> 00:16:47,000 aastal iga faili, mis tähendab, et kui ma kunagi tahan ümber 294 00:16:47,000 --> 00:16:50,000 Selle veebilehekülje või restylize ta mul minna ja muuta 295 00:16:50,000 --> 00:16:54,000 kõik need failid käsitsi või mõned massilist otsida ja asendada. 296 00:16:54,000 --> 00:17:01,000 >> Võtame samm targemaks, enam mõtlema disaini versioon 1 siin 297 00:17:01,000 --> 00:17:04,000 kusjuures ühe kuuled mind, et oleme lisanud nii et saate mängida koos 298 00:17:04,000 --> 00:17:07,000 need enam rahulikult kodus teate, et meil on siin 299 00:17:07,000 --> 00:17:10,000 kokkuvõte faili versioon 1 sellel saidil, 300 00:17:10,000 --> 00:17:13,000 ja tundub, et olen võtnud omale volituse tegurdada 301 00:17:13,000 --> 00:17:17,000 mõned ühised kood, header.php ja footer.php. 302 00:17:17,000 --> 00:17:20,000 Noh, võtame pilk, mis seal sees esimest neist. 303 00:17:20,000 --> 00:17:23,000 Header.php tundub tuttav, 304 00:17:23,000 --> 00:17:26,000 aga märkate Kust ta katkestas? 305 00:17:26,000 --> 00:17:30,000 Kohe pärast rida 19, nii et on kõik, mis oli ühise 306 00:17:30,000 --> 00:17:33,000 alates faili index.php, lectures.php, 307 00:17:33,000 --> 00:17:36,000 week1 ja week2.php eelmisest näitest. 308 00:17:36,000 --> 00:17:40,000 Mida ma tegin, oli koopia ja lõigatud kõik, mis oli tavaline, et kõik need failid, 309 00:17:40,000 --> 00:17:44,000 pane see eraldi päisefail, ja samamoodi ka footer.php 310 00:17:44,000 --> 00:17:48,000 ma kohaldada sama põhimõtet, mille ainus huvitav read 311 00:17:48,000 --> 00:17:52,000 aastal footer.php on need kaks, tiheda keha ja tihedat HTML. 312 00:17:52,000 --> 00:17:55,000 >> Aga mida see tähendab nüüd on see, et uus versioon 313 00:17:55,000 --> 00:17:59,000 kohta index.php teate, kui palju lihtsam on võimalik saada. 314 00:17:59,000 --> 00:18:02,000 Tõsi, veidi segasena välimusega, veidi vähem intuitiivne 315 00:18:02,000 --> 00:18:06,000 järgida ülalt alla, kuid mu Jumal, kõik see koondamine on nüüd läinud. 316 00:18:06,000 --> 00:18:10,000 Eeldame kasutades PHP funktsioon sõna otseses mõttes nimetatakse nõuda kuni top, 317 00:18:10,000 --> 00:18:15,000 mis on väga meenutab, mäletate, ühisettevõtte C # include mehhanism. 318 00:18:15,000 --> 00:18:17,000 Eeldame header.php ülaosas. 319 00:18:17,000 --> 00:18:20,000 Eeldame footer.php allosas, ja ainus asi, mis on erinev 320 00:18:20,000 --> 00:18:25,000 või eriline see fail on sisu, mis pidi olema ainulaadsed seda. 321 00:18:25,000 --> 00:18:29,000 Kui ma siis minema, ütleme, lectures.php, sama põhimõte kehtib. 322 00:18:29,000 --> 00:18:32,000 Jällegi, mõned kommentaarid up üles, aga siis ma nõuavad kaudu nõuda jalus 323 00:18:32,000 --> 00:18:35,000 ja vahel on see ainult sisu, mis on tegelikult muutunud. 324 00:18:35,000 --> 00:18:38,000 Ja kui me uurinud nädal 1 ja 2. nädal olime vaata 325 00:18:38,000 --> 00:18:42,000 et sama põhimõte oleks kohaldatud seal. 326 00:18:42,000 --> 00:18:44,000 Noh, me ei ole päris teha seal. 327 00:18:44,000 --> 00:18:48,000 >> Võtame pilk versioon 2, mis on sarnane struktuur, 328 00:18:48,000 --> 00:18:50,000 aga märkate nüüd Olen sisse midagi muud. 329 00:18:50,000 --> 00:18:53,000 Rea 10 Olen sisse helpers.php, 330 00:18:53,000 --> 00:18:55,000 mis ilmselt sisaldab helper funktsioone. 331 00:18:55,000 --> 00:18:58,000 Abistaja funktsiooni on üldiselt suhteliselt lühikese funktsioon 332 00:18:58,000 --> 00:19:01,000 et sa kirjutad, et aidata teil välja erinevates kohtades, 333 00:19:01,000 --> 00:19:04,000 ja vaatame, mis seal sees on helpers.php. 334 00:19:04,000 --> 00:19:07,000 Sel juhul tundub, et see on 2 ülesannet. 335 00:19:07,000 --> 00:19:10,000 Meenuta teistest päev meie kuubik näiteks 336 00:19:10,000 --> 00:19:13,000 saate määratleda oma funktsioonid PHP, ja mida ma olen teinud nüüd on Ma olen 337 00:19:13,000 --> 00:19:17,000 määratletud funktsioone nimetatakse muuda jalus ja muuta header, 338 00:19:17,000 --> 00:19:21,000 millest esimene leiab parameeter nimega andmeid, 339 00:19:21,000 --> 00:19:25,000 kelle vaikimisi väärtus on tühi massiiv, nagu soovitas seal, 340 00:19:25,000 --> 00:19:29,000 ja me saame tegelikult kirjutan seda veelgi tabavalt viimases versioonis PHP 341 00:19:29,000 --> 00:19:32,000 öeldes avatud square bracket, suletud square bracket. 342 00:19:32,000 --> 00:19:35,000 See tähendab tühi massiiv suurusega 0, aga siiski massiiv. 343 00:19:35,000 --> 00:19:38,000 >> See väljavõte funktsioon on natuke erilised, 344 00:19:38,000 --> 00:19:41,000 mida ta teeb on see lähtub argument assotsiatiivne massiiv 345 00:19:41,000 --> 00:19:45,000 et on 0 või rohkem põhiväärtus paari, ja kui sul on võti foo 346 00:19:45,000 --> 00:19:48,000 ja väärtus baar väljavõte funktsiooni 347 00:19:48,000 --> 00:19:51,000 loob olukorra, mis nüüd on line 11, 348 00:19:51,000 --> 00:19:57,000 Teil on lokaalne muutuja nimega $ foo mille väärtus on baar. 349 00:19:57,000 --> 00:19:59,000 Ja kui sul oleks rohkem võtmeid ja väärtusi andmete massiiv, 350 00:19:59,000 --> 00:20:03,000 Samamoodi oleks neid ekstraheeriti kohalik ulatus 351 00:20:03,000 --> 00:20:06,000 või nimi ruumi, et footer.php ja 352 00:20:06,000 --> 00:20:09,000 Sama mõte siin all, nii et header.php 353 00:20:09,000 --> 00:20:12,000 olema juurdepääs nendele muutujatele. 354 00:20:12,000 --> 00:20:15,000 Tegelikult, las ma avada taas header.php 355 00:20:15,000 --> 00:20:18,000 ja juhtida tähelepanu nüüd kuidas see välja näeb selles versioonis. 356 00:20:18,000 --> 00:20:22,000 >> Selle asemel, et raske kodeerimine CS50 nagu pealkiri iga lehekülje 357 00:20:22,000 --> 00:20:24,000 märgata dünaamilisus, et on võimalik nüüd. 358 00:20:24,000 --> 00:20:29,000 Real 5 Ma kajastas pealkiri muutuja, 359 00:20:29,000 --> 00:20:34,000 kuid kõigepealt ma möödaminnes, et pealkiri muutuja funktsiooni nimetatakse htmlspecialchars. 360 00:20:34,000 --> 00:20:38,000 Loll nimi funktsiooni, kui see on, kuid see on tõesti see, mida ta ütleb. 361 00:20:38,000 --> 00:20:41,000 See tagab, et mingeid erilisi märke 362 00:20:41,000 --> 00:20:46,000 aastal string, mis on võetud vastu nõuetekohaselt pääsenud HTML. 363 00:20:46,000 --> 00:20:49,000 See on tegelikult viis vältida midagi, mida nimetatakse rist saidi skriptimine rünnak 364 00:20:49,000 --> 00:20:52,000 kusjuures keegi ei pahatahtlikult või kogemata 365 00:20:52,000 --> 00:20:55,000 süstida oma HTML oma veebilehel 366 00:20:55,000 --> 00:20:59,000 poolt kleepimist mingil kujul, näiteks 367 00:20:59,000 --> 00:21:02,000 midagi, mida ei olnud päris loodavad, eriti JavaScript koodi, 368 00:21:02,000 --> 00:21:05,000 kui me räägime ka nädala või kahe pärast. 369 00:21:05,000 --> 00:21:08,000 >> See nüüd header.php, see on vaade 370 00:21:08,000 --> 00:21:12,000 selles mõttes, et see võimaldab teil vaadata esteetiliselt sisu mõned andmekogum. 371 00:21:12,000 --> 00:21:14,000 Aga täpsemalt, see on malli. 372 00:21:14,000 --> 00:21:19,000 See on omamoodi plaan nüüd on, mida me tahame päises igal lehel nägema, 373 00:21:19,000 --> 00:21:23,000 kuid seal on mõned dünaamilisust, et me tahame pealkiri olema dünaamiliselt lisatud 374 00:21:23,000 --> 00:21:26,000 põhineb pealkiri muutuja 375 00:21:26,000 --> 00:21:30,000 mis oli eraldatud, kui me kutsusime jällegi 376 00:21:30,000 --> 00:21:33,000 krohvi header funktsiooni. 377 00:21:33,000 --> 00:21:36,000 Nüüd, kui me vaatasime krohvi jalus, siis tegelikult ei ole palju kasutada, et praegu 378 00:21:36,000 --> 00:21:40,000 sest footer.php pole dünaamilisus üldse. 379 00:21:40,000 --> 00:21:43,000 Võiks olla, kuid praegu on see kõva kodeeritud nimekiri 2. sildid, 380 00:21:43,000 --> 00:21:46,000 kuid sama mõte kehtib, nii et tegelikult soovitab miks 381 00:21:46,000 --> 00:21:49,000 tegime aega raisata võttes muuda päis ja krohvi jalus funktsioon? 382 00:21:49,000 --> 00:21:52,000 Laske mul minna selle asemel nüüd arvesse versioon 3, 383 00:21:52,000 --> 00:21:56,000 ja versioon 3 abilised ma otsustasin, et lihtsustada veelgi. 384 00:21:56,000 --> 00:21:58,000 >> Lubage mul olla üks render funktsiooni. 385 00:21:58,000 --> 00:22:02,000 Andke mulle see võtab veel üks argument, seekord nimega mall, 386 00:22:02,000 --> 00:22:05,000 mis on mõeldud nime mall, 387 00:22:05,000 --> 00:22:11,000 ja siis ma concatenate pretensioonikas. php selle muutuja väärtus, 388 00:22:11,000 --> 00:22:17,000 ja siis, kui see on olemas foo.php, bar.php või header.php ja footer.php, 389 00:22:17,000 --> 00:22:20,000 siis ma lähen edasi minna ja väljavõtte andmeedastuskiirus 390 00:22:20,000 --> 00:22:23,000 ja siis nõuavad, et tee. 391 00:22:23,000 --> 00:22:29,000 Teisisõnu, kasutada seda nüüd, kui ma avada index.php 392 00:22:29,000 --> 00:22:32,000 märkate, et ma ei kutsu muuda header enam. 393 00:22:32,000 --> 00:22:36,000 Ma lihtsalt helistada muuta, kuid ma läbima kommenteeritud väärtuse kaudu 394 00:22:36,000 --> 00:22:39,000 teha selgeks, millist vormi ma tegelikult tahan laadida. 395 00:22:39,000 --> 00:22:41,000 >> Siis on siin märgata, mida ma teen. 396 00:22:41,000 --> 00:22:44,000 Ma panen ka dünaamiliselt võti pealkiri, 397 00:22:44,000 --> 00:22:47,000 väärtus CS50, ja seda ka, nagu me nägime enne, 398 00:22:47,000 --> 00:22:51,000 võiks teha rohkem sisutihedat viimases versioonis PHP 399 00:22:51,000 --> 00:22:54,000 kus ma saan asendada massiivi funktsiooni nurksulgudesse 400 00:22:54,000 --> 00:22:57,000 mida pakun on veelgi loetavamaks ja kindlasti 401 00:22:57,000 --> 00:22:59,000 veidi lihtsam kirjutada. 402 00:22:59,000 --> 00:23:02,000 Ja muidugi, koos krohvi jalus kõne allosas, 403 00:23:02,000 --> 00:23:05,000 me ei viitsinud läbivad teine ​​argument üldse, ei assotsiatiivne massiiv, 404 00:23:05,000 --> 00:23:07,000 sest miski dünaamiline sees, et jalus. 405 00:23:07,000 --> 00:23:10,000 See on lihtsalt lähedal silte HTML. 406 00:23:10,000 --> 00:23:14,000 Hea, et me võtame sammud tõesti puhastamine asju siin, 407 00:23:14,000 --> 00:23:17,000 kuid lubage mul avada 2 lõplik näiteid. 408 00:23:17,000 --> 00:23:21,000 See üks, number 4, teate, et ma olen teinud teadliku otsuse nüüd 409 00:23:21,000 --> 00:23:26,000 täiustada eelmise näiteks lõpuks kasutavad mõned hierarhia minu faile. 410 00:23:26,000 --> 00:23:29,000 >> Pange tähele, et selles kokkuvõte, selle luges mulle, Olen sisse 411 00:23:29,000 --> 00:23:32,000 sisaldab kataloogi ja malle kataloog 412 00:23:32,000 --> 00:23:35,000 mille sisu saab olema asju, mida ma tahan lisada 413 00:23:35,000 --> 00:23:38,000 ja malle, et ma tahan muuta vastavalt. 414 00:23:38,000 --> 00:23:42,000 See on tõesti mulle on päraku ja püüame hoida asju korras, 415 00:23:42,000 --> 00:23:45,000 hoida seotud faili kokku, kuid lõpptulemus 416 00:23:45,000 --> 00:23:48,000 on see, et meil on nüüd pisut tidier setup, kuid me peame meeles pidama nüüd 417 00:23:48,000 --> 00:23:51,000 aastal, näiteks index.php 418 00:23:51,000 --> 00:23:55,000 kui nõuame faili helpers.php 419 00:23:55,000 --> 00:24:01,000 peame nüüd seda nõuavad kaudu includes / helpers.php 420 00:24:01,000 --> 00:24:06,000 mitte lihtsalt ütlen helpers.php aga nüüd on asi tegelikult sub kataloog. 421 00:24:06,000 --> 00:24:09,000 Nüüd, kui kõrvale, näete nendes näidetes ja mõned teised 422 00:24:09,000 --> 00:24:11,000 funktsioone nagu nõuavad, nõuavad korraga. 423 00:24:11,000 --> 00:24:15,000 Seal on tegelikult funktsioon ise kutsus hulka, ja neil kõigil on veidi erinev käitumine. 424 00:24:15,000 --> 00:24:18,000 Siin ma ütlen nõuavad kord teha super selge, et ma tahan ainult need 425 00:24:18,000 --> 00:24:20,000 abilised lisada oma projekti pärast. 426 00:24:20,000 --> 00:24:24,000 Aga kui ma olen ettevaatlik ja kui ma tegelikult mõelda läbi minu loogika korralikult 427 00:24:24,000 --> 00:24:27,000 see peaks piisama ka lihtsalt öelda nõuda kuni top 428 00:24:27,000 --> 00:24:31,000 nii kaua kui ma ise ei kogemata nõuda, et sama faili mujal. 429 00:24:31,000 --> 00:24:34,000 Tegelikult on see veidi tõhusam viis asju siis kasutades 430 00:24:34,000 --> 00:24:38,000 vaja üks kord, nii et ma liistude seda allapoole, et lihtsalt vaja. 431 00:24:38,000 --> 00:24:40,000 >> Võtame ühe sammu edasi. 432 00:24:40,000 --> 00:24:46,000 See viimane näide nüüd, versioon 5, on isegi puhtam kaustade hierarhiat. 433 00:24:46,000 --> 00:24:50,000 Pange tähele, mida ma olen teinud siin ühe kuuled mind selles lõplikus versioonis 434 00:24:50,000 --> 00:24:54,000 Nüüd on mul HTML kataloog, mis mul on olnud kogu see aeg, 435 00:24:54,000 --> 00:24:58,000 kuid sees seal on praegu ainult index.php, lectures.php, 436 00:24:58,000 --> 00:25:01,000 week1.php ja week2.php. 437 00:25:01,000 --> 00:25:05,000 Sisaldab kataloog elab nüüd koos HTML-kataloog, 438 00:25:05,000 --> 00:25:08,000 nii samal tasemel nagu vend, nii rääkida. 439 00:25:08,000 --> 00:25:10,000 Seega ei mallide kausta. 440 00:25:10,000 --> 00:25:14,000 Võti Buffee siin on Olen sisse natuke rohkem struktuuri, 441 00:25:14,000 --> 00:25:17,000 kuid peamiseks tunnuseks on see, et ainult faile 442 00:25:17,000 --> 00:25:21,000 mis tuleb veebis kättesaadavad, avalikult adresseeritavad 443 00:25:21,000 --> 00:25:25,000 poolt URL avaliku interneti on minu HTML kataloog. 444 00:25:25,000 --> 00:25:28,000 >> Vahepeal muid faile, helpers.php, footer.php, 445 00:25:28,000 --> 00:25:32,000 header.php, mis on väidetavalt võibolla rohkem tundlik, 446 00:25:32,000 --> 00:25:35,000 võibolla abilised tegelikult on mõned kasutajanimed ja paroolid või mõned intellektuaalse 447 00:25:35,000 --> 00:25:39,000 kinnisvara kaevanduses, toimib ma tõesti ei taha maailma näha, isegi kui kogemata. 448 00:25:39,000 --> 00:25:45,000 See on hea tava, et hoida ära üldsuse HTML kataloog 449 00:25:45,000 --> 00:25:48,000 kõik failid, mis ei pea ennast avalikkusele. 450 00:25:48,000 --> 00:25:51,000 Kõik mida sa pead tegema sel juhul, kui vaadata näiteks 451 00:25:51,000 --> 00:25:55,000 HTML kataloogi index.php faili 452 00:25:55,000 --> 00:25:58,000 TEADE Me lihtsalt olema natuke ettevaatlikum kui vaja 453 00:25:58,000 --> 00:26:00,000 või nõuda kord seda faili. 454 00:26:00,000 --> 00:26:03,000 Ma pean kõigepealt tegema .. minna emakataloogi, 455 00:26:03,000 --> 00:26:06,000 siis ei / includes / helpers.php 456 00:26:06,000 --> 00:26:12,000 sukelduda tagasi alla saada fail, et ma hoolin. 457 00:26:12,000 --> 00:26:16,000 >> Kõik küsimused siis MVC 458 00:26:16,000 --> 00:26:20,000 või see suhteliselt lihtne kehastus sellest? 459 00:26:20,000 --> 00:26:23,000 Ja andke mulle selgeks teha, et me keskendunud üsna natuke 460 00:26:23,000 --> 00:26:27,000 V siia, arvamuste ja faktooring välja need mallid. 461 00:26:27,000 --> 00:26:30,000 Meil ei ole tõesti vahet M C veel. 462 00:26:30,000 --> 00:26:33,000 Tegelikult on tõesti mingit M siin, ja isegi meie C, 463 00:26:33,000 --> 00:26:36,000 kontroller, ei ole tegelikult teeme kõik, et palju, aga sa saad palju rohkem 464 00:26:36,000 --> 00:26:39,000 tuttav nii need 2 kirja MVC, 465 00:26:39,000 --> 00:26:43,000 või pigem, saad palju rohkem tuttav C 466 00:26:43,000 --> 00:26:49,000 aastal MVC jaoks probleem komplekt 7, nii et seal on rohkem, et silmapiiril. 467 00:26:49,000 --> 00:26:51,000 Küsimused? 468 00:26:51,000 --> 00:26:53,000 Seal on tegelikult keegi siin. 469 00:26:53,000 --> 00:26:57,000 >> Okei, nüüd liikuda edasi teise ja ühtlasi viimase teema täna. 470 00:26:57,000 --> 00:27:00,000 See on kasutusele andmebaasi. 471 00:27:00,000 --> 00:27:03,000 Kuni selle hetkeni oleme olnud vähe võimalusi andmete salvestamiseks. 472 00:27:03,000 --> 00:27:05,000 Oleme kasutanud muutujad. 473 00:27:05,000 --> 00:27:08,000 Tagasi meie C fail, I / O arutelu me hakkasime kasutama tekstifaile 474 00:27:08,000 --> 00:27:11,000 ja kasutades faile nagu fprintf, ja siis me isegi alustanud 475 00:27:11,000 --> 00:27:14,000 räägime CSV faile natuke, komaga eraldatud väärtused, 476 00:27:14,000 --> 00:27:17,000 Nii et kõik need võimaldas meil salvestatud andmed 477 00:27:17,000 --> 00:27:19,000 kas mitte püsivalt või püsivalt. 478 00:27:19,000 --> 00:27:23,000 Aga isegi CSV-des võib tegelikult ei soodusta otsimine 479 00:27:23,000 --> 00:27:25,000 ning lisades ja kustutades. 480 00:27:25,000 --> 00:27:28,000 See on tõesti lihtsalt loll tekstifaili komadega eraldatult 481 00:27:28,000 --> 00:27:30,000 rida-realt poolt rida-realt, nii et kui soovite 482 00:27:30,000 --> 00:27:32,000 Otsige see fail parim, mida saate teha on tõesti lineaarne otsing. 483 00:27:32,000 --> 00:27:34,000 Sul on alustada ülaosas faili lugeda kogu asi, 484 00:27:34,000 --> 00:27:36,000 ja otsima mõned väärtus huvi. 485 00:27:36,000 --> 00:27:39,000 Kui soovite lisada see mida sa pead tegema sama asja, 486 00:27:39,000 --> 00:27:41,000 itereerimise üle ja lisades konkreetses kohas, 487 00:27:41,000 --> 00:27:45,000 ja tegelikult, mida sa pead tegema kõik otsivad loogika ise. 488 00:27:45,000 --> 00:27:49,000 >> Sa ei saa teha tark mustrite kohta CSV-faili, kui sa ise kirjutada koodi. 489 00:27:49,000 --> 00:27:51,000 Sa ei saa teha filtreerimise CSV faili 490 00:27:51,000 --> 00:27:53,000 kui sa ise kirjutada koodi. 491 00:27:53,000 --> 00:27:56,000 Kas poleks tore, kui keegi teine ​​panna kõik jõupingutused 492 00:27:56,000 --> 00:27:59,000 et tegelikult teevad otsimine lihtne ja sisestamise lihtne 493 00:27:59,000 --> 00:28:01,000 kustutamise ja ajakohastamine ja nii edasi? 494 00:28:01,000 --> 00:28:04,000 Just seda andmebaasi. 495 00:28:04,000 --> 00:28:07,000 SQL, Structured Query Language, on järjekordne keel 496 00:28:07,000 --> 00:28:10,000 et me sisse täna, kuid ka see on üsna kättesaadavad, 497 00:28:10,000 --> 00:28:13,000 ja mida me tegelikult teeme, on lihtsalt sikutama välja mõned kõige olulisemad 498 00:28:13,000 --> 00:28:16,000 omadused nii et pset 7, ja kui sa midagi veebipõhine, 499 00:28:16,000 --> 00:28:19,000 oma lõpliku projekti, teil on võime ennast väljendada 500 00:28:19,000 --> 00:28:22,000 nõuetele andmete päringuid. 501 00:28:22,000 --> 00:28:25,000 Teil on võimalus salvestada vähe või palju andmeid 502 00:28:25,000 --> 00:28:28,000 aastal palju rohkem struktureeritud viisil, mis lõpus päev 503 00:28:28,000 --> 00:28:32,000 muuta oma elu lihtsamaks, sest SQL saab ennast väljendada 504 00:28:32,000 --> 00:28:35,000 palju täpsemalt, palju metoodiliselt, et 505 00:28:35,000 --> 00:28:40,000 saada tagasi mõned alagrupis andmeid suurem korpus andmed. 506 00:28:40,000 --> 00:28:45,000 >> Sa ei mõtle andmebaasis, antud juhul SQL andmebaasi, tõesti nagu Excel 507 00:28:45,000 --> 00:28:48,000 või numbrid, kui see on arvutustabeli, 508 00:28:48,000 --> 00:28:50,000 või äkki mitu arvutustabelite ja arvutustabeli muidugi 509 00:28:50,000 --> 00:28:53,000 on read ja veerud, ja see on, sest 510 00:28:53,000 --> 00:28:56,000 SQL andmebaasid on relatsiooniline, relatsiooniline selles mõttes, 511 00:28:56,000 --> 00:28:59,000 et nad salvestada andmeid nii need tabelid, 512 00:28:59,000 --> 00:29:01,000 read ja veerud. 513 00:29:01,000 --> 00:29:03,000 Nad on kõrgemad tulemusi kui midagi tabeli, 514 00:29:03,000 --> 00:29:05,000 ja tabel on mõeldud kasutamiseks inimese poolt. 515 00:29:05,000 --> 00:29:08,000 Andmebaas on mõeldud kasutada programmeerija 516 00:29:08,000 --> 00:29:12,000 kirjalikult koodi vastu, nii kehastus andmebaas 517 00:29:12,000 --> 00:29:14,000 saab olema kas käsurealt. 518 00:29:14,000 --> 00:29:18,000 >> Üks populaarsemaid relaatiotietokannat seal on jällegi MySQL 519 00:29:18,000 --> 00:29:22,000 mis on imeliselt tasuta, väga kõrge jõudlusega, ja see, mida 520 00:29:22,000 --> 00:29:24,000 Facebook kasutatakse väga varakult ja osaliselt veel täna 521 00:29:24,000 --> 00:29:27,000 salvestada palju oma andmed ja me näeme praegu 522 00:29:27,000 --> 00:29:30,000 et kasutades suhteliselt lihtsaid käske 523 00:29:30,000 --> 00:29:33,000 saame valida andmeid, sisestada andmed, andmeid uuendama 524 00:29:33,000 --> 00:29:37,000 kustutada andmeid jms, kuid õnneks seal on rohkem kasutajasõbralik liides 525 00:29:37,000 --> 00:29:39,000 kui kirjutades aadressil must ja valge kiire siin. 526 00:29:39,000 --> 00:29:43,000 Me kasutame pset 7 ja kaugemale tasuta tööriist nimega phpMyAdmin. 527 00:29:43,000 --> 00:29:45,000 Nimi on juhuslikud. 528 00:29:45,000 --> 00:29:47,000 Vahend juhtub rakendada PHP, 529 00:29:47,000 --> 00:29:49,000 aga see on täiesti ebaoluline. 530 00:29:49,000 --> 00:29:53,000 Mis on kasulik umbes phpMyAdmin on, et see veebipõhise utiliidi. 531 00:29:53,000 --> 00:29:55,000 Oleme eelinstalleeritud seda seadet teile, 532 00:29:55,000 --> 00:29:58,000 ja koos sellega saate luua tabelid andmebaasi, 533 00:29:58,000 --> 00:30:01,000 saate sisestada andmed, kustutada, ja üldiselt vaata 534 00:30:01,000 --> 00:30:04,000 oma andmeid üsna kasutajasõbralik keskkond. 535 00:30:04,000 --> 00:30:07,000 Teie kasutajad ei kavatse kasutada phpMyAdmin. 536 00:30:07,000 --> 00:30:09,000 >> See on tõesti ainult haldus-või arendaja vahend 537 00:30:09,000 --> 00:30:12,000 kellega näha ja tuhnima oma andmed ja nuputada, kuidas struktureerida seda, 538 00:30:12,000 --> 00:30:15,000 palju nagu te ise võiks kasutada Exceli või numbrid, 539 00:30:15,000 --> 00:30:19,000 kuid see saab olema suurepärane võimalus visualiseerida, mis toimub all kapuuts 540 00:30:19,000 --> 00:30:22,000 nii et saate keskenduda huvitav probleemilahendus ja mitte niivõrd 541 00:30:22,000 --> 00:30:25,000 aasta kauge käske. 542 00:30:25,000 --> 00:30:28,000 Võtame pilk näiteks andmeid, mis on talletatud tabularly 543 00:30:28,000 --> 00:30:30,000 aastal Relatsioonandmebaasis. 544 00:30:30,000 --> 00:30:32,000 Siin on üks selline näide. 545 00:30:32,000 --> 00:30:35,000 Nüüd kahjuks phpMyAdmin ta liiga viskamine liiga palju sõnu 546 00:30:35,000 --> 00:30:38,000 ja graafika sind, aga kui sa lihvida vaid edasi 547 00:30:38,000 --> 00:30:42,000 ID veeru kasutajanime veerus ja räsi veeru 548 00:30:42,000 --> 00:30:45,000 see on tegelikult tabelis, kuid ta juhtub olema koodijupi 549 00:30:45,000 --> 00:30:49,000 laua-seadme sisemust 550 00:30:49,000 --> 00:30:53,000 kasutades faili pakume teile probleemide kogum 7. 551 00:30:53,000 --> 00:30:57,000 >> Eelkõige anname faili, mis esindab 552 00:30:57,000 --> 00:31:01,000 kasutaja lauda nii arvutustabeli kasutajatele 3 veergu, 553 00:31:01,000 --> 00:31:05,000 millest üks on unikaalne ID, mis algab kell 1 ja seda suurendatakse seejärel. 554 00:31:05,000 --> 00:31:08,000 Teise veeru kasutajanimi ja neile, kes tegid Hacker, 555 00:31:08,000 --> 00:31:12,000 Hacker Edition pset 2, võivad tunda mõned neist kasutajanimed vähemalt. 556 00:31:12,000 --> 00:31:16,000 Paremal servas on paroolid, kuid nad ei ole sõnasõnaline paroole. 557 00:31:16,000 --> 00:31:19,000 Nad hashes selle, et see osutub 558 00:31:19,000 --> 00:31:22,000 et ladustamiseks paroolid andmebaasis on tõesti halb mõte. 559 00:31:22,000 --> 00:31:25,000 Te olete kõik ilmselt lugeda mingil hetkel mõned veebilehte 560 00:31:25,000 --> 00:31:28,000 või mõne ettevõtte andmebaasi ohus, ja siis sa pead 561 00:31:28,000 --> 00:31:31,000 muuta oma parooli, peate saada toetusi asjad 562 00:31:31,000 --> 00:31:34,000 sest mõned paha poiss tegelikult murdis oma kontole tulemusena. 563 00:31:34,000 --> 00:31:38,000 >> Ladustamiseks paroolid selge tekst, krüpteerimata andmebaasi 564 00:31:38,000 --> 00:31:41,000 on täiesti rumal, ja veel see on väga lõbus 565 00:31:41,000 --> 00:31:44,000 siis lugesin mõned väga tuntud firmad 566 00:31:44,000 --> 00:31:47,000 mõnikord ajakirjanduses, kelle andmebaasid ei kahjustata, 567 00:31:47,000 --> 00:31:50,000 ja see osa ei ole naljakas, vaid asjaolu, et andmebaasid sisaldavad krüptimata 568 00:31:50,000 --> 00:31:53,000 paroolid on naeruväärne, sest sõna otseses mõttes ühe rida koodi 569 00:31:53,000 --> 00:31:57,000 saate kaitsta et konkreetse ohu kohta, ja see on, mida me oleme teinud siin. 570 00:31:57,000 --> 00:32:00,000 Isegi meie võltsitud vähe CS50 Finance versioon 571 00:32:00,000 --> 00:32:03,000 me krüptides paroolid lihtsalt hea meede, ning asjaolu, et 572 00:32:03,000 --> 00:32:07,000 kõik need paroolid alustada $ 1 $ on vaid konventsiooni. 573 00:32:07,000 --> 00:32:10,000 See lihtsalt tähendab, et nad on krüpteeritud või tõesti räsitud, 574 00:32:10,000 --> 00:32:13,000 mis on nagu ühesuunaline krüpteerimine funktsioon 575 00:32:13,000 --> 00:32:17,000 millega te ei saa peatada selle tagajärjed midagi nimetatakse MD5. 576 00:32:17,000 --> 00:32:21,000 >> Asjaolu, et 50 on pärast see tähendab, et sool väärtus 577 00:32:21,000 --> 00:32:24,000 50 kasutati segamist kõik need paroolid välja arvatud üks. 578 00:32:24,000 --> 00:32:27,000 Miin, muidugi, nagu te näete seal, HA, 579 00:32:27,000 --> 00:32:30,000 oli kasutades erineva soola, nii neile, kes sattus kergelt kompastumisen 580 00:32:30,000 --> 00:32:33,000 võibolla Hacker 2, mis oleks võinud olla tingitud meie tarbinud 581 00:32:33,000 --> 00:32:36,000 erinevate räsi kui teised, sest mu parool on tegelikult sama 582 00:32:36,000 --> 00:32:38,000 kui mõni kasutaja sinna. 583 00:32:38,000 --> 00:32:41,000 Tegelikult, kui olete oodanud kõik need nädalat, et teada saada 584 00:32:41,000 --> 00:32:44,000 millised need paroolid olid siin olid paroolid, et sa olid vaidlustanud 585 00:32:44,000 --> 00:32:48,000 crack in Hacker väljaanne probleem komplekt 2, seega ükski liiga keeruline. 586 00:32:48,000 --> 00:32:50,000 Tegelikult Malan on olnud sama jharvard, 587 00:32:50,000 --> 00:32:54,000 kuid kui me läheme tagasi vaatasid nad erinevad. 588 00:32:54,000 --> 00:32:58,000 >> Keskendu jharvard sisse karmiinpunane, sest nad olid soolased erinevalt. 589 00:32:58,000 --> 00:33:01,000 Algoritm oli häiritud nii, et 590 00:33:01,000 --> 00:33:05,000 räsi väärtus, krüpteeritud väärtus paistab pisut teistsugune 591 00:33:05,000 --> 00:33:08,000 sest sisendid olid veidi erinevad, kuid parool all kapuuts 592 00:33:08,000 --> 00:33:10,000 oli ikka lõpuks karmiinpunane. 593 00:33:10,000 --> 00:33:12,000 Nüüd, kes hoolib sellest? 594 00:33:12,000 --> 00:33:15,000 Noh, meil on teile pakkuda kasutajate valim, valimi kasutajanimed 595 00:33:15,000 --> 00:33:18,000 ja hashes oma paroole, nii et sa tegelikult mõned 596 00:33:18,000 --> 00:33:23,000 kliendid CS50 rahandusminister, kui te esimest Tõusta oma kood. 597 00:33:23,000 --> 00:33:27,000 Sa pead ellu rohkem tabelite sees MySQL, sees andmebaasi. 598 00:33:27,000 --> 00:33:30,000 Sul on luua rohkem tabeleid, tõhusalt, kuid oleme otsustanud anda teile see üks 599 00:33:30,000 --> 00:33:33,000 võite alustada, ja sa näed, et probleem komplekt spetsifikatsioon 600 00:33:33,000 --> 00:33:37,000 suunab teid läbi protsessi importiva tabelis 601 00:33:37,000 --> 00:33:39,000 ja ka selgitada, mida mõned omadused on 602 00:33:39,000 --> 00:33:41,000 ja näete ka, et me pakkuda teile kood 603 00:33:41,000 --> 00:33:44,000 käsitseda hashing või krüpteerimist nende paroolide 604 00:33:44,000 --> 00:33:49,000 nii et sa ei pea muretsema liiga palju, mida MD5 vms on tegelikult kõike. 605 00:33:49,000 --> 00:33:53,000 >> Niisiis, SQL, Structured Query Language. 606 00:33:53,000 --> 00:33:56,000 See on lihtsalt, keel me parasjagu kasutama hakata ka pset 7 607 00:33:56,000 --> 00:34:01,000 ja veel kauemgi nõuda andmeid mõned andmebaasis. 608 00:34:01,000 --> 00:34:06,000 Andmed on taas salvestatud tabularly nendes relational tabelite, veergude ja ridade 609 00:34:06,000 --> 00:34:09,000 kuid kasutades mõned suhteliselt lihtne süntaks, nagu Kustuta, 610 00:34:09,000 --> 00:34:12,000 sisestada, ajakohastada ja valige me saame teha just nii. 611 00:34:12,000 --> 00:34:15,000 Me ei saa kustutada andmebaasist, siis sisesta, 612 00:34:15,000 --> 00:34:19,000 uuendada andmeid, samuti vali, st andmete toomiseks andmebaasi. 613 00:34:19,000 --> 00:34:21,000 Kuidas me minna seda teed? 614 00:34:21,000 --> 00:34:23,000 Lubage mul minna seadmesse. 615 00:34:23,000 --> 00:34:28,000 Las ma tõmba http://localhost, 616 00:34:28,000 --> 00:34:30,000 mis jällegi on kohalik seade ise. 617 00:34:30,000 --> 00:34:32,000 See on selle vaikimisi hüüdnime. 618 00:34:32,000 --> 00:34:35,000 Ja lubage mul minna / phpmyadmin. 619 00:34:35,000 --> 00:34:39,000 See juhtub olema spetsiaalne URL, et seade on eelseadistatud aru 620 00:34:39,000 --> 00:34:42,000 et kohe sunnib mind kasutajanimi ja parool. 621 00:34:42,000 --> 00:34:46,000 >> Nagu tavaliselt, ma lähen kirjutama jharvard ja karmiinpunane, 622 00:34:46,000 --> 00:34:48,000 aga aru, et on administraatori konto arvutis. 623 00:34:48,000 --> 00:34:53,000 See on lihtsalt kokkusattumus, et seal on ka jharvard registreeritud CS50 rahandusministeerium. 624 00:34:53,000 --> 00:34:56,000 Jharvard, karmiinpunane, enter annab mulle kasutajaliides, mida me nägime 625 00:34:56,000 --> 00:34:59,000 pilguheit hetk tagasi, ja see on natuke valdav esimesel, 626 00:34:59,000 --> 00:35:02,000 kuid kindel, et sa kunagi pead klikkima enamik linke selle tööriista. 627 00:35:02,000 --> 00:35:05,000 Sa lõpuks kasutavad väikest osa, mis on super abivalmis, 628 00:35:05,000 --> 00:35:08,000 millest esimene on andmebaasid siin. 629 00:35:08,000 --> 00:35:11,000 Kui ma lähen kuni andmebaasid, märkate, et ma olen palutakse luua andmebaasi. 630 00:35:11,000 --> 00:35:14,000 See on nagu luua uusi Exceli faili, tõhusalt. 631 00:35:14,000 --> 00:35:18,000 Ma lähen edasi minna ja nimetada seda loeng, ja ma lihtsalt ignoreerida valdkonnas olemas, võrdlemisele. 632 00:35:18,000 --> 00:35:20,000 See on pistmist esindatus neis sisalduvaid andmeid, 633 00:35:20,000 --> 00:35:24,000 ja ma lähen klõpsa luua, ja nüüd märgata nagu ma Lase luua 634 00:35:24,000 --> 00:35:27,000 vasakul servas, kus ta ütleb ei andmebaasid 635 00:35:27,000 --> 00:35:30,000 Ma peaks varsti näha loeng andmebaasi. 636 00:35:30,000 --> 00:35:32,000 >> Kui ma nüüd kliki vasakul servas, loeng andmebaasi 637 00:35:32,000 --> 00:35:34,000 märgata minu klapid muuta natuke. 638 00:35:34,000 --> 00:35:38,000 Mul struktuur, SQL, eksport, import ja mõned muud asjad. 639 00:35:38,000 --> 00:35:40,000 Struktuur on päris palju tühja. 640 00:35:40,000 --> 00:35:43,000 Ühtegi tabelit leida andmebaas, nagu ta ütleb siin, 641 00:35:43,000 --> 00:35:47,000 niiet luua tabel, ja lähme edasi ja luua tabel 642 00:35:47,000 --> 00:35:53,000 meeldib õpilastele ja kui palju veerge me tahame? 643 00:35:53,000 --> 00:35:55,000 Hoidkem seda lihtsat ja olgem rekord igale õpilasele 644 00:35:55,000 --> 00:35:58,000 ID number, nimi ja e-posti aadress. 645 00:35:58,000 --> 00:36:02,000 >> Hoiame seda lihtsalt niimoodi, et 3 veergu, minna. 646 00:36:02,000 --> 00:36:05,000 Vormis, et näete siin on nüüd natuke segane ja valdav, 647 00:36:05,000 --> 00:36:08,000 aga me lihtsalt peame minema läbi rida-realt, nii tõesti kiiresti anname 648 00:36:08,000 --> 00:36:14,000 esimeses veerus nimetatud andmebaasi nimi ID kordumatu tunnus. 649 00:36:14,000 --> 00:36:17,000 See saab olema täisarv. Ma ei saa tegelikult ignoreerida pikkus ja väärtused. 650 00:36:17,000 --> 00:36:21,000 Int saab olema 32 bitti ükskõik mida sa kirjutad seal, niiet jätke see tühjaks. 651 00:36:21,000 --> 00:36:24,000 Vaikimisi väärtus, ma võiksin teha seda null, nagu see on määratletud. 652 00:36:24,000 --> 00:36:27,000 Ma jätan selle rahule. Ärme muretse vaikeväärtused. 653 00:36:27,000 --> 00:36:29,000 Olgem leidke üle siin paremal, atribuute. 654 00:36:29,000 --> 00:36:31,000 See on huvitav. 655 00:36:31,000 --> 00:36:33,000 Lähme edasi ja mõnevõrra meelevaldselt väita, et sümbolid peavad olema allkirjastamata. 656 00:36:33,000 --> 00:36:35,000 Ärme raiska negatiivsed arvud. 657 00:36:35,000 --> 00:36:37,000 >> Lähme 0-4000000000, anda või võtta, 658 00:36:37,000 --> 00:36:40,000 ja siis ärme puutu, on neid valdkondi lihtsalt veel seal, 659 00:36:40,000 --> 00:36:43,000 kuid siis andke mulle kirjuta nimi siia alla, 660 00:36:43,000 --> 00:36:46,000 ja siis teine ​​oli kiri, et saak on e-posti 661 00:36:46,000 --> 00:36:50,000 ja nimi, ilmselt mitte täisarvud, nii et vaatame neid muuta, et eri valdkonnas. 662 00:36:50,000 --> 00:36:53,000 Selgub, varchar, muutuv pikkus char, 663 00:36:53,000 --> 00:36:56,000 on nagu string SQL andmebaasi 664 00:36:56,000 --> 00:36:59,000 kuid eri pikkusega, ja sa tegelikult öelda seda ette 665 00:36:59,000 --> 00:37:02,000 Maksimaalne stringi pikkusena, nii et ma lähen veidi meelevaldselt 666 00:37:02,000 --> 00:37:05,000 Tavapäraselt tüüp 255 märki. 667 00:37:05,000 --> 00:37:08,000 Ma võiks täiesti öelda 32. Võiksin öelda 1000. 668 00:37:08,000 --> 00:37:11,000 Sa sellist vajadust otsustada ise põhineb teie demograafia, mis on 669 00:37:11,000 --> 00:37:14,000 Pikim õpilase nimi ja lähevad selle numbri või veidi suurem, 670 00:37:14,000 --> 00:37:17,000 kuid milline on ilus umbes varchar on ta ei kavatse raisata 671 00:37:17,000 --> 00:37:19,000 255 baiti iga õpilase nimi. 672 00:37:19,000 --> 00:37:23,000 Kui see on David ta ei kavatse kasutada kogu 255 baiti, 673 00:37:23,000 --> 00:37:26,000 aga see on ülemise, nii et ma lähen 255 lihtsalt kokkuleppeliselt, 674 00:37:26,000 --> 00:37:30,000 aga me võiksime arutleda, et olla mõned madalama väärtusega, ja e-posti aadress 675 00:37:30,000 --> 00:37:34,000 lihtsalt olla järjepidev 255, kuid jällegi, me võiks olla sama arutelu. 676 00:37:34,000 --> 00:37:36,000 Aga ma teen ühe asja üle siin paremal pool. 677 00:37:36,000 --> 00:37:40,000 >> Mis võimas umbes andmebaasis on see, et ta saab teha palju rasket tööd 678 00:37:40,000 --> 00:37:42,000 või keeruline töö. 679 00:37:42,000 --> 00:37:46,000 Eelkõige ma tõesti ei huvita, mida mu õpilase ID numbrid on. 680 00:37:46,000 --> 00:37:49,000 See on lihtsalt mõeldud olema kordumatu tunnus andmebaasi 681 00:37:49,000 --> 00:37:52,000 nii et mul on 32-bitine sisutihe esitus, et õpilane 682 00:37:52,000 --> 00:37:55,000 nii et mul on mingi võimalus üheselt kindlaks nende 683 00:37:55,000 --> 00:37:58,000 muidu seal on 2 Davids, näiteks klassis. 684 00:37:58,000 --> 00:38:01,000 Tegelikult ma lähen vaatan seda AI kast, auto juurdekasvu, 685 00:38:01,000 --> 00:38:04,000 nii et andmebaasi MySQL, nuputab 686 00:38:04,000 --> 00:38:08,000 mida iga vastlisatud õpilase ID saab olema. 687 00:38:08,000 --> 00:38:11,000 Ma isegi ei pea hooli, et minu kood, 688 00:38:11,000 --> 00:38:13,000 ja ma lähen samuti valida midagi alla indeks menüü. 689 00:38:13,000 --> 00:38:17,000 Indeksi rippmenüüst siin on esmane, ainulaadne, 690 00:38:17,000 --> 00:38:19,000 indeks ja tervikteksti. 691 00:38:19,000 --> 00:38:21,000 Saate võibolla arvata, mida paar need asjad on, 692 00:38:21,000 --> 00:38:24,000 kuid selgub ka relaatiotietokannat 693 00:38:24,000 --> 00:38:28,000 sa programmeerija või andmebaasi administraator saad ennatlikult 694 00:38:28,000 --> 00:38:32,000 anna vihjeid, et andmebaas, millised väljad 695 00:38:32,000 --> 00:38:34,000 tabelis on veidi eriline. 696 00:38:34,000 --> 00:38:37,000 >> Näiteks sel juhul ma ütlen, et ID 697 00:38:37,000 --> 00:38:42,000 saab olema esmane indeks, muidu tuntud primaarvõti. 698 00:38:42,000 --> 00:38:44,000 Mida see tähendab määratluse järgi on see, et ID edaspidi 699 00:38:44,000 --> 00:38:48,000 on üheselt identifitseerida õpilased tabelis. 700 00:38:48,000 --> 00:38:53,000 Mitte ükski õpilane on sama ID, sest ma olen millega see piirang või selle indeksi. 701 00:38:53,000 --> 00:38:55,000 Lisaks, mida see kavatseb teha minu jaoks on see saab öelda 702 00:38:55,000 --> 00:38:58,000 MySQL et ID on eriline. 703 00:38:58,000 --> 00:39:03,000 Ma hoolin eriti umbes ID, nii et edasi minna ja teha oma väljamõeldud andmestruktuur maagia, 704 00:39:03,000 --> 00:39:05,000 luua mingi puu. 705 00:39:05,000 --> 00:39:08,000 Tavaliselt on see midagi, mida nimetatakse B-puu, kus me ei tundnud nädalat tagasi 706 00:39:08,000 --> 00:39:11,000 aga see on teine ​​selline andmestruktuur sarnase sisuga kahendpuuks 707 00:39:11,000 --> 00:39:15,000 ja üritab, et me vaatasime, kuid see saab öelda 708 00:39:15,000 --> 00:39:18,000 andmebaasis selles valdkonnas on nii oluline, et ma ilmselt 709 00:39:18,000 --> 00:39:22,000 tahan olla võimeline otsida see, minna ja luua mõned fancy 710 00:39:22,000 --> 00:39:25,000 andmestruktuur mälu kiirendada otsinguid nii et ideaalis 711 00:39:25,000 --> 00:39:28,000 nad pidevalt aega või vähemalt nii lähedal, et võimalikult 712 00:39:28,000 --> 00:39:32,000 nii et see ei vaimule lineaarne otsing, mis ei kavatse olla 713 00:39:32,000 --> 00:39:34,000 kõige kõrgetasemelistele lähenemine. 714 00:39:34,000 --> 00:39:37,000 Seevastu e-posti aadress oleks võinud olla primaarvõti. 715 00:39:37,000 --> 00:39:41,000 >> Teoreetiliselt kõigi e-posti aadress on unikaalne, kui jagate oma konto, 716 00:39:41,000 --> 00:39:45,000 kuid et üldiselt ei ole hea kasutada midagi string 717 00:39:45,000 --> 00:39:49,000 kui primaarvõti, sest kui tema eesmärk elus on üheselt identifitseerida 718 00:39:49,000 --> 00:39:55,000 rida oma tabeli pole mingit põhjust kasutada 255 baiti maksimaalselt 719 00:39:55,000 --> 00:39:58,000 üheselt identifitseerida keegi, kui te ei pääse vaid 4 baiti 720 00:39:58,000 --> 00:40:00,000 või 32-bitine int. 721 00:40:00,000 --> 00:40:03,000 Üldiselt primaarvõti peaks olema lühike ja sisutihe 722 00:40:03,000 --> 00:40:07,000 ja ideaalis midagi täisarv või suur int, mis juhtub olema 64 bitti. 723 00:40:07,000 --> 00:40:11,000 Aga e-posti aadress peab olema unikaalne, ja üks funktsioone andmebaasi liiga 724 00:40:11,000 --> 00:40:14,000 on jõustada unikaalsus minu jaoks. 725 00:40:14,000 --> 00:40:18,000 Valides ainulaadne siin kõrval kiri, kuigi kirjuta ise 726 00:40:18,000 --> 00:40:21,000 rullub lahti ekraani, ma väidan, et andmebaas 727 00:40:21,000 --> 00:40:23,000 ei usalda mind. 728 00:40:23,000 --> 00:40:26,000 Ära lase mul lisada andmebaasi 729 00:40:26,000 --> 00:40:29,000 sama e-posti aadress kaks korda, isegi kui ma olen idioot ja ma ei ole 730 00:40:29,000 --> 00:40:32,000 väga hea minu IFS ja muud investeerimisfondid ja tegelik PHP kood 731 00:40:32,000 --> 00:40:37,000 ja ma kogemata lasta kasutaja registreerima olemasolevad e-posti aadress 732 00:40:37,000 --> 00:40:40,000 andmebaasis on järjekordne kaitsekulutuste tase õigsuse eest 733 00:40:40,000 --> 00:40:44,000 et tagada, et dubleerida e-posti aadress ei jõua tabelis. 734 00:40:44,000 --> 00:40:49,000 >> Nüüd, vastupidi, nime sa ilmselt ei taha teha, et ainulaadne 735 00:40:49,000 --> 00:40:51,000 sest siis ei saa kunagi olema 2 Davids või 2 Mike Smiths, näiteks 736 00:40:51,000 --> 00:40:55,000 oma andmebaasi, nii et me lihtsalt rahule jätma. 737 00:40:55,000 --> 00:40:58,000 Ma lähen edasi minna ja kliki päästa alt paremale, 738 00:40:58,000 --> 00:41:02,000 ja kõik tundub hea, kuid märgata siin 739 00:41:02,000 --> 00:41:04,000 See on osa, et nüüd me ei veedavad liiga palju aega 740 00:41:04,000 --> 00:41:07,000 sest süntaks on veidi keeruline, ja meil ei ole luua tabelid 741 00:41:07,000 --> 00:41:10,000 kõik, et sageli, kuid SQL ise on keel, 742 00:41:10,000 --> 00:41:13,000 süntaks, mis on siin, et ma olen rõhutanud. 743 00:41:13,000 --> 00:41:18,000 Mis phpMyAdmin tõesti on see loob veebipõhise graafilise teile 744 00:41:18,000 --> 00:41:23,000 millega saab säästa aega ja ei pea käsitsi tippida välja 745 00:41:23,000 --> 00:41:26,000 üsna pikk SQL päring niimoodi. 746 00:41:26,000 --> 00:41:29,000 >> Teisisõnu, kui sa tahad käsitsi luua selles tabelis, 747 00:41:29,000 --> 00:41:32,000 kas see must ja valge kiire või isegi phpMyAdmin 748 00:41:32,000 --> 00:41:35,000 kasutades selleks muu tab, see SQL sakk kus saab sisestada mistahes SQL päringuid 749 00:41:35,000 --> 00:41:38,000 tahad ausalt öeldes see oleks võtnud mind minut 750 00:41:38,000 --> 00:41:41,000 tegelikult mäletan kogu süntaks, ja isegi siis ma ilmselt oleks 751 00:41:41,000 --> 00:41:45,000 tehtud mõned kirjavigu, nii et see vahend on kasulik asjad niimoodi, ja see on ka õpetlik. 752 00:41:45,000 --> 00:41:49,000 Võite alustada järeldada mida süntaks on 753 00:41:49,000 --> 00:41:52,000 lihtsalt kena värvikoodide et phpMyAdmin on lisades 754 00:41:52,000 --> 00:41:54,000 meie visuaalse mugavuse. 755 00:41:54,000 --> 00:41:56,000 Aga nüüd teeme seda mitte. 756 00:41:56,000 --> 00:42:00,000 Lubage mul minna menüü Lisa tipus, ja lase mul minna ja sisestada näiteks 757 00:42:00,000 --> 00:42:04,000 ID, oletame-tegelikult ma ei hooli. 758 00:42:04,000 --> 00:42:07,000 See läheb auto juurdekasvu. Ma lasen andmebaasi sellega tegelema. 759 00:42:07,000 --> 00:42:11,000 Aga mina olen David ja mu e peaks olema malan@harvard.edu. 760 00:42:11,000 --> 00:42:16,000 >> Lähme edasi siin ja pane Mike Smith teine. 761 00:42:16,000 --> 00:42:18,000 Ma annan endale perekonnanime ka, 762 00:42:18,000 --> 00:42:22,000 ja me oleme temaga olla smith@example.com, 763 00:42:22,000 --> 00:42:24,000 ja siis kui ma saan minna edasi? 764 00:42:24,000 --> 00:42:27,000 Noh, tundub, go on nuppu klikkima, ja voila. 765 00:42:27,000 --> 00:42:30,000 Teade ülaosas 2 rida lisatakse. 766 00:42:30,000 --> 00:42:32,000 See on tegelik SQL päring. 767 00:42:32,000 --> 00:42:36,000 See on phpMyAdmin vahend täita minu jaoks, 768 00:42:36,000 --> 00:42:40,000 kuid lõpptulemus, teate, kui ma nüüd minna sirvida menüü 769 00:42:40,000 --> 00:42:43,000 on näha 2 rida selles tabelis, väga meenutab esteetiliselt 770 00:42:43,000 --> 00:42:46,000 toodud tabeli nägime meie kasutajatele alates pset 7, 771 00:42:46,000 --> 00:42:51,000 kellest üks on David Malan, kellest üks on praegu Mike Smith. 772 00:42:51,000 --> 00:42:54,000 Aga et asi selge oleks, ma ei pea kasutama phpMyAdmin, 773 00:42:54,000 --> 00:42:56,000 ja tõesti, sa lähed varsti kirjalikult koodi pset 7 774 00:42:56,000 --> 00:43:01,000 mis automatiseerib protsessi lisades ridade kustutamine rida, ajakohastamise read jms, 775 00:43:01,000 --> 00:43:04,000 las ma selle asemel minna SQL sakk siin 776 00:43:04,000 --> 00:43:14,000 ja kirjuta select * from õpilastele, kus 777 00:43:14,000 --> 00:43:18,000 e = "malan@harvard.edu." 778 00:43:18,000 --> 00:43:21,000 >> Teisisõnu arvan, nüüd teil on 779 00:43:21,000 --> 00:43:26,000 mõned HTML-vormi, ja kasutaja tipib oma e-posti aadress, muu hulgas valdkondades, 780 00:43:26,000 --> 00:43:29,000 ja eesmärk nüüd on PHP kolp kood 781 00:43:29,000 --> 00:43:31,000 tegelikult otsida, et kasutaja teised detailid. 782 00:43:31,000 --> 00:43:34,000 Mis on teie täielik nimi? Mis on sinu ID numbrit? 783 00:43:34,000 --> 00:43:37,000 Sa võiksid kirjutada SQL päring niimoodi, valige * üliõpilased 784 00:43:37,000 --> 00:43:40,000 kus e = "malan@harvard.edu." 785 00:43:40,000 --> 00:43:46,000 Ja kui ma siis nuppu Mine, märkate, et ma peaks, ja tõesti ma, tule tagasi vaid üks rida. 786 00:43:46,000 --> 00:43:50,000 Mike jäetakse see tulemus komplekt, nagu kogumine rida 787 00:43:50,000 --> 00:43:53,000 seda kutsutakse, sest ta ei ole sama e-posti aadressi mulle. 788 00:43:53,000 --> 00:43:57,000 >> Kordan, siin pset 7 saad kasutada phpMyAdmin administreerimisvahendina 789 00:43:57,000 --> 00:44:00,000 ja pedagoogiline vahend õppida oma teed 790 00:44:00,000 --> 00:44:03,000 üle maailma SQL, kuid lõpus päev 791 00:44:03,000 --> 00:44:08,000 sa lähed olema kirjalikult nende päringute sees tegelik PHP koodi, 792 00:44:08,000 --> 00:44:11,000 ja nii stay tuned sisse Zamyla on läbikäiguks eriti 793 00:44:11,000 --> 00:44:14,000 kus saad ekskursioon jaotus kood see probleem komplekt 794 00:44:14,000 --> 00:44:18,000 kus me oleme sulle andnud mitte ainult esteetika jaoks sisselogimise lehele 795 00:44:18,000 --> 00:44:21,000 ja kena seksikas logo, mis ütleb CS50 Finance, kuid me oleme ka teile 796 00:44:21,000 --> 00:44:24,000 hunnik funktsioone, mis teevad teie elu veidi lihtsamaks. 797 00:44:24,000 --> 00:44:27,000 Me oleme ka kirjaliku osa pset teile, 798 00:44:27,000 --> 00:44:32,000 Sisene osa sellest eriti, et anda teile tunde esindaja disain 799 00:44:32,000 --> 00:44:36,000 et tegelikult kasutab kontroller, näiteks index.php, 800 00:44:36,000 --> 00:44:40,000 Joomla jms, ja siis näete pset ka malle kataloog 801 00:44:40,000 --> 00:44:43,000 et on kõik oma seisukohti, kõik esteetika. 802 00:44:43,000 --> 00:44:46,000 Ja nii üldist töövoogu pset 7 saab olema, et 803 00:44:46,000 --> 00:44:49,000 teie kasutajad külastavad kontrolleriga läbi URL brauseris. 804 00:44:49,000 --> 00:44:53,000 See kontroller sisaldab PHP koodi, mis sa kirjutasid, ja sees oma PHP kood 805 00:44:53,000 --> 00:44:57,000 võiks mõned read SQL pesitses vahel jutumärgid 806 00:44:57,000 --> 00:45:00,000 ja edasi funktsiooni me kirjutas nimega päring 807 00:45:00,000 --> 00:45:03,000 mis aitavad teil rääkida andmebaasi ilma midagi 808 00:45:03,000 --> 00:45:05,000 haldus-tööriista nagu phpMyAdmin. 809 00:45:05,000 --> 00:45:08,000 >> Sul on võimalik kirjutada SQL avaldused PHP kood 810 00:45:08,000 --> 00:45:11,000 ja saada tagasi PHP massiivi tulemuse hulka, 811 00:45:11,000 --> 00:45:14,000 Ridade et tegelikult sobivad, et päring. 812 00:45:14,000 --> 00:45:18,000 Ja samamoodi on teil võimalik teha lisandused või kustutada 813 00:45:18,000 --> 00:45:22,000 või uuendused vms, süntaks, mis on üsna sarnane, 814 00:45:22,000 --> 00:45:25,000 ja näed mõne Interneti viiteid, st jaotus kood 815 00:45:25,000 --> 00:45:29,000 ja pset pakk ise täpselt, kuidas edasi minna tehes. 816 00:45:29,000 --> 00:45:33,000 Aru lõpuks me tõesti ainult kriimustada pinda SQL 817 00:45:33,000 --> 00:45:36,000 ja MySQL, kuid võimsus on tõesti, et see vabastab teid 818 00:45:36,000 --> 00:45:40,000 keskenduda probleemidele, mida soovite lahendada, kasutamise juhtudel soovite rakendada 819 00:45:40,000 --> 00:45:43,000 ilma et peaks muretsema üsna palju, vähemalt varakult, 820 00:45:43,000 --> 00:45:47,000 kus ja kuidas salvestada ja otsida oma andmebaasi, 821 00:45:47,000 --> 00:45:50,000 ja see on sõna otseses mõttes, kus Facebook ise sai alguse 822 00:45:50,000 --> 00:45:53,000 kasutades MySQL ja seejärel kasutades rohkem MySQL serverid ja siis veel MySQL serverid 823 00:45:53,000 --> 00:45:57,000 Enne pikk, kuni nad siis tuli tõesti hakata mõtlema raske, kuidas 824 00:45:57,000 --> 00:46:00,000 andmete salvestamiseks, kuidas säilitada asju veelgi tõhusamalt, 825 00:46:00,000 --> 00:46:04,000 Nii et kuigi me enesestmõistetavaks, et indeksid ja ainulaadne piiranguid 826 00:46:04,000 --> 00:46:08,000 ja nii edasi lihtsalt tööd seal on väga huvitav vestlus 827 00:46:08,000 --> 00:46:12,000 et seda kõike lõpuks viia, nii aru, et me lihtsalt kriimustada pinda 828 00:46:12,000 --> 00:46:17,000 mis võib lõpuks sulle või su projektid muutunud üsna natuke suur andmed. 829 00:46:17,000 --> 00:46:22,000 >> Olles seda öelnud, teeme end siin, ja me näeme järgmisel nädalal. 830 00:46:28,000 --> 00:46:30,000 [CS50.TV]