[Powered by Google Translate] [8. nädalal, Jätkub]
[David J. Malan] [Harvardi Ülikool]
[See on CS50.] [CS50.TV]
>> See on CS50, nii et see on lõpuks 8. nädal siin.
Meil muidugi oli natuke orkaani varem sel nädalal,
nii kohe on tõesti ainult sina ja mina selles saalis,
kuid täna me jätkame vestlust PHP
ja umbes veebi programmeerimine üldisemalt, ja me ka tutvustada ideed
andmebaaside, eriti üks nn MySQL, mis on üsna populaarne nendel päevadel,
Suures osas tänu oma mastaapsuse samuti sellepärast, et oleks tasuta ja avatud lähtekoodiga.
>> Aga kõigepealt pilk, kus me pooleli jäime viimast korda.
Tuletame meelde, et otsisime mitu Frosh IEd näiteid,
ja see oli kole vorm, mida ma tulid välja mõned 15 + aastat tagasi
et on õpilaste loengusse registrisse uustulnuk ettevõttesisene sport
ilma et oleks tegelikult trek enam üle õue Wigglesworth
libisema füüsilise paberile all mõned Proctor uks.
Selle asemel kolisime kõike online, kuid selleks oli vaja kasutada
Mõne tehnoloogiaid, nii et üks, meil oli vaja HTML, hüpertekst-märgistuskeel,
mis jälle on see märgistuskeel, millega te teete veebilehti struktuuriga.
>> Kasutades natuke CSS nendel päevadel, kaskaadlaadistikke,
mille me kasutame stylizations selle veebilehe kasutades veidi teistsugune süntaks,
arvestades HTML oli kõike selle struktuuri.
Samuti peame kasutusele veebi programmeerimine keeles.
Sellisel juhul me kasutame PHP ja PHP läheb võimaldavad meil
dünaamiliselt väljund sisu, samuti teha programmiline asjad
E-kirjade saatmine, nagu juhtus märkusele jätsime eelmisel nädalal.
>> Tuletame meelde, et kood oli see 2 osa.
Üks oli meil froshims3.php,
ja seda suuresti juurdehindlus koos HTML-vormi sees on,
killuke CSS siin stiilis atribuudid
nii et vorm ise oleks keskendunud leht, kuid pärast seda
meil oli mingi tüüpiline vorm sisendid, tekstiväli, märkeruut,
mõned nööpe, valige Menüü ja submit nuppu.
Ja selle vormi kaudu, me esitatud toimikust, et oli ilmselt nn register3.php,
mis ise vaatasin natuke midagi sellist.
Nüüd on enamik koodi register3.php, mäletate, oli kõike e.
Ta tegi natuke kinnitamise vorm, mis esitati veenduda
et põllud tegelikult kui oodati.
Siis me kutsusime mõned PHP funktsioonide veidi uus süntaks,
kuigi see on laenatud C.
>> See nool operaator lubab meil kasutada midagi, mida nimetatakse objektorienteeritud programmeerimine.
Me ei hakka et igal detail siin, kuid tean nüüd
see on viis, mille funktsioonid on seotud esemed,
mis on eri tüüpi struktuuri, nagu me nägime C.
Aga nüüd, lihtsalt võtta usus, et see on õige süntaks kasutada
kasutades raamatukogu niimoodi PHPMailer raamatukogu.
Ja siis lõpuks seda faili olime dünaamiliselt loodud talle
mis sai saata minu jharvard@cs50.net konto
minu jharvard@cs50.net konto
ja me teavitanud kasutaja vastavalt, et nad olid olnud registreeritud seda spordiala.
See on päris palju, mida Frosh IEd saidi tegid kõik need aastad tagasi
kui ma seda rakendanud, antud mõnes muus keeles,
kuid see näitab ehk jõud, mis teil on
Nüüd, et sa ennast väljendada mitte ainult programmiliselt
madalal tasemel keeles nagu C, kuid palju kõrgem
Nende väga reaalses maailmas rakendusi nagu e tegelikult lahendada
mõned reaalses maailmas probleeme.
>> Nüüd, muidugi, kuigi ma kasutan selle skripti genereerida mõned
e dünaamiliselt jharvard@cs50.net, mis on tõepoolest konto
et mul on juurdepääs, ei olla üsna ettevaatlik saata
ainult posti kontodelt, on tegelikult oma,
muidu asjad sulle natuke kuuma vett elus.
Olles seda öelnud, lähme nüüd üleminekut lahendada erinevaid probleeme kokku,
et säilitada riikides.
Nüüd, mida see tegelikult tähendab?
HTTP, see Hypertext Transfer Protocol,
on tegelikult kodakondsuseta protokoll, ja mida see tähendab, et
kui sa tõmba midagi nagu Google.com ja seejärel vajutage enter
tavaliselt teie brauseris on mingi ketramine ikoon, siis
tulemusi mõnedes veebileht laetakse,
ja siis see väike ikoon lõpetab keerlemise ja et tõepoolest viitab
et HTTP on lõpetanud mingi ühendus serveriga ja ongi kõik.
HTTP on kodakondsuseta selles mõttes, et see ei hoia
püsiv ühendus serveriga samamoodi Skype ei
või gchat ei sest HTTP
eeldus on, et kui olete tõmmatud veebilehe ongi kõik.
>> Nüüd tegelikult nendel päevadel saidid nagu Facebook ja Google Maps
ja Twitter jms seal on palju rohkem dünaamikat, mille
isegi pärast seda ikoon peatub ketramine saate tegelikult saada rohkem uudiseid
serverist rohkem tweets, rohkem staatuse uuendusi Facebookis jms.
Kuid isegi see kasutab tehnikat, et me räägime ka nädal või kaks
tuntakse Ajax kasutades keeles nimetatakse JavaScript,
kuid lõpus päeval, HTTP on ikka kodakondsuseta.
Ja veel, kui sa tahad kuidagi mäletan asju kasutaja
isegi pärast olen lahti oma server
PHP ei pakuvad teile vahend selle
sest nagu me nägime viimast korda, PHP on mitmeid superglobals,
ja superglobal on jällegi eriline globaalne muutuja
et teada andis teile veebiserver ja PHP ise.
>> Sa ei pea midagi tegema panna väärtusi see,
ja vahel superglobals oleme näinud siiani on GET ja POST,
mis on koht, kus vormiväljad panna automaatselt teie eest,
samuti paar teised, et me ei ole näinud veel.
Toas on $ _SERVER mõned erilised seotud muutujate server ise.
Mis on IP-aadress, mida protokoll, HTTP või HTTPS sa kasutasid,
mida päringu meetodit sa kasutada jms, nii et seal mõned huvitavad,
mahlane üksikasju server, ja tegelikult, kasutaja seal hästi.
Seal on $ _COOKIE, mis on koht, kus neid asju nimetatakse salvestada küpsiseid.
Me ei kuluta aega küpsised end täna,
kuid tean nüüd, et Küpsis on vaid väike osa teabest
et veebiserver saab taime kohta veebibrauser
ning omakorda selle RAM või oma arvuti kõvakettale
et salvestada teavet kasutaja näiteks oma kasutajanimi
nii et nad ei pea seda iga kord, kui nad sisse logida või mõned
unikaalne number või tunnus, et kasutaja
nii et sa ei pea vaevama neid sama liiki küsimusi
eelistusi tulevikus, kuid enamik huvi
praegu on $ _SESSION.
>> See superglobal, mis sarnaselt teistele, antakse sulle automaatselt PHP poolt
kui olete kirjalikult PHP-põhinevad veebilehed
saab salvestada ükskõik mida tahad, stringid, täisarvud,
ujuva punkti, väärtused, massiivid, esemeid,
tõesti kõike, mida soovite, ja see võimaldab salvestada see nii
et isegi kui kasutaja külastab teie nüüd ja siis
tuleb tagasi minuti kaugusel nüüd või 5 minuti kaugusel nüüd, sest
nad võtavad oma aja, enne kui klõpsate mõnda muud linki
PHP tagab, et mida iganes sa panna, et istung superglobal
minut või 5 minutit tagasi on siiski olemas, kui kasutaja naaseb.
Ja all kapuuts see superglobal rakendatakse teel
neid asju nimetatakse küpsiseid, kuid nüüd, see on lihtsalt võtmiseks
kusjuures see on omamoodi programmilise samaväärne ostukorv.
Mida iganes sa, programmeerija, panna, et
superglobal assotsiatiivne massiiv on seal mõned mitu minutit hiljem
kuni te selle kustutate või kuni kasutaja lõpetab oma brauseri kokku.
>> Võtame pilk näide sellest, kuidas asi tegelikult kasutatakse.
Aastal counter.php seas tänapäeva tükid kood
meil on selline rida.
Alguses seda faili on meil hunnik sinine kommentaarid, mis on ebahuvitav nüüd.
Kuid rida 13 on meil uus liin,
session_start ja et tegelikult ei täpselt, mida ta ütleb.
See algab istungid.
See võimaldab teil kasutada seda suurt superglobal $ _SESSION, ja see on nii lihtne.
Nüüd, kui me lähtume vaadata real 16, proovime aru saada, mis see veebileht saab teha.
If (isset ($ _SESSION ["counter"]) siis lase käia
ja kaupluse leti muutuja, väiketähed loendur
$ _SESSION ["Counter"].
See tundub olevat kuulutab kohaliku muutuja nimega counter
mille sees ta paneb koopia olenemata on sees superglobal
kutsunud istungi location "counter."
Else, ilmselt see väike kohalik muutuja loendur, käivitub kuni 0.
>> Aga siis paar rida hiljem 26 teate, et seanss on koopia loendur
oma võti, on uus väärtus omistatakse mis on oma praeguse väärtuse pluss 1.
Lühidalt, see fail tundub olevat ajakohastamine
counter, mis on talletatud istungi superglobal
poolt incrementing see 1, kuid see esimene säilitab koopia eelmisest väärtus
talletades seda kohaliku muutuja nimega $ counter,
ja siis siin all vaatame, mis jääb.
Selgub, et see on päris palju lihtsalt HTML.
Allosas see leht näeme rida 37, kus olen käinud selle saidi
counter mitu korda, nii et seal on paar huvitavaid funktsioone siin.
Üks on see selgelt erinev, kuid see ei ole piisav, et lihtsalt panna
$ Counter kehas HTML sest loomulikult
kui see on lihtsalt seal hulgas oma HTML PHP läheb eeldada, et on lihtsalt HTML.
Sa sõna otseses mõttes tahavad $ vastuollu trükitakse ekraanile.
>> Kuid selle asemel, visates sisse PHP režiim
seda tükk süntaks saame dünaamiliselt lisada väärtust siin
väga sarnase sisuga, mida me tegime viimane kord koos
sisestades väärtused stringid.
Tegelikult on see lihtsalt stenografisti märke öelda midagi selle sõna otseses mõttes,
print ($ loendur) või isegi midagi printf (% s, counter),
või isegi, kui olete näinud internetis või õpikutes,
seal on funktsioon PHP nimetatakse kaja
mis teeb sama asja, ja kõik need on lihtsalt enam Hengästynyt võimalusi
öelda <? =.
Sel ühel juhul sa ei pea panna
sõna PHP küsimärk.
See on stenografisti märke, samas, mida me just nägime hetkeks tagasi
mis kajastas mingi väärtus.
>> Vaatame, mida Lõpptulemus on see tegelikult on.
Laske mul minna üle meie counter.php faili,
ja me näeme, et David lihtsalt eksinud, mängides kood seal.
Lähme fix iganes ta silmamunad,
ja viga tundub olevat seal käinud, on line 37.
Vastavalt lehekülje ülaosas Olen seda saiti külastas 0 korda.
Noh, lähme edasi nüüd, ja ülaosas brauseri kliki
laadige ikoon ja ma nuppu reload
ja nüüd olen külastanud saidi 1 kord, 2, 3, 4, 5, 6, 7, 8.
Ja tõepoolest, kui me vaatame seda lehekülge lähtekoodi muutub
ja märkate täieliku puudumise tõttu PHP, ja see on, sest
PHP kood hinnatakse või tõlgendada serveripoolne,
ja nii see tähendab, et väljund PHP skripti on Mis lõpuks saadetakse brauseri,
mis antud juhul on natuke toorest HTML ja natuke toorest teksti.
Mis siin toimub?
>> Noh, kus on suhteliselt vähe rida koodi Võin salvestada
püsivalt jooksul mitu sekundit või kui me piisavalt kaua oodanud,
minutit, isegi tunni, mõned väärtus viisil, mis muudab HTTP
Tundub olekuteadliku nagu me oleme säilitanud
see ühendus serveriga, ja see on lihtsalt mäleta, mida ma ütlesin see viimane kord,
kuid tegelikult on terve hunnik keerukus toimub all kapuuts
kaasates küpsised, mis on võimaldada PHP mulle see illusioon
Selle ostukorv-sarnane omadus.
Praegu triviaalne näide, kus me lihtsalt ladustamiseks täisarv,
kuid see funktsioon tulevad tagasi tuua suurt kasu
kui me hakkame rääkima rohkem keerukate projektide
nende seas Ülesanded nr 7.
See on teie viimane probleem sätestatud CS50.
Ma tean, see on nii kurb, aga mida sa leiad, et me ei kavatse sõlmida
see osa semester poolt tegelikult üleminekutel
kontekstist tulenevalt C kindlasti kontekstis PHP
kuid samas kasutades mõned väga sama põhialuste
me rääkisime mõnda aega.
>> Eesmärgiks koos pset 7 on rakendada CS50 Finance,
mis on oma versiooni Yahoo Finance ja Google Finance
või isegi Etrade.com mille kaudu teil on võime
otsida aktsiahindade jaoks antud sümboleid, kuid isegi rohkem
Teil on võimalus "osta" ja "müüa" varude
millega kaubeldakse erinevate börside sest see kodulehekülg
siin ütleb, mis on tõesti mil määral me oleme alustanud
Ülesanded teile, teil on sisäänkirjautumislomake, mis küsib kasutajanime ja parooli.
See on submit nupp, kuid seejärel, kui me lõpuks näha,
ei ole midagi tegelikult toimub all kapuuts veel, sest see
jääb teil rakendada võime registreerida uusi kasutajaid,
võime osta varusid, et müüa aktsiad,
tegelikult otsida praeguse aktsia hinnaga.
>> Ja tõepoolest, see on nagu reaalses maailmas kui võimalik, sest me tegime
sisaldama natuke koodi, mis võimaldab teil ühe funktsiooni
päringu Yahoo Finance, mis imeliselt teeb kättesaadavaks tasuta andmeid
otsimise aktsiate hinnad põhinevad aktsia sümbol või sümbolit,
ja sa saad tagasi praeguse aktsia hinna päev.
Andmeid sa tegelikult näeme selles konkreetses pset on
umbes nagu reaalses maailmas, sest see võib saada nii, et sa oled tegelikult liidestamine
reaalses maailmas varud, reaalses maailmas hinnad
ja me näeme, kui palju raha saate teha ehk
üle järgmise mitu päeva mänginud koos oma probleemi komplekti.
>> Aga Vaatame esmalt määrata etapil kuidas kavandada midagi, mis on kindlasti keerulisem
kui counter.php, see on keerulisem kui ükskõik Frosh IEd näiteid seni
ja proovime lisada mõne paradigmad siin, mis võimaldavad meil
nii pset 7 ja võibolla oma lõpliku projekti kui sa midagi veebipõhine
hoida oma koodi hästi organiseeritud, et ennast terve mõistusega,
ja võtta samm koostöövõimalusi, kas CS50 lõpliku projekti
või kaugemale, kui te jätkate programmeerida midagi tulevikus.
Seal on see üldplaneering paradigma
infotehnoloogia ja tarkvara arendamise üldisemalt
tuntud MVC, mudel vaatamiseks töötleja,
ja see on tobe lühend, mis kirjeldab väga kena mõte,
mis on eraldatud erinevaid aspekte programmi
konkreetselt eraldi hoidmisest loogika või äriloogika veebilehte
nii et kõike, mis on seotud asjad
helistaja funktsioone ja päringute andmebaaside jms
juhtub ei hulgas oma HTML
vaid eraldi failidena, ja tõepoolest, seal on see üks fail
tavaliselt, millele olete helistanud kontroller
see on tõesti aju taga operatsiooni, ja me näeme näiteks
Käesoleva vaid hetk.
>> Seal on mudel, mis on programmeerimise koodi
et ei rääkinud oma andmebaasid, mis räägib Yahoo Finance jms,
ja siis seal on V MVC, seisukohti,
kõik asjad, mis on seotud esteetika, faile, mis tegelikult sisaldavad
HTML, võibolla oma CSS jms.
Mõte, kuna see võib oletada, et kontroller
on fail, nagu me varsti näeme ja kui sa eriti näha pset 7,
et maailm räägib läbi oma brausereid.
See on fail, mis saab külastatud avaliku Interneti,
kuid kontroller räägib potentsiaalselt mudel,
mis on ühe või mitme muu failid, mis sisaldavad koodi seotud andmed,
koodi seotud andmebaaside jms, ja siis räägib
kontroller ühe või mitme teise faili tuntud seisukohad,
mis on esteetika veebilehe malle kehvasti,
mis võib võtta mõned andmed sisendi, kuid lõpus päev
ainult loogika sees, et peaks olema renderdamine, et andmed,
itereerimise üle aasa ja tegelikult sülitada välja mõned
HTML-põhine üleviimise, või isegi midagi PDF-is.
>> Mis on ilus umbes MVC on see, et sul võib olla eri arvamusi
põhineb tüüpi seade, mis põhineb tüüpi faili vorming, mida tegelikult
tahan näidata kasutajale.
Võtame pilk mõned järk-järgult keerulisemaks ja hästi kavandatud näited
alustades kõigepealt versiooni 0 siin.
Lubage mul minna ja avada meie MVC kataloog täna
fail nimega index.php kataloog 0.
Teade see on super lihtne ja väga underwhelming veebilehte
see on omamoodi versioon 0 koduleht CS50,
ja teate, kuidas meil on link Loengud on meil link õppekava,
ja kui ma järgige linki Loengud teate, et URL
üles üles ei muutu et lectures.php.
Kui ma siis järgige linki nädal 1 märkate, et URL muudatusi week1.php.
Tundub, et üsna lihtne hierarhiline struktuur siit.
>> Võtame pilgu all kapuuts, kuidas see on sätestatud,
ja tõepoolest, kui ma vaatan index.php see on üsna lihtne.
Tegelikult, kuigi ma helistasin selle PHP faili pole tegelik programmeerimine kood.
Seal on kommentaar, et ma kirjutasin siin PHP lihtsalt nii kasutaja ei lõpuks nägema seda.
Muidugi, kui enne, midagi, mis on vahepeal PHP sildid
saab tõlgendada, isegi kui see on kommentaar, ning tõlgendama kommentaar
tähendab lihtsalt see ära visata lõpus päeval ja tegelikult ei
saatke see brauser, nii et kõik siin on lihtsalt esteetikat.
Kui ma avada sarnaselt lectures.php ka see on lihtsalt kõva kodeeritud faili.
See juhtub nimetada midagi. PHP,
kuid see on tõesti lihtsalt. html ja week1.php, week2.php
Samamoodi on lihtsalt juurdehindlus, nii et seal on hunnik puudusi see disain.
Üks, see on tohutu copy / paste.
Kuigi ainus asi, mis muutub nende seas failid on ebakorrapärane nimekirja,
li sildid, ma siiski doc tüüp, HTML, pea,
pealkiri lähedal keha lähedal HTML ja rohkem
aastal iga faili, mis tähendab, et kui ma kunagi tahan ümber
Selle veebilehekülje või restylize ta mul minna ja muuta
kõik need failid käsitsi või mõned massilist otsida ja asendada.
>> Võtame samm targemaks, enam mõtlema disaini versioon 1 siin
kusjuures ühe kuuled mind, et oleme lisanud nii et saate mängida koos
need enam rahulikult kodus teate, et meil on siin
kokkuvõte faili versioon 1 sellel saidil,
ja tundub, et olen võtnud omale volituse tegurdada
mõned ühised kood, header.php ja footer.php.
Noh, võtame pilk, mis seal sees esimest neist.
Header.php tundub tuttav,
aga märkate Kust ta katkestas?
Kohe pärast rida 19, nii et on kõik, mis oli ühise
alates faili index.php, lectures.php,
week1 ja week2.php eelmisest näitest.
Mida ma tegin, oli koopia ja lõigatud kõik, mis oli tavaline, et kõik need failid,
pane see eraldi päisefail, ja samamoodi ka footer.php
ma kohaldada sama põhimõtet, mille ainus huvitav read
aastal footer.php on need kaks, tiheda keha ja tihedat HTML.
>> Aga mida see tähendab nüüd on see, et uus versioon
kohta index.php teate, kui palju lihtsam on võimalik saada.
Tõsi, veidi segasena välimusega, veidi vähem intuitiivne
järgida ülalt alla, kuid mu Jumal, kõik see koondamine on nüüd läinud.
Eeldame kasutades PHP funktsioon sõna otseses mõttes nimetatakse nõuda kuni top,
mis on väga meenutab, mäletate, ühisettevõtte C # include mehhanism.
Eeldame header.php ülaosas.
Eeldame footer.php allosas, ja ainus asi, mis on erinev
või eriline see fail on sisu, mis pidi olema ainulaadsed seda.
Kui ma siis minema, ütleme, lectures.php, sama põhimõte kehtib.
Jällegi, mõned kommentaarid up üles, aga siis ma nõuavad kaudu nõuda jalus
ja vahel on see ainult sisu, mis on tegelikult muutunud.
Ja kui me uurinud nädal 1 ja 2. nädal olime vaata
et sama põhimõte oleks kohaldatud seal.
Noh, me ei ole päris teha seal.
>> Võtame pilk versioon 2, mis on sarnane struktuur,
aga märkate nüüd Olen sisse midagi muud.
Rea 10 Olen sisse helpers.php,
mis ilmselt sisaldab helper funktsioone.
Abistaja funktsiooni on üldiselt suhteliselt lühikese funktsioon
et sa kirjutad, et aidata teil välja erinevates kohtades,
ja vaatame, mis seal sees on helpers.php.
Sel juhul tundub, et see on 2 ülesannet.
Meenuta teistest päev meie kuubik näiteks
saate määratleda oma funktsioonid PHP, ja mida ma olen teinud nüüd on Ma olen
määratletud funktsioone nimetatakse muuda jalus ja muuta header,
millest esimene leiab parameeter nimega andmeid,
kelle vaikimisi väärtus on tühi massiiv, nagu soovitas seal,
ja me saame tegelikult kirjutan seda veelgi tabavalt viimases versioonis PHP
öeldes avatud square bracket, suletud square bracket.
See tähendab tühi massiiv suurusega 0, aga siiski massiiv.
>> See väljavõte funktsioon on natuke erilised,
mida ta teeb on see lähtub argument assotsiatiivne massiiv
et on 0 või rohkem põhiväärtus paari, ja kui sul on võti foo
ja väärtus baar väljavõte funktsiooni
loob olukorra, mis nüüd on line 11,
Teil on lokaalne muutuja nimega $ foo mille väärtus on baar.
Ja kui sul oleks rohkem võtmeid ja väärtusi andmete massiiv,
Samamoodi oleks neid ekstraheeriti kohalik ulatus
või nimi ruumi, et footer.php ja
Sama mõte siin all, nii et header.php
olema juurdepääs nendele muutujatele.
Tegelikult, las ma avada taas header.php
ja juhtida tähelepanu nüüd kuidas see välja näeb selles versioonis.
>> Selle asemel, et raske kodeerimine CS50 nagu pealkiri iga lehekülje
märgata dünaamilisus, et on võimalik nüüd.
Real 5 Ma kajastas pealkiri muutuja,
kuid kõigepealt ma möödaminnes, et pealkiri muutuja funktsiooni nimetatakse htmlspecialchars.
Loll nimi funktsiooni, kui see on, kuid see on tõesti see, mida ta ütleb.
See tagab, et mingeid erilisi märke
aastal string, mis on võetud vastu nõuetekohaselt pääsenud HTML.
See on tegelikult viis vältida midagi, mida nimetatakse rist saidi skriptimine rünnak
kusjuures keegi ei pahatahtlikult või kogemata
süstida oma HTML oma veebilehel
poolt kleepimist mingil kujul, näiteks
midagi, mida ei olnud päris loodavad, eriti JavaScript koodi,
kui me räägime ka nädala või kahe pärast.
>> See nüüd header.php, see on vaade
selles mõttes, et see võimaldab teil vaadata esteetiliselt sisu mõned andmekogum.
Aga täpsemalt, see on malli.
See on omamoodi plaan nüüd on, mida me tahame päises igal lehel nägema,
kuid seal on mõned dünaamilisust, et me tahame pealkiri olema dünaamiliselt lisatud
põhineb pealkiri muutuja
mis oli eraldatud, kui me kutsusime jällegi
krohvi header funktsiooni.
Nüüd, kui me vaatasime krohvi jalus, siis tegelikult ei ole palju kasutada, et praegu
sest footer.php pole dünaamilisus üldse.
Võiks olla, kuid praegu on see kõva kodeeritud nimekiri 2. sildid,
kuid sama mõte kehtib, nii et tegelikult soovitab miks
tegime aega raisata võttes muuda päis ja krohvi jalus funktsioon?
Laske mul minna selle asemel nüüd arvesse versioon 3,
ja versioon 3 abilised ma otsustasin, et lihtsustada veelgi.
>> Lubage mul olla üks render funktsiooni.
Andke mulle see võtab veel üks argument, seekord nimega mall,
mis on mõeldud nime mall,
ja siis ma concatenate pretensioonikas. php selle muutuja väärtus,
ja siis, kui see on olemas foo.php, bar.php või header.php ja footer.php,
siis ma lähen edasi minna ja väljavõtte andmeedastuskiirus
ja siis nõuavad, et tee.
Teisisõnu, kasutada seda nüüd, kui ma avada index.php
märkate, et ma ei kutsu muuda header enam.
Ma lihtsalt helistada muuta, kuid ma läbima kommenteeritud väärtuse kaudu
teha selgeks, millist vormi ma tegelikult tahan laadida.
>> Siis on siin märgata, mida ma teen.
Ma panen ka dünaamiliselt võti pealkiri,
väärtus CS50, ja seda ka, nagu me nägime enne,
võiks teha rohkem sisutihedat viimases versioonis PHP
kus ma saan asendada massiivi funktsiooni nurksulgudesse
mida pakun on veelgi loetavamaks ja kindlasti
veidi lihtsam kirjutada.
Ja muidugi, koos krohvi jalus kõne allosas,
me ei viitsinud läbivad teine ​​argument üldse, ei assotsiatiivne massiiv,
sest miski dünaamiline sees, et jalus.
See on lihtsalt lähedal silte HTML.
Hea, et me võtame sammud tõesti puhastamine asju siin,
kuid lubage mul avada 2 lõplik näiteid.
See üks, number 4, teate, et ma olen teinud teadliku otsuse nüüd
täiustada eelmise näiteks lõpuks kasutavad mõned hierarhia minu faile.
>> Pange tähele, et selles kokkuvõte, selle luges mulle, Olen sisse
sisaldab kataloogi ja malle kataloog
mille sisu saab olema asju, mida ma tahan lisada
ja malle, et ma tahan muuta vastavalt.
See on tõesti mulle on päraku ja püüame hoida asju korras,
hoida seotud faili kokku, kuid lõpptulemus
on see, et meil on nüüd pisut tidier setup, kuid me peame meeles pidama nüüd
aastal, näiteks index.php
kui nõuame faili helpers.php
peame nüüd seda nõuavad kaudu includes / helpers.php
mitte lihtsalt ütlen helpers.php aga nüüd on asi tegelikult sub kataloog.
Nüüd, kui kõrvale, näete nendes näidetes ja mõned teised
funktsioone nagu nõuavad, nõuavad korraga.
Seal on tegelikult funktsioon ise kutsus hulka, ja neil kõigil on veidi erinev käitumine.
Siin ma ütlen nõuavad kord teha super selge, et ma tahan ainult need
abilised lisada oma projekti pärast.
Aga kui ma olen ettevaatlik ja kui ma tegelikult mõelda läbi minu loogika korralikult
see peaks piisama ka lihtsalt öelda nõuda kuni top
nii kaua kui ma ise ei kogemata nõuda, et sama faili mujal.
Tegelikult on see veidi tõhusam viis asju siis kasutades
vaja üks kord, nii et ma liistude seda allapoole, et lihtsalt vaja.
>> Võtame ühe sammu edasi.
See viimane näide nüüd, versioon 5, on isegi puhtam kaustade hierarhiat.
Pange tähele, mida ma olen teinud siin ühe kuuled mind selles lõplikus versioonis
Nüüd on mul HTML kataloog, mis mul on olnud kogu see aeg,
kuid sees seal on praegu ainult index.php, lectures.php,
week1.php ja week2.php.
Sisaldab kataloog elab nüüd koos HTML-kataloog,
nii samal tasemel nagu vend, nii rääkida.
Seega ei mallide kausta.
Võti Buffee siin on Olen sisse natuke rohkem struktuuri,
kuid peamiseks tunnuseks on see, et ainult faile
mis tuleb veebis kättesaadavad, avalikult adresseeritavad
poolt URL avaliku interneti on minu HTML kataloog.
>> Vahepeal muid faile, helpers.php, footer.php,
header.php, mis on väidetavalt võibolla rohkem tundlik,
võibolla abilised tegelikult on mõned kasutajanimed ja paroolid või mõned intellektuaalse
kinnisvara kaevanduses, toimib ma tõesti ei taha maailma näha, isegi kui kogemata.
See on hea tava, et hoida ära üldsuse HTML kataloog
kõik failid, mis ei pea ennast avalikkusele.
Kõik mida sa pead tegema sel juhul, kui vaadata näiteks
HTML kataloogi index.php faili
TEADE Me lihtsalt olema natuke ettevaatlikum kui vaja
või nõuda kord seda faili.
Ma pean kõigepealt tegema .. minna emakataloogi,
siis ei / includes / helpers.php
sukelduda tagasi alla saada fail, et ma hoolin.
>> Kõik küsimused siis MVC
või see suhteliselt lihtne kehastus sellest?
Ja andke mulle selgeks teha, et me keskendunud üsna natuke
V siia, arvamuste ja faktooring välja need mallid.
Meil ei ole tõesti vahet M C veel.
Tegelikult on tõesti mingit M siin, ja isegi meie C,
kontroller, ei ole tegelikult teeme kõik, et palju, aga sa saad palju rohkem
tuttav nii need 2 kirja MVC,
või pigem, saad palju rohkem tuttav C
aastal MVC jaoks probleem komplekt 7, nii et seal on rohkem, et silmapiiril.
Küsimused?
Seal on tegelikult keegi siin.
>> Okei, nüüd liikuda edasi teise ja ühtlasi viimase teema täna.
See on kasutusele andmebaasi.
Kuni selle hetkeni oleme olnud vähe võimalusi andmete salvestamiseks.
Oleme kasutanud muutujad.
Tagasi meie C fail, I / O arutelu me hakkasime kasutama tekstifaile
ja kasutades faile nagu fprintf, ja siis me isegi alustanud
räägime CSV faile natuke, komaga eraldatud väärtused,
Nii et kõik need võimaldas meil salvestatud andmed
kas mitte püsivalt või püsivalt.
Aga isegi CSV-des võib tegelikult ei soodusta otsimine
ning lisades ja kustutades.
See on tõesti lihtsalt loll tekstifaili komadega eraldatult
rida-realt poolt rida-realt, nii et kui soovite
Otsige see fail parim, mida saate teha on tõesti lineaarne otsing.
Sul on alustada ülaosas faili lugeda kogu asi,
ja otsima mõned väärtus huvi.
Kui soovite lisada see mida sa pead tegema sama asja,
itereerimise üle ja lisades konkreetses kohas,
ja tegelikult, mida sa pead tegema kõik otsivad loogika ise.
>> Sa ei saa teha tark mustrite kohta CSV-faili, kui sa ise kirjutada koodi.
Sa ei saa teha filtreerimise CSV faili
kui sa ise kirjutada koodi.
Kas poleks tore, kui keegi teine ​​panna kõik jõupingutused
et tegelikult teevad otsimine lihtne ja sisestamise lihtne
kustutamise ja ajakohastamine ja nii edasi?
Just seda andmebaasi.
SQL, Structured Query Language, on järjekordne keel
et me sisse täna, kuid ka see on üsna kättesaadavad,
ja mida me tegelikult teeme, on lihtsalt sikutama välja mõned kõige olulisemad
omadused nii et pset 7, ja kui sa midagi veebipõhine,
oma lõpliku projekti, teil on võime ennast väljendada
nõuetele andmete päringuid.
Teil on võimalus salvestada vähe või palju andmeid
aastal palju rohkem struktureeritud viisil, mis lõpus päev
muuta oma elu lihtsamaks, sest SQL saab ennast väljendada
palju täpsemalt, palju metoodiliselt, et
saada tagasi mõned alagrupis andmeid suurem korpus andmed.
>> Sa ei mõtle andmebaasis, antud juhul SQL andmebaasi, tõesti nagu Excel
või numbrid, kui see on arvutustabeli,
või äkki mitu arvutustabelite ja arvutustabeli muidugi
on read ja veerud, ja see on, sest
SQL andmebaasid on relatsiooniline, relatsiooniline selles mõttes,
et nad salvestada andmeid nii need tabelid,
read ja veerud.
Nad on kõrgemad tulemusi kui midagi tabeli,
ja tabel on mõeldud kasutamiseks inimese poolt.
Andmebaas on mõeldud kasutada programmeerija
kirjalikult koodi vastu, nii kehastus andmebaas
saab olema kas käsurealt.
>> Üks populaarsemaid relaatiotietokannat seal on jällegi MySQL
mis on imeliselt tasuta, väga kõrge jõudlusega, ja see, mida
Facebook kasutatakse väga varakult ja osaliselt veel täna
salvestada palju oma andmed ja me näeme praegu
et kasutades suhteliselt lihtsaid käske
saame valida andmeid, sisestada andmed, andmeid uuendama
kustutada andmeid jms, kuid õnneks seal on rohkem kasutajasõbralik liides
kui kirjutades aadressil must ja valge kiire siin.
Me kasutame pset 7 ja kaugemale tasuta tööriist nimega phpMyAdmin.
Nimi on juhuslikud.
Vahend juhtub rakendada PHP,
aga see on täiesti ebaoluline.
Mis on kasulik umbes phpMyAdmin on, et see veebipõhise utiliidi.
Oleme eelinstalleeritud seda seadet teile,
ja koos sellega saate luua tabelid andmebaasi,
saate sisestada andmed, kustutada, ja üldiselt vaata
oma andmeid üsna kasutajasõbralik keskkond.
Teie kasutajad ei kavatse kasutada phpMyAdmin.
>> See on tõesti ainult haldus-või arendaja vahend
kellega näha ja tuhnima oma andmed ja nuputada, kuidas struktureerida seda,
palju nagu te ise võiks kasutada Exceli või numbrid,
kuid see saab olema suurepärane võimalus visualiseerida, mis toimub all kapuuts
nii et saate keskenduda huvitav probleemilahendus ja mitte niivõrd
aasta kauge käske.
Võtame pilk näiteks andmeid, mis on talletatud tabularly
aastal Relatsioonandmebaasis.
Siin on üks selline näide.
Nüüd kahjuks phpMyAdmin ta liiga viskamine liiga palju sõnu
ja graafika sind, aga kui sa lihvida vaid edasi
ID veeru kasutajanime veerus ja räsi veeru
see on tegelikult tabelis, kuid ta juhtub olema koodijupi
laua-seadme sisemust
kasutades faili pakume teile probleemide kogum 7.
>> Eelkõige anname faili, mis esindab
kasutaja lauda nii arvutustabeli kasutajatele 3 veergu,
millest üks on unikaalne ID, mis algab kell 1 ja seda suurendatakse seejärel.
Teise veeru kasutajanimi ja neile, kes tegid Hacker,
Hacker Edition pset 2, võivad tunda mõned neist kasutajanimed vähemalt.
Paremal servas on paroolid, kuid nad ei ole sõnasõnaline paroole.
Nad hashes selle, et see osutub
et ladustamiseks paroolid andmebaasis on tõesti halb mõte.
Te olete kõik ilmselt lugeda mingil hetkel mõned veebilehte
või mõne ettevõtte andmebaasi ohus, ja siis sa pead
muuta oma parooli, peate saada toetusi asjad
sest mõned paha poiss tegelikult murdis oma kontole tulemusena.
>> Ladustamiseks paroolid selge tekst, krüpteerimata andmebaasi
on täiesti rumal, ja veel see on väga lõbus
siis lugesin mõned väga tuntud firmad
mõnikord ajakirjanduses, kelle andmebaasid ei kahjustata,
ja see osa ei ole naljakas, vaid asjaolu, et andmebaasid sisaldavad krüptimata
paroolid on naeruväärne, sest sõna otseses mõttes ühe rida koodi
saate kaitsta et konkreetse ohu kohta, ja see on, mida me oleme teinud siin.
Isegi meie võltsitud vähe CS50 Finance versioon
me krüptides paroolid lihtsalt hea meede, ning asjaolu, et
kõik need paroolid alustada $ 1 $ on vaid konventsiooni.
See lihtsalt tähendab, et nad on krüpteeritud või tõesti räsitud,
mis on nagu ühesuunaline krüpteerimine funktsioon
millega te ei saa peatada selle tagajärjed midagi nimetatakse MD5.
>> Asjaolu, et 50 on pärast see tähendab, et sool väärtus
50 kasutati segamist kõik need paroolid välja arvatud üks.
Miin, muidugi, nagu te näete seal, HA,
oli kasutades erineva soola, nii neile, kes sattus kergelt kompastumisen
võibolla Hacker 2, mis oleks võinud olla tingitud meie tarbinud
erinevate räsi kui teised, sest mu parool on tegelikult sama
kui mõni kasutaja sinna.
Tegelikult, kui olete oodanud kõik need nädalat, et teada saada
millised need paroolid olid siin olid paroolid, et sa olid vaidlustanud
crack in Hacker väljaanne probleem komplekt 2, seega ükski liiga keeruline.
Tegelikult Malan on olnud sama jharvard,
kuid kui me läheme tagasi vaatasid nad erinevad.
>> Keskendu jharvard sisse karmiinpunane, sest nad olid soolased erinevalt.
Algoritm oli häiritud nii, et
räsi väärtus, krüpteeritud väärtus paistab pisut teistsugune
sest sisendid olid veidi erinevad, kuid parool all kapuuts
oli ikka lõpuks karmiinpunane.
Nüüd, kes hoolib sellest?
Noh, meil on teile pakkuda kasutajate valim, valimi kasutajanimed
ja hashes oma paroole, nii et sa tegelikult mõned
kliendid CS50 rahandusminister, kui te esimest Tõusta oma kood.
Sa pead ellu rohkem tabelite sees MySQL, sees andmebaasi.
Sul on luua rohkem tabeleid, tõhusalt, kuid oleme otsustanud anda teile see üks
võite alustada, ja sa näed, et probleem komplekt spetsifikatsioon
suunab teid läbi protsessi importiva tabelis
ja ka selgitada, mida mõned omadused on
ja näete ka, et me pakkuda teile kood
käsitseda hashing või krüpteerimist nende paroolide
nii et sa ei pea muretsema liiga palju, mida MD5 vms on tegelikult kõike.
>> Niisiis, SQL, Structured Query Language.
See on lihtsalt, keel me parasjagu kasutama hakata ka pset 7
ja veel kauemgi nõuda andmeid mõned andmebaasis.
Andmed on taas salvestatud tabularly nendes relational tabelite, veergude ja ridade
kuid kasutades mõned suhteliselt lihtne süntaks, nagu Kustuta,
sisestada, ajakohastada ja valige me saame teha just nii.
Me ei saa kustutada andmebaasist, siis sisesta,
uuendada andmeid, samuti vali, st andmete toomiseks andmebaasi.
Kuidas me minna seda teed?
Lubage mul minna seadmesse.
Las ma tõmba http://localhost,
mis jällegi on kohalik seade ise.
See on selle vaikimisi hüüdnime.
Ja lubage mul minna / phpmyadmin.
See juhtub olema spetsiaalne URL, et seade on eelseadistatud aru
et kohe sunnib mind kasutajanimi ja parool.
>> Nagu tavaliselt, ma lähen kirjutama jharvard ja karmiinpunane,
aga aru, et on administraatori konto arvutis.
See on lihtsalt kokkusattumus, et seal on ka jharvard registreeritud CS50 rahandusministeerium.
Jharvard, karmiinpunane, enter annab mulle kasutajaliides, mida me nägime
pilguheit hetk tagasi, ja see on natuke valdav esimesel,
kuid kindel, et sa kunagi pead klikkima enamik linke selle tööriista.
Sa lõpuks kasutavad väikest osa, mis on super abivalmis,
millest esimene on andmebaasid siin.
Kui ma lähen kuni andmebaasid, märkate, et ma olen palutakse luua andmebaasi.
See on nagu luua uusi Exceli faili, tõhusalt.
Ma lähen edasi minna ja nimetada seda loeng, ja ma lihtsalt ignoreerida valdkonnas olemas, võrdlemisele.
See on pistmist esindatus neis sisalduvaid andmeid,
ja ma lähen klõpsa luua, ja nüüd märgata nagu ma Lase luua
vasakul servas, kus ta ütleb ei andmebaasid
Ma peaks varsti näha loeng andmebaasi.
>> Kui ma nüüd kliki vasakul servas, loeng andmebaasi
märgata minu klapid muuta natuke.
Mul struktuur, SQL, eksport, import ja mõned muud asjad.
Struktuur on päris palju tühja.
Ühtegi tabelit leida andmebaas, nagu ta ütleb siin,
niiet luua tabel, ja lähme edasi ja luua tabel
meeldib õpilastele ja kui palju veerge me tahame?
Hoidkem seda lihtsat ja olgem rekord igale õpilasele
ID number, nimi ja e-posti aadress.
>> Hoiame seda lihtsalt niimoodi, et 3 veergu, minna.
Vormis, et näete siin on nüüd natuke segane ja valdav,
aga me lihtsalt peame minema läbi rida-realt, nii tõesti kiiresti anname
esimeses veerus nimetatud andmebaasi nimi ID kordumatu tunnus.
See saab olema täisarv. Ma ei saa tegelikult ignoreerida pikkus ja väärtused.
Int saab olema 32 bitti ükskõik mida sa kirjutad seal, niiet jätke see tühjaks.
Vaikimisi väärtus, ma võiksin teha seda null, nagu see on määratletud.
Ma jätan selle rahule. Ärme muretse vaikeväärtused.
Olgem leidke üle siin paremal, atribuute.
See on huvitav.
Lähme edasi ja mõnevõrra meelevaldselt väita, et sümbolid peavad olema allkirjastamata.
Ärme raiska negatiivsed arvud.
>> Lähme 0-4000000000, anda või võtta,
ja siis ärme puutu, on neid valdkondi lihtsalt veel seal,
kuid siis andke mulle kirjuta nimi siia alla,
ja siis teine ​​oli kiri, et saak on e-posti
ja nimi, ilmselt mitte täisarvud, nii et vaatame neid muuta, et eri valdkonnas.
Selgub, varchar, muutuv pikkus char,
on nagu string SQL andmebaasi
kuid eri pikkusega, ja sa tegelikult öelda seda ette
Maksimaalne stringi pikkusena, nii et ma lähen veidi meelevaldselt
Tavapäraselt tüüp 255 märki.
Ma võiks täiesti öelda 32. Võiksin öelda 1000.
Sa sellist vajadust otsustada ise põhineb teie demograafia, mis on
Pikim õpilase nimi ja lähevad selle numbri või veidi suurem,
kuid milline on ilus umbes varchar on ta ei kavatse raisata
255 baiti iga õpilase nimi.
Kui see on David ta ei kavatse kasutada kogu 255 baiti,
aga see on ülemise, nii et ma lähen 255 lihtsalt kokkuleppeliselt,
aga me võiksime arutleda, et olla mõned madalama väärtusega, ja e-posti aadress
lihtsalt olla järjepidev 255, kuid jällegi, me võiks olla sama arutelu.
Aga ma teen ühe asja üle siin paremal pool.
>> Mis võimas umbes andmebaasis on see, et ta saab teha palju rasket tööd
või keeruline töö.
Eelkõige ma tõesti ei huvita, mida mu õpilase ID numbrid on.
See on lihtsalt mõeldud olema kordumatu tunnus andmebaasi
nii et mul on 32-bitine sisutihe esitus, et õpilane
nii et mul on mingi võimalus üheselt kindlaks nende
muidu seal on 2 Davids, näiteks klassis.
Tegelikult ma lähen vaatan seda AI kast, auto juurdekasvu,
nii et andmebaasi MySQL, nuputab
mida iga vastlisatud õpilase ID saab olema.
Ma isegi ei pea hooli, et minu kood,
ja ma lähen samuti valida midagi alla indeks menüü.
Indeksi rippmenüüst siin on esmane, ainulaadne,
indeks ja tervikteksti.
Saate võibolla arvata, mida paar need asjad on,
kuid selgub ka relaatiotietokannat
sa programmeerija või andmebaasi administraator saad ennatlikult
anna vihjeid, et andmebaas, millised väljad
tabelis on veidi eriline.
>> Näiteks sel juhul ma ütlen, et ID
saab olema esmane indeks, muidu tuntud primaarvõti.
Mida see tähendab määratluse järgi on see, et ID edaspidi
on üheselt identifitseerida õpilased tabelis.
Mitte ükski õpilane on sama ID, sest ma olen millega see piirang või selle indeksi.
Lisaks, mida see kavatseb teha minu jaoks on see saab öelda
MySQL et ID on eriline.
Ma hoolin eriti umbes ID, nii et edasi minna ja teha oma väljamõeldud andmestruktuur maagia,
luua mingi puu.
Tavaliselt on see midagi, mida nimetatakse B-puu, kus me ei tundnud nädalat tagasi
aga see on teine ​​selline andmestruktuur sarnase sisuga kahendpuuks
ja üritab, et me vaatasime, kuid see saab öelda
andmebaasis selles valdkonnas on nii oluline, et ma ilmselt
tahan olla võimeline otsida see, minna ja luua mõned fancy
andmestruktuur mälu kiirendada otsinguid nii et ideaalis
nad pidevalt aega või vähemalt nii lähedal, et võimalikult
nii et see ei vaimule lineaarne otsing, mis ei kavatse olla
kõige kõrgetasemelistele lähenemine.
Seevastu e-posti aadress oleks võinud olla primaarvõti.
>> Teoreetiliselt kõigi e-posti aadress on unikaalne, kui jagate oma konto,
kuid et üldiselt ei ole hea kasutada midagi string
kui primaarvõti, sest kui tema eesmärk elus on üheselt identifitseerida
rida oma tabeli pole mingit põhjust kasutada 255 baiti maksimaalselt
üheselt identifitseerida keegi, kui te ei pääse vaid 4 baiti
või 32-bitine int.
Üldiselt primaarvõti peaks olema lühike ja sisutihe
ja ideaalis midagi täisarv või suur int, mis juhtub olema 64 bitti.
Aga e-posti aadress peab olema unikaalne, ja üks funktsioone andmebaasi liiga
on jõustada unikaalsus minu jaoks.
Valides ainulaadne siin kõrval kiri, kuigi kirjuta ise
rullub lahti ekraani, ma väidan, et andmebaas
ei usalda mind.
Ära lase mul lisada andmebaasi
sama e-posti aadress kaks korda, isegi kui ma olen idioot ja ma ei ole
väga hea minu IFS ja muud investeerimisfondid ja tegelik PHP kood
ja ma kogemata lasta kasutaja registreerima olemasolevad e-posti aadress
andmebaasis on järjekordne kaitsekulutuste tase õigsuse eest
et tagada, et dubleerida e-posti aadress ei jõua tabelis.
>> Nüüd, vastupidi, nime sa ilmselt ei taha teha, et ainulaadne
sest siis ei saa kunagi olema 2 Davids või 2 Mike Smiths, näiteks
oma andmebaasi, nii et me lihtsalt rahule jätma.
Ma lähen edasi minna ja kliki päästa alt paremale,
ja kõik tundub hea, kuid märgata siin
See on osa, et nüüd me ei veedavad liiga palju aega
sest süntaks on veidi keeruline, ja meil ei ole luua tabelid
kõik, et sageli, kuid SQL ise on keel,
süntaks, mis on siin, et ma olen rõhutanud.
Mis phpMyAdmin tõesti on see loob veebipõhise graafilise teile
millega saab säästa aega ja ei pea käsitsi tippida välja
üsna pikk SQL päring niimoodi.
>> Teisisõnu, kui sa tahad käsitsi luua selles tabelis,
kas see must ja valge kiire või isegi phpMyAdmin
kasutades selleks muu tab, see SQL sakk kus saab sisestada mistahes SQL päringuid
tahad ausalt öeldes see oleks võtnud mind minut
tegelikult mäletan kogu süntaks, ja isegi siis ma ilmselt oleks
tehtud mõned kirjavigu, nii et see vahend on kasulik asjad niimoodi, ja see on ka õpetlik.
Võite alustada järeldada mida süntaks on
lihtsalt kena värvikoodide et phpMyAdmin on lisades
meie visuaalse mugavuse.
Aga nüüd teeme seda mitte.
Lubage mul minna menüü Lisa tipus, ja lase mul minna ja sisestada näiteks
ID, oletame-tegelikult ma ei hooli.
See läheb auto juurdekasvu. Ma lasen andmebaasi sellega tegelema.
Aga mina olen David ja mu e peaks olema malan@harvard.edu.
>> Lähme edasi siin ja pane Mike Smith teine.
Ma annan endale perekonnanime ka,
ja me oleme temaga olla smith@example.com,
ja siis kui ma saan minna edasi?
Noh, tundub, go on nuppu klikkima, ja voila.
Teade ülaosas 2 rida lisatakse.
See on tegelik SQL päring.
See on phpMyAdmin vahend täita minu jaoks,
kuid lõpptulemus, teate, kui ma nüüd minna sirvida menüü
on näha 2 rida selles tabelis, väga meenutab esteetiliselt
toodud tabeli nägime meie kasutajatele alates pset 7,
kellest üks on David Malan, kellest üks on praegu Mike Smith.
Aga et asi selge oleks, ma ei pea kasutama phpMyAdmin,
ja tõesti, sa lähed varsti kirjalikult koodi pset 7
mis automatiseerib protsessi lisades ridade kustutamine rida, ajakohastamise read jms,
las ma selle asemel minna SQL sakk siin
ja kirjuta select * from õpilastele, kus
e = "malan@harvard.edu."
>> Teisisõnu arvan, nüüd teil on
mõned HTML-vormi, ja kasutaja tipib oma e-posti aadress, muu hulgas valdkondades,
ja eesmärk nüüd on PHP kolp kood
tegelikult otsida, et kasutaja teised detailid.
Mis on teie täielik nimi? Mis on sinu ID numbrit?
Sa võiksid kirjutada SQL päring niimoodi, valige * üliõpilased
kus e = "malan@harvard.edu."
Ja kui ma siis nuppu Mine, märkate, et ma peaks, ja tõesti ma, tule tagasi vaid üks rida.
Mike jäetakse see tulemus komplekt, nagu kogumine rida
seda kutsutakse, sest ta ei ole sama e-posti aadressi mulle.
>> Kordan, siin pset 7 saad kasutada phpMyAdmin administreerimisvahendina
ja pedagoogiline vahend õppida oma teed
üle maailma SQL, kuid lõpus päev
sa lähed olema kirjalikult nende päringute sees tegelik PHP koodi,
ja nii stay tuned sisse Zamyla on läbikäiguks eriti
kus saad ekskursioon jaotus kood see probleem komplekt
kus me oleme sulle andnud mitte ainult esteetika jaoks sisselogimise lehele
ja kena seksikas logo, mis ütleb CS50 Finance, kuid me oleme ka teile
hunnik funktsioone, mis teevad teie elu veidi lihtsamaks.
Me oleme ka kirjaliku osa pset teile,
Sisene osa sellest eriti, et anda teile tunde esindaja disain
et tegelikult kasutab kontroller, näiteks index.php,
Joomla jms, ja siis näete pset ka malle kataloog
et on kõik oma seisukohti, kõik esteetika.
Ja nii üldist töövoogu pset 7 saab olema, et
teie kasutajad külastavad kontrolleriga läbi URL brauseris.
See kontroller sisaldab PHP koodi, mis sa kirjutasid, ja sees oma PHP kood
võiks mõned read SQL pesitses vahel jutumärgid
ja edasi funktsiooni me kirjutas nimega päring
mis aitavad teil rääkida andmebaasi ilma midagi
haldus-tööriista nagu phpMyAdmin.
>> Sul on võimalik kirjutada SQL avaldused PHP kood
ja saada tagasi PHP massiivi tulemuse hulka,
Ridade et tegelikult sobivad, et päring.
Ja samamoodi on teil võimalik teha lisandused või kustutada
või uuendused vms, süntaks, mis on üsna sarnane,
ja näed mõne Interneti viiteid, st jaotus kood
ja pset pakk ise täpselt, kuidas edasi minna tehes.
Aru lõpuks me tõesti ainult kriimustada pinda SQL
ja MySQL, kuid võimsus on tõesti, et see vabastab teid
keskenduda probleemidele, mida soovite lahendada, kasutamise juhtudel soovite rakendada
ilma et peaks muretsema üsna palju, vähemalt varakult,
kus ja kuidas salvestada ja otsida oma andmebaasi,
ja see on sõna otseses mõttes, kus Facebook ise sai alguse
kasutades MySQL ja seejärel kasutades rohkem MySQL serverid ja siis veel MySQL serverid
Enne pikk, kuni nad siis tuli tõesti hakata mõtlema raske, kuidas
andmete salvestamiseks, kuidas säilitada asju veelgi tõhusamalt,
Nii et kuigi me enesestmõistetavaks, et indeksid ja ainulaadne piiranguid
ja nii edasi lihtsalt tööd seal on väga huvitav vestlus
et seda kõike lõpuks viia, nii aru, et me lihtsalt kriimustada pinda
mis võib lõpuks sulle või su projektid muutunud üsna natuke suur andmed.
>> Olles seda öelnud, teeme end siin, ja me näeme järgmisel nädalal.
[CS50.TV]