>> [MUSIC JOC]
ALLISON Buchholtz-AU: Bine, pentru toată lumea, bun venit înapoi la pct.
Sperăm că toate au avut un mare Week-end de Halloween, sau Halloweekend,
cum îmi place să spun, toate odihnit și recuperate.
Și din fericire nu e mai ninge.
De fapt, soare afară.
Am fost real fericit despre asta.
Nu este gata să scoată cizmele de iarna.
Să sperăm că, pset6 a mers destul de bine.
>> Dacă sunteți obosit de C, sunt fericit să spui că ai terminat cu C timp de acum.
Am tranziția complet în programare web,
astfel încât veți fi de lucru în HTML, PHP, poate un pic de JavaScript.
Nu știu ce săptămâna viitoare PSET este, asa ca nu pot garanta
ceea ce dvs. următor PSET va fi, dar PSET această săptămână
este CS50 Finance, care este de fapt de punere în aplicare un fel de pagina web
care vă permite să cumpere și să vândă stoc, și ține evidența lor.
Și e destul de rece, pentru că tot de care este generat dinamic.
Puteți avea diferite utilizatori care au fiecare propria lor de informații,
și vei fi de punere în aplicare tot de asta.
Este nevoie de un timp.
Sunt convinsă că acest lucru este mai ușor decât C psets, dar este nevoie de mai mult.
Te învățarea unei limbi străine, PHP, care este foarte similar cu C,
dar, desigur, se va solicita te uiți în sus sintaxă și înțeles
cum de a converti între limbile.
>> Dar nu cred că e ceva super-vedere conceptual tare despre acest PSET.
E doar de învățare nouă limbă și de asistent
prin toate aceste piese mici.
Dacă voi ați citit prin spec, e destul de lung.
Cred că acesta este ca 21 pagini, dacă îmi amintesc corect.
E un spec lung.
Deci, dacă nu ați citit it-- 22.
32.
>> Wow.
Asa ca am fost oprit cu 50% acolo.
Astfel, 32 de pagini.
Deci e mult timp.
Există o mulțime de piese, dar nici unul a pieselor trebuie să fie așa de rău.
E doar o mulțime.
Deci, cu siguranță începe mai devreme dacă este posibil, ca de obicei,
dar cred că ar trebui să se simtă un pic mai frumos decât în ​​special psets, cum ar fi
recupera și redimensiona că sunt doar foarte greu să-și încheie în jurul valorii de cap.
>> Deci, cu asta, vom arunca cu capul în.
Nu am agenda ta glisați astăzi, dar suntem
Va fi vorba despre PHP.
Voi fi oferindu-vă un fel de curs intensiv pe unele lucruri
care v-ar dori să știe despre PHP.
Diferite lucruri de sintaxă, lucrurile sa se uite pentru.
Vom să vorbim un pic despre SQL.
Lucrurile doar foarte simple acolo, iar apoi, de asemenea, MVC
este Model View Controller, care este modul în care PSET ta este configurat,
astfel înțelegerea modului în care lucrări vor fi foarte util.
Bine.
Deci, PHP.
Voi ar trebui să fi făcut ceva foarte, foarte simplu
cu PHP, care este acest lucru aici de jos,
în cazul în care ați trimis-o formă pe de top aici că a avut unele nume pe care le
de intrare, și s-ar spune ca salut, Ben, sau salut, Allison, și ar pop up.
Deci, aceasta este de fapt ceea ce ar trebui să-am uitat ca din PSET ta,
în cazul în care voi a vrut să știe sau nu prea-mi dau seama.
>> Dar avem aceste semne de întrebare aici care să indice faptul că acest lucru este PHP.
Ei au înveliți, și apoi htmlspecialcharge, amintiți-vă, este doar,
asigurați-vă că sunteți în siguranță de la orice atac injecție nebun
sau dacă cineva încearcă să pună de caractere malware nebun
în câmpul numele tău, nu o face place server-ul sau pe fleacuri.
>> Și apoi, dacă observăm, această HTML Formularul avut o metodă de $ _GET, care,
dacă ne amintim superglobals noastre de la PHP, $ _GET, $ _POST,
vom merge în cei un pic.
Dar noi știm că avem unele nume aici care corespunde numelui
pe care am prezentat.
Deci, aceasta este doar un fel de foarte simplu colaborare PHP HTML
că voi avea de la PSET șase.
>> Dar care nu prea răspunde la ceea ce este PHP.
Evident, e un limbaj, dar noi nu avem cu adevărat
a vorbit despre el în această secțiune, deci nu e un pic mai mult
despre ceea ce PHP este de fapt.
Deci, PHP este doar PHP preprocesor hipertext.
>> Este de fapt luate în considerare un limbaj de programare
deoarece are logică, întrucât în ​​cazul în care Ne amintim vorbim despre HTML,
am sunat ca un limbaj de markup față de un limbaj de programare, deoarece HTML
este strict modificarea modului lucrurile arata pe pagina.
Este doar modificarea dacă ceva e îndrăzneț,
sau dacă este un formular, Element, sau ceva de genul asta.
Nu are nici o logică.
Ea nu are bucle sau condiții.
Nu puteți eroare verifica lucrurile.
Ori ar afișa lucruri într-un anumit fel sau cere lucruri
de la utilizator.
Asta e tot.
>> Deci, cu PHP, ea de fapt nu ne permite pentru a face toate aceste lucruri mai logice,
cum ar fi valida de intrare sau manipula-l într-un fel.
Putem să-l combina cu HTML, așa cum ne-am văzut în ultima PSET și chiar acum,
și ne permite să creați aceste pagini de web dinamice.
Deci, dacă voi ever-- nu știu dacă ai fost ca mine, dar în gimnaziu
ei ne-au iau această clasă de IT unde am creat doar pagini web HTML,
si au fost statice și faceți clic în jurul valorii de pentru alte lucruri, dar nu s-au schimbat.
>> Cu cele dinamice, ceea ce putem facem este, ca și cu CS50 Finance,
ai de gând să aibă diferiți utilizatori.
În funcție de aceste utilizatorilor preferințe, și ceea ce ei cumpără
sau ceea ce ei de vânzare pentru stocurile lor,
ai de gând să afișați diferite lucruri.
Deci, dacă există ceva caracteristică de identificare
pentru utilizator folosind aceasta pagina web, putem dinamic
să decidă ce să se afișeze pentru ei.
Nu e același lucru pentru fiecare persoană, care, dacă am avut doar HTML,
Pagina va fi aceeași pentru fiecare persoană care a vizitat.
PHP ne permite pentru a personaliza pagini.
>> Și atunci putem fie să le pună în același fișier, care, ca și în cazul
înainte de aici, am văzut că Avem HTML toți aici
și atunci avem acest pic de PHP.
Putem face așa, sau cu CS50 Finanțelor,
dacă voi fi uitat la files-- și ar trebui să avem timp
să-și intensifice printr-o pereche de ele împreună, la sfârșitul WE section--
se poate vedea cum poti de fapt, păstrați-le separat,
care este de fapt un lucru mai bun de făcut.
>> So.
Curs intensiv.
Toate lucrurile simple, rapide s-ar putea trebuie să știți pentru PHP.
Declararea variabilelor.
Asta albastru e un pic enervant, dar sperăm că voi puteți vedea.
Dacă nu, o voi scrie pe placa de creta.
Variabilele se declară.
Un lucru de stiut este ca, spre deosebire de C, PHP este liber sau dinamic tastat,
ceea ce înseamnă că nu trebuie să spune o variabilă ce tip este.
Puteți pur și simplu spune unele variabile este egal cu ceea ce vrei sa,
și se va decide tipul de variabila în timpul rulării pentru tine.
>> După cum veți vedea, acest lucru poate crea unele lucruri foarte interesante.
Dar pentru cele mai multe scopuri, tu nu au nevoie pentru a specifica tipul.
Poți, și aveți posibilitatea să tastați arunca lucruri ca tine în mod normal,
nu s-ar vedea dacă doriți să forța să fie un anumit tip,
dar nu trebuie sa.
Nu va să țipe la tine dacă ai declara doar o variabilă
și nu specificați un tip de ea.
>> Deci, în cazul în care nu se poate citi astea-- Știu că nu e cel mai bun.
M-am gândit că ar apărea better-- fel inițializa orice variabilă este doar
cu un semn dolar, ceea ce vrei sa fie numit,
și apoi ceea ce-l atribuirea.
Deci, în acest caz, acest lucru este ceva $ var = 3.
Deci, dacă vom folosi vreodată $ var undeva, acesta va doar
fi la fel ca punerea 3 acolo.
OK?
>> Așa că, orice variabilă, doar semn dolar, indiferent de
pe care doriți să apelați variabila, și orice vrei să egal.
Puțin mai rece.
Mai puțin pentru a scrie pentru inițializarea o variabilă, nu?
Asta face sens pentru toată lumea?
Doar diferență sintaxă rapid între C și PHP.
>> Arrays sunt mult mai reci în PHP.
Putem să le dea cheile.
Deci, modul de a gândi despre este că, dacă am vreodată
a vrut să acceseze un Element într-o matrice,
avem nevoie să cunoaștem index de ea, nu?
Deci, noi știm că cu C, ne-am ar putea accesa primul element
de a face placuta matrice de zero, sau dacă ne-am anunt de primul element, suport matrice
o.
Și dacă ne-am dorit ceva acolo, am putea pur și simplu
Trebuie să itera prin, cu excepția cazului în am stiut ca de fapt index.
>> Un lucru care este într-adevăr rece cu matrice PHP
este că acestea sunt ceea ce numim asociativ.
Astfel încât să putem asocia unii cheie pentru o anumită valoare,
și vom intampla de fapt sa-- Eu vă va arăta
cum putem folosi aceasta într-o secundă.
Dar în principiu, dacă vrei vreodată pentru a inițializa o matrice de genul asta,
aveți unele $ matrice.
>> Deci, în același fel, e doar unele variabile pe care le creăm.
Acest lucru ar putea fi numit orice ai vrut.
Acest lucru ar putea fi $ exemplu.
Doar o altă variabilă.
Ce face un tablou este suport sintaxă pe care o avem aici.
La fel ca C. normală Și noi au unele cheie pentru o anumită valoare.
Deci, cheie1 merge la valoare1, key2 doi merge la valoare2.
Aceste perechi sunt separate cu un virgulă, la fel ca și tablouri normale.
>> Cu toate acestea.
Unul mare.
Tastele sunt opționale.
Nu trebuie să le folosească.
Și dacă nu, atunci e doar normal.
Întrebare?
Sau, oh.
>> Audiența: Ei bine, cu privire la dreptul.
Unde e amintirea vine de la?
Poate fi, de asemenea, la fel ca [Inaudibil] și din stivă?
Este faptul că, de asemenea, folosind PHP?
Ca atunci când suntem le leagă?
>> ALLISON Buchholtz-AU: Cu PHP, Noi nu tind
să vă faceți griji în cazul în care nostru memorie vine de la.
Noi nu petrec o mulțime de timp vorbind despre asta,
deci nu e chiar nimic aveți nevoie să vă faceți griji.
Deci, tastele sunt opționale.
În același mod, dacă nu faci doresc să facă acest lucru asociate,
vrei doar de o situare normală în cazul în care matrice zero, este primul element
și matrice unul este al doilea Element, o poti face exact
așa cum ați face în C. Ai ceva variabilă care va fi matrice dumneavoastră,
și este egal cu aceste paranteze aici.
Da.
>> Audiența: Are același punct de notație.
Cum ar fi, pot face ca o matrice ++, și care indică cea de a doua.
>> ALLISON Buchholtz-AU: Puteți do-- Ei bine, puteți avea unele iterator, i,
pe care le puteți face i ++ și face o serie de i în același mod.
Dar asta este.
Așa că, la fel ca în acest caz, matrice de 1 ar fi egal cu 20.
Același tip de notație indexare.
Aceasta este de fapt doar un lucru implicit aici, unde se spune la zero, de la zero la 10,
la 1 la 20, 2 la 30.
E doar chei implicite pentru ea.
Ce schimbări cu PHP este pe care le au acum puterea
a realoca aceste cheile de la face tot ce dorești.
>> Deci, un lucru este aici.
Așa că am doar câteva exemple Aici am scris pentru voi
pentru că mă simt ca exemple mereu ajuta mai mult decât abstract.
Așa că, în acest caz aici, au unele tablou asociativ
că este primul meu nume, Numele meu, și eu
Sunt ecou, ​​care este doar pentru toate scopurile de aici
de gând să imprima la ieșirea aici.
>> Și se spune, OK.
Imprima valoarea pe care corespunde la bătaie la cheie Allison.
Și pot, de asemenea, vă trimit băieți toate acest cod de la clasă.
Așa că, atunci când vom rula acest lucru, ceea ce face crezi că se va întâmpla?
Ce se va tipări?
AUDIENTA: Numele dumneavoastră trecut.
ALLISON Buchholtz-AU: Ultimul nume meu.
Ea face.
Chiar aici.
Imprima.
Deci, dacă ar fi să schimbe acest lucru și ne-am au fost de a adăuga pe cineva la list-- nostru
Așa că haideți să spunem că avem Emma aici, și ne asociem ultima name--
Să vedem dacă am scrie acest drept.
>> Audiența: Da.
>> ALLISON Buchholtz-AU: Da.
>> Audiența: Bună treabă.
>> ALLISON Buchholtz-AU: Lovely.
Deci, acum, dacă avem această aici și am vrut sa afle numele de familie,
O ai acolo.
Astfel încât să puteți gândi doar de ea de înlocuire această cheie aici.
Esti doar înlocuirea indicelui.
Tu așa că permite pentru a căuta locații printr-o serie mult mai ușor.
Nu aveți nevoie să știu index.
Atâta timp cât această tastă pe care o căutați pentru există undeva în matrice,
PHP se va găsi și ea va reveni valoarea asociată cu ea.
Deci, vă oferă mult mai mult putere cu matrice tale.
Da.
>> Audiența: Dacă aveți două taste de același, va va da o eroare?
ALLISON Buchholtz-AU: A ar trebui să vă dea o eroare, da.
Asta face un pic mai mult sens pentru voi?
Și în același fel, avem un tablou de aici că nu are nici un chei.
De asemenea, aceasta este o sintaxă care v-ar dori
să fie conștienți de, pentru că veți Trebuie sa folosesti aceasta în PSET ta.
>> Ori de câte ori faci o ecou, ​​aveți aceste citate,
și ori de câte ori te referi la o parte dintr-o serie,
trebuie să aveți aceste acolade în jurul lor.
E un fel de enervant, dar trebuie doar să o faci.
Deci, doar ceva pentru a păstra în minte.
Dacă rulați în erori de, Știu că acest lucru există în matrice mea
dar se aruncă erori la mine, încercați inscrie bretele in jurul ei
și ar trebui să funcționeze.
>> Deci, în acest caz aici, aceasta este o C matrice normal ca suntem obișnuiți.
Are trei, cinci, șase, și ne-am doresc să imprime primul element,
astfel încât aceasta ar trebui să imprime trei.
Și am alerga toate acestea, așa sperăm că nimic nu sa schimbat.
Ne vedem în partea de jos de aici, doar imprimă trei.
Rece.
Care face sens pentru toată lumea?
Tablouri asociative.
Mult mai rece decât tablouri normale.
>> Acest lucru este why-- Ai David a vă arăta punerea în aplicare PHP a pset6
în timpul prelegere la toate?
OK.
Așa că, să-ți arăt.
Eu nu-l cunosc pe t--
>> Audiența: El a făcut săptămâna trecută.
>> ALLISON Buchholtz-AU: A fost săptămâna trecută?
>> Audiența: Da.
>> ALLISON Buchholtz-AU: Da.
Deci pronuntie se poate face in ca șase linii cu PHP, precum și o parte din puterea de care
este acest tablou asociativ în cazul în care puteți încărca pur și simplu fiecare cuvânt în,
și l-ați egală cu adevărat sau fals.
Și astfel încât să puteți spune, oh.
Întoarcere în dicționarul la un cuvânt, și dacă e acolo, se va reveni adevărat.
În caz contrar, nu va găsi el și-l vom returna false.
Deci, un fel de lucru se răcească puțin.
>> Bine.
Deci, acestea sunt tablouri asociative.
Sunt destul de rece.
Le-am place foarte mult.
Și, evident asta: Ah.
OK.
Acum este de lucru.
Poate.
OK.
Un alt lucru.
Așa că, cu egalitate, doar o lucru rece pentru a păstra în minte.
Cu PHP, deoarece este tastat dinamic,
tipul se poate schimba în funcție de momentul ce îl rulați, cum te-l rulează.
Am de fapt, unele misto exemple care să-ți arăt băieți.
>> Dar == doar verifică pentru egalitate după tipul de jonglerie.
Deci, dacă aveți ceva care este la fel ca personajul 1 și numărul 1,
PHP ți-ar spune că acestea sunt egale, deoarece
poate jongla tipurile de doi dintre ei până când este egal,
care poate pentru cazul dumneavoastră este bine.
>> Dacă aveți nevoie pentru a vedea dacă acestea sunt același fel de valoare și de același tip,
vrei acest ===.
Și nu cred că aveți cazul în care aveți nevoie pentru a folosi acest
în PSET ta, ci de o mulțime de voi care va merge pe pentru a face pagini web
pentru proiectele finale și lucruri, e un lucru bine de stiut ca == și ===
sunt diferite, și e un bun distincție pentru a înțelege.
>> OK.
So.
Bucle foreach.
Ele sunt un mod de a itera printr-o serie.
Așa că, la fel ca matrice se complica atât de mult mai rece în PHP,
cale de a repeta printr-o serie, cred,
de asemenea, devine mult mai rece și mult mai puternic.
Deci, în loc de a avea pentru a crea unii pentru i este egal cu 0 și orice altceva,
și apoi actualizați care i ca te duci prin,
avem această buclă foreach minunat.
>> Deci, aici e generalul standard de Structura de aceste două.
Deci, fie trebuie foreach unele matrice ca valoare pe care doriți să repeta ca.
Deci, acesta este numele de matrice variabila pe care doriți să referință,
și aceasta este ceea ce vrei să-l numesc în cadrul buclei.
OK?
Deci, acest lucru corespunde fiecare element din matrice,
și utilizați această valoare în această buclă.
>> Am un exemplu.
Stiu exemple sunt mult mai bine.
Și așa este în cazul în care există nici o tastă, astfel încât aceasta este ca și cum
dacă avem doar unul în cazul în care cheile sunt indicii normale pentru matrice ta.
Sau acest lucru este, de asemenea, în cazul dacă ai nici un folos pentru cheile.
Dacă nu vă pasă de cheile și tu la fel
doresc să itera prin valorile pentru fiecare dintre cei în orice ordine,
asta e bine.
>> Puteți utiliza structura.
Altfel, dacă există chei, nostru $ Valoare se schimbă doar la $ valoare-cheie.
Deci, doar se schimbă într-o pereche valoare-cheie.
Și atunci ne putem referi la $ cheie și $ valoare în buclă nostru.
OK?
So.
Exemplul.
Fă-l mai frumos.
OK.
>> Deci, avem asta aici, pe care o avem niște
are-- Puteți, de asemenea a crea un array ca aceasta
de a avea unele egală variabilă pentru matrice cu paranteze,
sau poti face doar placuta.
Tu ar trebui să facă consola, dar acesta este un alt mod de a face acest lucru.
Deci, aici avem o serie de trei elemente de unu, doi, trei și,
și avem foreach nostru.
>> Observați acesta corespunde matrice care ne iterarea peste,
și aceasta este ceea ce suntem de asteptare fiecare lucru în oferta noastră.
Și toate acestea este de a face este că e O să imprimați fiecare valoare.
Deci, dacă am alerga, observăm că noi au valoare este de valoare doi, trei valoare.
>> Și în același fel în care în mod obișnuit matrice trebuie să fie de un singur tip,
tablouri nu trebuie să tot fie de același tip aici.
Deci, acum avem unele int.
Avem două șiruri.
Deci, tablouri dumneavoastră poate obține mult mai puternic
și poate un pic bit Messier, în funcție de
pe modul în care doriți să se uite la ea.
Astfel încât să putem schimba acest lucru la ce vrem.
Noi folosim valoare.
Asta e doar un lucru standard, vom folosi.
Dar, la fel de importante pentru a ști că putem numesc acest contor cum ar fi dacă ne-am dorit.
Și, atâta timp cât acestea se potrivesc, în mod evident, toată lumea e fericită.
Dacă vrei vreodată să rulați un PHP rula ceva de genul asta comandă
line știi acest lucru aici, tu faci doar PHP,
și apoi orice fișier pe care doriți să îl rulați.
>> Deci, dacă doriți să mizerie în jurul valorii de cu PHP, și mai mult logica
și nu aveți cu adevărat nevoie să vezi ca într-un browser web,
se poate executa doar în linia de comandă de genul asta
și ecou va imprima pe ce vrei.
OK.
Un alt mod pe care o avem este ca aceasta.
Deci, acesta este un caz în care poate vrei să se utilizeze atât cheia și valoarea,
Știu că acestea sunt ca Exemple de super-inventate
dar eu sper că ei fac un pic mai clar.
Deci, aici avem o matrice din nou, dar de data aceasta,
în loc de doar având în știi că e nici o cheie.
Avem chei pentru fiecare dintre acestea.
Deci, un o să fie una, b va corespunde a doua, și c vor corespunde la trei.
Și în acest caz, în cazul în care am acest fel a scrie,
avem acces la ambele chei și valoare pentru fiecare dintre acestea.
>> Așa că, atunci când vom rula acest lucru, ne fiecare dintre acestea.
Deci, se afiseaza cheile noastre și valorile corespunzătoare.
Un alt lucru cool este că, și eu știu a spus ca aceasta nu avea chei,
dar întotdeauna are implicit un Tasta pentru că dacă nu delege
o cheie, desigur, dumneavoastră Tastele sunt doar indicii tale
sau indicii asa ca am putut mereu face, de asemenea aceasta.
Ca aceasta.
Voi imprima.
Deci, în acest caz, dacă observați, avem cheile implicite
de zero, unu, doi și aici.
>> Și la fel cu acesta, poți oricând spune doar r ca valoare,
și aveți doar acces la valoarea.
Nu-ți pasă de dumneavoastră chei, chiar dacă are taste,
dacă nu vă pasă de ei, nu neapărat
Trebuie să le pună în buclă foreach ta.
Are care are sens pentru toată lumea?
>> Audiența: poți să apel cheile, prea?
ALLISON Buchholtz-AU: Da tu ar putea face asta în totalitate, de asemenea.
De fapt, așteptați.
Stai.
ar it-- Nu.
Dacă doriți cheia, atunci ce trebuie sa faci cheie la valoare.
Audiența: Adăugați valoare.
ALLISON Buchholtz-AU: Da.
Și n-ai folosi doar valoare nu este tot.
>> Audiența: OK.
ALLISON Buchholtz-AU: În cazul în care pune doar un singur lucru acolo,
este de gând să presupunem că ești vorbind despre valoarea, nu cheia.
Mare întrebare.
Bine.
Rece.
De fapt, stai.
Lasă-mă să văd ce am.
Deci, înainte de a intra în post și de a lua, eu Vreau doar să-ți arăt baieti un pic
despre cum e dinamic tastat, care este un fel de rece.
Am toate astea.
Am ca patru exemple aici, și vă voi trimite toate de acest cod
după clasă.
>> Deci, aici avem o variabilă o.
Asta e doar 1 plus 1, nu?
Și vom imprima ce-i asta egal cu, iar apoi ne-am anumit tip.
Și oricine are nici un presupuneri despre ce tip va fi?
>> Audiența: O int.
>> ALLISON Buchholtz-AU: Da, e un int.
Așa că doar le adaugă împreună.
Este un int.
Toate bune.
Deci, aceasta următor, avem ceea ce arata ca siruri de caractere.
Când vom rula aceasta, ea crede că, oh.
Ești de fapt încerci pentru a adăuga doar lucruri.
Tocmai ai fost confuz.
Deci, eu sunt doar de gând să-l repara pentru tine.
Te-ai referit int.
Știu că ai vrut int.
>> Deci, aceasta este una dintre modalități în care puteți a se vedea, PHP are o minte proprie.
Chiar dacă am spus în mod explicit, uite, acestea sunt siruri de caractere.
Adică șirul unul.
Dar se spune, oh, dar încerci să le adăugați,
așa că trebuie să spui că e un număr întreg.
Ai încredere în mine.
Deci, se spune că este un număr întreg, și le adaugă cum ar fi normal.
Deci, un fel de răcească dacă ai de gând pentru a obține leneș cu lucrurile tale,
sau vrei sa adaugi ceva.
>> Un lucru mare este că, în cazul în care crezi înapoi la pset2,
ceva care a fost de utilizare introduse, dreapta, că ne gândim
este un char sau un șir la început.
Acum, nu avem în mod explicit spune, oh, fac din acest un int.
PHP ar fi ca, oh da.
Știu că ai vrut un int.
Silly tine.
Tu nu însemna un șir.
>> Deci, în acest caz, acum că avem acest lucru, ceea ce
nu voi cred că va face aici?
Avem un șir și un int acum.
>> Audiența: Este încă un int.
>> ALLISON Buchholtz-AU: Este încă un int.
Și motivul pentru care este-- Mi-ar pune mai multe exemple, dar distractiv cuiva.
Motivul pentru care o face este pentru că e ca și cum ai încerca să adăugați lucruri.
Deci, dacă sunteți încercarea de a adăuga lucruri, am de gând să-și asume,
rezonabil, ai ceva rezonabil că ați fi putut adăuga.
Mă duc pentru a face un int, și suntem doar de gând să-l adăugați, ca de obicei.
Și apoi la fel, eu cred că voi prins ideea.
Avem, de asemenea asta de aici, care este doar de caractere, și-l face același lucru.
E ca și cum, tu utilizator prostie.
stii tu vrei un int.
>> Audiența: Dacă am pus o scrisoare, va o fac [inaudibil] valoarea sau nu?
ALLISON Buchholtz-AU: Oh, asta-i o întrebare bună.
Să vedem.
Nu, încă mai este o int.
Deci e un pic nebun.
Acesta este doar un fel de a vă arăta PHP se poate comporta uneori în irrational-- Nu
total irațional, dar s-ar putea comporta în moduri pe care nu le aștepta într-adevăr.
Așa că, atunci când în dubiu, verificati tipurile de lucruri.
Această funcție gettype poate fi foarte util.
>> De obicei, dacă faci ceva cu plusuri sau orice operatorii matematici,
o să-și asume nimic rezonabil este doar un int.
Așa că, ai char 1, sau o string 1, sau real int 1,
este de gând să se presupună că.
Dacă doriți să typecast nimic, totul se poate.
Ai putea face ceva de genul dublu aici, cred.
Și, în acest caz, se va spune, oh.
Voi face acest lucru o dublă, deoarece ai spus explicit că e un dublu.
Puteți întotdeauna în mod explicit face PHP face ceva, dar.
>> Audiența: Stai, de ce este un plus de 1 acolo?
>> ALLISON Buchholtz-AU: Oh.
Acolo.
A fost doar un ecou.
Asta a fost vina mea.
Așa că, vă pot spune în mod explicit la face ceva de un anumit tip,
dar cele mai multe ori, o să să decidă dinamic că în timpul rulării.
Deci, o să continui prin și că va fi ca, OK.
Ceea ce face cel mai mult sens pentru ca aceasta să fie?
Ar trebui să fie de fapt un șir?
Ar trebui să fie o int?
Ar trebui să fie un flotor?
Ar trebui să fie o dublă?
Și se va decide asta pentru tine.
>> Puteți să-l forțeze să facă ceea ce vrei, dar--
>> Audiența: Asta face mai lent?
ALLISON Buchholtz-AU: Ei bine, Adică, C este foarte eficient.
Cred că e cu siguranta mai lent, deoarece aceasta are la procesul în care se întâmplă.
C, sunt aproape sigur că este mai rapid.
Dar, evident, există o mulțime de lucruri interesante de aici
că noi nu trebuie să vă faceți griji.
Așa că, dacă suntem în căutarea printr-o serie, ne-am
nu trebuie să creeze de fapt unii căutare prin matrice.
Putem cere doar pentru cheia și PHP va avea grijă de ea.
>> Rece.
Minunat.
Se pare că la sfârșitul exemplele mele.
Voi nu sunt niciodată de gând să uităm că acum.
Vei fi ca, oh, PHP este doar cum ar fi că mama care e ca nu, nu, nu.
Știu ce vrei să spui.
Știu ce vrei.
OK.
Deci, aceasta este, sperăm, util pentru dvs. PSET, cel puțin în bun început la,
pentru că sunt toate despre a face cu forme și lucruri din partea utilizatorului.
>> Deci, există două moduri în care ne-am trec în jurul valorii de informatii cu PHP și HTML
când vom trece între aceste două lucruri.
Deci avem $ _GET, care este trecut prin URL-ul, și avem $ _POST,
care este trecut in mesajul corp, și așa considerăm că este ascuns.
Dar un lucru de înțeles este faptul că niciuna dintre acestea nu sunt considerate sigure.
>> Dacă aveți pe cineva care este interceptarea mesajelor merge
înainte și înapoi între tine și serverul, ei pot obține în continuare aceste date.
Ei trebuie doar să se uite un pic mai greu.
Nu e adevărat that-- e doar ascuns de la adresa URL.
E încă în corpul mesajului, deși, așa că, dacă au acces la faptul că,
este într-adevăr doar like--
>> E ca diferența între ceva
fiind scrise pe partea exterioară a un plic și ceva fiinta
scris pe o bucată de hârtie în interiorul.
Nu e așa de greu pentru a deschide plicul și de a lua bucata de hârtie în interiorul.
Desigur, aceasta ar fi mult mai ușor citește doar la exterior.
Dar asta e cum puteți un fel de cred că de acestea.
Nici unul dintre acestea sunt într-adevăr considerat sigur.
OK?
>> Desigur, nu într-adevăr contează pentru PSET ta
pentru că nu ești de-a face cu secrete comerciale,
dar este de obicei una lucru pe care noi într-adevăr
dori să subliniez că oamenii cred, oh, ei bine, e ascuns.
Trebuie să fie foarte sigur.
Nu.
Nu e sigur.
E doar puțin mai puțin nesigur, cred.
Sau nesigur.
>> Deci avem de fapt un exemplu.
După cum știți, îmi place învăța mai mult cu exemple.
Mă simt ca și cum acest lucru ajută mai bine.
Deci, avem o formă simplă aici care de fapt, dacă voi sunteți vreodată
confuz despre PHP, acest lucru este foarte mic,
dar php.net este, de fapt documentație foarte bun.
Îmi place foarte mult.
Am fost folosind-o să se pregătească pentru această secțiune, așa că am putea veterinar pentru tine.
>> Acesta este un exemplu de la ei cu privire la modul _POST $ _GET si $ muncă.
Singura diferență între cele două dintre acestea,
în afară de cazul în care informația este afișat, indiferent dacă se află într-URL-ul
sau în organism, este, de asemenea, ce metoda este.
Deci, în formă pentru HTML-- Acest este o formă HTML foarte simplu.
Poate cineva sa-mi spui ce se întâmplă?
Audiența: Adresați-vă pentru numele și vârsta dumneavoastră.
ALLISON Buchholtz-AU: Exact.
Deci, avem unele acțiuni forma.
Care ne permite să știu că e o formă act.
Și ce se va întâmpla este, atunci când ne-am lovit Publica,
se va apela action.php, care este ceea ce este acest lucru,
și o să-l sun cu o metodă de $ _POST.
Deci, în acest caz, dumneavoastră informații este ascuns.
și este doar numele tău, unele Tipul de intrare chemat numele, unele de vârstă,
input type = "text" pe care o numim, de asemenea, de varsta.
Și apoi, dacă ne-am lovit Publica, Adauga un va apela action.php.
>> Așa că, atunci când de fapt ne-am lovit Publica, ne-am știu că a postat, în sine,
și vom vedea de fapt acest lucru în ta problema stabilit că sperăm că o vom
ajunge să se plimbe printr-un pic.
Și tot ce face aici este POST este un variabil superglobale
despre care am vorbit în timpul curs.
Și cum vă puteți gândi despre _POST $ este asta e doar un tablou asociativ.
OK?
Deci, aceasta este o cheie, aceasta este o cheie, și indiferent de
datele introduse de utilizator devine o Valoarea pentru fiecare dintre acestea.
OK?
>> Deci, dacă ar fi să scrie ceea ce această matrice de fapt arata ca chiar după ce am
a prezentat formularul, ne-ar au, aceasta este nostru _POST $,
și unele matrice în cazul în care avem niște nume.
Să spunem doar că vom face numele meu, și apoi avem o vârstă, 21 de ani.
Woo.
Deci, aceasta este tot _POST $ este. $ _POST este doar un tablou asociativ, OK?
>> Pur și simplu spune, OK.
Care sunt lucrurile pe care le-am a cerut de la utilizator?
Care sunt variabilele care ne trece în jurul valorii de
care le-am cerut în această formă?
Și atunci ce sunt Valorile asociate cu asta?
Deci, în acest caz, în cazul în care l-am prezentat cu un nume de Ally și o vârstă de 21,
aceasta este ceea ce pare $ _POST cum ar fi.
OK?
Și asta este ceea ce acest Fișier PHP are acces la.
În regulă?
>> Deci, în acest caz, acest lucru este la fel ca asistent orice alt lucru din oferta noastră.
În loc de un indice în nostru matrice, avem o cheie.
Deci, acest lucru se întâmplă pentru a se obține mă valoarea la numele cheie.
Deci, aceasta va fi Ally, și Acest drept este aici de gând să-mi dea
valoarea la $ _POST în cazul în care cheie este de varsta, care va fi de 21.
Vei fi face acest lucru destul de un pic.
Da, din care parte?
>> Audiența: Când ai fost arătând spre partea de jos.
ALLISON Buchholtz-AU: Această parte de jos?
OK.
Așa că, ați înțeles acest lucru este HTML nostru forma, și avem o metoda $ _POST,
care contează.
Acest lucru ar putea fi, de asemenea, $ _GET, dar în acest scop,
suntem doar de gând să spun că e $ _POST.
Când ne supunem acestui formular, aceasta este parte a unui fișier PHP care se numește.
Deci, acest fisier PHP este acum de gând să execute având în vedere informațiile din HTML noastre
formular.
>> Deci, ceea ce face este, atunci când ne Trimiteti lovit pe formularul nostru de HTML,
el te trece în acest superglobale, care este doar un tablou asociativ.
E aceasta.
E la fel ca mod de faptul că la dosar.
Și ceea ce se spune este, OK, aici e $ _POST.
E matrice ta asociativ.
Face cu ea ce vrei.
Și noi spunem, OK.
Dă-mi valoarea la numele, si da-mi valoarea la vârsta.
>> Deci, acestea sunt doar chei, și aceasta este oferta noastră.
Are care face sens?
>> Audiența: Mhmm.
ALLISON Buchholtz-AU: Awesome.
Audiența: Dacă trebuie să retrimiteți Formularul nu doar scrie peste datele?
ALLISON Buchholtz-AU: Da.
Mhmm?
>> Audiența: De ce aveți să precizeze că este o int?
>> ALLISON Buchholtz-AU: În acest caz, utilizator este doar o forțează să fie un int.
>> Audiența: OK.
ALLISON Buchholtz-AU: Nu stiu dacă ai nevoie de fapt că,
dar pentru scopurile lor, ei au decis că au vrut să fie un int.
Ei doar typecasting.
Poate că îl folosesc ca altceva mai târziu.
Acesta este doar un fragment.
Da?
>> Audiența: Ce dacă au scris 12, T-W-E-L-V-E, pentru vârsta?
ALLISON Buchholtz-AU: În cazul în care a încercat să tastați că, în calitate de int?
Audiența: Da.
ALLISON Buchholtz-AU: I uita ceea ce face asta.
Cred că s-ar putea încerca să convertească primul caracter la un int,
sau să ia valoarea și de a converti ea, dar am uitat exact ce.
Fi un lucru distractiv de a scrie un program și să încercați.
Face câteva linii.
OK, deci aceasta este una din principalele lucruri pe care ai de gând să faci.
Am de gând să meargă, sperăm, printr-o serie de fișiere
din PSET cu voi.
Se pare că vom au timp, astfel încât să putem face asta.
>> Dar ai de gând să fie a face o mulțime de lucruri
în acest fel, în cazul în care sunteți asociate lucrurile de la un formular HTML
în această formă PHP, care va apoi executa un anumit set de instrucțiuni
pe datele care au fost furnizate.
Asta e literalmente esența PSET ta.
Da.
>> Audiența: Tipul = "submit", care face un buton de pe formularul HTML.
Există o modalitate de a apela acel buton ceva?
Deci, te-ai fi ca și cum name = "submit"?
Sau este acel buton doar de gând să fie goli chiar acum, pentru că numai
a dat un tip, nu un nume.
>> ALLISON Buchholtz-AU: Cred că e doar de gând să fie gol acum.
Ne putem uita cu siguranță în PSET, pentru că vom siguranta
se uita la inscrieti-un fel de lucru.
Dar da, puteți specifica siguranta textul pe care doriți pe butonul.
OK, așa SQL.
>> Când sunteți cumpararea si vanzarea de actiuni, aveți nevoie pentru a ține evidența acestora.
Deci, modul în care ne vom face acest lucru este cu SQL, care este doar o bază de date.
Ganditi-va ca un tabel în care te ține toate aceste informații
despre dvs. de utilizatori diferite.
Și voi sunteți de fapt va crea una dintre acestea.
E destul de cool.
>> Și acolo sunt doar patru lucruri principale de care aveți nevoie să știți pentru acest PSET,
și ele sunt de actualizare, astfel încât să actualiza practic datele.
Asta presupune că este deja acolo.
În cazul în care nu e acolo, va pentru a te-a lovit cu o eroare,
astfel încât poate doriți să verificați.
Și vă va actualiza on-- I ar trebui să actually- am timp,
Voi scrie o pereche de acestea.
Eu va voi da de fapt tipi o cuplu de probă, comenzi complete SQL,
pentru că acestea sunt doar principalele cele, dar le puteți alătura împreună.
Așa că am să fac asta și voi trimite asta la tine cu aceste note.
>> Deci, dacă doriți pentru a actualiza ceva, Trebuie să-l spun ceea ce actualizarea
și în cazul în care sunteți o actualizare.
Deci, o comandă SQL tipic ar fi modificare ID-ul în cazul în care ceva este egal cu ceva.
Sau adresa de modificare cum ar fi unde ID este egal cu 3,
iar acest lucru ar actualiza câmpul de adresă de utilizator tău, care are o identitate de trei.
OK?
>> Deci, dacă te duci la SQL și W3Schools, ei au exemple minunat.
De fapt, s-ar putea trage unele cu un pic.
Și apoi introduceți în, ești doar introducerea unor valori acolo.
Deci, dacă sunteți încercarea de a crea unele noi intrare, astfel încât să creați un nou utilizator,
ai putea face inserați în indiferent de baza de date este numit,
și le-ar fi toate aceste valori.
>> Atunci aveți select, selectați valori pentru a vedea.
Deci, dacă sunteți încercarea de a verifica la a se vedea dacă există un utilizator sau esti
încercarea de a apuca specific informații despre un utilizator
ai de gând să fie utilizând selectați.
Și apoi ștergeți, cred, este destul de simplu acolo.
Ești pur și simplu ștergerea ceva din tabel.
Și, de fapt, să-mi de fapt trage câteva exemple pentru voi.
Oh, uite, e mea 61 pagina.
>> Deci, dacă vom merge la W3Schools, sperăm că e din nou.
Da, iubesc.
Mergem la SQL.
Așa că, acest lucru este ceva aici.
Deci, aceasta este o foarte simplu SELECT.
Omule, îmi place această funcție.
Deci, puteți avea SELECT unii câmp de la clienți.
În acest caz, clienții se referă la bază de date online pe care îl utilizați,
deci indiferent de masa ta se numeste, și stele înseamnă doar să selectați tot.
Dă-mi fiecare.
>> Așa că, vreau doar să vă dau un baieti câteva exemple în care acest lucru este.
Deci avem SELECT, UPDATE.
Deci, aici este un fel de sintaxa generală.
Deci, UPDATE, indiferent de dumneavoastră Numele masă este, și apoi SET
este în cazul în care ai de fapt de gând pentru a fi ceea ce de date ce schimbare.
Deci, acest lucru ar putea be-- Let mi fac un exemplu aici.
Deci, acest lucru se întâmplă pentru be--
>> OK.
Asa ca am creat un pic de baze de date pentru noi.
Vom avea un act de identitate, unele an, iar unele nume.
Deci, ID una va fi anul '15, și noi suntem doar de gând să-l facă pe mine.
Cine vrea să fie a doua persoană în masa noastră?
Oricine.
Mă duc să aleagă Emma pentru că numele dumneavoastră rapid.
Emma, ​​ce an ești?
>> Audiența: În ce an?
>> ALLISON Buchholtz-AU: Da.
>> Audiența: 16.
ALLISON Buchholtz-AU: 16.
Esti doar mergi la a fi porc de guinea meu pentru ziua de azi.
OK, deci avem aceste două persoane.
De fapt, lasă-mă să fac asta.
Să spun că am auzit-o greșit, și eu de fapt a spus că e un an mai mic.
E '17.
Ceea ce vrem să facem aici, dacă ne-am a vrut să actualizeze an Emmei
pentru a fi corect, folosind faptul că, ceea ce ne-ar faceți este să am spune de date UPDATE aici.
>> Iar acest lucru poate fi toate pe o singură linie, dar din moment ce am comprimat pentru spațiu aici,
Am de gând să scrie aici.
Și ne-am dori să se stabilească.
Deci, aceasta este tabelul suntem actualizarea.
SET va fi ceea ce coloană sau ce date sunt noi, de fapt schimbă.
Ceea ce suntem în schimbare este an, astfel încât vom spune an SET = 16,
și apoi UNDE ne spune care utilizator sau ceea ce rând suntem de fapt actualizarea acestui.
>> Deci, în cazul în care?
Avem două opțiuni aici.
Care sunt cele două?
Acestea sunt unice, nu?
Deci, numele noastre sunt unice și ID-ul nostru este unic,
Deci, ce sunt cele două opțiuni pentru cazul în care am putea face acest lucru?
O să-ți dau unul.
Am putea face UNDE ID = 2, sau am putea face ceea ce
dacă vrem pe această paradigmă aici.
>> Audiența: [inaudibil].
ALLISON Buchholtz-AU: Exact.
Deci, am putea face, de asemenea name = Emma.
Și oricare dintre acestea ar funcționa.
Și am fugit aceasta, ar fi ca și cum, OK.
Vom schimba.
Tu esti de fapt 16, așa acum ai dreptate din nou.
OK, deci acest lucru ar fi foarte util în PSET ta
în cazul în care poate cineva a decis pentru a cumpăra 100 parts de Apple,
și apoi ei erau ca, doar glumesc.
Vreau doar 90 parts.
Și astfel încât acestea să vândă 10 dintre ele, astfel încât să Trebuie să actualizeze valoarea stocurilor
pe care le au.
Așa că, actualizarea stocurilor, actualizarea masă.
>> OK.
Deci, asta e un exemplu acolo.
Asta e sintaxa de actualizare.
DELETE.
Oh.
Introduceți în e altul noastră.
Așa că, asta de aici este foarte similar.
Am putea spune chiar, în acest cazul să adăugăm pe cineva.
Putem adăuga Ben acest moment.
Noi INSERT INTO, și noi vreau numele de masa noastră.
În acest caz, este de date.
>> Și apoi ne-am dori, ai de gând să spune VALORI, și ce ai de gând să faci
este, de fapt, aveți nevoie să vă asigurați că că ai ceva pentru fiecare rând
pe care doriți.
Trebuie doar le-a pus în ordine.
Deci, în acest caz, ne-ar spune 3.
Tu ești 18, dreptate Ben?
>> Audiența: 19.
ALLISON Buchholtz-AU: 19?
Audiența: 19.
ALLISON Buchholtz-AU: '19 an tau?
Tu absolvent în '18, nu?
Audiența: Oh.
ALLISON Buchholtz-AU: Anul absolvirii.
Audiența: OK.
ALLISON Buchholtz-AU: Am fost ca, nu-
de planificare deja la ia un an liber aici?
Așa că, '18, ne-am Ben.
Deci, în acest caz, s-ar trece prin, s-ar crea o nouă intrare aici.
Rece.
Nu prea rău, nu?
O mulțime de acest lucru se întâmplă pentru fie sintaxă pentru voi.
Concepte ar trebui să vină, sperăm, relativ ușor.
Sintaxa este singurul lucru care poate fi un pic dificil.
>> Și apoi ultima dintre ele este DELETE, și cum observați,
Am foarte recomanda acest site.
E minunat.
Există o grămadă de lucruri.
Așa că, în același mod în care am avut unele UPDATE, DELETE este foarte asemănătoare.
În schimb ne-am Ștergere de la date.
Deci, în acest caz, ultima noastră o voi scrie aici.
Să spunem că am vrut să mă șterge.
Nu pot scrie astăzi.
DELETE de la orice masă suntem in, de date.
Și acolo sunt de fapt trei moduri am putea alege să-mi șterge.
>> Poate voi să-mi spui ce trei moduri sunt, cum ai putea să mă ștergeți?
ID este egal cu 1, unde ID este egal cu 1.
Am putea face în cazul în care an este egal 15, sau în cazul în care numele este egal cu Allison.
Desigur, există doar trei moduri diferite,
pentru că toate acestea sunt unice.
În mod obișnuit în masă, și mai ales în PSET ta,
ai de gând să setați una din aceste coloane să fie unic.
>> Este, probabil, va fi un act de identitate unic număr, pentru că dacă have-- de fapt,
s-ar putea permite de fapt ai două.
Nu-mi amintesc dacă se va lăsa aveți două de același lucru.
>> Audiența: atunci s-ar schimba comportamentul lor.
>> ALLISON Buchholtz-AU: Ar fi.
Va cauza comportament care este neașteptată, că tu nu prea poate prezice.
Deci, va trebui cu siguranță o coloană în baza de date, care va fi unic,
și este de obicei puteți seta se astfel că este ca și cum un ID unic,
și se va actualiza doar fiecare dată când introduceți în tabel.
De fiecare dată când creați un nou rând, ea va automat
incrementa și dau niște ID-ul unic.
Deci, indiciu pentru PSET ta.
OK.
Deci, care este SQL.
>> Deci, acum vom vorbi despre ultimul lucru pe care leagă în
de fapt, destul de bine cu dvs. PSET, dacă s-ar merge mai departe.
Deci, MVC, vedere din modelul de controlor.
Aceasta este de fapt doar un mod pentru a menține lucrurile organizate.
În același fel cu C va rugam baieti pentru a crea funcții și lucruri separate
out, aceasta este doar o modalitate de a separa Codul când faci dezvoltare web.
>> Deci, face lucruri mult mai elegant și simplificat,
și aceasta este de fapt calea că PSET ta este, de fapt
înființat, deci indiferent dacă vă place sau nu, ai de gând să-l învețe,
chiar dacă nu crezi esti o învățare.
Și un lucru este, de asemenea, vă permite să face mult mai mult ca o colaborare utilizator.
>> Așa că atunci când am luat CS50, am făcut o site-ul pentru proiectul meu final,
și am fost ca, voi se ocupe de lucrurile de bază de date.
Voi face din nou lucrurile end, și meu coleg de cameră pe care am fost de a lua cu ea
a fost foarte artistic.
Ea face scenografie, și ea a vrut să facă totul frumos.
Deci, eu sunt cum ar fi, OK.
Puteți avea grijă de toate lucrurile front-end.
>> Și chestia e, ca vom vedea foarte curând,
acest punct de vedere modelul de controlor vă permite să separa complet acest cod astfel
că aș putea lucra la de punere în aplicare paginile noastre,
și informații manipularea în bazele noastre de date,
și ea ar putea face doar lucrurile destul de, și am fost amândoi într-adevăr fericit,
pentru că trebuie să facem ceea ce ne-am dorit și noi
nu au avut de a face cu celălalt.
>> Așa că ne-am atârnat împreună.
Ne place să stea afară.
Eu pur și simplu nu a vrut să se ocupe cu toate CSS și HTML chestii.
Am fost ca, ai face-o destul de.
Mă ocup cu baza de date.
Deci avem acest adevăr mare masă rece, mic.
Îmi place tabele.
Și, practic, modelul puteți ne gândim este doar baza de date.
>> Am fost persoana model pentru proiectul meu.
Este vorba despre stocarea informații și organizarea de aceste date.
Deci, aceasta este ceea ce ne place să numim înapoi end.
Deci, voi va ocupa cu baza de date SQL și fișierele de date.
Asta e modelul.
>> Punctul dumneavoastră de vedere, așa cum s-ar putea cred, un fel de logic,
este ceea ce dvs. de utilizator vede de fapt.
Este interfața cu utilizatorul.
Este acea componentă care se confruntă față.
Deci, asta e ceea ce colegul meu de cameră Trebuie să lucreze pe tot timpul.
Ea a fost foarte fericit.
Deci, asta e tot de HTML, și nu există foarte puține PHP.
>> În cazul în care vorbim doar despre ceea ce se afișat pentru utilizator,
vorbim despre hypertext.
Vorbim despre modul în care arată.
Nu vorbim despre logică, sau condiții, sau fleacuri.
Toate acestea se manipulat de către operator, OK?
Deci, care se ocupă de cererile de utilizator și devine informațiile.
>> Deci, un singur lucru ar trebui să știi despre PSET este faptul că, în opinia dumneavoastră,
ceva care este de fapt Informații afișate
nu ar trebui să fie acest site solicită pentru modelul dumneavoastră.
Toate acestea este manipulat în controlerul.
Controlerul este cel medierea între acestea două.
Se va solicita modelul pentru anumite informații.
Se poate repeta peste asta informații, dau seama
ceea ce ai de fapt nevoie de ea, ce să fac cu ea,
iar apoi se va trece la doar informațiile pe care le
Trebuie să vizualizarea pentru tine de a imprima efectueze sau să-l afișeze la utilizator, OK?
>> Pentru că vedem vedere ca indiferent de se confruntă cu utilizatorul,
asa ca va fi mult mai ușor pentru ei să dau seama,
oh, dacă faci unii apel pentru modelul dumneavoastră
și ceri pentru toți utilizatorii care începe cu litera A,
și faci că, în opinia dumneavoastră, oricine care pot vedea pagina de web
ar putea accesa potențial asta.
>> Nu vrei neapărat că.
Nu vrei ca oamenii să vadă mai mult în baza de date decât ceea ce
acestea ar trebui să fie văzute.
Doar preferințele lor specifice.
Deci, controlorul se ocupă de toate astea.
Deci, toate fișierele .php că vom vedea puteți lua în considerare fișierele de control.
Și asta e în cazul în care ești într-adevăr va fi
cerându-i lucruri din baza de date, și iterarea sau manipularea
că este necesar înainte trece-l pe fi vizualizat.
>> E un PSET foarte tare, în opinia mea.
Cred că e un pic mai mult ca gratificare instantanee,
pentru că pune în aplicare un mulțime de lucruri mici mici,
și fiecare lucru ar trebui să funcționeze pe cont propriu.
Nu place, face totul și apoi a vedea dacă acesta funcționează.
Ca și cu software-ul în cazul în care ești ca, eu sunt
într-adevăr în speranța aceasta este Bine, pentru că dacă nu e,
există o mulțime de plasează ar putea fi greșit.
>> Bine.
Doar asigurându-vă că i-am spus tot ce am nevoie să spun despre MVC.
Da.
Rece.
>> Deci, în CS50 Finante, avem modelul nostru, așa cum am spus doar aici.
O să fie MySQL și phpMyAdmin.
Pot trage cu siguranta pe cei în sus, astfel voi obține o șansă să se uite la ea.
Cum am spus mai înainte, SQL ta bază de date acționează ca model,
și puteți trimite ceea ce noi numim interogări, care sunt doar aceste tipuri de lucruri.
Acestea sunt numite o interogare.
Aceasta este o interogare, în cazul în care ești doar solicitând baza de date pentru ceva,
sau vă schimbați dumneavoastră bază de date într-un fel.
Asta e tot ce este.
Și tu faci asta cu Funcțiile v-am dat aici.
>> De asemenea, puteți manipula le de mână prin phpMyAdmin,
pe care le putem lua cu siguranta o privire la.
Voi crea un eșantion bază de date cu voi.
OK.
Așa că, controler.
Deci, în acest caz, dacă Notă, aceasta este tot PHP.
Observați că e un fel de dvs. lucru principal al controlerul
este că ar trebui să fie cea mai mare parte PHP.
Dacă aveți HTML în controlerul, nu prea sigur ce se întâmplă acolo.
În același mod cum am spus, dacă reușesc să [inaudibil] cu HTML,
Sunt foarte interesat.
>> Deci, ce avem aici Este aveți unele interogare.
Interogare este o funcție care ne-am construit pentru voi.
E ca un înveliș de a face interogări la baza de date un pic mai ușor.
Dacă nu ați avea că, sintaxa pentru de fapt, vorbesc la baza de date SQL
ar fi diferit, asa ca am doar le furnizeze pentru voi.
Ne place să facă viața mai ușoară.
>> Deci, în acest caz, poate voi spune-mi ce această linie este de a face?
SELECT * de la unele masă.
Audiența: Selectați tot din acest tabel.
ALLISON Buchholtz-AU: Exact.
Asa ca spune, da-mi tot din acest tabel.
Și este o depozitați în unele rezultate variabile.
Și aceasta spune, dacă rezultatul nu este egal pentru fals, atunci facem fiecare din asta.
Deci, dacă nu e nimic aici, în cazul în care dumneavoastră masă de gol sau pur și simplu nu există,
este de gând să se întoarcă false.
Deci, în acest caz, vom face doar sigur că ceva a fost de fapt
sa întors la noi.
>> Și apoi aici, ne-am marele nostru bucla foreach
care ne iterarea peste nostru Prin urmare, și noi te numindu-l rând,
și spunem face acest șablon în cazul în care datele dumneavoastră este acest rezultat.
OK?
Deci, e doar de prelucrare rand din rezultatele.
În caz contrar, ea țipă.
Deci, aceasta este un exemplu a controlerului.
După cum vedeți, aceasta este numai place-- Da, îmi pare rău?
>> Audiența: De ce este acolo un ampersand înainte de rând?
>> ALLISON Buchholtz-AU: Un ampersand înainte de rând.
Suntem doar iterarea.
Asta e, de asemenea, o adresă de--
>> Audiența: Deci e ca și cum C de afiliere.
>> ALLISON Buchholtz-AU: E asigurându-vă că sunteți de fapt
modificarea original și nu o copie.
Este în același mod cu C în cazul în care ne trece prin referire aici, doar
pentru a vă asigura.
>> Audiența: Nu este == în loc de a nu = în PHP?
>> ALLISON Buchholtz-AU: Nu e ==.
>> Audiența: Pentru că este egal în C este doar--
>> ALLISON Buchholtz-AU: Nu e vorba doar =.
Da, nu.
Nu e ==.
Pentru că == verifică în PHP pentru egalitate cu comutare, a acordat,
dar un plus de calitate.
Așa că, nu e == în PHP.
Este una din putinul diferențele de sintaxă.
Da.
Deci, suntem doar iterarea prin fiecare rând,
și face, dacă voi citit prin spec ta,
este doar o altă funcție, care este de fapt de gând pentru a procesa toate HTML
și ao afișa în Site browser-ul web pentru tine.
>> OK.
Așa că, ne place să ne gândim la controlere dvs. ca ceea ce se ocupă de logica de afaceri.
După cum vedeți aici, aici suntem luând datele noastre de la masa,
suntem o prelucrare într-un fel, iar apoi vom trece-l meciul.
Când ne-am face face unele șablon, unele șablon este punctul nostru de vedere,
și ne-l trece numai datele pe care le ar trebui sa.
Nu toate datele.
Doar datele pe care dorim să obține.
OK?
Practic datele după prelucrare.
>> Deci, aceasta este punctul de vedere, acest lucru este șablonul suma pe care o avem,
și toate acestea este de a face este, aveți posibilitatea să au un pic de PHP din punctul dumneavoastră de vedere.
Nu e ca un nu PHP în vedere.
Tu ar trebui să aibă doar foarte PHP minim, având în vedere,
și niciodată nu ar trebui să fie interogarea, în opinia dumneavoastră.
Tu nu ar trebui să vorbim la baza de date din punctul dumneavoastră de vedere.
Asta e diferenta mare.
>> Deci, ce se întâmplă aici este, avem PHP care este iterarea prin rând.
Deci, în acest caz, deoarece am fost iterarea prin fiecare rând
și de a face ceva, aceasta a fost probabil ca un tablou bidimensional
în cazul în care avem o linie care este, în sine, o matrice,
pentru că suntem iterarea prin ea din nou.
Și noi suntem doar imprimând numele rând, apoi pune capăt.
>> Nu ar trebui acest lucru în foreach.
N-am mai văzut asta înainte de fapt.
Eu fac doar foreach.
OK, așa că e de vedere.
Să vedem dacă putem merge prin un pic de PSET ta.
Avem 15 de minute, așa că sunt sigur că baieti ar dori ca mai mult decât
care se încheie mai devreme.
Lasă-mă să văd dacă pot aduce asta.
>> Deci, eu nu știu câți dintre voi l-au descărcat și încă fleacuri,
dar avem numele de utilizator aici, și avem o parolă.
Și, din păcate, dreapta acum baza de date este goală,
asa ca am de fapt nevoie pentru a crea o bază de date.
Ei bine, asta e ciudat.
Nu se aștepta asta.
Erori tehnice.
Dificultăți tehnice.
Avem niște pset7.
Rece.
>> Așa că, un lucru il poti face este, cu o query-- Voi crea un tabel.
Deci, aceasta va fi users-- ceea ce poti face aici este, dacă avem some--
Într-adevăr acum?
OK.
Evident, eu nu fac atât de fierbinte.
Oh.
Știu de ce.
Pentru că n-am creat Mese mele reale.
Deci, atunci când începe mai întâi cu o bază de date, pe care, evident,
trebuie să decidă care sunt lucruri pe care trebuie sa ai aici?
>> Deci, dacă ne-am stinge masa noastră de date aici,
am avut un act de identitate, care poate rămâne doar un int.
Și dacă ne uităm pe aici, nu e un lucru rece that-- index Deci.
Dacă veți face primar, se va face lucru care masa ta este organizat de,
și-l va face, de asemenea, unic.
Deci, în acest caz, vom face primar, și am de gând să fac acest nume,
atunci vom face doar un varchar de cum ar fi cele 26 de litere, pentru că de ce nu?
>> Și apoi poti sa te duci pentru a salva, și apoi dacă vedeți, avem unii utilizatori de aici.
Deci, dacă am vrut să facem o insera, am putea face acest lucru
în acest fel, sau dacă ai vrut practică împreună cu queries-- Oh băiat.
Nu am folosit acest lucru în veci.
Iau această înapoi.
>> Puteți edita acest lucru pe cont propriu, fie doar prin introducerea manuală a informațiilor
cu ceva de genul, tu poate schimba oricare dintre acestea
dacă ai vrut să make-- Dacă doriți să dintr-o dată a scăpa de nume, puteți plasa,
poti sa faci toate aceste lucruri.
Dacă aveți nevoie să vreodată schimba manual masa ta,
Vă sugerez să o faci în phpMyAdmin față de încercarea
să dau seama SQL interogări în general.
La începutul PSET ta, ai de gând să trebuie să lucreze aici,
asa ca second-hand pentru asta.
Și apoi, când tu de fapt vrei pentru a introduce lucrurile în table-- ta
Mă întreb unde este, pentru că there's-- Aici este.
Asta e ceea ce am vrut.
Deci, dacă te duci la SQL, ai putea a se vedea de fapt, așa cum vom vedea aici,
avem interogări SQL.
>> Deci, dacă am vrut să selecteze ceva sau dacă ne-am dorit pentru a introduce ceva,
putem face inserați în utilizatorilor, nu?
Cred că ai nevoie de backslash.
Un lucru să știu este, în cazul în care te vreodată folosirea acestui,
va trebui să utilizați aceste înapoi apostroful, care sunt în mod obișnuit,
daca esti pe un Mac, chiar deasupra tab.
Deci, un lucru bun sa stii.
>> Ai putea introduce în utilizatori, și avem valorile noastre, nu?
Deci, avem valori, și valorile noastre în acest caz, ar fi pur și simplu,
avem doar o identitate așa că ar putea face o dacă ne-am dorit.
Asta e ciudat.
OK.
Așa că e la fel ca un scurt mic lucru cu SQL,
dar ar putea fi mai util să efectiv uita-te la unele dintre fișierele aici.
>> Deci, du-te la Descărcări.
Oh, nu Descărcări.
Așa că, doar o descriere scurtă a ceea ce este în fiecare dintre aceste dosare.
Acesta include, avem doar lucrurile care configurați browser-ul dvs.,
avem aceste constante, și avem aceste funcții.
Dacă sunteți interesat în oricare dintre ele, Vă recomandăm uita la funcții.
Una dintre ele, care este foarte util, de fapt, este aceasta o aici, depozit.
>> Deci, dacă utilizați acest lucru, ea va de fapt doar
imprima orice variabilă că îți place să.
Deci, dacă aveți probleme imaginind ce această matrice arata ca,
sau ce aceste date de fapt, cum se formatat,
acesta este un lucru mare pentru a utiliza.
Mai ales atunci când aveți o utilizator cu stoc multiple,
aceasta va fi ceva foarte bună de a utiliza.
Pentru că ar putea fi formatted--
>> Știu că, cel puțin pentru mine, atunci când am făcut acest PSET, a fost formatat într-un mod
că nu am destul aștepta.
Așa că am fost încercarea de a repeta peste ea și încearcă să-l manipuleze,
dar nu am făcut-o într-adevăr înțelege ceea ce făceam.
Deci, dacă doar o arunce, se va de imprimare-l la browser-ul,
și puteți vedea exact cum se formatat.
Se va imprima în mod obișnuit ca o matrice cu cheile și valorile sale.
Deci, se poate ajuta acolo.
Acesta poate ajuta, de asemenea, pentru a face sigur că ești de fapt
hapsân datele pe care ai crezut că ești.
Deci, dacă ai fi fost cum ar fi, cu siguranta masa mea spune că există un utilizator cu acest ID,
dar când te duci la groapa de gunoi variabilă, nu e acolo,
în mod evident, știi că e în cazul în care o eroare va fi.
Acesta este unul dintre cele mai bune instrumente pentru depanare, în opinia mea.
Și apoi există o Pereche alte lucruri aici,
dar pentru cea mai mare parte, asta e o Doresc să vă atrag atenția asupra,
pentru că este foarte util.
>> Publice, ceea ce avem aici este, acest lucru este toate lucrurile noastre CSS.
Deci, CSS, fonturi, imaginile noastre, fleacuri.
Acest lucru este toate lucrurile care nu trebuie să modifice.
Poate voi gândi despre cazul în care acest lucru are lucruri cum ar fi CSS în fonturile,
ar fi acest model, sau un punct de vedere, sau un controler?
Audiența: [inaudibil]
ALLISON Buchholtz-AU: Ar fi mai mult de o imagine, nu?
Acest lucru este de manipulare tot lucruri, cum arata lucrurile.
Deci, dacă vom deschide acest aici, vom vedea că tot ce se întâmplă aici
este ne randare ceva.
OK?
Deci, acest lucru ar fi foarte mult califica ca o vedere de aceasta.
Deci, aceasta este doar de a lua unele, este de asteptare unele portfolio.php
pe care o avem, și se trece în titlu și de portofoliu.
Și e doar de redare asta.
De fapt, eu iau asta înapoi.
Acesta este un controler, deoarece face, amintiți-vă, face punctul de vedere.
Deci, portfolio.php în acest caz, ar fi punctul dumneavoastră de vedere.
Îmi pare rău, băieți.
Portfolio.php va fi punctul dumneavoastră de vedere, iar acest lucru ar fi doar
fi controller-ul pentru asta.
Și dacă ne uităm la acest ultima aici, template-uri,
template-uri sunt toate opiniile dumneavoastră aici.
Deci, dacă ne uităm, în mod evident, vom vedea o mulțime de HTML aici.
>> Deci, acesta este doar vă arată ce pagina de conectare ar trebui să arate.
Ai observat avem unele formează grupuri, au trimiteți.
Iată cum vă decideți ce este afișat pe acolo.
Ai un anumit tip buton = "submit", și apoi ai ceea ce vrei
pentru a afișa în buton.
Deci, asta e modul în care ar face arată ca orice dorești.
>> Și vedem aici avem niște numele de utilizator, parola unii,
și când ne-am lovit de fapt Publica, o să fie o poștă,
și se va publica în ce?
Care este controlerul pentru acest punct de vedere?
Când ne-am lovit Publica, ce se întâmplă să fie numit?
Știm?
E chiar aici, așa login.php.
Voi ceva sunt gând să pună în aplicare.
>> Astfel încât să puteți spune întotdeauna ce va fi
sunat după ce te-a lovit Trimite prin aceasta prima linie de aici.
Ce acțiunea formular.
Atunci când se prezintă această formă, ce măsuri luăm?
Noi numim login.php, și noi numim cu această metodă
post, care are informații ascunse.
OK?
Deci, aceasta este opinia dumneavoastră, și apoi, evident, dacă ne-am dus la login.php-- îl avem
încă?
Da.
>> Deci, după cum vedem aici, aceasta are o mult mai logică.
Totul e PHP aici.
Încercăm să vedem dacă a fost $ _GET, în cazul în care a fost de $ _POST, validarea lucruri,
interogare, toate aceste lucruri.
Deci, acestea sunt doar trei diferite lucruri aici.
nu trebuie să se schimbe lucrurile.
Veți crea lucruri în șablon, eventual,
dar în măsura în HTML sau Coafura de orice de acest lucru merge,
puteți să-l lăsați ca simplu sau la fel de complicat ca doriți.
>> Unii oameni obține cu adevărat în ea și face unele site-uri destul de minunat.
Nu trebuie să faci asta.
Dacă aveți timp, e un lucru foarte cool.
Aveți posibilitatea să mizerie în jurul cu CSS și HTML și a obține o simt mult mai bine pentru ea,
dar nu se simt presati sa.
Exista o multime pentru tine să faci, pe de capăt înapoi cu punerea în aplicare a vă conecta,
și registru, precum și toate aceste lucruri.
>> Deci, sperăm că vă ajută un pic.
nu voi aveți orice întrebări despre orice am trecut peste,
orice alte resurse?
Voi trimite cu siguranta toate exemplul meu de cod PHP pentru voi,
și atunci nu ezitați să luați imagini sau fleacuri de acest.
De asemenea, este on-line.
Întotdeauna puteți viziona doar din nou.
Deci, dacă asta e, toată lumea bine?
Da.
>> Audiența: Vreau doar pentru a confirma, atunci când suntem
faci selectați în SQL, stele înseamnă totul, nu?
ALLISON Buchholtz-AU: Da.
Audiența: Și apoi dacă nu ai steaua,
dacă doriți să ia de la o anumită rând, atunci ai pus doar numele de--
ALLISON Buchholtz-AU: Numele rândului
și ceea ce vrei tu vrei valoarea.
>> Audiența: Și apoi data.
ALLISON Buchholtz-AU: Descoperă ce căutați, da.
În același mod, dacă faci DELETE * de la unii tabel, va șterge totul.
Așa că, * este doar un sălbatic carte pentru tot.
>> Audiența: OK.
>> ALLISON Buchholtz-AU: cool.
Minunat.
Ei bine, au o mare Luni, băieți.
Ne vedem săptămâna viitoare.
Mult noroc pe PSET ta.