>> [Speel van musiek]
ALLISON Buchholtz-AU: Alle reg, almal, welkom terug na afdeling.
Hopelik sal jy al 'n groot Halloween naweek, of Halloweekend,
as ek wil sê, al gerus en herstel.
En gelukkig is dit nie meer sneeu.
Dit is eintlik sonnige buite.
Ek was werklik gelukkig oor dit.
Nie gereed is om te sleep my winter stewels.
Hopelik pset6 het baie goed.
>> As jy moeg is van C, ek is gelukkig om te sê jy klaar is met C vir nou.
Ons het ten volle transitioned in die web ontwikkeling,
sodat jy sal werk in HTML, PHP, miskien 'n bietjie van JavaScript.
Ek weet nie wat volgende week se pset is, so ek kan nie waarborg
wat jou volgende pset sal wees, maar hierdie week se pset
is CS50 Finansies, wat is basies die implementering van die soort webblad
wat jy kan koop en verkoop voorraad, en hou van hulle.
En dit is pretty cool, want al dit is dinamies gegenereer.
Jy kan verskillende gebruikers wat het elk hul eie inligting,
en jy gaan wees implementering van alle van daardie.
Dit neem 'n rukkie.
Ek dink beslis dit is makliker as C psets, maar dit neem langer.
Jy leer 'n nuwe taal, PHP, wat baie soortgelyk aan C,
Maar natuurlik gaan om te vereis jy kyk sintaksis en verstaan
hoe om te skakel tussen die tale.
>> Maar ek dink nie daar is iets super konseptueel hard oor hierdie pset.
Dit is net die leer van die nuwe taal en kry
deur al hierdie klein stukkies.
As jy ouens het deur te lees die spec, dit is redelik lank.
Ek dink hierdie een is soos 21 bladsye, as ek reg onthou.
Dit is 'n lang spec.
So as jy gelees het it-- nie 22.
32.
>> Sjoe.
So ek was af met 50% daar.
So, 32 bladsye.
So dit is lank.
Daar is baie van die stukke, maar niemand van die stukke moet wees wat sleg is.
Dit is net 'n baie.
So beslis vroeg te begin indien moontlik, soos gewoonlik,
maar ek dink dit moet voel 'n bietjie mooier as veral die psets soos
herstel en die grootte wat net baie moeilik om jou kop te draai om.
>> So met dit, ons gaan om te duik in.
Ek het nie jou agenda het nie skuif vandag, maar ons is
gaan praat oor PHP.
Ek sal gee jy soort van 'n crash kursus oor 'n paar dinge
wat jy dalk wil om te weet oor PHP.
Verskillende sintaksis dinge, dinge om te kyk uit vir.
Ons gaan om te praat 'n bietjie oor SQL.
Net baie eenvoudige dinge daar, en dan ook MVC
is Model View Controller, wat is hoe om jou pset opgerig word,
so verstaan ​​hoe dit werke sal wees super nuttig.
Alle regte.
So PHP.
Julle moet gedoen iets wat baie, baie eenvoudig
met PHP, wat hierdie onderkant ding hier,
waar jy 'n vorm op die voorgelê bo hier dat sommige naam het dat jy
insette, en dit sal soos groet, Ben, of hello, Allison, en dit sal pop-up.
So dit is eintlik wat dit moet gekyk het soos van jou pset,
in die geval dat jy ouens wou weet of nie heeltemal uitwerk.
>> Maar ons het hierdie vraagtekens hier wat daarop dui dat dit PHP.
En hulle verdraai dit, en dan htmlspecialcharge, onthou, is net,
seker te maak dat jy veilig van enige gek inspuiting aanval
of as iemand probeer om te sit mal kwaadwillige karakters
in jou naam in die veld, is dit nie hou jou bediener of iets anders.
>> En dan as ons sien, hierdie HTML vorm het 'n metode van $ _GET, wat
As ons onthou ons superglobals van PHP, $ _GET, $ _POST,
ons sal gaan in diegene wat in 'n bietjie.
Maar ons weet dat ons 'n paar name hier wat ooreenstem met die naam
dat ons voorgelê.
So, dit is net 'n soort van soos die baie eenvoudige PHP HTML samewerking
dat jy ouens het van pset ses.
>> Maar dit maak nie regtig beantwoord wat PHP.
Natuurlik is dit 'n taal, maar ons het nie regtig
daaroor gepraat in hierdie afdeling, so daar is 'n bietjie meer
oor wat PHP eintlik is.
So PHP is net PHP hiperteks voorverwerker.
>> Dit is eintlik beskou 'n programmeertaal
want dit het logika, terwyl as ons onthou praat oor HTML,
ons genoem dat 'n opmaak taal teenoor 'n programmeertaal, want HTML
is streng verander hoe dinge lyk op die bladsy.
Dit is net die wysiging of iets is vet,
of is dit 'n vorm, element, of iets soos dit.
Dit hoef nie enige logika.
Dit hoef nie sirkelroetes of voorwaardes.
Jy kan nie fout te gaan dinge.
Jy sal óf vertoon dinge in 'n sekere manier of vra vir dinge
van die gebruiker.
Dit is dit.
>> So met PHP, is dit eintlik nie toelaat dat ons al hierdie meer logiese dinge te doen,
soos die geldigheid van die insette of dit manipuleer in een of ander manier.
Ons kan dit kombineer met HTML, as ons net sien in jou laaste pset en nou,
en dit stel ons in staat om te skep hierdie dinamiese webblaaie.
So as jy ouens ever-- Ek weet nie of jy was soos ek nie, maar in die middel skool
hulle het ons neem hierdie IT-klas waar Ons het net HTML webblaaie geskep,
en hulle was statiese en klik om aan ander dinge, maar hulle het nooit verander nie.
>> Met dinamiese kinders, wat ons kan doen is, soos met CS50 Finansies,
jy gaan verskillende gebruikers te hê.
Afhangende van die gebruikers ' voorkeure, en wat hulle koop
of wat hulle verkoop vir hul aandele,
jy gaan om te wys verskillende dinge.
So as daar is 'n paar identifisering van kenmerkende
vir jou gebruikers die gebruik van hierdie webblad, kan ons dinamiese
besluit wat om te vertoon vir hulle.
Dit is nie dieselfde ding vir elke enkele persoon, wat as ons het net HTML,
die bladsy sal dieselfde wees vir elke enkele persoon wat besoek word.
PHP kan ons bladsye aan te pas.
>> En dan kan ons nie sit dit in dieselfde lêer, wat, soos in die geval
voor hier, het ons gesien dat ons het al HTML hier
en dan het ons hierdie bietjie van PHP.
Ons kan dit doen soos dit, of met CS50 Finansies,
As jy ouens het gekyk na die files-- en ons moet tyd
om deur 'n paar van hulle saam aan die einde van die section-- ons
kan sien hoe jy kan eintlik hou hulle skei,
wat eintlik 'n beter ding om te doen.
>> So.
Crash kursus.
Al die vinnige eenvoudige dinge jy dalk nodig het om te weet vir PHP.
Verklaar veranderlikes.
Dit blou is 'n bietjie lastig, maar hopelik julle ouens kan dit sien.
Indien nie, sal ek dit skryf op die swartbord.
Die verklaar veranderlikes.
Een ding om te weet, is dat, in teenstelling met C, PHP is losweg of dinamies getik,
wat beteken dat jy nie nodig het om te vertel 'n veranderlike watter tipe dit is.
Jy kan net eenvoudig sê sommige veranderlike is gelyk aan wat jy dit wil,
en dit sal die aard van die besluit daardie veranderlike te hardloop tyd vir jou.
>> Soos jy sal sien, kan dit skep 'n paar baie interessante dinge.
Maar vir die meeste doeleindes, jy hoef nie die tipe om te bepaal.
Jy kan, en jy kan tik gooi dinge soos wat jy normaalweg
sou dit nie sien as jy wil dwing dit 'n sekere soort te wees,
maar jy hoef nie.
Dit gaan nie te skreeu op jou As jy net 'n veranderlike verklaar
en nie 'n tipe spesifiseer nie, want dit.
>> So in die geval kan jy nie lees nie this-- Ek weet dit is nie die beste.
Ek het gedink dit sou opdaag better-- die manier waarop jy enige veranderlike inisialiseer is net
met 'n dollar-teken, wat jy wil om dit te noem nie,
en dan wat jy toeken nie.
So in hierdie geval, dit is 'n paar $ var = 3.
So as ons ooit gebruik $ var iewers, dit sal net
dieselfde wees as om 3 daar.
OK?
>> So, enige veranderlike, net dollar teken, ongeag
jy jou veranderlike te roep, en alles wat jy dit wil gelyk.
Bietjie koeler.
Minder te skryf vir initializing 'n veranderlike, reg?
Maak dit sin maak vir almal?
Net 'n vinnige sintaksis verskil tussen C en PHP.
>> Skikkings is baie koeler in PHP.
Ons kan hulle sleutels.
So het die manier om te dink oor dit is dat, as ons ooit
wou toegang tot 'n element in 'n skikking,
ons nodig het om die ken indeks van dit, reg?
So ons weet dat met C, het ons die eerste element kan toegang
deur dit te doen skikking bracket nul, of as ons wil hê dat die eerste element, verskeidenheid bracket
een.
En as ons wou iets daar, kan ons net
hê om deur te Itereer, tensy ons eintlik geweet dat die indeks.
>> Een ding wat regtig cool met PHP skikkings
is dat hulle wat ons noem assosiatiewe.
Sodat ons kan assosieer sommige sleutel tot 'n bietjie waarde,
en ons is eintlik gaan aan- ek sal jou wys
hoe ons dit kan gebruik in 'n tweede.
Maar basies, as jy ooit wil 'n skikking soos dit te inisialiseer,
jy het 'n paar $ skikking.
>> So in die dieselfde manier, is dit net sommige veranderlike wat ons skep.
Dit kan genoem word alles wat jy wou hê.
Dit kan $ voorbeeld te wees.
Net nog 'n veranderlike.
Wat maak dit 'n skikking is die bracket sintaksis wat ons hier het.
Net soos gewone C. En ons het 'n paar sleutel tot 'n bietjie waarde.
So key1 gaan waarde1, key2 twee gaan value2.
Hierdie pare is geskei met 'n komma, net soos normale skikkings.
>> Egter.
Groot een.
Sleutels is opsioneel.
Jy hoef nie om dit te gebruik.
En as jy dit nie doen nie, dan is dit net normaal.
Vraag?
Of, o.
>> Publiek: Wel, oor die reg.
Waar is die geheue vandaan?
Dit kan ook dieselfde wees soos [Onhoorbaar] en uit die stapel?
Is dit ook die gebruik van PHP?
Soos wanneer ons hulle 'n skakel?
>> ALLISON Buchholtz-AU: Met PHP, Ons is geneig om nie
bekommerd te wees oor waar ons geheue kom uit.
Ons nie 'n baie te spandeer nie tyd praat oor wat,
so dit is nie regtig iets jy hoef te bekommer nie.
So sleutels is opsioneel.
In dieselfde manier, as jy dit nie doen nie wil hierdie gepaardgaande te maak,
jy wil net 'n normale reeks waar skikking nul is die eerste element
skikking een is die tweede element, kan jy dit doen presies
as jy in C. Jy het 'n paar veranderlike wat gaan jou skikking te wees,
en dit is gelyk aan dié tussen hakies hier.
Ja.
>> Publiek: Het dit die dieselfde punt te notasie.
Soos wat ek kan doen soos 'n skikking ++, en wat verwys na die tweede een.
>> ALLISON Buchholtz-AU: Jy kan do-- Wel, jy kan 'n paar Iterator het, het ek,
dat jy ek kan doen ++ en doen 'n verskeidenheid van i in die dieselfde manier.
Maar dit is dit.
So, soos in hierdie geval, verskeidenheid van 1 sou gelyk 20.
Dieselfde soort van kruip notasie.
Dit is basies net 'n implisiete ding hier, waar dit sê nul, nul tot 10,
1 tot 20, 2-30.
Dis net implisiete sleutels vir dit.
Watter veranderinge met PHP is dat jy nou die krag
die sleutels aan toewys doen wat jy wil.
>> So een ding is hier.
So ek het net 'n paar voorbeelde hier wat ek geskryf het vir julle ouens
want ek voel soos voorbeelde altyd help om meer as net die abstrakte.
So, in hierdie geval hier, ons het 'n paar assosiatiewe skikking
dit is my eerste naam, my laaste naam, en ek
ek aansluit, wat net vir alle doeleindes hier
gaan druk om die uitset hier.
>> En dit sê, OK.
Druk die waarde wat ooreenstem met die rigting van die sleutel Allison.
En ek kan ook stuur julle ouens al hierdie kode na die klas.
So, wanneer ons hardloop dit, wat doen jy dink gaan gebeur?
Wat gaan om uit te druk?
Publiek: Jou naam.
ALLISON Buchholtz-AU: My naam.
Dit doen nie.
Reg hier.
Druk.
So as ons dit en ons te verander was iemand anders te voeg tot ons list--
So kom ons sê ons het Emma hier en ons assosieer jou laaste name--
Kom ons kyk of ek spel dit reg.
>> Publiek: Ja.
>> ALLISON Buchholtz-AU: Ja.
>> Publiek: Goeie werk.
>> ALLISON Buchholtz-AU: Pragtige.
So nou as ons dit hier en Ons wou jou laaste naam te vind,
jy het dit daar.
So jy kan net dink dit as die vervanging van hierdie sleutel hier.
Jy is net die vervanging van die indeks.
So dit kan jy net soek deur 'n verskeidenheid baie makliker.
Jy hoef nie die indeks te leer ken.
Solank as wat hierdie sleutel wat jy soek vir êrens in die skikking,
PHP, sal dit vind en dit sal terugkeer die waarde wat verband hou met dit.
So dit gee jou 'n baie meer mag met jou skikkings.
Ja.
>> Publiek: As jy twee sleutels van die dieselfde is, sal dit gee jou 'n fout?
ALLISON Buchholtz-AU: Dit moet gee jou 'n fout, ja.
Maak dit 'n bietjie meer sin vir julle?
En op dieselfde manier, ons het 'n skikking hier wat nie enige sleutels.
Ook dit is 'n sintaksis wat jy dalk wil
om bewus te wees van die wees nie, want jy sal het om dit te gebruik in jou pset.
>> Wanneer jy doen 'n eggo, jy het hierdie aanhalings,
en wanneer jy verwys om deel te wees van 'n skikking,
jy het hierdie te hê krulhakies rondom hulle.
Dit is soort van irriterende, maar jy moet net om dit te doen.
So net iets om in gedagte te hou.
As jy loop in foute van, Ek weet dat dit bestaan ​​in my skikking
maar dit is die gooi van foute by my probeer om draadjies rondom dit
en dit moet werk.
>> So in hierdie geval hier, dit is 'n normale C skikking wat ons gebruik om te.
Het drie, vyf en ses, en ons het net wil die druk van die eerste element,
so dit moet druk drie.
En ek het hardloop al hierdie, so hopelik niks verander nie.
Ons sien aan die onderkant hier dit is net druk uit drie.
Cool.
Dit sin maak vir almal?
Assosiatiewe skikkings.
Baie koeler as normaal skikkings.
>> Dit is why-- Het Dawid wys die PHP implementering van pset6
tydens lesing by almal?
OK.
So, ek sal jou wys.
Ek weet nie dit uit die t--
>> Publiek: Hy het verlede week.
>> ALLISON Buchholtz-AU: Was dit verlede week?
>> Publiek: Ja.
>> ALLISON Buchholtz-AU: Ja.
So speller kan soos ses reëls gedoen word met PHP, en 'n deel van die krag van daardie
is hierdie assosiatiewe skikking waar jy kan net laai elke woord in,
en jy het dit gelyk aan ware of vals.
En sodat jy kan sê, o.
Terugkeer woordeboek op 'n woord, en As dit is daar, sal dit terugkeer waar.
Andersins sal dit nie vind nie en dit sal terugkeer vals.
So soort van 'n koel bietjie ding.
>> Alle regte.
So dit is assosiatiewe skikkings.
Hulle is redelik cool.
Ek het regtig soos hulle.
En natuurlik this-- Ag.
OK.
Nou is dit werk.
Miskien.
OK.
Nog 'n ding.
So, met gelykheid, net 'n cool ding om in gedagte te hou.
Met PHP, omdat dit dinamiese getik,
die tipe kan verander, afhangende van wanneer jy hardloop dit, hoe jy hardloop nie.
Ek het eintlik 'n paar cool voorbeelde wat ek julle sal wys.
>> Maar == net kontroleer gelykheid na tipe jongleren.
So as jy iets wat soos die karakter 1 en nommer 1,
PHP sal jou vertel dat dit is gelyk, want dit
kan die tipe van die jongleren twee van hulle, totdat dit gelyk is,
wat dalk vir jou saak is goed.
>> As jy nodig het om te kyk of hulle die Dieselfde soort van waarde en dieselfde tipe,
jy wil hierdie ===.
En ek dink nie jy het enige geval waar jy nodig het om te gebruik wat
in jou pset, maar vir 'n baie julle wat gaan op webblaaie te doen
jou finale projekte en dinge, is dit 'n goeie ding wat == te ken en ===
is anders, en dit is 'n goeie onderskeid te verstaan.
>> OK.
So.
Foreach loops.
Hulle is 'n manier om te Itereer deur 'n skikking.
So, net soos skikkings geword so baie koeler in PHP,
jou pad na Itereer deur 'n skikking, dink ek,
word ook baie koeler en nog baie meer kragtig.
So in plaas van om te skep sommige vir i gelyk aan 0 en wat ook al,
en dan werk dit Ek as jy gaan deur,
ons het hierdie awesome foreach lus.
>> So hier is die standaard algemene struktuur van hierdie twee.
So jy het 'n paar foreach skikking as die waarde wat jy wil om te Itereer as.
So dit is die naam van die skikking veranderlike wat jy wil om te verwys,
en dit is wat jy wil hê om dit te noem in die lus.
OK?
So kom dit ooreen met elke element van die skikking,
en jy hierdie waarde gebruik in hierdie lus.
>> Ek het 'n voorbeeld.
Ek weet voorbeelde is soveel beter.
En so is dit as daar geen sleutels, so dit is soos
As ons net een waar die sleutels is die normale indekse vir jou skikking.
Of is dit ook in die geval indien jy het geen gebruik vir die sleutels.
As jy nie omgee die sleutels en jy net
wil Itereer deur met die waardes vir elk van dié in watter volgorde,
dit is goed.
>> Jy kan die struktuur gebruik.
Andersins, indien daar sleutels, ons $ Waarde net verander na $ sleutel waarde.
So is dit net verander na 'n sleutel waarde paar.
En dan kan ons verwys na $ sleutel en $ waarde in ons lus.
OK?
So.
Voorbeeld.
Maak dit mooier.
OK.
>> So ons het hierdie een hier, wat ons het 'n paar
are-- Jy kan ook Skep 'n skikking soos hierdie
deur 'n paar veranderlike gelyk om skikking met hakies,
of jy kan net doen bracket.
Jy moet die bracket te doen nie, maar dit is 'n ander manier om dit te doen nie.
So hier het ons 'n paar verskeidenheid van drie elemente van een, twee, en drie,
en ons het ons foreach.
>> Let op hierdie een stem ooreen met die skikking wat ons iterating oor,
en dit is wat ons roep elke ding in ons verskeidenheid.
En dit alles doen, is dit gaan om uit te druk elke waarde.
So as ons dit loop, sien ons dat ons waarde het een, twee waarde, waarde drie.
>> En op dieselfde manier wat tipies skikkings moet wees van 'n tipe,
skikkings nie aan alle weer dieselfde tipe hier.
So nou het ons 'n paar int.
Ons het twee stringe.
Sodat jou skikkings kan kry veel meer kragtige
en miskien 'n bietjie bietjie morsig, afhangende
op die manier waarop jy wil om te kyk na dit.
So kan ons dit verander om alles wat ons wil hê.
Ons gebruik waarde.
Dit is net die standaard ding wat ons gebruik.
Maar, net belangrik om te weet dat ons kan noem dit soos counter as ons wou.
En so lank as hulle ooreenstem, natuurlik almal is gelukkig.
As jy ooit wil 'n PHP te hardloop iets soos hierdie opdrag loop
lyn jy weet dit hier, jy moet net doen PHP,
en dan alles lêer wat jy wil uit te voer.
>> So as jy wil om te speel met PHP, en meer die logika
en jy nie regtig nodig het nie sien soos in 'n webblaaier,
jy kan net loop dit in die opdrag lyn soos wat
en eggo sal druk uit wat jy wil.
OK.
Die ander manier wat ons het, is soos volg.
So, dit is 'n geval waar dalk wil jy beide die sleutel en die waarde te gebruik,
Ek weet dit is soos super geforseerde voorbeelde
maar ek hoop hulle maak dit 'n bietjie duideliker.
So hier het ons 'n paar verskeidenheid weer, maar hierdie keer,
in plaas van net ' jy weet daar is geen sleutel.
Ons het sleutels vir elk van hierdie.
So 'n is nou eers een, sal b ooreenstem twee, sal en c ooreenstem met drie.
En in hierdie geval, indien Ons skryf dit op hierdie manier,
ons het toegang tot beide sleutel en waarde vir elk van hierdie.
>> So wanneer ons hardloop dit, ons kry elkeen van daardie.
So is dit druk uit ons sleutels en die ooreenstemmende waardes.
Nog 'n cool ding is dat, en ek weet gesê soos hierdie een het nie sleutels,
maar dit is altyd implisiet 'n sleutel, want as jy nie delegeer nie
'n belangrike, natuurlik, jou sleutels is net jou indekse
of indekse, sodat ons kan altyd doen ook hierdie een.
Soos hierdie.
Ek sal uit te druk.
So in hierdie geval, as jy sien, ons het ons implisiete sleutels
van nul, een, twee en hier.
>> En op dieselfde manier met hierdie een, jy kan altyd net sê r as waarde,
en jy moet net toegang tot die waarde.
Jy gee nie om oor jou sleutels, selfs as jou het sleutels,
As jy nie omgee hulle, jy nie noodwendig
nodig het om te sit in jou foreach lus.
Doen wat sin maak vir almal?
>> Publiek: kan jy net noem die sleutels, ook?
ALLISON Buchholtz-AU: Ja, jy heeltemal kan dit doen, ook.
Eintlik, wag.
Hou op.
sou it-- No.
As jy wil hê dat die sleutel, dan jy moet die sleutel om te doen om die waarde van.
Publiek: Voeg waarde.
ALLISON Buchholtz-AU: Ja.
En jy moet net nooit gebruik waarde is nie.
>> Publiek: OK.
ALLISON Buchholtz-AU: As jy net sit een ding daar,
dit gaan om te aanvaar dat jy praat oor die waarde, nie die sleutel.
N groot vraag.
Alle regte.
Cool.
Eintlik, hou op.
Laat my sien wat ek het.
So voordat ons in post en kry, het ek wil net om te wys julle 'n bietjie
oor hoe dit is dinamies getik, wat is 'n soort van cool.
Ek het al hierdie.
Ek het soos vier voorbeelde hier, en ek sal jou alles-kode stuur
na die klas.
>> So hier het ons 'n paar veranderlike a.
Dit is net 1 plus 1, reg?
En ons gaan om uit te druk wat dit is gelyk aan, en dan het ons 'n soort.
En iemand enige raaiskote oor watter tipe dit gaan wees?
>> GEHOOR: 'n int.
>> ALLISON Buchholtz-AU: Ja, dit is 'n int.
So is dit net voeg hulle saam.
Dit is 'n int.
Alle goeie.
So hierdie volgende een, ons het wat lyk soos stringe.
Wanneer ons loop, is dit dink, o.
Jy eintlik probeer om net dinge.
Jy het net verwar.
So ek is net gaan om dit op te los vir jou.
Jy bedoel int.
Ek weet jy bedoel int.
>> So, dit is een van die maniere wat jy kan sien, PHP het 'n wil van sy eie.
Selfs al het ons uitdruklik gesê, kyk, hierdie kinders is snare.
Ek bedoel die string een.
Maar dit sê, o, maar jy probeer om hulle te voeg,
so moet jy dit bedoel is om 'n heelgetal.
Vertrou my net op hierdie punt.
So dit sê dit is 'n heelgetal, en dit voeg hulle soos normaal.
So gaaf as jy gaan lui te kry met jou dinge,
of jy iets wil byvoeg.
>> 'N groot ding is dat, indien jy terugdink aan pset2,
iets wat was gebruiker ingevoer, regs, wat ons dink
is 'n kar of 'n string by die eerste.
Nou is ons nie uitdruklik hoef te sê, o, maak dit 'n int.
PHP sou net soos, o ja.
Ek weet jy bedoel om 'n int.
Dom nie.
Jy het nie bedoel om 'n string.
>> So in daardie geval, nou dat ons dit, wat
julle dink dit gaan om hier te doen?
Ons het 'n string en 'n int nou.
>> Publiek: Dit is nog steeds 'n int.
>> ALLISON Buchholtz-AU: Dit is nog steeds 'n int.
En die rede is-- Ek sou sit meer voorbeelde, maar hierdie een se pret.
Die rede waarom dit is om dit te doen, is omdat dit is soos jy probeer om dinge te voeg.
So as jy probeer om te voeg dinge, ek gaan om te aanvaar,
redelik, moet jy iets redelik dat jy kan voeg.
Ek is net gaan om dit te maak 'n int, en ons net gaan om dit by te voeg, soos gewoonlik.
En dan is die dieselfde manier, het ek dink jy ouens kry die idee.
Ons het ook hierdie een hier, wat net karakters, en dit nie dieselfde ding.
Dit is soos jy dom gebruiker.
Jy weet jy wil 'n int.
>> Publiek: As ons 'n brief, sal dit doen die [onhoorbaar] waarde of nie?
ALLISON Buchholtz-AU: O, dit is 'n goeie vraag.
Kom ons kyk.
Nee, is nog steeds 'n int.
So dit is 'n bietjie mal.
Dit is net 'n soort van om te wys PHP kan soms optree in irrational-- Nie
heeltemal irrasioneel, maar dit kan optree op maniere wat jy nie regtig verwag nie.
Dus, wanneer jy twyfel, kyk die tipe van dinge.
Hierdie funksie getSoort kan wees super nuttig.
>> Tipies, as jy enigiets met doen plusse of enige wiskundige operateurs,
dit gaan om iets te aanvaar redelike is net 'n int.
So, jy het char 1, of 'n string 1, of die werklike int 1,
dit gaan om te aanvaar dat.
As jy wil typeren enigiets, jy heeltemal kan.
Jy kan iets doen, soos verdubbel hier, glo ek.
En in daardie geval, dit gaan om te sê, o.
Ek sal maak dit 'n dubbel omdat jy uitdruklik gesê dit is 'n dubbel.
Jy kan altyd uitdruklik maak PHP iets doen, maar.
>> Publiek: Wag, hoekom is 'n plus 1 is daar?
>> ALLISON Buchholtz-AU: Oh.
Daar.
Dit was net 'n eggo.
Dit was my skuld.
So, kan jy uitdruklik sê dit aan maak iets van 'n sekere tipe,
maar die meeste van die tyd, dit gaan dinamiese besluit dat tydens looptyd.
So dit gaan om voort te gaan deur middel van en dit gaan wees, OK.
Wat maak die meeste sin vir hierdie te wees?
Indien dit eintlik 'n string?
Indien dit 'n int?
Indien dit 'n float?
Indien dit 'n dubbele?
En dit sal besluit wat vir jou.
>> Jy kan dwing om dit te doen wat jy wil, but--
>> Publiek: Maak dit stadiger?
ALLISON Buchholtz-AU: Wel, Ek bedoel, C is baie effektief.
Ek dink dit is beslis stadiger omdat dit het tot die proses as dit gaan.
C, ek is amper seker is vinniger.
Maar natuurlik is daar 'n baie van die koel dinge hier
dat ons nie hoef te bekommer nie.
So, as ons soek deur 'n skikking, ons
het nie eintlik skep sommige soektog deur die skikking.
Ons kan net vra vir die sleutel en PHP sal sorg vir dit.
>> Cool.
Awesome.
Lyk soos die einde van my voorbeelde.
Julle gaan nooit wat nou vergeet.
Jy gaan wees, o, PHP is net soos daardie ma wat is soos nee, nee, nee.
Ek weet wat jy bedoel.
Ek weet wat jy wil.
OK.
So, dit is, hopelik, nuttig vir jou pset, ten minste in die begin,
want jy is al oor die hantering met vorms en dinge van die gebruiker.
>> So is daar twee maniere waarop ons slaag om inligting met PHP en HTML
wanneer ons verby tussen dié twee dinge.
Dus het ons $ _GET, wat geslaag is deur die URL, en ons het $ _POST,
wat geslaag is in die boodskap liggaam, en so het ons dit oorweeg versteek.
Maar een ding om te verstaan ​​is dat nie een van hierdie word beskou as veilig.
>> As jy iemand wat onderskepping die boodskappe gaan
heen en weer tussen jou en die bediener, hulle kan nog steeds hierdie data.
Hulle moet net 'n bietjie harder kyk.
Dit is nie regtig that-- dit net weggesteek van die URL.
Dit is nog steeds in die boodskap liggaam, al is, so as hulle toegang het tot dat,
dit is regtig net like--
>> Dit is soos die verskil tussen iets
wat aan die buitekant van 'n skriftelike 'n koevert en iets wese
geskryf op 'n stuk papier binne-in.
Dit is nie so moeilik om die koevert oop te maak en kry die stukkie papier binne-in.
Toegestaan ​​word, sal dit baie makliker wees lees net die buitekant.
Maar dit is hoe jy kan soort van dink van hierdie.
Nie een van hierdie is regtig oorweeg veilig.
OK?
>> Toegestaan ​​word, nie regtig saak vir jou pset
omdat jy nie handel met die handel geheime,
maar dit is gewoonlik een ding wat ons regtig
graag beklemtoon, want die mense dink, O, goed, dit is verborge.
Dit moet wees super veilig.
No.
Dit is nie veilig.
Dit is net 'n bietjie minder onseker, dink ek.
Of onveilige.
>> So het ons eintlik 'n voorbeeld.
Soos u weet, ek is lief vir leer meer met voorbeelde.
Ek voel soos hierdie help beter.
So, ons het 'n paar eenvoudige vorm hier wat eintlik, as jy ouens is ooit
verward oor PHP, dit is baie klein,
maar php.net is eintlik regtig 'n goeie dokumentasie.
Ek wil dit regtig nie.
Ek gebruik dit om voor te berei vir hierdie artikel, kan ek veearts dit vir jou.
>> Dit is 'n voorbeeld van hulle oor hoe om $ _POST en $ _GET werk.
Die enigste verskil tussen die twee van hulle,
Behalwe waar die inligting vertoon, of dit nou in die URL
of in die liggaam, is ook wat die metode is.
So in jou vorm vir HTML-- Dit is 'n baie eenvoudige HTML vorm.
Kan iemand my vertel wat dit doen?
Publiek: Vra vir jou naam en ouderdom.
ALLISON Buchholtz-AU: Presies.
So ons het 'n paar vorm aksies.
Dit laat ons weet dit is 'n daad vorm.
En wat gaan gebeur is, wanneer ons getref indien,
dit gaan action.php te roep, en dit is wat dit is,
en dit gaan om dit te noem met 'n metode van $ _POST.
So in hierdie geval, jou inligting is versteek.
en dit is net jou naam, 'n paar insette tipe genoem naam, sommige ouderdom,
insette type = "text" dat ons ook die ouderdom noem.
En dan as ons getref indien, Indien sal noem action.php.
>> So wanneer ons werklik getref Stuur ons weet dat dit gepos is, per se,
en ons sal eintlik sien dit in jou probleem gestel dat hopelik ons ​​sal
kry deur middel van 'n bietjie te wandel.
En al is dit hier doen, is POST is 'n paar superglobal veranderlike
dat ons gepraat oor tydens lesing.
En hoe kan jy dink oor $ _POST is dat dit net 'n assosiatiewe skikking.
OK?
So, dit is 'n paar belangrike hierdie is 'n paar belangrike, en wat ook al
die toevoer van die gebruiker word ' waarde vir elkeen van daardie.
OK?
>> So as ons wat hierdie skikking te skryf eintlik lyk soos net na ons
voorgelê die vorm, sal ons het, dit is ons $ _POST,
en 'n paar verskeidenheid waar ons het 'n paar name.
Laat ons net sê ons sal my naam te doen, en dan het ons het 'n paar ouderdom 21.
Woo.
So, dit is al $ _POST is. $ _POST is net 'n assosiatiewe skikking, OK?
>> Dit sê net, OK.
Wat is die dinge wat ons het gevra vir die gebruiker?
Wat is die veranderlikes dat ons rondom is verby
dat ons gevra in die vorm?
En dan wat is die waardes wat verband hou met dit?
So in hierdie geval, as ek dit voorgelê met 'n naam van Ally en 'n ouderdom van 21,
dit is wat $ _POST lyk.
OK?
En dit is wat hierdie PHP lêer het toegang tot.
Alle reg?
>> So in hierdie geval, dit is net soos om enige ander ding van ons verskeidenheid.
In plaas van 'n indeks in ons skikking, ons het 'n paar sleutel.
So dit gaan om te gee my die waarde sleutel naam.
So dit gaan wees Ally, en hierdie reg hier gaan my te gee
die waarde op $ _POST waar die sleutel is ouderdom, wat sal wees 21.
Jy gaan wees om dit te doen nogal 'n bietjie.
Ja, uit watter deel?
>> Publiek: Wanneer jy wys op die onderste deel.
ALLISON Buchholtz-AU: Hierdie onderste deel?
OK.
So, jy verstaan ​​dit is ons HTML vorm, en ons het 'n paar metode $ _POST,
wat saak maak.
Dit kan ook wees $ _GET, maar vir hierdie doel,
ons is net gaan om te sê dit is $ _POST.
Wanneer ons hierdie vorm, is dit deel van 'n PHP-lêer wat genoem.
So hierdie PHP lêer gaan nou uit te voer gegewe die inligting van ons HTML
vorm.
>> So wat dit doen is, wanneer ons getref Stuur op ons HTML vorm,
dit is aan jou verby hierdie superglobal, wat net 'n assosiatiewe skikking.
Dit is hierdie.
Dit is net soos die verbygaan dat die lêer.
En wat sê dit is, OK, hier is $ _POST.
Dit is jou assosiatiewe skikking.
Doen met dit wat jy wil.
En ons sê, OK.
Gee my die waarde op die naam, en gee my die waarde op die ouderdom van.
>> So dit is net sleutels en dit is ons verskeidenheid.
Doen wat sin maak?
>> Publiek: Mhmm.
ALLISON Buchholtz-AU: awesome.
Publiek: As jy die weer in te dien vorm dit net skryf oor die data?
ALLISON Buchholtz-AU: Ja.
Mhmm?
>> Publiek: Hoekom het jy te bepaal dat dit is 'n int?
>> ALLISON Buchholtz-AU: In hierdie geval, die gebruiker net dwing om dit 'n int te wees.
>> Publiek: OK.
ALLISON Buchholtz-AU: Ek weet nie as jy eintlik nodig het nie,
maar vir hul doeleindes, het hulle besluit dat hulle wou dit 'n int te wees.
Hulle is maar net typecasting dit.
Miskien het hulle is om dit te gebruik as iets anders later op.
Dit is net een brokkie.
Ja?
>> Publiek: Wat as hulle getik 12, T-W-E-L-V-E, vir ouderdom?
ALLISON Buchholtz-AU: As hulle probeer om dit te tik as 'n int?
Publiek: Ja.
ALLISON Buchholtz-AU: Ek vergeet wat dit beteken.
Ek dink dit kan probeer om te skakel die eerste karakter na 'n int,
of neem die waarde en omskep , maar ek vergeet presies wat dit.
Wees 'n prettige ding om te skryf 'n program en probeer.
Doen 'n paar lyne.
OK, so dit is een van die belangrikste dinge wat jy gaan om te doen.
Ek gaan hopelik loop deur 'n paar van die lêers
uit die pset met julle.
Dit lyk of ons gaan tyd, so ons kan dit doen.
>> Maar jy gaan wees doen 'n baie van die dinge wat
soos hierdie, waar jy verby dinge uit 'n HTML-vorm
in hierdie PHP vorm wat sal dan 'n stel instruksies uit te voer
op die data wat verskaf is.
Dit is letterlik die kern van jou pset.
Ja.
>> Publiek: Die type = "submit", wat maak 'n knoppie op die HTML-vorm.
Is daar manier om te bel dat die knoppie iets?
So sal jy wees soos name = "submit"?
Of dat die knoppie gaan net te wees leegmaak nou, omdat jy net
het dit 'n tipe, nie 'n naam.
>> ALLISON Buchholtz-AU: Ek dink dit is net gaan leeg wees nou.
Ons kan beslis kyk in die pset, want ons sal beslis
kyk na die registreer soort van ding.
Maar ja, jy kan beslis spesifiseer die teks wat jy wil op jou knoppie.
OK, so SQL.
>> Wanneer jy koop en verkoop van aandele, wat jy nodig het om tred diegene te hou.
So die manier waarop ons gaan om dit te doen, is om met SQL, wat net 'n databasis.
Dink aan dit as 'n tafel waar jy al hierdie inligting is die behoud
oor jou verskillende gebruikers.
En julle is eintlik gaan een van hierdie te skep.
Dit is nogal cool.
>> En daar is net vier belangrikste dinge wat jy nodig het om te weet vir hierdie pset,
en hulle is werk, sodat jy basies werk die data.
Dit word aanvaar dat dit is reeds daar.
As dit nie daar is nie, gaan dit om jou te tref met 'n fout,
so miskien het jy wil om te kyk.
En jy sal werk on-- ek moet actually- ek tyd het,
Ek sal 'n paar van hierdie skryf.
Ek sal eintlik gee julle 'n paar van die monster, vol SQL opdragte,
want dit is net die belangrikste kinders, maar jy kan by hulle saam.
So ek sal dit doen en ek stuur wat vir julle uit met hierdie aantekeninge.
>> So as jy iets wil verander, nodig het om dit te vertel wat jy die opdatering
en waar jy die opdatering van dit.
So 'n tipiese SQL opdrag sou werk wees ID waar iets gelyk aan iets.
Of soos update adres waar ID gelyk aan 3,
en dit sal die adres veld werk van jou gebruiker wat 'n ID van drie het.
OK?
>> So as jy gaan na SQL en W3Schools, hulle het ongelooflike voorbeelde.
In werklikheid is, kan ek trek sommige in 'n bietjie.
En dan voeg in, is jy net invoeging sekere waardes is daar.
So as jy probeer om 'n paar nuwe te skep inskrywing, sodat jy 'n nuwe gebruiker te skep,
jy kan insetsel doen in Wat ook al jou databasis genoem word,
en jy sal moet al hierdie waardes.
>> Dan moet jy kies, Kies waardes te sien.
So as jy probeer om te kyk na sien as 'n gebruiker bestaan ​​of jy
probeer spesifieke te gryp inligting oor 'n gebruiker
jy gaan word met behulp kies.
En dan verwyder, dink ek, is eenvoudig daar.
Jy is net te skrap iets van die tafel.
En in die feit, laat my eintlik trek 'n paar voorbeelde vir julle.
O kyk, dit is my 61 bladsy.
>> So as ons na W3Schools, hopelik is dit weer.
Ja, Love it.
Ons gaan na SQL.
So, dit is iets hier.
So, dit is 'n baie eenvoudige kies.
Man, ek is lief vir hierdie funksie.
So, jy kan kies 'n sommige veld van kliënte.
In hierdie geval, kliënte verwys na die aanlyn-databasis wat jy gebruik,
so ook al jou tafel genoem word, en ster beteken net kies alles.
Gee my elke een.
>> So, ek wil net vir jou te gee ouens 'n paar voorbeelde van waar dit is.
So het ons 'n select, update.
So hier is 'n soort van die algemene sintaksis.
So werk, wat ook al jou tabel naam is, en dan
is waar jy eintlik gaan te wees wat data jy verander.
So kan dit be-- Kom My maak 'n voorbeeld hier.
So dit gaan be--
>> OK.
So ek het 'n bietjie databasis vir ons.
Ons gaan 'n paar ID te hê, sommige jaar, en 'n paar genoem.
So ID een gaan jaar '15 wees, en ons is net gaan dit my te maak.
Wie wil die tweede te wees persoon in ons tafel?
Iemand.
Ek gaan net Emma te kies want jou naam se vinnige.
Emma, ​​watter jaar is jy?
>> Publiek: Watter jaar?
>> ALLISON Buchholtz-AU: Ja.
>> Publiek: 16..
ALLISON Buchholtz-AU: 16..
Jy is net gaan om te wees my marmot vir vandag.
OK, so ons het hierdie twee mense.
Eintlik, laat my dit doen.
Kom ons sê ek haar hoor verkeerd is, en ek eintlik het gesê sy is 'n jaar jonger.
Sy is '17.
Wat ons hier wil doen, as ons wou Emma se jaar te werk
korrekte gebruik van daardie, om te wees wat ons wil doen, is om ons wil sê UPDATE data hier.
>> En dit kan almal op een lyn, maar want ek is benoud vir die ruimte hier
Ek gaan hier skryf.
En ons wil in te stel.
So, dit is die tafel wat ons opdatering.
STEL gaan wat kolom te wees of wat data is ons eintlik verander.
Wat ons verander is jaar, so ons gaan STEL jaar = 16 om te sê,
en dan waarheen ons vertel wat die gebruiker of wat ry ons eintlik die opdatering van hierdie.
>> So waar?
Ons het twee opsies hier.
Wat is die twee?
Dit is uniek, reg?
So ons name is uniek en ons ID is uniek,
So, wat is die twee opsies vir waar ons dit kan doen?
Ek gee jou een.
Ons kan weet waar ID = 2, of ons kan doen wat
As ons af gaan hierdie paradigma hier.
>> Publiek: [onhoorbaar].
ALLISON Buchholtz-AU: Presies.
So kan ons doen ook name = Emma.
En een van hierdie sal werk.
En ons het dit, sal dit wees soos, OK.
Ons sal dit verander.
Jy is eintlik 16, so nou is jy weer regs.
OK, so dit sou wees super nuttig in jou pset
waar dalk iemand besluit 100 aandele te koop van Apple,
en dan was hulle soos net 'n grap.
Ek wil net 90 aandele.
En so het hulle verkoop 10 van hulle, sodat jy moet die bedrag van die aandele te werk
wat hulle het.
So, afhangende van aandele, afhangende tafel.
>> OK.
So dit is 'n voorbeeld daar.
Dit is die werk sintaksis.
DELETE.
O.
Voeg in ons ander een.
So, hierdie een hier is baie soortgelyk.
Ons kan net sê, in hierdie geval laat voeg iemand.
Ons kan Ben voeg hierdie tyd.
Ons voeg in, en ons wil die naam van ons tafel.
In hierdie geval is dit data.
>> En dan het ons net wil, gaan jy sê waardes, en wat jy gaan doen
is, wat jy eintlik nodig het om seker te maak dat jy iets vir elke ry
wat jy wil.
Jy moet net sit hulle in orde is.
So in hierdie geval, sou ons sê 3.
Jy is 18, regs Ben?
>> Publiek: 19.
ALLISON Buchholtz-AU: 19?
Publiek: 19.
ALLISON Buchholtz-AU: Jou jaar se 19.?
Jy gradueer in '18, reg?
Publiek: Oh.
ALLISON Buchholtz-AU: gradeplegtigheid jaar.
Publiek: OK.
ALLISON Buchholtz-AU: Ek was soos, is jy
reeds beplan om te neem 'n jaar hier af?
So, '18, het ons Ben.
So in hierdie geval, sou dit deur te gaan, dit sal 'n nuwe inskrywing maak hier.
Cool.
Nie te sleg nie, reg?
Baie van hierdie gaan wees sintaksis vir julle.
Konsepte moet kom, hopelik, relatief maklik.
Die kode is die enigste ding wat wat kan 'n bietjie lastig.
>> En dan is ons laaste een is DELETE en as jy sien,
Ek raai hierdie webwerf.
Dit is wonderlik.
Daar is 'n ton van die dinge.
So, in die dieselfde manier as wat ons gehad het sommige UPDATE, DELETE is baie soortgelyk.
In plaas daarvan het ons verwyder van data.
So in hierdie geval, ons laaste een wat ek sal hier skryf.
Kom ons sê ons wou my te verwyder.
Ek kan nie vandag skryf.
Verwyder uit watter tafel is ons in, data.
En daar is eintlik drie maniere ons kon kies om my te verwyder.
>> Kan julle vir my sê wat die drie maniere is, hoe kan jy my verwyder?
ID gelyk aan 1, waar ID gelyk aan 1.
Ons kan doen waar jaar is gelyk aan 15, of waar die naam is gelyk aan Allison.
natuurlik, is daar slegs drie verskillende maniere,
want dit is almal uniek.
Tipies in jou tabel, en veral in jou pset,
jy gaan een van te stel hierdie kolomme unieke wees.
>> Dit gaan waarskynlik 'n paar unieke ID nommer, want as jy have-- eintlik,
dit kan eintlik laat jy twee.
Ek kan nie onthou of dit sal laat jy het twee van dieselfde ding.
>> Publiek: dan sou dit hul gedrag te verander.
>> ALLISON Buchholtz-AU: Dit sou.
Dit sal gedrag wat onverwags veroorsaak, dat jy nie werklik kan voorspel.
So jy sal beslis 'n kolom in jou databasis wat sal uniek wees,
en dit is tipies kan jy sodat dit is soos 'n unieke ID,
en dit sal net werk elke tyd wat jy voeg in die tabel.
Enige tyd wat jy 'n nuwe ry, sal dit outomaties
inkrementeer en gee dit 'n unieke ID.
So wenk vir jou pset.
OK.
So wat SQL.
>> So nou gaan ons om te praat oor die heel laaste ding wat inskakel
eintlik baie goed met jou pset, as dit sou gaan vorentoe.
So MVC, model oog kontroleerder.
Dit is regtig net 'n manier dinge georganiseer te hou.
In dieselfde manier met C vra ons julle ouens funksies en verskillende dinge te skep
uit, dit is net 'n manier om te skei kode wanneer jy doen web-ontwikkeling.
>> So dit maak dinge baie meer elegante en eenvoudige,
en dit is eintlik die manier waarop dat jou pset is eintlik
opgestel, so of jy dit wil hê of nie, jy gaan om dit te leer,
selfs as jy dink nie jy leer dit.
En een ding is, dit laat jou ook doen baie meer soos 'n gebruiker samewerking.
>> So toe ek CS50, ek het 'n webwerf vir my finale projek,
en ek was soos, ek sal hanteer die databasis dinge.
Ek kom terug doen einde dinge, en my kamermaat wat ek besig was om met dit
was baie artistiek.
Sy doen stadium ontwerp, en sy wou dit alles mooi te maak.
So ek wil, OK.
Jy kan sorg neem al die voorkant dinge.
>> En die ding is, as Ons sal baie gou sien,
dat die model oog kontroleerder kan jy heeltemal skei wat die kode so
dat ek kan werk op die implementering van ons bladsye,
en manipulering van inligting in ons databasis,
en sy kon net maak dinge mooi, en ons was albei baie gelukkig,
want ons het om te doen wat ons albei wou en ons
het nie te doen het met die ander een.
>> So ons hang saam uit.
Ons wil graag om uit te hang.
Ek het net nie wil om te gaan met al die CSS en HTML dinge.
Ek was soos, jy maak dit mooi.
Ek sal gaan met die databasis.
So ons het dit regtig Modern, groot bietjie tafel.
Ek hou van tafels.
En basies, die model wat jy kan dink net jou databasis.
>> Ek was die model persoon vir my projek.
Dit gaan alles oor die berging van inligting en die organisering van die data.
So dit is wat ons wil einde terug te bel.
So julle ouens sal hanteer die SQL databasis en die data-lêers.
Dit is jou model.
>> Jou mening, as jy dalk dink, soort van sin maak,
is wat jou gebruikers werklik sien.
Dit is die gebruikerskoppelvlak.
Dit is wat voor die gesig staar komponent.
So dit is wat my kamermaat het om te werk aan al die tyd.
Sy was super gelukkig.
So dit is al wat van die HTML, en daar is baie min PHP.
>> As jy net praat oor wat vertoon word aan die gebruiker,
ons praat oor hiperteks.
Ons praat oor hoe dit lyk.
Ons praat nie oor logika, of toestande, of iets anders.
Al wat kry hanteer deur die kontroleerder, OK?
Sodat hanteer die gebruiker versoeke en kry die inligting.
>> So een ding wat jy moet weet oor jou pset is dat, in jou mening,
iets wat eintlik inligting te vertoon
moet nooit maak oproepe na jou model.
Al wat hanteer in jou kontroleerder.
Jou kontroles is die een bemiddeling tussen hierdie twee.
Dit sal die model te vra vir sekere inligting.
Dit kan Itereer oor wat inligting uit te vind
wat jy eintlik nodig het van dit, wat om te doen met dit,
en dan sal dit slaag op net die inligting wat jy
moet die oog vir jou om dit te druk uit of vertoon dit aan die gebruiker, OK?
>> Omdat ons die oog as wat die gesig staar die gebruiker,
so dit sal baie makliker wees vir hulle om uit te vind,
Ag, as jy maak sommige noem aan jou model
en jy vra vir alle gebruikers wat begin met die letter A,
en jy doen wat in jou oog, iemand wat jou webblad kan sien
potensieel toegang tot dit.
>> Jy wil nie noodwendig nie.
Jy wil nie mense om te sien meer in die databasis as wat
hulle moet sien nie.
Net hul spesifieke voorkeure.
So het die beheerder hanteer al van daardie.
So al jou Php lêers wat ons sal sien jy kan oorweeg om jou kontroleerder lêers.
En dit is waar jy werklik gaan wees
vra vir die dinge van jou databasis, en iterating of te manipuleer
dit nodig is voordat om dit op te besigtig word.
>> Dit is werklik 'n koel pset, in my opinie.
Ek dink dit is 'n bietjie meer soos onmiddellike bevrediging,
omdat jy implementeer baie klein klein dingetjies,
en elke ding moet werk op sy eie.
Hou nie, doen alles en dan sien of dit werk.
Soos met die sagteware waar jy soos ek is
regtig hoop dit is reg, want as dit nie,
daar is 'n baie plaas dit kan verkeerd wees.
>> Alle regte.
Net om seker te maak dat ek gesê alles wat ek nodig het om te sê oor MVC.
Ja.
Cool.
>> So in CS50 Finansies, het ons ' ons model, as ek net hier gesê.
Dit gaan wees MySQL en phpMyAdmin.
Ek kan beslis trek diegene tot so julle ouens kry 'n kans om te kyk na dit.
Soos ek gesê het, dit jou SQL databasis optree as jou model,
en jy kan stuur wat ons noem navrae, wat net hierdie soort van dinge.
Dit is bekend as 'n navraag.
Dit is 'n navraag, waar jy net vra jou databasis vir iets,
of jy die verandering van jou databasis op 'n manier.
Dit is al wat dit is.
En jy doen wat met die funksies wat ons het jy hier gegee het.
>> Jy kan ook manipuleer hulle met die hand via phpMyAdmin,
wat ons kan beslis 'n blik op.
Ek sal 'n monster te skep databasis met julle.
OK.
So, kontroleerder.
So in hierdie geval, as jy kennisgewing, dit is al PHP.
Let daarop dat is soort van jou belangrikste ding van jou kontroleerder
is dat dit meestal moet wees PHP.
As jy HTML in jou kontroleerder, nie seker wat gaan aan daar.
Op dieselfde manier soos ek gesê het, as jy bestuur [onhoorbaar] met HTML,
Ek is werklik belangstel.
>> So wat ons hier is jy 'n paar navraag.
Navraag is 'n funksie wat het ons die gebou vir julle.
Dit is soos 'n wrapper navrae te maak aan jou databasis 'n bietjie makliker te maak.
As jy nie het nie, die sintaksis vir eintlik praat met jou SQL databasis
anders sal wees, sodat ons net verskaf dit vir julle.
Ons wil graag die lewe maklik te maak.
>> So in hierdie geval, kan jy ouens vertel my wat hierdie lyn doen?
SELECT * van 'n paar tafel.
Publiek: Kies alles van die tafel.
ALLISON Buchholtz-AU: Presies.
So dit sê, gee my alles van die tafel.
En dit is om dit te stoor in sommige veranderlike gevolg.
En dit sê, as gevolg is nie gelyk vals is, dan doen ons elk van hierdie.
So as daar is niks hier, as jou tafel se leë of is dit net nie bestaan ​​nie,
dit gaan vals om terug te keer.
So in hierdie geval, ons is net die maak seker dat daar iets was eintlik
terug na ons.
>> En dan is hier, ons het ons groot foreach lus
dat ons iterating oor ons gevolg en ons noem dit ry
en ons sê maak hierdie sjabloon waar jou data is die resultaat.
OK?
So dit is net die verwerking die ry van die resultaat.
Andersins, dit skree.
So, dit is 'n voorbeeld van die kontroles.
Soos jy kan sien, is dit die place-- net Ja, jammer?
>> Publiek: Hoekom is daar 'n ampersand voor ry?
>> ALLISON Buchholtz-AU: 'N ampersand voor ry.
Ons is net iterating.
Dit is ook 'n adres of--
>> Publiek: So dit is soos C verwysings.
>> ALLISON Buchholtz-AU: Dis om seker te maak dat jy eintlik
wysiging van die oorspronklike is en nie 'n kopie.
Dit is in die dieselfde wyse met C waar ons verby met verwysing hier, net
om seker te maak.
>> Publiek: Is dit nie == in plaas van nie = in PHP?
>> ALLISON Buchholtz-AU: Dit is nie die ==.
>> Publiek: Omdat gelykes in C is just--
>> ALLISON Buchholtz-AU: Dit is net nie =.
Ja, nee.
Dit is nie ==.
Omdat == in PHP kontroleer gelykheid met Reguliere, toegestaan,
maar ekstra gehalte.
So, is dit nie == in PHP.
Dit is een van die min sintaksis verskille.
Ja.
So ons is maar net iterating deur elke ry,
en lewer, as jy ouens Lees deur jou spec,
is net 'n paar ander funksie wat eintlik gaan al die HTML te verwerk
en vertoon dit in jou leser vir jou.
>> OK.
So, ons wil om te dink aan jou leiers as wat die besigheid logika hanteer.
As jy hier sien, dit is waar ons is neem ons die data van die tafel,
Ons is die verwerking dit in een of ander manier, en dan is ons verby dit af.
Wanneer ons dit doen maak 'n paar sjabloon, sommige sjabloon is ons mening,
en ons is net om dit die data wat dit behoort te kry.
Nie al die data.
Net die data wat ons wil om dit te kry.
OK?
Basies die data na verwerking.
>> So, dit is die siening, is dit Die som sjabloon wat ons het,
En dit alles is doen nie, kan jy 'n bietjie PHP in jou oog.
Dit is nie soos 'n no PHP in die lig.
Jy moet net baie minimaal PHP in die lig,
en jy moet nooit bevraagteken in jou oog.
Jy moet nooit praat aan jou databasis in jou oog.
Dit is die groot verskil.
>> So, wat gaan hier aan is, het ons ' PHP dit is iterating deur die ry.
So in hierdie geval, want ons was iterating deur elke ry
en die lewering van iets, dit was waarskynlik soos 'n twee dimensionele skikking
waar ons het 'n paar ry dat is op sigself 'n skikking,
omdat ons iterating deur dit weer.
En ons is maar net uit te druk die ry naam, dan eindig dit.
>> Jy moet nie nodig om hierdie in die foreach.
Ek het nog nooit gesien dat voor eintlik.
Ek het net nie foreach.
OK, so dit is die oog.
Kom ons kyk of ons kan loop deur 'n bietjie van jou pset.
Ons het 15 minute, so ek is seker dat jy ouens sou graag sien dat meer as net
eindig vroeg.
Laat my sien as ek dit kan bring.
>> So ek hoeveel van julle ouens weet nie het dit afgelaai en noem nie,
maar ons het gebruikersnaam hier en ons het 'n paar wagwoord.
En ongelukkig, reg nou die databasis is leeg,
sodat ons werklik nodig 'n databasis te skep.
Wel, dit is vreemd.
Het nie verwag dat.
Tegniese foute.
Tegniese probleme.
Ons het 'n paar pset7.
Cool.
>> So, een ding wat jy kan doen, is om met 'n query-- Ek sal 'n tafel.
So dit gaan wees users-- wat jy hier kan doen is, as ons some--
Nou regtig?
OK.
Dit is duidelik dat ek nie doen so warm.
O.
Ek weet hoekom.
Want ek het nooit geskep my werklike tafels.
So wanneer jy die eerste keer begin met 'n databasis, jy natuurlik
het om te besluit wat is die dinge wat ek nodig het hier te hê?
>> So, as ons net af te gaan ons data tabel hier
Ons het 'n paar ID, wat kan net bly 'n int.
En as ons kyk hier, daar is 'n cool ding that-- So indeks.
As jy dit doen primêre, sal dit dit die maak ding wat jou tafel georganiseer deur
en dit sal ook maak dit uniek.
So in hierdie geval, sal ons dit primêre maak, en ek gaan hierdie naam te maak,
dan sal ons net maak dit 'n varchar van soos 26 letters, want hoekom nie?
>> En dan kan jy gaan na slaan, en dan as jy sien, ons het 'n paar gebruikers hier.
So as ons wil 'n om te doen voeg, ons kan dit doen
hierdie manier, of as jy die praktyk wou met jou queries-- Oh boy.
Ek het nie hierdie in ewigheid gebruik.
Ek neem dit terug.
>> Jy kan verander hierdie op jou eie óf net deur die hand te voeg inligting
met iets soos jy enige van hierdie kan verander
As jy wil make-- As jy wil skielik ontslae te raak van 'n naam, kan jy drop,
wat jy kan doen al hierdie dinge.
As jy nodig het om ooit hand verander jou tafel,
Ek stel voor om dit te doen in phpMyAdmin versus probeer
om uit te vind die SQL navrae in die algemeen.
Wanneer jy die eerste keer begin om jou pset, jy gaan te hê om hier te werk in,
so gewoond raak aan dit.
En dan wanneer jy eintlik wil dinge te voeg in jou table--
Ek wonder waar dit is, omdat there's-- Hier is dit.
Dit is wat ek wou hê.
So as jy gaan na SQL, kan jy eintlik sien, soos ons hier sien,
ons het SQL navrae.
>> So, as ons wou iets te kies of as ons wou iets te voeg,
ons kan insetsel doen in die gebruikers, reg?
Ek dink jy moet die backslash.
Een ding om te weet, is, indien jy ooit die gebruik van hierdie,
jy het hierdie weer te gebruik apostrofs, wat is tipies,
As jy op 'n Mac, reg bo blad.
So 'n goeie ding om te weet.
>> Jy kan voeg in gebruikers en ons het ons waardes, reg?
Dus het ons waardes en ons waardes In hierdie geval sou net,
ons het net 'n ID, sodat ons 'n mens kan doen as ons wou.
Dit is vreemd.
OK.
So dit is net soos 'n kort dingetjie met SQL,
maar dit kan meer nuttig om werklik kyk na sommige van die lêers in hier.
>> So gaan fone.
O, nie fone.
So, net 'n vinnige walkthrough van Wat is in elk van hierdie dopgehou.
Dit sluit in, ons moet net dinge dat jou leser instel,
ons het hierdie konstantes, en ons het hierdie funksies.
As jy belangstel in enige van hulle, Ek beveel kyk na funksies.
Een van hulle wat super nuttig, eintlik is hierdie een hier, stort.
>> So as jy dit gebruik, dit is eintlik net
druk wat veranderlike wat jy wil om dit te.
So as jy probleme het uitzoeken uit te vind wat die skikking lyk,
of wat hierdie data, hoe dit geformateer,
dit is 'n groot ding om te gebruik.
Veral as jy 'n gebruiker met verskeie voorraad,
dit gaan wees iets wonderlik om te gebruik.
Want dit kan formatted-- wees
>> Ek weet ten minste vir my toe ek dit gedoen hierdie pset, was dit geformateer in 'n manier
dat ek nie heeltemal verwag.
So ek probeer om te Itereer oor dit en probeer om dit te manipuleer,
maar ek het nie regtig verstaan ​​wat ek kon doen.
So as jy net dit stort, sal dit druk dit uit aan die leser,
en jy kan sien presies hoe dit formaat.
Dit sal tipies druk dit uit as 'n skikking met sy sleutels en sy waardes.
So kan dit daar te help.
Dit kan ook help om te maak seker te maak dat jy eintlik
gryp die data wat jy gedink het jy was.
So as jy wil, my tafel beslis sê daar is 'n gebruiker met hierdie ID,
maar wanneer jy gaan die te stort veranderlike, dit is nie daar nie,
jy weet natuurlik wat waar 'n fout gaan wees.
Dit is een van die beste gereedskap vir ontfouting, in my opinie.
En dan is daar 'n paar ander dinge hier,
maar vir die grootste deel, dit is die een wat ek wil jou aandag te vestig op,
want dit is baie nuttig.
>> Publiek, wat ons hier is, dit is almal van ons CSS dinge.
So CSS, fonts, ons beelde, noem maar op.
Dit is alles dinge wat jy hoef nie te verander.
Kan julle dink as dit het dinge soos CSS in die skrif,
sal dit 'n model, of 'n oog of 'n kontroleerder?
Publiek: [onhoorbaar]
ALLISON Buchholtz-AU: Dit wil meer van 'n oog, reg?
Dit is die hantering van alle dinge, hoe lyk dinge.
So as ons hier maak dit, sien ons dat alles wat hier gebeur
is ons die lewering van iets.
OK?
So dit sou baie kwalifiseer as 'n oog vir hierdie.
So dit is net die neem van 'n paar, dit roep 'n paar portfolio.php
wat ons het, en dit is verby in titel en portefeulje.
En dit is net die lewering van daardie.
Eintlik, ek neem dit terug.
Dit is 'n kontroleerder, omdat lewer, onthou, maak die uitsig.
So portfolio.php in hierdie geval sou jou siening wees.
Jammer, ouens.
Portfolio.php gaan wees jou mening, en dit sou net
jou kontroleerder vir wat.
En as ons neem 'n blik op hierdie laaste een hier, templates,
templates is al jou mening hier.
So as ons kyk, natuurlik sien ons 'n baie HTML hier.
>> So hierdie een is net wat jy wat die aanmelding bladsy moet lyk.
Jy sien ons het 'n paar vorm groepe, het voorlê.
Hier is hoe jy besluit watter is op daar vertoon.
Jy het 'n paar knoppie type = "submit", en dan moet jy dit wat jy dit wil hê
te vertoon in knoppie.
So dit is hoe jy dit sou maak wys as wat jy wil.
>> En ons hier sien ons het 'n paar gebruikersnaam, sommige wagwoord
en toe ons eintlik getref indien, dit gaan 'n paar post te wees,
en dit gaan 'n boodskap na wat?
Wat is die kontroles vir hierdie siening?
Wanneer ons getref indien, wat gaan genoem word nie?
Weet ons?
Dit is hier, so login.php.
Iets wat jy ouens is gaan implementeer.
>> So kan jy altyd vertel wat gaan wees
genoem nadat jy getref Stuur deur hierdie eerste reël hier.
Wat die vorm aksie is.
Wanneer hierdie vorm ingedien word, watter stappe neem ons?
Ons noem login.php, en ons noem dit met hierdie metode
van die post, wat die verborge inligting.
OK?
So, dit is jou siening, en dan natuurlik as ons gaan doen om login.php-- ons dit
nog?
Ja.
>> So as ons hier, sien dit het 'n baie meer logika.
Dit is al wat ons PHP hier.
Ons probeer om te sien of dit was $ _GET, As dit was $ _POST, geldigmaking dinge,
bevraagteken, al hierdie dinge.
So dit is net die drie verskillende dinge hier.
jy hoef nie om dinge te verander.
Jy skep dinge in sjabloon, moontlik,
maar so ver as HTML of die stilering van enige van hierdie gaan,
jy kan laat dit soos 'n paal of as ingewikkelde as jy wil.
>> Sommige mense kry regtig in dit en maak 'n paar mooi ongelooflike webtuistes.
Jy hoef nie om dit te doen.
As jy tyd het, is dit 'n baie cool ding.
Jy kan speel met CSS en HTML en kry 'n veel beter gevoel vir dit,
maar moenie druk te voel nie.
Daar is baie te doen vir jou op die agterkant met die implementering teken,
en register, en al hierdie dinge.
>> So hopelik help om 'n bietjie.
doen julle enige vrae oor alles wat ons het gegaan oor,
enige ander bronne?
Ek sal beslis stuur al my voorbeeld PHP-kode vir julle ouens,
en dan voel vry om te neem foto of iets anders van hierdie.
Ook is dit aanlyn.
Jy kan altyd net weer te kyk.
So as dit is dit, almal goed?
Ja.
>> Publiek: Ek wil net om te bevestig, wanneer ons
doen kies in SQL, die ster beteken alles, reg?
ALLISON Buchholtz-AU: Ja.
Publiek: En dan as jy het nie die ster,
As jy wil dit uit 'n spesifieke te neem ry, dan moet jy net die naam of--
ALLISON Buchholtz-AU: Die naam van die ry
en wat jy wil jy die waarde van.
>> Publiek: En dan die datum.
ALLISON Buchholtz-AU: Wat jy soek, ja.
Op dieselfde wyse, as jy nie DELETE * uit sommige tafel, sal dit alles verwyder.
So, * is net 'n wilde kaart vir alles.
>> Publiek: OK.
>> ALLISON Buchholtz-AU: Cool.
Awesome.
Wel, het 'n groot Maandag, ouens.
Ek sien julle volgende week.
Sterkte op jou pset.