[Powered by Google Translate] [8 nedēļa, Turpinājums]
[David J. Malan] [Hārvarda]
[Tas ir CS50.] [CS50.TV]
>> Tas ir CS50, tāpēc šī ir beigas 8 nedēļa šeit.
Mums, protams, bija mazliet viesuļvētra šonedēļ,
tāpēc tagad tas patiešām ir tikai tu un es šajā lekciju zālē,
bet šodien mēs turpinām mūsu saruna par PHP
un par web programmēšanas vispār, kā mēs arī ieviest ideju
datubāzu, īpaši viens sauc MySQL, kas ir diezgan populārs šajās dienās,
lielā mērā tāpēc tās mērogojamību, kā arī tāpēc, ka tā pagaidām bezmaksas un atvērtā koda.
>> Bet vispirms, apskatīt, kur mēs left off pēdējo reizi.
Atgādina, ka mēs meklējām pie vairākiem Frosh IMS piemēriem,
un tas bija pretīgs forma, kas man nāca klajā ar apmēram 15 + gadiem
lai būtu skolēnus par Campus reģistrā par pirmkursnieks klātienes sporta
bez faktiski pārgājiens vairs pāri pagalmam uz Wigglesworth
slīdēt fizisko papīra zem daži Proctor durvīm.
Tā vietā mēs pārcēlās visu tiešsaistē, bet darīt, ka mums vajadzēja izmantot
no dažām tehnoloģijām, tāpēc viens, mums vajadzēja HTML, hiperteksta iezīmēšanas valoda,
kas atkal ir šis iezīmēšanas valoda, ar kuru jūs veicat interneta lapas strukturāli.
>> Izmantojot mazliet CSS šajās dienās, kaskādes stila lapas,
kad mēs izmantojam stilizācijas no tīmekļa lapas, izmantojot nedaudz atšķirīgu sintaksi,
tā kā HTML viss bija par savu struktūru.
Mums arī ir nepieciešams ieviest tīmekļa programmēšanas valodu.
Šajā gadījumā, mēs izmantot PHP un PHP gatavojas ļaut mums
dinamiski izejas saturu, kā arī darīt programmatiskās lietas, piemēram
nosūtot e-pastus, kā tas bija gadījumā uz piezīmi mēs atstājām pagājušajā nedēļā.
>> Atgādināt, ka attiecībā uz šo kodu bija 2 daļās.
Viens, mums bija froshims3.php,
un tas lielā mērā bija iezīmēšanas ar HTML formu iekšpusē no tā,
niecīga mazliet CSS šeit stilā atribūti
lai forma pati būtu vērsta uz lapu, bet tālāk, ka
Mums bija dažas reprezentatīvas forma ieejas, teksta lauks, rūtiņas,
Daži radio pogas, izvēlieties izvēlni, un pogas Iesniegt.
Un, izmantojot šo veidlapu, mēs iesniedzām uz failu, kas acīmredzot bija sauc register3.php,
kas pats par sevi izskatījās mazliet kaut kas līdzīgs šim.
Tagad lielākā daļa no koda register3.php, atceros, bija visu par pastu.
Tas bija mazliet atzīšana par formu, kas tika iesniegts, lai pārliecinātos
ka lauki tika faktiski sniedz kas tika gaidīts.
Tad mēs sauc dažas PHP funkcijas, izmantojot nedaudz jaunās sintakses,
pat ja tas ir aizgūts no C.
>> Tas bultu operators ļauj izmantot kaut ko sauc objektorientētā programmēšanā.
Mēs neiešu, ka jebkurā detalizēti šeit, bet zinu tagad
tas ir veids, kam funkcijas, kas saistītas ar priekšmetiem,
kas ir īpaša veida struktūra, kā mēs redzējām C.
Bet tagad, tikai pieņemt ticībā, ka tas ir pareizs sintakse izmantot
ja izmanto bibliotēku, piemēram, šo PHPMailer bibliotēkā.
Un tad gada beigās šo failu mēs bijām dinamiski radīts-pastu
kas ieguva nosūtīts uz manu jharvard@cs50.net kontā
no mana jharvard@cs50.net konta,
un mēs informēja lietotājam attiecīgi, ka tās bija reģistrētas šajā sporta veidā.
Tas ir diezgan daudz, ko Frosh IP vietā darīja visus šos gadiem
kad es to īstenoja, kas piešķirts, citā valodā,
bet tas parāda, varbūt varu, kas jums ir
tagad, ka jūs varat izteikt sevi ne tikai programmatiski
pie zema līmeņa valodā, piemēram, C, bet daudz augstākā līmenī
ar šiem ļoti reālās pasaules pieteikumus, piemēram e-pastu uz faktiski atrisinātu
dažas reālās pasaules problēmas.
>> Tagad, protams, lai gan es izmantot šo skriptu, lai radītu dažus
e-pastus dinamiski no jharvard@cs50.net, kas ir patiešām konts
ka man ir pieeja, tie ir diezgan uzmanīgi, lai nosūtītu
pastu tikai no kontiem, kas ir faktiski jūsu pašu,
citādi lietas iegūt jums mazliet karsta ūdens dzīvē.
Ar to teica, pieņemsim tagad pāreja uz risināšanai cita problēma vispār,
ka ir svarīgi saglabāt valstīm.
Tagad, ko tas patiesībā nozīmē?
HTTP, tas hiperteksta pārsūtīšanas protokols,
faktiski bezvalstnieks protokolu, un ko tas nozīmē, ka
kad jūs uzvilkt kaut ko līdzīgu Google.com tad hit ienākt
Parasti jūsu pārlūkam ir sava veida vērpšanas ikonas, kas pēc tam
rezultāti dažās mājas lapā tiek lejupielādēti,
un tad, ka maz ikona apstājas vērpšanai, un ka patiešām iesaka
ka HTTP ir pabeigusi sava veida savienojumu ar serveri, un tas arī viss.
HTTP ir bezvalstnieks, kas nozīmē, ka tā neuztur
pastāvīgs savienojums ar serveri tādā pašā veidā Skype dara
vai Gchat nav, jo ar HTTP
pieņēmums ir, ka tad, kad jūs esat atnesa mājas lapu, kas ir tā.
>> Tagad, patiesībā šīs dienas vietnēs, piemēram, Facebook un Google Maps
un Twitter un kā tur ir daudz vairāk dinamisms kuru
pat pēc šī ikona apstājas vērpšanai jūs varat faktiski iegūtu vairāk atjauninājumus
no servera, vairāk tweets, vairāk statusa atjauninājumus par Facebook un tamlīdzīgi.
Bet pat tas ir, izmantojot metodi, kas mēs runājam par nedēļu vai divām
pazīstams kā Ajax, izmantojot valodu sauc JavaScript,
bet beigās, dienā, HTTP joprojām bezvalstnieki.
Un vēl, ja jūs vēlaties, lai kaut kā atcerēties lietas par lietotāju
pat pēc to esmu atvienots no servera
PHP nav atļauties jūs līdzekļus darot
jo, kā mēs redzējām pēdējo reizi, PHP ir vairākas superglobals,
un superglobal ir, atkal, īpašu globālo mainīgo
kas ir nodots jums ar web serveri un PHP pati.
>> Jums nav jādara nekas, lai vērtības tajā,
un starp superglobals mēs esam redzējuši līdz šim, ir iegūt un pēc,
kas ir, ja lauki tiks likts automātiski jums,
kā arī pāris citiem, ka mēs neesam redzējuši vēl.
Iekšpusē $ _SERVER ir dažas īpašas mainīgie, kas saistīti ar servera pati.
Kas IP adrese, ko protokols, HTTP vai HTTPS jūs izmantojat,
Ko pieprasījuma metodi jūs izmantojat, un tamlīdzīgi, tāpēc tur ir dažas interesantas,
sulīgs ziņas par serveri, un patiesībā, tur lietotājs, kā arī.
Tur $ _COOKIE, kas ir, ja šīs lietas sauc sīkdatnes tiek glabāti.
Mēs ne tērēt laiku uz cookies sevi šodien,
bet zinu tagad, ka cookie ir tikai neliela daļa no informācijas
ka web serveri var stādīt uz tīmekļa pārlūkprogrammu
un savukārt tās RAM vai savas datora cietā diska
uzglabāt informāciju par lietotāju, piemēram, savu lietotāja vārdu
lai tie nav ierakstiet to katru reizi tie ienāk vai kādu
unikālais numurs vai par šo lietotāja identifikatoru
tā, ka jums nav, lai apgrūtināt tos ar tādus pašus jautājumus par
preferences nākotnē, bet lielākā daļa no interešu
tiesības tagad ir $ _SESSION.
>> Šis superglobal, kas, tāpat kā citiem, ir nodota jums automātiski PHP
, rakstot PHP balstītas mājas
var glabāt kaut ko vēlaties, stīgas, integers,
peldošas punktiem, vērtības, masīvi objekti,
tiešām kaut ko vēlaties, un tas ļauj jums saglabāt to tādā veidā
ka pat tad, ja lietotājs apmeklē jūs tagad un tad
nāk atpakaļ minūti no šī brīža vai 5 minūtes no tagad, jo
tās veic savu laiku pirms noklikšķinot kādu citu saites
PHP nodrošinātu, ka neatkarīgi jūs nodot šo sesija superglobal
Pēc minūtes vai 5 minūtēm joprojām būs tur, kad lietotājs atgriežas.
Un zem motora pārsega šis superglobal īsteno ceļā
šīs lietas sauc sīkfailus, bet tagad, tas ir tikai abstrakcija
ar ko tā ir sava veida programmatisko ekvivalenta iepirkumu grozam.
Neatkarīgi no jums, programmētājs, nodot, ka
superglobal asociatīvā masīva būs tur daži skaits minūtes vēlāk
līdz dzēst to, vai līdz lietotājs aizveras savu pārlūkprogrammu pavisam.
>> Pieņemsim apskatīt, piemēram, kā šī lieta faktiski tiek izmantots.
Jo counter.php Starp šodienas gabalu koda
mums ir šādu līniju.
Sākumā šo failu mēs esam ķekars zilā komentāriem, kas ir neinteresanti tagad.
Bet 13 līnijā mums ir jauna līnija,
session_start, un kas faktiski dara tieši to, ko tā saka.
Tā sākas sesijas.
Tas ļauj izmantot ka liels superglobal $ _SESSION, un tas ir tik vienkārši.
Tagad, ja mēs turpinātu skatīties pie 16 līnija, pieņemsim mēģināt izdomāt, ko šī tīmekļa lapa ir gatavojas darīt.
Ja (isset ($ _SESSION ["skaitītājs"]), tad iet uz priekšu
un veikals counter mainīgo, mazie skaitītājs,
$ _SESSION ["Skaitītājs"].
Šī, šķiet, ir atzīta par vietējo mainīgo sauc skaitītājs
iekšā kas tas liekot kopiju kāds ir iekšā superglobal
aicināja sesija vietas "letes".
Cits, acīmredzot, tas maz vietējo mainīgais skaitītājs, ir inicializēts līdz 0.
>> Bet tad dažas rindiņas vēlāk 26 paziņojumā ka sesija eksemplārs no letes,
tā atslēga, ir jauna piešķirtā vērtība, kas ir tās pašreizējā vērtība plus 1.
Īsāk sakot, šis fails šķiet atjaunināšanu
skaitītājs, kas glabājas iekšpusē sesijas superglobal
pēc palielināšanai to ar 1, bet tā vispirms saglabā kopiju iepriekšējā vērtība
, saglabājot to vietējo mainīgo sauc $ skaitītājs,
un tad uz leju šeit redzēsim, ko vēl.
Izrādās, tā ir diezgan daudz tikai HTML.
Pēc šīs lapas apakšā mēs redzēt 37 līnija, kas Es esmu apmeklējis šo vietni
skaitītājs vairākas reizes, tāpēc tur ir pāris interesantas iezīmes šeit.
Viens, tas ir acīmredzami mainīgs, taču tas nav pietiekami, lai tikai likt
$ Skaitītājs organismā jūsu HTML, jo, protams
ja tas ir tikai tur, starp jūsu HTML PHP gatavojas pieņemt, ka ir tikai HTML.
Jūs burtiski vēlaties $ skaitītājs, lai iespiež uz ekrāna.
>> Bet tā vietā krītot uz PHP režīma
ar šo gabals sintaksē mēs varam dinamiski ievietot vērtība šeit
ļoti līdzīga garu, ko mēs darījām iepriekšējā reizē ar
Ievietojot vērtības uz stīgām.
Faktiski, tas ir tikai stenogrāfija nošu sakot kaut kas līdzīgs šim burtiski,
print ($ skaitītājs), vai pat, piemēram printf (% s, letes) kaut ko,
vai pat, kā jūs varētu būt redzējis tiešsaistē vai mācību grāmatās,
tur PHP funkcija sauc atbalss
kas nav tas pats, un visi no tiem ir vienkārši vairs aizdusu veidi
, sakot <=.?
Šajā vienā gadījumā jums nav nepieciešams, lai
vārdu PHP pēc jautājuma zīmes.
Tas ir saīsinājums nošu, atkal, ko mēs tikko redzējām pirms brīža
kas atbalsojoties kādu vērtību.
>> Paskatīsimies, ko gala rezultāts ir tas patiesībā ir.
Ļaujiet man iet pār mūsu counter.php failā,
un mēs redzam, ka Deivids tikko kļūdījies, spēlējot ar kodu tur.
Iesim noteikt kāds viņš ieskrūvē augšu,
un kļūda, šķiet, ir tur, aizgāja, par 37 rindā.
Saskaņā ar šīs lapas augšpusē Es esmu apmeklējis šo saitu 0 reizes.
Nu, iesim uz priekšu tagad, un augšpusē pārlūku noklikšķiniet uz
papildināšanas ikonu, un es noklikšķiniet papildināšanas,
un tagad es esmu apmeklējis vietnes 1 reizi, 2, 3, 4, 5, 6, 7, 8.
Un tiešām, ja mēs skatāmies uz avotu šīs lapas faktiskais pirmkods mainās,
un paziņojums pilnībā nav PHP, un tas ir tāpēc,
PHP kods tiek vērtēta vai interpretē servera pusē,
un lai tas nozīmē, ka PHP skriptu izejas ir tas, ko galu galā nosūtīts pārlūku,
kas šajā gadījumā ir daži neapstrādātu HTML un dažas neapstrādāta teksta.
Kas šeit notiek?
>> Nu, ar salīdzinoši dažas rindiņas kodu es esmu spējīgs uzglabāt
neatlaidīgi gaitā vairākas sekundes, vai arī ja mēs gaidījām pietiekami ilgi,
minūtes, pat stundas, dažas vērtības tādā veidā, kas padara HTTP
Šķiet konekcijas stāvokļa parametriem bāzēts, it kā mēs esam saglabāti
Tas savienojums ar serveri, un tas ir tikai atcerēties to, ko es teicu to pēdējo reizi,
bet patiesībā tur ir viss sarežģītības ķekars notiek zem pārsega
iesaistot sīkdatnes, kas ir ļauj PHP man šo ilūziju
Šīs iepirkumu grozā līdzīgu funkciju.
Tagad, triviāls piemērs, kad mēs esam tikai glabāšanai skaitlim,
bet iezīme nāks atpakaļ būs ļoti vērtīgas
kad mēs sākam runāt par vairāk sarežģītu projektu,
Starp tiem problēma noteikti 7.
Tas ir jūsu ļoti pēdējā problēma noteikti CS50.
Es zinu, tas ir tik skumji, bet tas, ko jūs atradīsiet, ka mēs spēsim noslēgt
šī daļa no semestra ko faktiski pārejot
no konteksta, C protams kontekstā ar PHP
bet vienlaikus izmantojot dažus no pašiem pamatiem
Mēs esam runājuši par kādu laiku.
>> Ar 7 PSET mērķis ir īstenot CS50 Finance,
kas ir jūsu pašu versiju Yahoo Finance vai Google Finance
vai pat Etrade.com kurā jums ir spēja
meklēt akciju cenas dotas simboliem, bet vēl vairāk nekā
Jums ir iespēja "pirkt" un "pārdot" krājumi
kas tiek tirgoti dažādi biržās, jo kā šajā mājas lapā
šeit liecina, kas ir patiešām apmērs, kuru mēs esam sākuši
problēma komplekts jums, jums ir login formu, kurā lūgts lietotāja vārdu un paroli.
Tā ir iesniegt pogu, bet pēc tam, kā mēs beidzot redzēt,
nekas īsti notiek zem motora pārsega vēl jo tā
joprojām, lai jūs varētu īstenot spēju reģistrēt jaunus lietotājus,
spēja iegādāties krājumus, pārdot krājumus,
faktiski meklēt pašreizējās akciju cenas.
>> Un tiešām, tas būs kā reālajā pasaulē, kā iespējams, jo mēs darījām
ietver mazliet kodu, kas ļaus jums ar vienu funkciju
vaicājumu Yahoo Finance, kas lieliski padara pieejamus bezmaksas datu
meklē up akciju cenas, pamatojoties uz akciju simbolu vai svārsts simbols,
un jūs saņemsiet atpakaļ pašreizējo akciju cenu dienā.
Šie dati jūs faktiski redzēt šajā konkrētajā PSET būs
apmēram tikpat reālajā pasaulē, jo tā var iegūt tā, ka jūs faktiski saskarsme
ar reālās pasaules krājumiem, reālās pasaules cenām,
un mēs redzēsim, cik daudz naudas jūs varat darīt varbūt
pār tuvāko dienu laikā, spēlējot ar savu problēmu kopumu.
>> Bet pieņemsim vispirms noteikts posms, kā veidot kaut ko, kas noteikti daudz sarežģītāka
nekā counter.php, kas ir daudz sarežģītāka nekā jebkurš no Frosh ARS piemēriem līdz šim,
un pieņemsim mēģināt ieviest dažas paradigmas šeit, kas ļauj mums
gan par 7 PSET un varbūt savu galīgo projektu, ja jūs kaut ko darīt, balstoties web
lai saglabātu savu kodu labi organizēta, lai saglabātu sev normāls,
un spert soli pretī sadarbību, gan CS50 galīgajā projektu
vai aiz ja jūs turpināt, lai programma kaut ko nākotnē.
Tur tas ir vispārējs dizains paradigma
datorzinātnēs un programmatūras izstrādes kopumā
pazīstams kā MVC, modelis skats kontrolieris,
un tas ir muļķīgi akronīms, kas raksturo ļoti jauka ideja,
kas ir atdalīšana dažādiem aspektiem programmas,
īpaši saglabājot atsevišķu loģika vai biznesa loģika, mājas lapā
tā, ka jebkas, kas saistīts lietas, piemēram,
zvana funkciju un vaicājumiem datu bāzes un līdzīgi
notiek nav starp jūsu HTML
bet atsevišķos failos, un, protams, tur ir tas viens fails
parasti, ka esat sauc kontrolieris
tas tiešām smadzenes aiz darbību, un mēs redzam piemēru
Šī tikai brīdi.
>> Tur modeli, kas ir programmēšana kodu
kas dara to runāt ar jūsu datu bāzēm, kas runā ar Yahoo Finance un tamlīdzīgi,
un tad tur ir arī MVC V viedokli,
visi sīkumi, kas ir saistīts ar estētiku, faili, kas faktiski satur
jūsu HTML, varbūt jūsu CSS un līdzīgi.
Ideja, kā šī aina liecina, ka kontrolieris
ir fails, kā mēs drīz redzēt, kā jūs īpaši redzēt 7 PSET,
ka pasaule runā ar izmantojot savu tīmekļa pārlūkprogrammu.
Tas ir fails, kas izpaužas apmeklēja publisko interneta,
bet kontrolieris runā ar potenciāli modeli,
kas ir viens vai vairāki citus failus, kas satur kodu, kas saistītas ar datiem,
kods, kas saistīti ar datu bāzēm un tamlīdzīgi, un tad runā ar
datu apstrādātāju vienu vai vairākiem citiem failus pazīstams kā viedokļiem,
kas ir par mājas lapu estētika, šabloni veidu,
kas varētu veikt dažus datus kā ievade, bet beigās, dienā
vienīgais loģika iekšpusē mērķi būtu sniegšana šiem datiem,
atkārtojot pa cilpu un faktiski spitting dažus
HTML bāzes gūstekņus tās vai pat kaut kā PDF.
>> Kas ir jauka par MVC ir tas, ka jums var būt dažādi viedokļi
pamatojoties uz tipa ierīces, pamatojoties uz tipa faila formātā, kas jums faktiski
vēlas, lai parādītu lietotājam.
Pieņemsim to apskatīt dažas arvien vairāk sarežģītu un labi izstrādāta piemēriem
, sākot vispirms ar versiju 0 Šeit.
Ļaujiet man iet uz priekšu un atvērt mūsu MVC direktorijā šodien
failu sauc index.php pieejama 0 direktorijā.
Pamanīt tas ir super vienkāršs un ļoti underwhelming mājas
Tas ir sava veida uz mājas 0 versiju par CS50,
un paziņojums, kā mums ir saite uz Lekcijas, mums ir saikne ar mācību,
un ja es sekot saiti uz lekcijām paziņojumu, ka URL
līdz top gatavojas mainīt uz lectures.php.
Ja es pēc tam sekojiet saitei, lai nedēļa 1 paziņojumu, ka URL izmaiņas week1.php.
Šķiet, ka diezgan vienkāršs hierarhiskā struktūra šeit.
>> Pieņemsim veikt ātri apskatīt zem motora pārsega, kā tas ir izklāstīts,
un patiešām, ja es paskatos index.php tas ir diezgan vienkārši.
Faktiski, lai gan es sauc šo PHP failu tur nav reāla programmēšanas kodu.
Tur komentārs, ka es uzrakstīju šeit PHP tikai tāpēc lietotājam nav galu galā redzēt to.
Protams, tāpat kā iepriekš, kaut kas ir starp PHP tagiem
izpaužas interpretēt, pat ja tas ir komentārs, un interpretēt komentāru
nozīmē tikai mest to prom beigās, dienā, un faktiski nav
nosūtīt to uz pārlūku, tāpēc viss šeit ir tikai estētika.
Ja es atvērt līdzīgi lectures.php tas arī ir tikai grūti kodētu failu.
Tā notiek, ir kaut kas ko sauc. PHP,
bet tas tiešām ir tikai. html, un week1.php, week2.php
Tāpat ir tikai atzīmes, tāpēc tur ir nepilnības šo dizainu ķekars.
Viens, tas ir milzīgs daudzums copy / paste.
Kaut gan vienīgais, kas mainīsies no šiem failiem ir Nekārtots saraksts,
Li tagus, es tomēr ir dok veidu, HTML, galvas,
virsraksts, tuvu ķermeņa, netālu HTML un vairāk
katrā atsevišķā failā, kas nozīmē, ka, ja es kādreiz gribu pārstrukturēt
Šī tīmekļa lapa vai restylize to man iet un mainīt
visi šie faili manuāli vai ar kādu masveida atrast un nomainīt.
>> Paņemsim solis ir gudrāki, vairs domāt dizaina versijā 1 šeit
kuru kā vienu lasīt man, ka mēs esam iekļāvuši, lai jūs varētu spēlēt kopā ar
Tie vairāk nesteidzīgs mājās paziņojums, ka mēs esam šeit
kopsavilkumu par failiem 1 versijā no šīs vietas,
un šķiet, ka es esmu veikusi to uz sevi, lai faktors, kas
dažas kopīgas kods, header.php un footer.php.
Nu, pieņemsim apskatīt to, kas ir iekšā pirmais no tiem.
Header.php izskatās pazīstams,
bet paziņojums, ja tas nogriezta?
Tiesības pēc 19 līnijas, tā ka viss, kas bija izplatīta
no failiem index.php, lectures.php,
week1 un no iepriekšējā piemēra week2.php.
Ko es darīju bija kopija un sagriež viss, kas bija kopīgs visām šīm failiem,
ielieciet to atsevišķā galvenes failu, un līdzīgi arī footer.php
Vai es piemērot tādu pašu principu, kas paredz tikai interesantas līnijas
kas footer.php ir šie divi, netālu ķermeņa un cieši HTML.
>> Bet ko tas nozīmē tagad ir, ka jaunajā versijā
gada index.php paziņojuma cik daudz vienkāršāka tā var iegūt.
Piešķirts, nedaudz vairāk mistisks meklē, nedaudz mazāk intuitīvu
sekot augšas uz apakšu, bet mans Dievs, visa šī atlaišana tagad ir pagājis.
Mēs pieprasām, izmantojot PHP funkciju burtiski sauc prasa līdz top,
kas ir ļoti atgādina, atgādināt, no C ir # ietvert mehānismu.
Mēs pieprasām header.php augšpusē.
Mēs pieprasām footer.php apakšā, un vienīgā lieta, kas ir atšķirīgs
vai īpašu par šo failu ir saturs, kas ir domāts, lai būtu unikāls ar to.
Ja es pēc tam iet, teiksim, lectures.php, pats princips attiecas.
Atkal, daži pat augšas komentārus, bet tad man prasa header, prasa kājene
un starp tas ir tikai saturs, kas patiesībā mainījies.
Un, ja mēs ieskatījās nedēļa 1 un nedēļa 2 mēs gribētu redzēt
ka pats princips būtu piemērots tur.
Nu, mēs neesam gluži darīts tur.
>> Pieņemsim to apskatīt 2 versiju, kas ir līdzīga struktūra,
bet pamanīt tagad es esmu ieviesusi kaut ko citu.
10 Saskaņā es esmu ieviesusi helpers.php,
kas acīmredzot ir palīgs funkcijas.
Palīgs funkcija parasti samērā īss funkcija
kas jums rakstīt, lai palīdzētu jums, kas dažādās vietās,
un pieņemsim redzēt, kas ir iekšā no helpers.php.
Šajā gadījumā izskatās, ka tas ir 2 funkcijas.
Atgādināt no citu dienu ar mūsu kuba piemēru
Jūs varat noteikt savu funkciju PHP, un ko es esmu darījusi tagad ir es esmu
definētas funkcijas sauc padarītu kājeni un padarīt header,
no kuriem pirmais notiek parametru sauc datus,
kuru sākotnējā vērtība ir tukša masīvs, kā ierosināts tur,
un mēs faktiski var rakstīt tas vēl kodolīgi jaunāko versiju PHP
pasakot atvērto kvadrātiekavas, slēgta kvadrātiekavas.
Tas nozīmē tukšu par 0 izmērs masīvu, bet tomēr masīva.
>> Šis ekstrakts funkcija ir nedaudz īpašs ar to, ka
kas tas ir nepieciešams, jo tās argumentu asociatīvā masīva
kas ir 0 vai vairāki galvenie vērtību pārus, un, ja jums ir atslēga foo
un vērtību joslā Izraksts funkcija
rodas situācija, kas tagad, kā 11 līnijas,
jums ir vietējās mainīgo sauc $ foo kuru vērtība ir bārs.
Un, ja jums bija vairāk atslēgas un vērtības datu masīvs,
Tāpat tie būs ekstrahē vietējā jomu
vai nosaukums telpa, lai footer.php un
pati ideja noteikti šeit, lai header.php
piekļuvi šiem mainīgajiem.
Faktiski, ļaujiet man atvērt atkal header.php
un pievērst uzmanību tam, ko tagad tas izskatās šajā versijā.
>> Nevis grūti kodēšanu CS50 par virsrakstu katru lapu
pamanīt dinamisma, kas ir iespējams tagad.
5 Saskaņā es esmu atbalsojoties virsrakstu mainīgo,
bet vispirms es esmu iet, ka nosaukums mainīgo funkciju sauc htmlspecialchars.
Stulba nosaukumu funkciju, kamēr tā ir, bet tas tiešām dara to, ko tā saka.
Tas tiek panākts, ka speciālās rakstzīmes
virknē, kas ir izdoti, tiek pienācīgi izbēguši HTML.
Tas ir faktiski izvairīties no kaut kā, ko sauc par Cross Site Scripting uzbrukums
kad kāds var ļaunprātīgi vai nejauši
injicēt savu HTML savā mājas lapā
ar ielīmētu kādā veidā, piemēram,
kaut kas jums nav gluži gaidījis, īpaši JavaScript kodu,
kā mēs runājam par nedēļu vai diviem gadiem.
>> Tas tagad header.php, tas ir viedoklis
tādā ziņā, ka tā ļauj jums apskatīt estētiski saturu dažu datu kopas.
Bet jo īpaši, tas veidni.
Tas ir sava veida plānam tagad par to, ko mēs vēlamies no katras lapas galvenē izskatās,
bet tur ir dažas dinamisma ka mēs vēlamies titula būtu dinamiski ievietota
pamatojoties uz virsraksta mainīgā
, kas tika iegūts, kad mēs sauc, atkal,
apmetuma galvenes funkcija.
Tagad, ja mēs paskatījās apmetuma kājeni, tur tiešām nav daudz izmantot šīs tiesības tagad
jo footer.php tur nav dinamika whatsoever.
Tur varētu būt, bet šobrīd tas ir grūti kodēta sarakstu no 2 tagiem,
bet pati ideja attiecas, lai faktiski liecina kādēļ
vai mēs tērēt laiku, kam apmetuma galveni un apmetuma kājenes funkcija?
Ļaujiet man iet nevis tagad uz 3 versiju,
un ar palīgiem 3 versiju es nolēmu to vienkāršot vēl vairāk.
>> Ļaujiet man ir viena apmetuma funkcija.
Man ir tas uzņemtu citu argumentu, šoreiz sauc veidni,
kas ir domāts, lai būtu nosaukums veidnes,
un tad es būs saķēdēt pārgalvīgi php ka mainīgās vērtības.,
un tad, ja tā eksistē foo.php, bar.php vai header.php un footer.php,
tad es esmu gatavojas iet uz priekšu un iegūt mainīgās datus
un tad prasa šo ceļu.
Citiem vārdiem sakot, lai izmantotu šo tagad, ja es atvērt index.php
ievēroju, ka man nav aicinu apmetuma header vairs.
Es tikai aicinu padarīt, bet es iet ar citētajā vērtībā header
lai būtu skaidrs, kuru paraugu es tiešām gribu, lai slodze.
>> Tad nekā šeit pamanīt to, ko es daru.
Es esmu dodas, dinamiski atslēgu īpašumtiesību,
vērtību CS50, un tas arī, kā mēs redzējām iepriekš,
varētu būt vairāk kodolīga ar jaunāko versiju PHP
kur es varētu aizstāt masīvs funkcija ar kvadrātiekavās,
ko es ierosinu ir vēl lasāms un noteikti
mazliet vieglāk rakstīt.
Un, protams, ar apmetuma kājenes zvanu apakšā,
mums nav apnikt iet ar otro argumentu vispār, ne asociatīvais masīvs,
jo tur nekas dinamisks iekšā šī kājeni.
Tas ir tikai daži tuvi tagus HTML.
Labi, mēs esam ņemot soļus tiešām tīrīšanas lietas šeit,
bet ļaujiet man atvērt 2 galīgais piemērus.
Tas viens, skaitlis 4, paziņojums, ka es esmu izdarījusi apzināti tagad
uzlabot uz iepriekšējo piemēram, beidzot izmantojot dažus hierarhiju ar failiem.
>> Ievērojiet, ka šajā kopsavilkumā, jo tas lasa mani, es esmu ieviesusi
ietver direktoriju un veidnes direktoriju
, kuru saturs ir būs lietas, es gribu, lai iekļautu
un veidnes, kas es gribu sniegt, attiecīgi.
Tas ir tiešām mani ir anālais un cenšas, lai saglabātu lietas sakārtot,
glabāt saistītos failus kopā, bet gala rezultāts
ir tas, ka mums tagad ir nedaudz tidier iestatīšanu, bet mums ir jāatceras tagad
jo, piemēram, index.php
kad mums ir nepieciešama failu helpers.php
mums ir tagad pieprasa to, izmantojot includes / helpers.php
nevis tikai pasakot helpers.php jo tagad tas tiešām ir sub direktorijā.
Tagad, kā malā, jūs redzēsiet šos piemērus un daži citi
funkcijas, piemēram, pieprasīt, prasīt vienu reizi.
Tur tiešām funkcija pati sauc iekļaut, un viņi visi ir nedaudz atšķirīga uzvedību.
Šeit es saku pieprasīt vienu reizi, lai padarītu super skaidrs, ka es tikai gribu tos
palīgi iekļauti manu projektu vienreiz.
Bet, ja es esmu uzmanīgs un, ja es esmu patiešām domāju caur manu loģiku pareizi
To vajadzētu pietikt pārāk vienkārši pateikt prasīt līdz top
tik ilgi, kā es nav nejauši nepieciešama to pašu failu citur.
Faktiski, tas ir nedaudz efektīvāks veids, kā darīt lietas, tad, izmantojot
prasa vienu reizi, tāpēc es ņemšu apdares to uz leju, lai tikai prasīt.
>> Paņemsim vienu soli tālāk.
Šis pēdējais piemērs tagad, 5 versijas, ir pat tīrāks mapi hierarhiju.
Pamanīt to, ko es esmu darījusi šeit vienu lasīt man šajā gala versijā
Tagad man ir mana HTML direktoriju, kas man bija visu šo laiku,
bet iekšpusē tur tagad ir tikai index.php, lectures.php,
week1.php un week2.php.
The ietver katalogs tagad dzīvo līdzās HTML direktorijā,
tāpēc tajā pašā līmenī kā brālis, lai runāt.
Tāpēc nav Veidnes.
Galvenais takeaway šeit ir es esmu ieviesusi mazliet vairāk struktūru,
bet galvenais elements tagad ir tā, ka tikai failus
kas nepieciešams, lai būtu interneta pieejamiem, publiski adresējamā
ar URL uz publisko internetā ir manā HTML direktorijā.
>> Tikmēr citi faili, helpers.php, footer.php,
header.php, kas ir apstrīdami varbūt jutīgāka,
varbūt palīgi faktiski ir dažas lietotājvārdus un paroles vai dažas intelektuālā
īpašums raktuves, darbojas es tiešām nevēlos pasauli redzēt, pat ja nejauši.
Tā ir laba prakse, lai saglabātu no valsts HTML direktorijā
visiem dokumentiem, kas nav nepieciešams sevi publiski.
Viss, kas Jums jādara šajā gadījumā, ja aplūko, piemēram,
par HTML directory index.php fails,
pamanīt mums vienkārši ir jābūt nedaudz uzmanīgiem, pieprasot
vai pieprasīt reizi šo failu.
Man vajag, lai vispirms darīt .. iet uz mātes direktorijā,
tad do / includes / helpers.php
nirt atpakaļ uz leju, lai iegūtu failu, kas man rūp.
>> Visus jautājumus, tad par MVC
vai šī salīdzinoši vienkāršs iemiesojums to?
Un ļaujiet man skaidrs, ka mēs vērsta diezgan daudz par
V šeit, uzskati un faktoringa no šīm veidnēm.
Mēs esam īsti atšķirt M no C tikai yet.
Patiesībā, tur tiešām nav M šeit, un pat mūsu C
kontrolieris, nav īsti dara visu, ka daudz, bet jūs saņemsiet daudz vairāk
iepazinušies ar abiem šiem 2 vēstules no MVC,
vai drīzāk, jūs saņemsiet daudz vairāk pazīstams ar C
jo MVC par problēmu kopumu 7, tāpēc tur ir vairāk, ka pie horizonta.
Jautājumi?
Tur tiešām neviens šeit.
>> Labi, pieņemsim tagad pāriet uz otro un galīgo tēmu šodien.
Tas ir ieviest datu bāzē.
Līdz šajā punktā mums bija dažas iespējas datu glabāšanai.
Mēs esam izmanto mainīgos.
Atpakaļ mūsu C failu, I / O diskusija sākām izmantot teksta failus
un izmantojot failus, piemēram fprintf, un tad mēs pat sākām
runājam par CSV failus mazliet, komatiem atdalītas vērtības,
tāpēc visi šie ļāva mums ir dati glabājas
nu nav pastāvīgi vai nemitīgi.
Bet pat CSVs nav īsti veicina meklēšanu
un ievietojot un dzēšana.
Tas patiešām ir tikai stulba teksta failu atdalītas ar komatiem
rindu pēc rindas ar pa vienai rindai, tādēļ, ja jūs vēlaties, lai
meklēt, ka fails vislabāk varat darīt, tiešām ir lineāra meklēt.
Jums ir jāsāk augšpusē lietas, lasīt visu lieta,
un meklēt kādu vērtību interesi.
Ja jūs vēlaties ievietot to jums ir darīt to pašu,
atkārtojot pār to un ievietojot noteiktā vietā,
un patiesībā, jums ir darīt visu, kas meklē loģiku sevi.
>> Jūs nevarat darīt gudrs modelis saskaņošanas ar CSV failā, ja vien tu pats uzrakstīt kodu.
Jūs nevarat darīt filtrāciju CSV faila
ja vien tu pats uzrakstīt kodu.
Vai tas ir jauki, ja kāds cits nodot visas pūles
lai faktiski padarītu meklēšanu viegli un ievietošanas viegli
un dzēšanu un atjaunināšanu un tā tālāk?
Tas ir tieši tas, ko datu bāze.
SQL, strukturēta vaicājumu valoda, ir vēl viena valoda
ka mēs ieviest šeit šodien, bet tas arī ir diezgan pieejamas,
un ko mēs tiešām gatavojas darīt, ir tikai raut no tā dažus no visvairāk izvirzītajā
īpašības, lai par 7 PSET, un, ja jūs kaut ko darīt, balstoties web,
savu galīgo projektu, jums ir iespēja izteikt sevi
attiecībā uz datu vaicājumiem.
Jums ir iespēja saglabāt maz vai daudz datu
jo daudz strukturētā veidā, kas būs beigās, dienā
padarīt savu dzīvi vieglāku, jo ar SQL, jūs varat izteikt sevi
daudz precīzāk, daudz metodiski lai
saņemt atpakaļ kādu datu apakškopu no lielāka kopuma datu.
>> Jūs varat domāt par datubāzē, jo šajā gadījumā, SQL datu bāzē, tiešām, piemēram, Excel
vai numurus, ja tas ir izklājlapu,
vai varbūt vairākas izklājlapas, un izklājlapu, protams,
ir rindas un kolonnas, un tas ir tāpēc,
SQL datu bāzes ir relāciju, relāciju tādā nozīmē
ka tās uzglabā datus ziņā šo tabulu,
rindas un kolonnas.
Tie ir augstākas veiktspējas nekā kaut kā izklājlapu,
un izklājlapu ir paredzēts izmantot cilvēku.
Datubāze ir paredzēts izmantot ar programmētājs
rakstot kodu pret to, tāpēc iemiesojums datubāzes
būs vai nu komandrindas.
>> Viens no populārākajiem relāciju datubāzēm, kas tur ir, atkal, MySQL
kas ir lieliski bezmaksas, ļoti jaudīga, un tas ir tas, ko
Facebook lieto ļoti agri un zināmā mērā vēl šodien
uzglabāt daudz tās datiem, un mēs redzēsim pēc brīža
ka, izmantojot salīdzinoši vienkāršus komandas
mēs varam izvēlēties datus, ievietotu datus, atjaunināt datus,
dzēst datus un tamlīdzīgi, bet par laimi, tur ir vairāk lietotājam draudzīgs interfeiss
nekā tikai rakstīt pie melnā un baltā prompt šeit.
Mēs izmantosim par 7 PSET un aiz bezmaksas rīks sauc phpMyAdmin.
Nosaukums ir nejaušs.
Līdzeklis notiek īstenot PHP,
bet tas ir būtiski svarīgs.
Kas ir noderīgi par phpMyAdmin, ka tas ir tīmekļa lietderība.
Mēs esam iepriekš instalēta to ierīci jums,
un līdz ar to jūs varat izveidot tabulas datu bāzē,
Jūs varat ievietot datus, dzēst datus un vispār redzēt
Jūsu dati diezgan lietotājam draudzīgu vidi.
Lietotājiem nav gatavojas izmantot phpMyAdmin.
>> Tas ir patiešām vienkārši administratīvu vai izstrādātāja rīku
ar ko redzēt un kule ap jūsu datiem un izdomāt, kā to iekārtot,
daudz, kā jūs pats varētu izmantot Excel vai numuri,
bet tas būs lielisks veids, kā vizualizēt to, kas notiek zem pārsega
lai jūs varētu koncentrēties uz interesantu problēmu risināšanas un ne tik daudz
uz mistiskā komandas.
Pieņemsim to apskatīt piemēru datu, kas varētu tikt uzglabāti tabularly
kas relāciju datu bāzē.
Lūk, viens šāds piemērs.
Tagad, diemžēl, phpMyAdmin kļūdījusies uz pusi mešanas veidā pārāk daudz vārdu
un grafikas pie jums, bet, ja jūs asināt tikai par
ID kolonna, lietotāja vārds kolonna un hash kolonna,
Tas ir efektīvi izklājlapu, bet tas notiek, ir fragments
no tabulas iekšpusē ierīces
izmantojot failu, mēs nodrošinām Jūs ar problēmu kopumu 7.
>> Jo īpaši, mēs jums failu, kas pārstāv
bija lietotāja galda, tāpēc izklājlapu satur lietotājus ar 3 kolonnām,
no kuriem viens ir unikāls ID sākas ar 1 un tiek palielināts pēc tam.
Otrajā ailē ir lietotāja vārds, un tiem no jums, kas bija Hacker,
Hakeru izdevums par 2 PSET, varētu atpazīt dažus no šiem lietotāju nosaukumus vismaz.
No labajā pusē ir paroles, bet viņi nav burtiski paroles.
Viņi hashes pantu, tāpēc izrādās
ka uzglabājot paroles datu bāzē ir ļoti slikta ideja.
Jūs visi esat iespējams izlasīt kādā brīdī kādu mājas lapu
vai daži uzņēmuma datubāzē tiek apdraudēta, un tad jums ir
nomainīt savu paroli, jums ir nepieciešams, lai saņemtu kompensācijas par lietām
jo daži slikts puisis tiešām izcēlās savā kontā, kā rezultātā.
>> Uzglabājot paroles skaidrā tekstā, nešifrētu datu bāzē
ir pilnīgi muļķīgs, un tomēr tas ir ievērojami uzjautrinoši
tad lasīt par dažiem ļoti labi zināmiem uzņēmumiem
dažkārt presē kuru datubāzes ir apdraudēti,
un šī daļa nav smieklīgi, bet fakts, ka datubāzes satur nešifrētā
paroles ir smieklīgi, jo burtiski ar vienu līniju kodu
Jūs varat aizsargāt pret šo īpaši apdraudēta, un tas, ko mēs esam darījuši šeit.
Pat mūsu viltus maz CS50 Finance versiju
mums ir šifrējot paroles tikai labs pasākums, un fakts, ka
visi šie paroles sākas ar $ 1 $ ir tikai konvencija.
Tas tikai nozīmē, ka viņi kodēti vai tiešām sajaukts,
kas ir kā vienvirziena šifrēšanas funkcija
kurā jūs nevarat mainīt savu ietekmi ar kaut ko sauc MD5.
>> Fakts, ka 50 ir pēc tas nozīmē, ka sāls vērtība
gada 50 tika izmantota sajaukšanai visām šīm parolēm, izņemot vienu.
Mine, protams, jo jūs varat redzēt, tur, HA,
bija izmantojot citu sāls, lai tie no jums, kas palika nedaudz paklupa uz augšu
varbūt 2 Hacker, kas varētu būt rezultāts mūsu ir izmantojuši
atšķirīgs hash par citiem, jo ​​mana parole ir faktiski tāds pats
kā daži citi lietotājs tur.
Patiesībā, ja jūs esat gaidījis visus šos nedēļas, lai uzzinātu
kādi ir šie paroles tika šeit bija paroles, kas jums bija apstrīdēti
kreka kas Hacker izdevumā problēmu kopumu 2, tāpēc nav pārāk grūts.
Faktiski, Malan s bija tāds pats kā jharvard,
bet, ja mēs ejam atpakaļ viņi izskatījās citādi.
>> Koncentrējieties uz jharvard ar Crimson jo viņi sālīšanu atšķirīgi.
Algoritms tika perturbed tādā veidā, ka
jaucējvērtība, šifrētu vērtība izskatās nedaudz atšķiras
jo ieguldījumi bija nedaudz atšķirīgi, taču parole zem pārsega
vēl galu galā sārtināt.
Tagad, kas rūpējas par šo?
Nu, mēs sniedzam jums parauga lietotājiem, izlases lietotājvārdi
un hashes viņu paroles, lai jūs tiešām ir dažas
Klienti par CS50 Finanšu kad jūs pirmo reizi iegūt pie zemes ar savu kodu.
Jums ir jāīsteno vairāk tabulām iekšpusē MySQL, iekšpusē no datubāzes.
Jums ir radīt vairāk izklājlapas, efektīvi, bet mēs nolēmām dot jums šo vienu
lai iegūtu Jums sākusies, un jūs redzēsiet, ka problēma komplekts specifikācija
pastaigas Jūs, izmantojot procesu, kas importē šo tabulu
un arī izskaidrojot to, ko daži no īpašībām ir,
un jūs arī redzēt, ka mēs sniedz jums ar kodu
rīkoties sajaukšanai vai šo paroles šifrēšanu,
tāpēc jums nav jāuztraucas pārāk daudz par to, ko MD5 vai līdzīgi ir faktiski visu par.
>> Tātad, SQL, strukturēta vaicājumu valoda.
Tas ir, gluži vienkārši, valodu, mēs esam par to, lai sāktu lietot 7 PSET
un varbūt pat ilgāk pieprasīt datus no dažiem bāzē.
Dati ir, atkal, uzglabā tabularly šajās relāciju tabulām, kolonnas un rindas,
bet izmantojot dažus salīdzinoši vienkāršus sintaksi, piemēram, dzēst,
ievietot, atjaunināt un izvēlieties mēs varam darīt tieši to.
Mēs varam izdzēst no datubāzes, ievietot,
atjaunināt datus, kā arī izvēlēties, tas ir, iegūt datus no datu bāzes.
Kā mēs iet par to izdarīt?
Ļaujiet man iet uz priekšu ierīcē.
Ļaujiet man uzvilkt http://localhost,
kas, atkal, ir vietējais pati ierīce.
Tas ir tās noklusējuma segvārdu.
Un ļaujiet man iet / phpMyAdmin.
Tas notiek, ir īpašs URL ka ierīce ir konfigurēta, lai saprastu
ka uzreiz liek man par lietotājvārdu un paroli.
>> Kā ierasts, es esmu gatavojas rakstīt jharvard un tumšsarkanā,
bet saprast, ka ir administratora konts uz datora.
Tas ir tikai sagadīšanās, ka tur ir arī jharvard reģistrēti CS50 Finance.
Jharvard, tumšsarkanā, ievadiet dod man lietotāja interfeiss, kas mēs redzējām
ieskatu brīdi atpakaļ, un tas ir nedaudz milzīgs sākumā,
bet drošs, jūs nekad nāksies klikšķiniet lielāko no saitēm šo rīku.
Jūs galu galā, izmantojot nelielu apakškopu, kas ir super noderīga,
no kuriem pirmais ir datubāzes šeit.
Ja es eju līdz datubāzēm, pamanīt, ka es esmu piedāvāts izveidot datu bāzi.
Tas ir, piemēram, izveidojot jaunu Excel failu, efektīvi.
Es iešu uz priekšu un zvanu šo lekciju, es esmu tikai gatavojas ignorēt lauku tur, salīdzināšanai.
Tas ir jādara ar pārstāvību datiem tajā,
un es esmu gatavojas uz radīt, un tagad paziņojums, kā es let aiziet no radītu
kreisajā pusē, kur ir teikts nav datubāzes
Es drīz redzēt lekciju bāzi.
>> Ja es tagad noklikšķiniet uz kreisajā pusē, lekciju datu bāzes,
pamanīt mani cilnēm mainīt mazliet.
Man struktūra, SQL, eksporta, importa un dažas citas lietas.
Struktūra ir diezgan daudz tukšu.
Nav tabulas atrast datubāzē, kā tas teikts šeit,
tāpēc pieņemsim izveidot tabulu, un iesim uz priekšu un izveidot tabulu
patīk studentiem, un cik kolonnas mēs vēlamies?
Pieņemsim glabā šo vienkāršo, un pieņemsim ieraksts katram studentam
ID numurs, nosaukums, un e-pasta adresi.
>> Mēs turpināsim to vienkārši tāpat, tāpēc 3 kolonnas, iet.
Forma, ka jūs redzēt šeit ir tagad mazliet netīrs un milzīgs,
bet mums vienkārši ir jāiet caur to rindu pēc rindas, tik tiešām ātri dosim
pirmā kolonna šajā datubāzē nosaukums ID, lai unikālo identifikatoru.
Tas būs skaitlim. Es patiesībā var ignorēt garumu un vērtības.
Int būs 32 biti vienalga, ko jūs rakstīt tur, tāpēc pieņemsim atstāt to tukšu.
Noklusējuma vērtība, es varētu darīt to null, kā noteikts.
Es esmu gatavojas atstāt, ka atsevišķi. Pieņemsim nav jāuztraucas par noklusējuma vērtībām.
Pieņemsim ritināt nekā šeit uz labo, atribūtiem.
Tas ir interesanti.
Iesim uz priekšu un nedaudz patvaļīgi teikt, ka ID ir jābūt neparakstītu.
Pieņemsim nav atkritumi jebkurā negatīvus skaitļus.
>> Iesim 0-4000000000, sniegt vai pieņemt,
un tad pieņemsim nav pieskarties kāds no šiem laukiem tikai vēl tur,
bet tad man rakstīt vārdu šeit lejā,
un tad otrs bija e-pastu, tāpēc nozvejas ir e-pastu
un nosaukums, protams, nav veseli skaitļi, tāpēc pieņemsim mainīt tos citā jomā.
Izrādās varchar, mainīga garuma char,
ir kā virknes SQL datu bāzē
bet dažāda garuma, un jūs faktiski ir pateikt to iepriekš ar
maksimālais garums string, tāpēc es esmu gatavojas nedaudz patvaļīgi
Pēc vienošanās veida 255 rakstzīmes.
Es varētu pilnīgi teikt 32. Es varētu teikt 1000.
Jūs veida nepieciešamību lemt par sevi, pamatojoties uz jūsu demogrāfiju kādi ir
Garākais studenta vārdu un iet ar šo numuru, vai nedaudz lielāks,
bet kas ir jauki, par varchar tas nav gatavojas atkritumiem
255 baiti par katru studenta vārdu.
Ja tas ir David tas nav gatavojas izmantot veselu 255 baiti,
bet tas ir augšējo robežu, tāpēc es iešu ar 255 tikai pēc vienošanās,
bet mēs varētu diskutēt, kas ir dažas zemākas cenas, un e-pasta adresi
tikai, lai būtu konsekventi 255, bet atkal, mēs varētu būt tāds pats debates.
Bet es esmu gatavojas darīt viena cita lieta nekā šeit uz labajā pusē.
>> Kas ir spēcīgs par datubāzi ir, ka tā var darīt daudz smago celšanas
vai sarežģītas darbu jums.
Jo īpaši es tiešām vienalga, ko mana studentu ID numuri ir.
Tas ir tikai domāts, lai būtu unikāls identifikators datu bāzē
tāpēc man ir 32 bitu kodolīgu pārstāvību šī studenta
tāpēc, ka man ir kaut kādā veidā unikāli identificē tos
citādi tur būs 2 Davids, piemēram, klasē.
Patiesībā, es esmu gatavojas, lai pārbaudītu šo AI lodziņu, auto pieaugumu,
lai datubāzes, MySQL, skaitļi,
ko katrs tikko ievietotās studenta ID būs.
Man nav pat rūp, ka manā kodu,
un es esmu arī gatavojas izvēlēties kaut zem indeksa izvēlnē.
Indekss nolaižamo šeit ir galvenais, unikāla,
indeksu un pilna teksta.
Jūs varat varbūt uzminēt, ko no šīm lietām pāris ir,
bet izrādās relāciju datubāzēs
Jūs programmētājs vai datu bāzes administrators nokļūt preemptively
dod padomus, lai bāzē par to, kādi lauki
tabulā ir nedaudz īpašs.
>> Piemēram, šajā gadījumā es esmu gatavojas teikt, ka ID
būs galvenais rādītājs, kas pazīstama arī kā primāro atslēgu.
Ko tas nozīmē pēc definīcijas ir tas, ka ID turpmāk
būs unikāli identificē studenti šajā tabulā.
Neviens students ir tāds pats ID, jo es esmu uzlikt šo ierobežojumu vai šo indeksu.
Turklāt, ko tas gatavojas darīt man tas notiek, lai pateikt
MySQL, ka ID ir īpašs.
Man rūp īpaši par ID, tā iet uz priekšu un darīt jūsu iedomātā datu struktūra ir maģija,
veidot kādu koku.
Parasti tas ir kaut ko sauc par B-koks, kas mums nav apskatīt nedēļas atpakaļ,
bet tas ir vēl viens šāds datu struktūra līdzīgs garā ar bināro koku
un mēģina ka mēs paskatījās, bet tas notiek teikt
datubāzē šis lauks ir tik svarīgi, ka es, iespējams,
vēlas, lai varētu meklēt par to, iet uz priekšu un izveidot kādu iedomātā
datu struktūra atmiņā, lai paātrinātu meklēšanu, lai ideāli
viņi nemainīgs laika vai vismaz tik tuvu, ka pēc iespējas
lai tas nepāriet uz lineāru meklēšanu, kas nebūs
visvairāk labākajām pieeju.
Savukārt, e-pasta adresi varētu būt primārā atslēga.
>> Teorētiski, ikviena e-pasta adrese ir unikāla, ja jūs dalīties dažas kontu,
bet tas vispār nav labs, lai izmantotu kaut ko līdzīgu virknes
kā primāro atslēgu, jo, ja tās mērķis dzīvē ir unikāli identificē
rindas jūsu galda nav iemesls, lai izmantotu 255 baiti maksimāli
lai unikāli identificētu kādu, ja jūs varat iegūt prom ar tikai 4 baiti
vai 32-bitu int.
Kopumā, primārā atslēga būtu īss un kodolīgs
un ideāli kaut kas līdzīgs skaitlim vai liels int, kas notiek, ir 64 biti.
Bet e-pasta adrese ir unikāls, un no datubāzes iezīmēm pārāk
ir īstenot unikalitāti par mani.
Izvēloties unikālu šeit blakus uz e-pastu, lai gan e-pastu sevi
ir apskatus pie ekrāna, es saku ar datu bāzi
nav ticiet man.
Neļaujiet man ievietot datu bāzē
pats pasta adresi divreiz, pat ja es esmu idiots un neesmu
ļoti labi ar manu IF un citur IFS un faktisko PHP kodu
un es nejauši let lietotājs reģistrēties ar esošo e-pasta adresi
datubāze ir vēl viens līmenis aizstāvību pareizību
lai nodrošinātu, ka dublikātu e-pasta adrese nebeidzas līdz tabulā.
>> Tagad, turpretim, lai vārdu jūs, iespējams, nevēlaties, lai šo unikālo
jo tad varētu nekad būs 2 Davids vai 2 Mike Smiths, piemēram,
datu bāzē, tādējādi, ka viens mēs vienkārši atstāt vienatnē.
Es iešu uz priekšu un noklikšķiniet ietaupīt apakšējā labajā,
un viss izskatās labi, bet paziņojums šeit
šī ir daļa, kas tagad mums nebūs tērēt pārāk daudz laika
jo sintakse ir mazliet sarežģīta, un mums nav izveidot tabulas
tik bieži, bet SQL pati valoda,
sintakse, kas ir tepat, ka es esmu izcelti.
Ko phpMyAdmin tiešām tas ir tas rada tīmekļa GUI jums
ar kuru jūs varat ietaupīt laiku un nav manuāli rakstīt out
diezgan ilgi SQL vaicājumu, piemēram, ka.
>> Citiem vārdiem sakot, ja jūs vēlaties, lai manuāli izveidotu šo tabulu,
nu tajā melnā un baltā tūlītēju vai pat phpMyAdmin
izmantojot šo citu cilni, šis SQL tab, kur jūs varat ierakstīt jebkuru SQL vaicājumus
Jūs vēlaties, atklāti sakot, tas būtu jāņem man minūti
faktiski atcerēties visu sintaksi un pat tad es droši vien būtu
guvusi typos, tāpēc šis rīks ir noderīgs tādām lietām, un tas ir arī pamācošs.
Jūs varat sākt, lai secinātu kāda sintakse ir
tikai ar jauku krāsu kodēšana, ka phpMyAdmin ir pievienojot
mūsu vizuālo ērtības.
Bet tagad pieņemsim darīt vietā.
Ļaujiet man iet uz cilni Ievietot augšā, un ļaujiet man iet uz priekšu un ievietojiet piemēram
gada pieņemsim ID saka-patiesībā man vienalga.
Tas notiek, lai auto pieaugumu. Es esmu gatavojas let datubāzes galā ar šo.
Bet es ir Dāvids, un mans e-pasts ir jābūt malan@harvard.edu.
>> Iesim uz priekšu šeit un nodot Maiks Smits kā viens otru.
Es došu sev uzvārdu, kā arī,
un mēs esam viņam būs smith@example.com,
un tad, kad man iet tālāk?
Nu, izskatās, ka iet ir poga klikšķi, un voila.
Pamanīt to top 2 ievietotās rindās.
Tas ir faktiskais SQL vaicājums.
Tas ir phpMyAdmin līdzeklis izpildīts par mani,
bet gala rezultāts, paziņojums, ja es tagad aiziet uz pārlūkot tab,
ir redzēt 2 rindas šajā tabulā, ļoti atgādina estētiski
tabulas mēs redzējām agrāk mūsu lietotājiem no 7 PSET,
no kuriem viens ir David Malan, no kuriem viens šobrīd ir Mike Smith.
Bet tikai, lai būtu skaidrs, man nav nepieciešams izmantot phpMyAdmin,
un, protams, jūs gatavojas drīzumā rakstot kodu uz 7 PSET
kas automatizē procesu, pievienojot rindas, dzēšot rindas, atjauninot rindas un tamlīdzīgi,
tāpēc ļaujiet man tā vietā doties uz SQL cilni šeit
un tips izvēlieties * no studentiem kur
e-pasts = "malan@harvard.edu."
>> Citiem vārdiem sakot pieņemsim tagad jums ir
dažas HTML formu, un lietotājs savā e-pasta adresi, starp citām jomām,
un mērķis tagad ir PHP par atpakaļ beigās kodu
faktiski meklēt šī lietotāja citas detaļas.
Kāda ir jūsu pilnais vārds? Kāds ir jūsu ID numurs?
Jūs varētu uzrakstīt SQL vaicājumu, piemēram, tas, izvēlieties * no studentiem
kur e = "malan@harvard.edu."
Un, ja es pēc tam uz iet, ievēroju, ka es būtu, un patiešām man, saņemt atpakaļ tikai vienu rindu.
Mike ir izlaista no šī rezultātu kopas, kā vākšanai rindās
parasti sauc, jo viņš nav to pašu e-pasta adresi, kā man.
>> Tagad, atkal, šeit ir par 7 PSET jums izmantot phpMyAdmin kā administratīvs instruments
un pedagoģisko instruments, lai uzzinātu savu ceļu
visā pasaulē SQL, bet beigās, dienā
Jūs esat būs rakstiski šos vaicājumus iekšā faktisko PHP kodu,
un tāpēc sekojiet līdzi arī Zamyla s walkthrough īpaši
kur jūs saņemsiet tūre izplatīšanas kods šo problēmu kopumu
kur mēs esam dota jums ne tikai estētika par pieteikšanās lapu
un jauka sexy logotips, kas saka CS50 Finance, bet mēs esam arī devis jums
ķekars funkcijas, kas padarīs jūsu dzīvi mazliet vieglāk.
Mēs esam arī rakstiskā daļa no PSET jums,
pieteikšanās daļa no tā, jo īpaši, lai dotu jums sajūtu pārstāvniecības dizaina
kas faktiski izmanto kontrolieris, piemēram, index.php,
login.php un līdzīgi, un tad jūs redzēsiet PSET arī veidnes direktoriju
kas ir visas jūsu viedokli, visi estētiku.
Un tā kopējais darbplūsma 7 PSET būs, ka
lietotājiem apmeklēt kontrolieris caur URL pārlūkprogrammā.
Ka kontrolieris satur PHP kodu, kas jūs rakstījāt, un iekšā jūsu PHP kodu
varētu būt daži no SQL līnijas ligzdot starp dubultās pēdiņas
un nodots funkcijai mēs rakstīja sauc vaicājumu
kas palīdzēs jums runāt ar datubāzes bez izmantojot kaut ko līdzīgu
administratīvais instruments, piemēram phpMyAdmin.
>> Jūs varēsiet rakstīt SQL paziņojumus PHP kodu
un saņemt atpakaļ PHP masīvs rezultātu kopu,
no rindām, kas faktiski atbilst šo vaicājumu.
Un tāpat jūs varētu darīt ieliktņi vai dzēš
vai vai atjauninājumus tamlīdzīgi sintakses, par kuru ir diezgan līdzīgs,
un jūs redzēsiet no dažiem tiešsaistes atsaucēm, no izplatīšanas kodu
un no PSET pack sevi kā tieši iet par darot to.
Realizēt galu galā mēs esam patiešām tikai nesaskrāpē virsmas SQL
un MySQL, bet tā jauda patiešām ir, ka tas atbrīvo jūs
koncentrēties uz problēmām, ko vēlaties atrisināt, lietošanas gadījumi jūs vēlaties, lai īstenotu
neraizējoties tik daudz, vismaz sākumā,
par to, kur un kā glabāt un meklēt savu datu bāzi,
un tas ir diezgan burtiski kur Facebook pati ieguva tās sākuma
izmantojot MySQL un tad, izmantojot vairāk MySQL serveri un tad vairāk MySQL serveri
pirms ilgi, līdz tie pēc tam bija tiešām sākt domāt grūti par to, kā
glabāt datus, kā uzglabāt lietas vēl efektīvāk,
Tātad, pat ja mēs uzskatām par pašsaprotamu, ka indeksi un unikāls ierobežojumi
un tā tālāk vienkārši strādāt tur ļoti interesanta saruna
ka tas var visu galu galā noved pie, lai saprastu, ka mēs esam vienkārši nesaskrāpē virsmu
par to, ko varētu beidzot par jums vai jūsu projekti kļuvuši diezgan mazliet lielo datiem.
>> Ar to teica, pieņemsim galu šeit, un mēs redzēt jūs nākamajā nedēļā.
[CS50.TV]