>> [MUSIK SPELA]
ALLISON Buchholtz-AU: Okej, alla, välkommen tillbaka till avsnitt.
Förhoppningsvis ni alla hade en bra Halloween helgen, eller Halloweekend,
som jag vilja säga, alla utvilad och återvinns.
Och tack och lov det inte snöar längre.
Det är faktiskt soligt ute.
Jag var riktigt glad över det.
Inte redo att dra ut min vinterkängor.
Förhoppningsvis pset6 gick ganska bra.
>> Om du är trött på C, jag är glad att säga att du är klar med C för nu.
Vi har fullt övergått i webbprogrammering,
så du kommer att arbeta i HTML, PHP, kanske en liten bit av Javascript.
Jag vet inte vad nästa veckas pset är, så jag kan inte garantera
vad ditt nästa pset kommer vara, men denna veckas pset
är CS50 Finance, som är i grunden genomföra den typ av webbsidan
som tillåter dig att köpa och sälja lagerför och hålla reda på dem.
Och det är ganska coolt, eftersom alla det genereras dynamiskt.
Du kan ha olika användare som har var sin egen information,
och du kommer att bli genomföra allt detta.
Det tar ett tag.
Jag tror definitivt att det är lättare än C psets, men det tar längre tid.
Du lär dig ett nytt språk, PHP, som är mycket lik till C,
men naturligtvis kommer att kräva du kan slå upp syntax och förstå
hur du konverterar mellan språken.
>> Men jag tror inte att det finns något super konceptuellt mycket på detta pset.
Det är bara att lära sig nytt språk och att få
genom alla dessa små bitar.
Om ni har läst igenom spec, det är ganska lång.
Jag tror att detta är som 21 sidor, om jag minns rätt.
Det är en lång spec.
Så om du inte har läst det-- 22.
32.
>> Wow.
Så var jag av med 50% där.
Så, 32 sidor.
Så det är långt.
Det finns massor av bitar, men ingen av bitarna skulle vara så illa.
Det är bara en massa.
Så definitivt komma igång tidigt om möjligt, som vanligt,
men jag tror att det ska kännas lite trevligare än särskilt psets gillar
återhämta sig och ändra storlek som är precis mycket svårt att svepa huvudet runt.
>> Så med det, vi kommer att dyka i.
Jag har inte din agenda skjut idag, men vi är
kommer att bli att prata om PHP.
Jag kommer att ge dig lite av en snabbkurs på vissa saker
som du kanske vill veta om PHP.
Olika syntax saker, saker att se upp med.
Vi kommer att tala lite om SQL.
Bara mycket enkla saker där, och sedan även MVC
är Model View Controller, som är hur din pset är inställd,
så att förstå hur det verk kommer att bli super bra.
Okej.
Så PHP.
Ni borde ha gjort något mycket, mycket enkelt
med PHP, vilket är denna botten sak här,
där du lämnat in någon form på topp här som hade vissa namn som du
ingång, och det skulle säga som hej, Ben, eller Hej, Allison, och det skulle dyka upp.
Så detta är faktiskt vad det borde ha sett ut från din pset,
ifall ni ville veta eller inte riktigt lista ut det.
>> Men vi har dessa frågetecken här som visar att det här är PHP.
De slå in den, och sedan htmlspecialcharge, kom ihåg, bara,
se till att du är säker från någon galen injektionsattack
eller om någon försöker sätta galna skadliga tecken
i ditt namn fältet, det gör det inte gillar din server eller whatnot.
>> Och sedan om vi märker, denna HTML formen hade en metod för $ _GET, vilken,
Om vi ​​kommer ihåg våra superglobals från PHP, $ _GET, $ _POST,
vi kommer att gå in i de i en liten bit.
Men vi vet att vi har några namn här som motsvarar namnet
att vi lämnat in.
Så det här är bara ungefär som mycket enkel PHP HTML samarbete
att ni fått från pset sex.
>> Men som egentligen inte besvara vad är PHP.
Självklart är det ett språk, men vi har inte riktigt
pratade om det i detta avsnitt, så det finns lite mer
om vad PHP är.
Så PHP är bara PHP hyper preprocessor.
>> Det är faktiskt anses ett programmeringsspråk
eftersom det har logik, medan om Vi minns talar om HTML,
Vi kallade det ett märkspråk kontra ett programmeringsspråk, eftersom HTML
är strikt modifiera hur det ser ut på sidan.
Det är bara att modifiera om något är fet,
eller om det är en form, element, eller något liknande.
Den har inte någon logik.
Det har inte öglor eller villkor.
Du kan inte fel kolla saker.
Du skulle antingen visa saker på ett visst sätt eller be om saker
från användaren.
Det var allt.
>> Så med PHP, det faktiskt gör det möjligt för oss att göra alla dessa mer logiska saker,
liksom validera indata eller manipulera det på något sätt.
Vi kan kombinera det med HTML, som vi just såg i din sista pset och just nu,
och det ger oss möjlighet att skapa dessa dynamiska webbsidor.
Så om ni ever-- jag vet inte om du var som mig, men i högstadiet
de hade oss ta detta IT-klass där Vi skapade bara HTML-sidor,
och de var statisk och klicka runt till andra saker, men de har aldrig ändrats.
>> Med dynamiska sådana, vad vi kan gör är, som med CS50 Finance,
du kommer att ha olika användare.
Beroende på dessa användare " preferenser, och vad de ska köpa
eller vad de säljer för sina lager,
du kommer att visa olika saker.
Så om det finns några identifiera karakteristiska
för användare som använder den här webbsida kan vi dynamiskt
bestämma vad som ska visas för dem.
Det är inte samma sak för varje enskild person, som om vi hade bara HTML,
sidan skulle vara densamma för varje enskild person som besökte.
PHP ger oss möjlighet att anpassa sidor.
>> Och då kan vi antingen sätta dem i samma fil, vilket, som i fallet
innan här, såg vi att Vi har HTML alla här
och sedan har vi denna lilla bit av PHP.
Vi kan göra så där, eller med CS50 Finance,
om ni har tittat på files-- och vi borde ha tid
att gå igenom ett par av dem tillsammans vid slutet av section-- vi
kan se hur du kan faktiskt hålla dem åtskilda,
som egentligen är en bättre sak att göra.
>> So.
Snabbkurs.
Alla snabba enkla saker du kanske behöver veta för PHP.
Deklarera variabler.
Det blå är lite irriterande, men förhoppningsvis ni kan se den.
Om inte, ska jag skriva det ombord krita.
De deklarerar variabler.
En sak att veta är att, till skillnad från C, PHP är löst eller dynamiskt skrivit,
vilket innebär att du inte behöver berätta för en variabel vilken typ det är.
Du kan bara helt enkelt säga några rörliga är lika med vad du vill,
och det kommer att avgöra vilken typ av den variabeln vid körning för dig.
>> Som du ser, kan detta skapa några mycket intressanta saker.
Men för de flesta ändamål, du behöver inte ange typ.
Du kan, och du kan skriva gjutna saker som du normalt
skulle inte se om du vill tvinga den att vara en viss typ,
men du behöver inte.
Det kommer inte att skrika på dig om du bara deklarera en variabel
och inte anger en typ för det.
>> Så om du inte kan läsa this-- Jag vet att det är inte den bästa.
Jag trodde att det skulle dyka upp better-- den ditt sätt att initiera en variabel är bara
med ett dollartecken, vad du vill att den ska kallas,
och sedan vad du koppla den.
Så i detta fall, är detta något $ var = 3.
Så om vi någonsin använder $ var någonstans, kommer det bara
vara samma som att sätta 3 där.
OK?
>> Så, eventuell rörlig, precis dollartecken, oavsett
du vill ringa din variabel, och vad du vill att det ska lika.
Lite svalare.
Mindre att skriva för att initiera en variabel, eller hur?
Betyder det vettigt för alla?
Bara snabb syntax skillnaden mellan C och PHP.
>> Arrayer är mycket svalare i PHP.
Vi kan ge dem nycklarna.
Så sätt att tänka på det är att, om vi någonsin
ville komma åt en elementet inom en matris,
vi behövde veta index på det, eller hur?
Så vi vet att med C, vi kunde komma åt det första elementet
genom att göra array fäste noll, eller om vi vill det första elementet, array fäste
en.
Och om vi ville ha något i det, vi kanske bara
ha för att iterera igenom, om inte vi faktiskt visste index.
>> En sak som verkligen är cool med PHP arrayer
är att de är vad vi kallar associativ.
Så vi kan associera någon nyckel till ett visst värde,
och vi faktiskt kommer att-- Jag ska visa dig
hur vi kan använda detta i en sekund.
Men i grund och botten, om du någonsin vill att initiera en array så där,
har du några $ array.
>> Så på samma sätt, det är bara viss variabel som vi skapar.
Detta skulle kunna kallas vad du ville.
Detta kan vara $ exempel.
Bara en annan variabel.
Vad gör det en array är fäste syntax som vi har här.
Precis som vanligt C. Och vi ha viss nyckel till något värde.
Så nyckel1 går till värde1, KEY2 två går till value2.
Dessa par är separerade med en kommatecken, precis som vanliga arrayer.
>> Emellertid.
Stor en.
Nycklar är valfria.
Du behöver inte använda dem.
Och om du inte gör det, då är det bara normalt.
Fråga?
Eller, åh.
>> PUBLIK: Tja, om höger.
Var är minnet kommer från?
Kan det också vara samma som [OHÖRBAR] och från stacken?
Är det också med PHP?
Som när vi länka dem?
>> ALLISON Buchholtz-AU: Med PHP, behöver vi inte brukar
att oroa sig där vår minne kommer från.
Vi vill inte spendera mycket tid att prata om det,
så det är egentligen inte något du behöver oroa dig.
Så nycklar är valfria.
På samma sätt, om du inte vill göra denna tillhörande,
du bara vill ha en vanlig array där array noll är det första elementet
och matrisen en är den andra element, kan du göra det exakt
som du skulle i C. Du har någon variabel som kommer att vara din array,
och det är lika dessa konsoler här.
Ja.
>> PUBLIK: Har den samma punkt till notation.
Precis, jag kan göra som en array ++, och som pekar på den andra en.
>> ALLISON Buchholtz-AU: Du kan do-- Tja, du kan ha lite iterator, i,
att du kan göra i ++ och gör en matris med jag på samma sätt.
Men det är det.
Så som i detta fall, matris med 1 skulle motsvara 20.
Samma typ av indexering notation.
Detta är i grunden bara en implicit sak Här, där det står noll, noll till 10,
till 1-20, 2-30.
Det är bara implicita nycklar för det.
Vilka förändringar med PHP är att du nu har makten
att överlåta dessa nycklar till gör vad du vill.
>> Så en sak är här.
Så jag har bara några exempel här som jag skrev upp för er
eftersom jag känner mig som exempel alltid hjälpa mer än bara det abstrakta.
Så i det här fallet, vi har någon associativ array
det är mitt förnamn, mitt efternamn, och jag
am ekande, vilket är precis för alla ändamål här
kommer att skriva ut till utgången här.
>> Och den säger, OK.
Skriv ut det värde som motsvarar array vid nyckel Allison.
Och jag kan också skicka er killar all denna kod efter klassen.
Så när vi kör detta, vad gör du tror kommer att hända?
Vad kommer att skriva ut?
PUBLIK: Ditt efternamn.
ALLISON Buchholtz-AU: Mitt efternamn.
Det gör det.
Just här.
Skriv ut.
Så om vi skulle ändra på detta och vi skulle lägga till någon annan att vår list--
Så låt oss säga att vi har Emma här, och vi förknippar din sista name--
Få se om jag stava det rätt.
>> PUBLIK: Ja.
>> ALLISON Buchholtz-AU: Ja.
>> PUBLIK: Bra jobbat.
>> ALLISON Buchholtz-AU: Lovely.
Så nu om vi har det här och Vi ville hitta ditt efternamn,
du har det där.
Så du kan bara tänka på det som ersätter det viktigaste här.
Du bara ersätter indexet.
Så det kan du bara söka genom en rad mycket lättare.
Du behöver inte känna till indexet.
Så länge som denna nyckel som du söker för existerar någonstans i arrayen,
PHP kommer att finna det och det kommer tillbaka det värde i samband med det.
Så det ger dig mycket mer makt med dina arrayer.
Ja.
>> PUBLIK: Om du har två nycklar på samma, kommer det att ge dig ett fel?
ALLISON Buchholtz-AU: Det bör ge dig ett fel, ja.
Gör det lite mer meningsfullt för er?
Och på samma sätt har vi en matris här som inte har några nycklar.
Också detta är en syntax som du kanske vill
att vara medveten om, eftersom du kommer måste använda detta i din pset.
>> När du gör en eko, du har dessa citat,
och när du hänvisar att en del av en array,
du måste ha dessa klamrar runt dem.
Det finns en slags irriterande, men du måste bara göra det.
Så bara något att ha i åtanke.
Om du kör in i fel, Jag vet att detta finns i min samling
men det är att kasta fel på mig, prova att sätta hängslen runt det
och det bör fungera.
>> Så i detta fallet här, är detta en normal C array som vi är vana vid.
Har tre, fem, och sex, och vi bara vill skriva ut den första delen,
så detta bör skriva ut tre.
Och jag kör alla dessa, så förhoppningsvis ingenting förändrats.
Vi ser i botten här, det bara skriver ut tre.
Cool.
Det vettigt för alla?
Associativa arrayer.
Mycket kallare än normala matriser.
>> Detta är why-- Har David visa PHP genomförandet av pset6
Under föreläsningen alls?
OK.
Så ska jag visa dig.
Jag vet inte det från t--
>> PUBLIK: Han gjorde förra veckan.
>> ALLISON Buchholtz-AU: Var det förra veckan?
>> PUBLIK: Ja.
>> ALLISON Buchholtz-AU: Ja.
Så stavnings kan göras Gillar sex rader med PHP, och en del av kraften i det
är detta associativ array där Du kan bara ladda varje ord i,
och du har det lika med sant eller falskt.
Och så att du kan säga, åh.
Återgå ordbok på några ord och om det är det, det kommer att återvända sant.
Annars kommer det inte att hitta det och det kommer att returnera false.
Så lite av en cool liten sak.
>> Okej.
Så de är associativa arrayer.
De är ganska cool.
Jag gillar verkligen dem.
Och självklart this-- Ah.
OK.
Nu det funkar.
Kanske.
OK.
En annan sak.
Så, med jämlikhet, bara en cool sak att ha i åtanke.
Med PHP, eftersom det är dynamiskt skrivit,
typ kan ändras beroende på när du kör det, hur du kör det.
Jag har faktiskt några coola exempel som jag ska visa er.
>> Men == bara söker efter könen efter typ jonglering.
Så om du har något som är som tecknet 1 och nummer 1,
PHP skulle säga att de är lika, eftersom det
kan jonglera de typer av den två av dem förrän det är lika,
vilket kanske för ditt fall är bra.
>> Om du behöver för att se om de är Samma typ av värde och samma typ,
du vill att detta ===.
Och jag tror inte att du har någon fall där du behöver använda den
i din pset, men för en hel del Ni som kommer att gå på att göra webbsidor
för din slutliga projekt och saker, det bra att veta att == och ===
är olika, och det är en bra distinktion att förstå.
>> OK.
So.
Foreach slingor.
De är ett sätt att iterera genom en matris.
Så, precis som arrayer blev så mycket svalare i PHP,
ditt sätt att iterera genom en rad, tror jag,
också blir mycket kallare och mycket mer kraftfull.
Så istället för att behöva skapa några för jag är lika med 0, och vad som helst,
och sedan uppdatera det Jag som du går igenom,
Vi har den här härliga foreach loop.
>> Så här är det allmän standardiserad strukturen av dessa två.
Så du antingen har foreach viss matris som det värde du vill iterera som.
Så detta är namnet på uppsättningen variabel som du vill referera till,
och detta är vad du vill att kalla det inom slingan.
OK?
Så detta motsvarar varje element i arrayen,
och du använder detta värde i denna slinga.
>> Jag har ett exempel.
Jag vet exempel är så mycket bättre.
Och så detta är om det finns inga nycklar, så det här är som
om vi bara har en där nycklarna är de normala indexen för din array.
Eller det är också i det fallet om du har ingen användning för nycklarna.
Om du inte bryr dig om nycklar och du bara
vill iterera igenom med värdena för var och en av dem i vilken ordning,
det är bra.
>> Du kan använda strukturen.
Annars, om det finns nycklar, vår $ Värdet bara ändras till $ nyckelvärdet.
Så det bara ändras till ett nyckelvärde paret.
Och då kan vi hänvisa till $ nyckel och $ värde inom vår slinga.
OK?
So.
Exempel.
Gör det trevligare.
OK.
>> Så vi har här Här, där vi har en del
är-- Du kan också skapa en array som denna
genom att ha några variabel lika till array med parenteser,
eller så kan du bara göra fäste.
Du bör göra konsolen, men Detta är ett annat sätt att göra det.
Så här har vi en viss uppsättning av tre delar av en, två och tre,
och vi har vår foreach.
>> Lägg märke till detta motsvarar den array som vi iteration över,
och detta är vad vi kallar Varje sak i vår samling.
Och allt detta gör är att det är kommer att skriva ut varje värde.
Så om vi kör det, märker vi att vi har värdet ett, värde två, värdet tre.
>> Och på samma sätt som typiskt arrayer måste vara av en typ,
arrayer behöver inte alla vara av samma typ här.
Så nu har vi några int.
Vi har två strängar.
Så dina arrayer kan få mycket mer kraftfull
och kanske lite bitars smutsigare, beroende
på det sätt som du vill titta på det.
Så vi kan ändra detta till vad vi vill.
Vi använder värde.
Det är bara standard som vi använder.
Men, bara viktigt att veta att vi kan kallar detta som disk om vi ville.
Och så länge de matchar, uppenbarligen alla är glada.
Om du någonsin vill köra ett PHP kör något liknande detta kommando
line du vet detta Här, du bara gör PHP,
och sedan vad fil du vill köra.
>> Så om du vill röra runt med PHP och mer logiken
och du egentligen inte behöver se ut i en webbläsare,
Du kan bara köra det i kommandoraden så där
och eko kommer att skriva ut ut vad du vill.
OK.
Det andra sättet som vi har är så här.
Så det här är ett fall där kanske du vill att använda både nyckeln och värdet,
Jag vet att det är som super contrived exempel
men jag hoppas att de gör det lite tydligare.
Så här har vi någon array igen, men den här gången,
istället för att bara ha du vet att det finns ingen nyckel.
Vi har nycklar för varje av dessa.
Så en kommer bli en, kommer b motsvara till två, kommer och c motsvara tre.
Och i detta fall, om Vi skriver det här sättet,
Vi har tillgång till både nyckeln och värde för var och en av dessa.
>> Så när vi kör detta, Vi får var och en av dem.
Så det skriver ut våra nycklar och motsvarande värden.
En annan cool sak är att, och jag vet sade som den här inte har nycklar,
men det alltid implicit har en nyckel för om du inte delegera
en nyckel, naturligtvis, din nycklar är bara din index
eller index så vi kunde alltid också göra detta.
Gillar du.
Jag kommer att skriva ut.
Så i detta fall, om du märker, vi har våra implicita nycklar
av noll, ett, och två här.
>> Och på samma sätt med den här, Du kan alltid bara säga r som värde,
och du bara har tillgång till värdet.
Du bryr dig inte om ditt nycklar, även om din har nycklar,
om du inte bryr dig om dem, du behöver inte nödvändigtvis
måste sätta dem i din foreach loop.
Är det meningsfullt för alla?
>> PUBLIK: Kan du bara kallar nycklarna också?
ALLISON Buchholtz-AU: Ja du kunde helt göra det också.
Faktiskt, vänta.
Håll ut.
skulle det-- No.
Om du vill ha nyckeln, sedan du behöver göra nyckeln till värde.
PUBLIK: Skapa värde.
ALLISON Buchholtz-AU: Ja.
Och du bara aldrig använda värdet är allt.
>> PUBLIK: OK.
ALLISON Buchholtz-AU: Om du bara sätta en sak där,
det kommer att anta att du är talar om värdet, inte nyckeln.
Bra fråga.
Okej.
Cool.
Egentligen håll.
Låt mig se vad jag har.
Så innan vi får in inlägget och få, jag vill bara visa er lite
om hur det är dynamiskt maskinskrivna, vilket är ganska häftigt.
Jag har alla dessa.
Jag har liksom fyra exempel här uppe, och jag kommer att skicka all denna kod
efter lektionen.
>> Så här har vi någon variabel a.
Det är bara 1 plus 1, eller hur?
Och vi kommer att skriva ut vad det är lika med, och sedan har vi några slag.
Och någon som har några gissningar om vilken typ det kommer att bli?
>> PUBLIK: En int.
>> ALLISON Buchholtz-AU: Ja, det är en int.
Så det bara lägger ihop dem.
Det är en int.
Alla bra.
Så detta nästa, vi har vad ser ut som strängar.
När vi kör detta, tycker det, oh.
Du är faktiskt försöker att bara lägga till saker.
Du bara blev förvirrad.
Så jag ska bara fixa det åt dig.
Du betydde int.
Jag vet att du menade int.
>> Så det här är ett av de sätt du kan se, har PHP en egen vilja.
Även om vi uttryckligen sagt, ser, är dessa ettor är strängar.
Jag menar strängen ett.
Men den säger, åh, men du försöker lägga till dem,
så du måste betyda att det är ett heltal.
Lita på mig bara på det här.
Så det säger att det är ett heltal, och det lägger till dem som vanligt.
Så sorts kyla om man ska att få lata med dina saker,
eller om du vill lägga till något.
>> En bra sak är att, om du tänker tillbaka på pset2,
något som var användaren matas in, höger, som vi tror
är en röding eller en sträng i början.
Nu behöver vi inte uttryckligen säger, åh, gör detta till en int.
PHP skulle bara vara som, oh yeah.
Jag vet att du menade en int.
Silly dig.
Du menade inte en sträng.
>> Så i det fallet, nu att vi har det, vad
tycker ni att det kommer att göra här?
Vi har en sträng och en int nu.
>> PUBLIK: Det är fortfarande en int.
>> ALLISON Buchholtz-AU: Det är fortfarande en int.
Och anledningen är-- jag skulle sätta fler exempel, men den här är kul.
Anledningen till att det gör det är för att det är som du försöker lägga till saker.
Så om du försöker lägga till saker, jag kommer att ta på sig,
rimligt, har du något rimligt att man skulle kunna lägga till.
Jag kommer bara att göra det till en int, och Vi kommer bara att lägga till den, som vanligt.
Och sedan på samma sätt, jag tror ni förstår tanken.
Vi har också denna en här, som är bara åstadkommer förkolning, och det gör samma sak.
Det är som, du dum användare.
du vet att du vill ha en int.
>> PUBLIK: Om vi ​​sätter ett brev, kommer Det gör [OHÖRBAR] värde eller inte?
ALLISON Buchholtz-AU: Åh, det är en bra fråga.
Låt oss se.
Nope, är fortfarande en int.
Så det är lite galen.
Detta är bara typ av visa PHP kan ibland uppträda på irrational-- Inte
helt irrationell, men det kan bete sig på ett sätt som du egentligen inte förväntar sig.
Så, när du är osäker, kontrollera de typer av saker.
Denna funktion getType kan vara super användbar.
>> Vanligtvis om du gör något med plustecknen eller några matematiska operatorer,
det kommer att ta på sig något rimliga är bara en int.
Så, har du röding 1, eller sträng 1, eller den faktiska int 1,
det kommer att anta att.
Om du vill typecast någonting, du helt kan.
Du kan göra något liknande dubbla här, tror jag.
Och i så fall, det kommer att säga, oh.
Jag ska göra det här en dubbel eftersom du uttryckligen sagt att det är en dubbel.
Du kan alltid explicit gör PHP göra något, men.
>> PUBLIK: Vänta, varför A plus 1 där?
>> ALLISON Buchholtz-AU: Oh.
Där.
Det var bara ett eko.
Det var mitt fel.
Så kan du uttryckligen säga det till gör något av en viss typ,
men för det mesta, det kommer att dynamiskt besluta att vid körning.
Så det kommer att fortsätta genom och det kommer att bli som, OK.
Det som gör mest känsla för att det ska vara?
Ska det verkligen vara en sträng?
Ska det vara en int?
Ska det vara ett flöte?
Ska det vara en dubbel?
Och det kommer att avgöra det åt dig.
>> Du kan tvinga den att göra vad du vill, men--
>> PUBLIK: Gör det det långsammare?
ALLISON Buchholtz-AU: Tja, Jag menar, är C mycket effektiv.
Jag tycker det är definitivt långsammare eftersom det har att processen som det kommer.
C, jag är nästan säker på är snabbare.
Men självklart finns det en massa häftiga saker här
att vi inte behöver oroa sig.
Så, om vi söker genom en rad, vi
behöver inte faktiskt skapa vissa Sök igenom arrayen.
Vi kan bara be om nyckeln och PHP kommer att ta hand om det.
>> Cool.
Grymt.
Ser ut som i slutet av mina exempel.
Ni kommer aldrig att glömma det nu.
Du kommer att vara som, åh, är PHP bara så där mamma som är som nej, nej, nej.
Jag vet vad du menar.
Jag vet vad du vill.
OK.
Så det här är förhoppningsvis till nytta för din pset, åtminstone i början,
eftersom du är allt om att hantera med former och saker från användaren.
>> Så det finns två sätt som vi skicka runt information med PHP och HTML
När vi passerar mellan dessa två saker.
Så vi har $ _GET, som ledes via webbadressen, och vi har $ _POST,
som ledes i meddelandet kropp, och så vi anser att det är dolt.
Men en sak att förstå är att ingen av dessa anses säker.
>> Om du har någon som är avlyssning av meddelanden som går
fram och tillbaka mellan dig och server, kan de ändå få denna information.
De måste bara titta lite hårdare.
Det är egentligen inte that-- det är bara dolda från webbadressen.
Det är fortfarande i meddelandetexten, dock så om de har tillgång till den,
det är egentligen bara like--
>> Det är som skillnaden mellan något
skrivs på utsidan av ett kuvert och något väsen
skrivet på ett papper inuti.
Det är inte så svårt att öppna kuvertet och få papper inuti.
Visst, skulle det vara mycket lättare bara läsa på utsidan.
Men det är hur du kan slags tänker på dessa.
Ingen av dessa är verkligen anses säker.
OK?
>> Visst, egentligen inte roll för din pset
eftersom du inte har att göra med affärshemligheter,
men det är typiskt en sak som vi verkligen
betona eftersom folk tänker, oh, ja, det är dolt.
Det måste vara super säker.
Nej.
Det är inte säkert.
Det är bara något mindre osäker, antar jag.
Eller osäker.
>> Så vi har faktiskt ett exempel.
Som ni vet, jag älskar lära mer med exempel.
Jag tycker detta hjälper bättre.
Så, har vi några enkla formuläret här som faktiskt, om ni någonsin
förvirrad om PHP, Detta är verkligen små,
men php.net är faktiskt riktigt bra dokumentation.
Jag gillar verkligen det.
Jag använde den för att förbereda sig för detta avsnitt, så jag kan veterinären det för dig.
>> Detta är ett exempel från dem på hur _POST $ och $ _GET arbete.
Den enda skillnaden mellan två av dessa,
förutom där informationen är visas, oavsett om det är i URL
eller i kroppen, är också vilken metoden är.
Så ditt formulär för HTML-- här är en mycket enkel HTML-formulär.
Kan någon berätta för mig vad den gör?
PUBLIK: Fråga efter ditt namn och ålder.
ALLISON Buchholtz-AU: Exakt.
Så vi har några formuläråtgärder.
Som låter oss veta att det är någon handling form.
Och vad kommer att hända är, när vi träffar Skicka,
det kommer att ringa action.php, vilket är vad detta är,
och det kommer att kalla det med ett förfarande för att $ _POST.
Så i detta fall, din informationen är dold.
och det är bara ditt namn, en del input typ som kallas namn, vissa ålder,
input type = "text" som vi kallar även ålder.
Och sedan om vi slog in, Skicka ringer action.php.
>> Så när vi faktiskt slog in, vi vet att den har skrivit, per se,
och vi ska faktiskt se detta i din problembild som förhoppningsvis vi ska
får gå igenom lite.
Och allt det gör här är POST är några superglobal variabel
att vi pratade om under föreläsningen.
Och hur du kan tänka på $ _POST är att det bara är en associativ array.
OK?
Så det här är några viktiga, detta är några viktiga och vad
användarinmatningen blir en värde för var och en av dem.
OK?
>> Så om vi skulle skriva vad denna samling faktiskt såg ut direkt efter att vi
skickat in formuläret, skulle vi har, detta är vår $ _POST,
och några array där vi har några namn.
Låt oss bara säga att vi ska göra mitt namn, och sedan har vi några år, 21.
Woo.
Så det här är alla $ _POST är. $ _POST är bara en associativ array, OK?
>> Den säger bara, OK.
Vilka är de saker Prisjakt begärt från användaren?
Vilka är de variabler att vi går runt
att vi har bett om i denna form?
Och vad är det värden förknippade med det?
Så i detta fall, om jag lämnade in den med ett namn på Ally och en ålder av 21,
detta är vad $ _POST ser ut.
OK?
Och detta är vad detta PHP-filen har tillgång till.
Okej?
>> Så i detta fall, det är precis som få någon annan sak från vår samling.
I stället för ett index i vår array, har vi några viktiga.
Så detta kommer att ge mig värdet vid nyckelnamn.
Så detta kommer att bli Ally, och denna rätt här kommer att ge mig
Värdet på $ _POST där Nyckeln är ålder, vilket kommer att vara 21.
Du kommer att bli göra detta ganska lite.
Ja, från vilken del?
>> PUBLIK: När du var pekar på den nedre delen.
ALLISON Buchholtz-AU: Denna nedre delen?
OK.
Så, förstår du det här är vår HTML bilda, och vi har någon metod $ _POST,
som betyder något.
Detta kan också vara $ _GET, men för detta ändamål,
Vi kommer bara att säga att det är $ _POST.
När vi lämna denna form är detta del av en PHP-fil som heter.
Så denna PHP-fil kommer nu att köra givet den information från vår HTML
formuläret.
>> Så vad det gör är, när vi hit Submit på vår HTML-formulär,
det passerar dig här superglobal, vilket är bara en associativ array.
Det är det här.
Det är precis som förbigående att till filen.
Och vad den säger är, OK, här kommer $ _POST.
Det är din associativ array.
Gör med det vad du vill.
Och vi säger, OK.
Ge mig värdet vid namn, och ge mig värdet på ålder.
>> Så det är bara nycklar, och detta är vår samling.
Är det vettigt?
>> PUBLIK: Mhmm.
ALLISON Buchholtz-AU: Awesome.
PUBLIK: Om du måste skicka om ser den bara skriva över data?
ALLISON Buchholtz-AU: Ja.
Mhmm?
>> PUBLIK: Varför har du för att ange att det är en int?
>> ALLISON Buchholtz-AU: I detta fall användaren bara tvingar den att vara en int.
>> PUBLIK: OK.
ALLISON Buchholtz-AU: Jag vet inte om du verkligen skulle behöva det,
men för sina syften, bestämde de att de ville att det skulle vara en int.
De bara type-casting det.
De kanske använder det som något annat senare.
Detta är bara en snutt.
Ja?
>> PUBLIK: Vad händer om de skrivit 12, T-W-E-L-V-E, för ålder?
ALLISON Buchholtz-AU: Om de försökt att skriva det som en int?
PUBLIK: Ja.
ALLISON Buchholtz-AU: Jag glömma vad det gör.
Jag tror att det kan försöka konvertera det första tecknet på en int,
eller ta värdet och konvertera det, men jag har glömt exakt vad det.
Var en rolig sak att skriva ett program och försöka.
Gör ett par rader.
OK, så detta är en av de viktigaste saker som du kommer att göra.
Jag ska förhoppningsvis gå igenom ett par av filerna
från pset med er killar.
Det ser ut som vi kommer att har tid, så att vi kan göra det.
>> Men du kommer att bli gör en massa saker
så här, där du passerar saker från ett HTML-formulär
in i denna PHP formulär som kommer då exekvera någon uppsättning av instruktioner
på uppgifter som tillhandahölls.
Det är bokstavligen kärnan i din pset.
Yeah.
>> PUBLIK: The type = "submit", att gör en knapp på HTML-formulär.
Finns det sätt att ringa den knappen något?
Så skulle du vara som name = "submit"?
Eller är den knappen bara kommer att bli tömma just nu, eftersom du bara
gav det en typ, inte ett namn.
>> ALLISON Buchholtz-AU: Jag tycker det är bara kommer att vara tom just nu.
Vi kan definitivt titta i pset, eftersom vi kommer definitivt
att titta på Registrera sånt.
Men ja, du kan definitivt ange den text som du vill på din knapp.
OK, så SQL.
>> När du köper och säljer aktier, du behöver för att hålla reda på dem.
Så hur vi ska göra det är med SQL, som ligger bara en databas.
Se det som en tabell där du håller all denna information
om dina olika användare.
Och ni är faktiskt kommer att skapa en av dessa.
Det är ganska coolt.
>> Och det finns bara fyra saker som du behöver veta för denna pset,
och de är uppdatering, så att du princip uppdatera uppgifterna.
Det förutsätter att det redan finns där.
Om det inte finns där, det kommer att slå dig med ett fel,
så kanske du vill kontrollera.
Och du kommer att uppdatera on-- jag ska faktiskt- jag har tid,
Jag ska skriva ett par av dessa.
Jag ska faktiskt ge er en par prov, fullständig SQL-kommandon,
eftersom dessa är bara huvud sådana, men du kan gå samman dem.
Så jag ska göra det och jag ska skicka ut det till dig med dessa anteckningar.
>> Så om du vill uppdatera något, måste tala om vad du uppdaterar
och vart du uppdatera den.
Så en typisk SQL-kommando skulle vara uppdatering ID där något är lika med något.
Eller liknande uppdatering adress där ID är lika med 3,
och detta skulle uppdatera adressfältet av din användare som har ett ID på tre.
OK?
>> Så om du går till SQL och W3Schools, de har enorma exempel.
I själva verket kan jag dra några upp i en liten bit.
Och sedan in i, du är bara föra in vissa värden där.
Så om du försöker att skapa några nya post, så du skapar en ny användare,
du kunde göra insatsen i oavsett vad din databas heter,
och du skulle ha alla dessa värden.
>> Då har du välja, Välj värden för att visa.
Så om du försöker att kontrollera se om en användare finns eller du är
försöker fånga specifika information om en användare
du ska använda väljer.
Och sedan ta bort, tror jag, är ganska enkelt där.
Du är bara att ta bort något från bordet.
Och faktiskt, låt mig faktiskt drar upp några exempel för er.
Åh titta, det är min 61 sida.
>> Så om vi går till W3Schools, förhoppningsvis är det upp igen.
Ja, Love it.
Vi går till SQL.
Så detta är något här.
Så detta är en mycket enkel SELECT.
Man, jag älskar den här funktionen.
Så kan du få VÄLJ vissa fält från kunder.
I detta fall, kunder hänvisar till online-databas som du använder,
så vad ditt bord kallas, och stjärna betyder bara markera allt.
Ge mig alla.
>> Så jag vill bara ge er ett några exempel på hur det är.
Så vi har SELECT, UPDATE.
Så här är typ av den allmänna syntaxen.
Så UPPDATERA, oavsett din Tabellnamnet är, och sedan SET
är där du faktiskt kommer vara vilka data du ändrar.
Så detta kan be-- Let mig göra ett exempel här.
Så detta kommer att be--
>> OK.
Så jag skapade en liten databas för oss.
Vi kommer att ha lite ID, några år, och vissa namngivna.
Så ID-en kommer att vara år '15, och vi kommer bara att göra det för mig.
Vem vill vara den andra person i vårt bord?
Någon.
Jag kommer bara att välja Emma eftersom ditt namn är snabb.
Emma, ​​vilket år är du?
>> PUBLIK: Vilket år?
>> ALLISON Buchholtz-AU: Ja.
>> PUBLIK: 16.
ALLISON Buchholtz-AU: '16.
Du kommer bara att bli mitt marsvin för idag.
OK, så vi har dessa två personer.
Faktiskt, låt mig göra det här.
Låt oss säga att jag hörde henne fel, och jag sa faktiskt att hon är ett år yngre.
Hon är 17.
Vad vi vill göra här, om vi ville uppdatera Emmas år
vara korrekt att använda det, vad vi skulle gör är att vi skulle säga uppdatera data över här.
>> Och detta kan alla vara på en linje, men eftersom jag komprimeras för utrymme här,
Jag kommer att skriva här.
Och vi vill ställa.
Så detta är bordet vi uppdaterar.
SET kommer att vara vad kolonn eller vilka data som vi faktiskt förändras.
Vad vi förändras är år, så vi kommer att säga SET år = 16,
och sedan VAR berättar vilken användare eller vilken rad är vi faktiskt att uppdatera denna.
>> Så där?
Vi har två alternativ här.
Vilka är de två?
Dessa är unika, eller hur?
Så våra namn är unika och vår-ID är unikt,
så vad är de två alternativen för där vi kunde göra det här?
Jag ska ge dig ett.
Vi skulle kunna göra WHERE id = 2, eller vi kunde göra vad
om vi ska ut detta paradigm här.
>> PUBLIK: [OHÖRBAR].
ALLISON Buchholtz-AU: Exakt.
Så kunde vi också göra name = Emma.
Och någon av dessa skulle fungera.
Och vi körde detta, skulle det vara som, OK.
Vi ska ändra det.
Du är faktiskt 16, så Nu har du rätt igen.
OK, så det skulle vara super bra i din pset
där kanske någon beslutat att köpa 100 aktier i Apple,
och sedan de var som, bara skojar.
Jag vill bara ha 90 aktier.
Och så de säljer 10 av dem, så att du behöver uppdatera hur stort lagret
som de har.
Så, uppdatera lager, uppdatera tabellen.
>> OK.
Så det är ett exempel där.
Det är uppdaterings syntax.
DELETE.
Oh.
Sätt in i vår andra.
Så detta är en här mycket lika.
Vi kan bara säga, i detta fall ska vi lägga till någon.
Vi kan lägga till Ben här gången.
Vi INSERT INTO, och vi vill ha namnet på vårt bord.
I detta fall är det data.
>> Och då är vi bara vill, kommer du att säger VÄRDEN, och vad du ska göra
är du faktiskt behöver se till att att du har något för varje rad
som du vill.
Du sätter dem bara för att.
Så i detta fall, skulle vi säga 3.
Du är 18, eller hur Ben?
>> PUBLIK: 19.
ALLISON Buchholtz-AU: 19?
PUBLIK: 19.
ALLISON Buchholtz-AU: Din årets '19?
Du examen i '18, eller hur?
PUBLIK: Åh.
ALLISON Buchholtz-AU: Graduation år.
PUBLIK: OK.
ALLISON Buchholtz-AU: Jag var som, du är
planerar redan att ta ett sabbatsår här?
Så, '18, har vi Ben.
Så i detta fall, skulle det gå igenom, Det skulle skapa en ny post här.
Cool.
Inte så illa, eller hur?
En hel del av detta kommer att vara syntax för er.
Begrepp skulle komma, förhoppningsvis, relativt enkelt.
Syntaxen är det enda det kan vara lite knepigt.
>> Och så vår sista är DELETE, och som ni märker,
Jag rekommenderar denna webbplats.
Det är bra.
Det finns massor av saker.
Så, på samma sätt som vi hade vissa UPDATE, DELETE är mycket lika.
I stället har vi Radera från Data.
Så i detta fall, vår sista jag ska skriva här nere.
Låt oss säga att vi ville ta bort mig.
Jag kan inte skriva i dag.
TA BORT från oavsett tabell vi är i, uppgifter.
Och det finns faktiskt tre sätt vi kan välja att ta bort mig.
>> Kan ni berätta för mig vad de tre sätt är, hur du kan ta bort mig?
ID är lika med 1, där ID är lika med 1.
Vi kunde göra var år lika 15, eller om namnet är lika med Allison.
naturligtvis finns det bara tre olika sätt,
eftersom dessa är alla unika.
Vanligtvis i tabellen, och speciellt i din pset,
du kommer att ställa in en av dessa kolumner att vara unik.
>> Det kommer förmodligen att bli lite unikt ID nummer, för om du have-- faktiskt,
det faktiskt kan låta dig ha två.
Jag minns inte om det ska låta du har två av samma sak.
>> PUBLIK: Då skulle det ändra sitt beteende.
>> ALLISON Buchholtz-AU: Det skulle.
Det kommer att leda till ett beteende som är oväntat, att man inte riktigt kan förutse.
Så du kommer definitivt att ha en kolumn i din databas som kommer att vara unik,
och det är normalt kan du ställa in det så att det är som ett unikt ID,
och det kommer bara att uppdatera varje gång du sätter in i tabellen.
Varje gång du skapar en ny rad, kommer den automatiskt
öka och ge det lite unikt ID.
Så antyda för din pset.
OK.
Så det är SQL.
>> Så nu ska vi prata om den allra sista, som anknyter
faktiskt ganska bra med din pset, om det skulle gå framåt.
Så MVC, Model View Controller.
Detta är egentligen bara ett sätt att hålla saker organiserade.
På samma sätt med C ber vi er att skapa funktioner och separata saker
ut, detta är bara ett sätt att skilja ut kod när du gör webbutveckling.
>> Så det gör saker mycket mer elegant och förenklas,
och detta är faktiskt det sätt att din pset faktiskt
ställa in, så om du vill det eller inte, du kommer att lära sig det,
även om du inte tror du lär dig det.
Och en sak är, det gör att du också göra mycket mer som en användare samarbete.
>> Så när jag tog CS50, gjorde jag en hemsida för mitt slutprojekt,
och jag var som, jag hantera databas grejer.
Jag ska göra back end grejer, och min rumskamrat som jag tog med det
var mycket konstnärliga.
Hon gör scenografi, och hon ville göra det hela ganska.
Så jag är liksom, OK.
Du kan ta hand om allt framänden grejer.
>> Och saken är, som vi får se mycket snart,
den modellen view controller kan du helt separera den koden så
att jag kunde arbeta med genomföra våra sidor,
och manipulera informationen i våra databaser,
och hon kunde bara göra saker söt, och vi var båda verkligen glad,
eftersom vi fick göra vad vi båda ville och vi
behövde inte ta itu med den andra.
>> Så vi hängde ihop.
Vi gillar att umgås.
Jag bara inte vill ta itu med all CSS och HTML grejer.
Jag var som, du gör det ganska.
Jag tar hand om databasen.
Så vi har det verkligen cool, stor liten tabell.
Jag älskar tabeller.
Och i grund och botten, den modell du kan tänka på är bara din databas.
>> Jag var den modell person för mitt projekt.
Det handlar om lagring av information och organisera data.
Så det är vad vi vill kalla bakändan.
Så ni kommer att göra med SQL-databasen och datafilerna.
Det är din modell.
>> Din uppfattning, som du kanske tror slags vettigt,
är vad din användaren faktiskt ser.
Det är användargränssnittet.
Det är att fronten mot komponenten.
Så det är vad min rumskamrat fick arbeta på hela tiden.
Hon var super glad.
Så det är all HTML, och det finns väldigt lite PHP.
>> Om du bara pratar om vad som visas för användaren,
vi pratar om hypertext.
Vi pratar om hur det ser ut.
Vi pratar inte om logik, eller villkor, eller whatnot.
Allt som blir hanterade av styrenheten, OK?
Så som hanterar användaren begär och hämtar informationen.
>> Så en sak du bör veta om din pset är att, i dina åsikter,
något som faktiskt är visning av information
ska aldrig göra samtal till din modell.
Allt detta hanteras i handkontrollen.
Handkontrollen är den medla mellan dessa två.
Det kommer att be modellen för vissa uppgifter.
Det kan iterera över att information räkna ut
vad du faktiskt behöver från det, vad man ska göra med det,
och då kommer det att vidarebefordra just den information som du
behöver vyn för dig att skriva ut det ut eller visa det för användaren, OK?
>> Eftersom vi se vad som allt som är vänd mot användaren,
så det kommer att bli mycket lättare för dem att lista ut,
åh, om du gör vissa kallar dig fram
och du ber för alla användare som börjar med bokstaven A,
och du gör det i din syn, någon som kan se din webbsida
skulle kunna komma åt det.
>> Du behöver inte nödvändigtvis ha det.
Du vill inte att folk ska se mer in i databasen än vad
de bör se.
Bara deras specifika önskemål.
Så styrenheten hanterar allt detta.
Så alla dina .php filer som vi får se du kan överväga dina controller filer.
Och det är där du är verkligen kommer att bli
ber om saker från din databas, och iteration eller manipulera
det som behövs innan vidarebefordra den till ses.
>> Det är en riktigt cool pset, enligt min mening.
Jag tycker det är lite mer som omedelbar tillfredsställelse,
eftersom du implementerar en massa små små saker,
och varje sak bör fungera på egen hand.
Inte vill, göra allt och sedan se om det fungerar.
Precis som med programvara där du är som jag är
verkligen hoppas att detta är rätt, för om det inte är,
det finns en hel del placerar den kan ha fel.
>> Okej.
Bara att se till att jag sa allt jag behövde säga om MVC.
Yeah.
Cool.
>> Så i CS50 Finance, har vi vår modell, som jag just sagt här.
Det kommer att bli MySQL och phpMyAdmin.
Jag kan definitivt dra dem upp så ni får en chans att titta på det.
Som jag sa tidigare, det är din SQL Databasen fungerar som din modell,
och du kan skicka det vi kallar frågor, som är bara den här sortens saker.
Dessa kallas för en fråga.
Detta är en fråga där du är bara be din databas för något,
eller om du ska ändra din databas på något sätt.
Det är allt det är.
Och du gör det med den funktioner vi har gett dig här.
>> Du kan också manipulera dem för hand via phpMyAdmin,
som vi kan definitivt ta en titt på.
Jag ska skapa ett prov databas med er.
OK.
Så, controller.
Så i detta fall, om du varsel, detta är alla PHP.
Lägg märke till att det är typ av din Huvudsaken för handkontrollen
är att det bör vara mestadels PHP.
Om du har HTML i handkontrollen, inte riktigt säker på vad som händer där.
På samma sätt som jag sagt, om du lyckas [OHÖRBAR] med HTML,
Jag är verkligen intresserad.
>> Så vad vi har här är att du har en viss fråga.
Query är en funktion som vi byggt för er.
Det är som ett omslag för att göra frågor till din databas lite enklare.
Om du inte har det, syntaxen för faktiskt prata med din SQL-databas
skulle vara annorlunda, så vi bara leverera det åt er.
Vi vill göra livet lätt.
>> Så i detta fall, kan ni berätta för mig vad denna linje gör?
SELECT * från några bord.
PUBLIK: Välj allt från den här tabellen.
ALLISON Buchholtz-AU: Exakt.
Så det säger, ge mig allt från den här tabellen.
Och det är att förvara det i några variabla resultat.
Och detta säger, om resultatet inte är lika till false, så gör vi alla i detta.
Så om det finns inget här, om din tabellens tom eller det bara inte finns,
det kommer att returnera false.
Så i detta fall är vi bara göra Se till att något var faktiskt
tillbaka till oss.
>> Och så här, vi har vår stora foreach loop
att vi iterera över vår resultat, och vi kallar den ro,
och vi säger gör den här mallen var dina data är detta resultat.
OK?
Så det är bara att bearbeta raden av resultatet.
Annars skriker den.
Så detta är ett exempel av regulatorn.
Som ni ser är detta den bara plats-- Ja, förlåt?
>> PUBLIK: Varför finns det ett et-tecken före rad?
>> ALLISON Buchholtz-AU: Ett och-tecken före rad.
Vi är bara iteration.
Det är också en adress of--
>> PUBLIK: Så det är som C referenser.
>> ALLISON Buchholtz-AU: Det är att se till att du är faktiskt
ändra den ursprungliga och inte en kopia.
Det är på samma sätt med C där vi passerar genom hänvisning här, bara
att se.
>> PUBLIK: Är det inte == istället för att inte = i PHP?
>> ALLISON Buchholtz-AU: Det är inte ==.
>> PUBLIK: Eftersom jämlikar i C är bara--
>> ALLISON Buchholtz-AU: Det är bara inte =.
Ja, nr.
Det är inte ==.
Eftersom == i PHP söker efter jämlikhet med pendling, beviljade,
men extra kvalitet.
Så det är inte == i PHP.
Det är en av den lilla syntaxskillnader.
Yeah.
Så vi bara iteration genom varje rad,
och göra, om ni Läs igenom din spec,
är bara någon annan funktion som är faktiskt kommer att behandla all HTML
och visa den i din webbläsare för dig.
>> OK.
Så vi gillar att tänka på dina controllers som vad hanterar affärslogiken.
Som ni ser här, det är där vi är ta våra data från tabellen,
vi bearbetar det på något sätt, och sedan kommer vi att passera den.
När vi gör gör någon mall, viss mall är vår uppfattning,
och vi bara låta det passera de data som den borde få.
Inte alla data.
Bara data som vi vill att den ska få.
OK?
I grund och botten data efter bearbetning.
>> Så detta är utsikten, detta är summan mall som vi har,
och allt detta gör är, kan du har lite PHP i vyn.
Det är inte som ett nej PHP tanke.
Du ska bara ha mycket minimal PHP tanke,
och du bör inte vara förfrågning i vyn.
Du ska aldrig tala till din databas i vyn.
Det är den stora skillnaden.
>> Så vad som händer här är att vi har PHP som är iteration genom raden.
Så i detta fall, eftersom vi var iterera igenom varje rad
och rendering något, var det förmodligen som en tvådimensionell array
där vi har en del rad som är, i sig, en matris,
eftersom vi iteration igenom det igen.
Och vi bara skriva ut raden namnet, sedan avsluta det.
>> Du ska inte behöva detta i foreach.
Jag har aldrig sett det innan faktiskt.
Jag gör bara foreach.
OK, så det är vyn.
Låt oss se om vi kan gå igenom en liten bit av din pset.
Vi har 15 minuter, så jag är säker på att du killar vill ha det mer än bara
slutar tidigt.
Låt mig se om jag kan ta upp det här.
>> Så jag vet inte hur många av er killar har laddat ner den och vad inte ännu,
men vi har användarnamn här, och vi har några lösenord.
Och tyvärr, höger nu databasen är tomt,
så vi faktiskt behöver att skapa en databas.
Tja, det är konstigt.
Inte förvänta sig det.
Tekniska fel.
Tekniska svårigheter.
Vi har lite pset7.
Cool.
>> Så, en sak du kan göra är att, med en query-- Jag ska skapa en tabell.
Så detta kommer att bli users-- vad du kan göra här är, om vi har some--
Verkligen nu?
OK.
Självklart jag inte gör så varmt.
Oh.
Jag vet varför.
Eftersom jag aldrig skapat mina faktiska tabeller.
Så när du börjar med en databas, du uppenbarligen
måste bestämma vad är det saker jag måste ha in här?
>> Så om vi bara gå ut vår datatabell här,
Vi hade några ID, som kan bara stanna en int.
Och om vi ser här, det finns en cool sak that-- So index.
Om du gör primära, kommer det att göra det sak som ditt bord arrangeras av,
och det kommer också att göra det unikt.
Så i detta fall kommer vi att göra det primära, och jag kommer att göra detta namn,
då ska vi bara göra det en varchar av som 26 bokstäver, eftersom varför inte?
>> Och sedan kan du gå för att spara och sedan om du ser, vi har några användare här.
Så om vi ville göra en infoga, vi kunde göra det
på detta sätt, eller om du ville praxis med din queries-- Oh boy.
Jag har inte använt detta i evighet.
Jag tar tillbaka.
>> Du kan redigera det här på egen hand, antingen bara genom att manuellt föra in uppgifter
med något liknande, du kan ändra någon av dessa
om du ville make-- Om du vill plötsligt bli av namnet, kan du släppa,
du kan göra alla dessa saker.
Om du behöver någonsin ändra ditt bord manuellt,
Jag föreslår att göra det på phpMyAdmin kontra försöker
att räkna ut SQL frågor i allmänhet.
När du startar din pset, du kommer att behöva arbeta i här,
så vänja mig vid det.
Och sedan när du verkligen vill att infoga saker i din table--
Jag undrar verkligen om det är, eftersom there's-- Här är det.
Det är vad jag ville ha.
Så om du går till SQL, du kan faktiskt se, som vi ser här,
Vi har SQL-frågor.
>> Så om vi ville välja något eller om vi ville sätta in något,
vi kan göra insatsen i användarna, eller hur?
Jag tror att du behöver det omvända snedstrecket.
En sak att veta är, om du någonsin använder detta,
du måste använda dessa tillbaka apostrofer, som är typiskt,
om du är på en Mac, precis ovanför fliken.
Så en bra sak att veta.
>> Du kan infoga i användarna, och vi har våra värderingar, eller hur?
Så vi har värderingar, och våra värderingar i detta fall skulle bara vara,
Vi har bara ett ID så vi kunde göra något om vi ville.
Det är konstigt.
OK.
Så det är precis som en kort liten sak med SQL,
men det kan vara mer användbart att faktiskt titta på några av filerna i här.
>> Så gå till Downloads.
Åh, inte Downloads.
Så, bara en snabb genomgång av vad som finns i var och en av dessa mappar.
Den innehåller, vi har bara saker att konfigurera din webbläsare,
vi har dessa konstanter, och vi har dessa funktioner.
Om du är intresserad av någon av dem, Jag rekommenderar att titta på funktioner.
En av dem som är super användbar, egentligen är det en här, dumpa.
>> Så om du använder detta, det kommer faktiskt bara
skriva ut oavsett variabel att du gillar det.
Så om du har problem med att räkna ut vad denna samling ser ut,
eller vad dessa data faktiskt, hur det är formaterad,
detta är en stor sak att använda.
Speciellt när du har ett användare med multipla lager,
detta kommer att bli något bra att använda.
Eftersom det kan vara formatted--
>> Jag vet åtminstone för mig när jag gjorde detta pset var det formateras på ett sätt
att jag inte riktigt trodde.
Så jag försökte att iterera över den och försöka manipulera den,
men jag visste inte riktigt förstå vad jag gjorde.
Så om du bara dumpa det, kommer det skriva ut den till webbläsaren,
och du kan se exakt hur det formateras.
Det kommer oftast skriva ut den som en array med sina nycklar och dess värden.
Så det kan hjälpa det.
Det kan också bidra till att göra Se till att du är faktiskt
ta tag i uppgifter som du trodde du var.
Så om du var som, mitt bord definitivt säger att det finns en användare med detta ID,
men när du går att dumpa variabel, det är inte där,
du uppenbarligen vet att det är där ett fel kommer att bli.
Detta är ett av de bästa verktygen för felsökning, enligt min mening.
Och så finns det en par andra saker här,
men för det mesta, det är jag vill uppmärksamma er på,
eftersom det är till stor hjälp.
>> Offentligt, vad vi har här är, Detta är alla våra CSS grejer.
Så CSS, typsnitt, våra bilder, allt.
Detta är alla saker som du behöver inte ändra.
Kan ni tänka på om detta har saker som CSS i typsnitt,
skulle detta vara en modell, eller en vy eller en controller?
PUBLIK: [OHÖRBAR]
ALLISON Buchholtz-AU: Det skulle vara mer av en vy, eller hur?
Detta hanterar alla saker, hur det ser ut.
Så om vi öppnar det här ser vi att allt som händer här
är att vi gör något.
OK?
Så detta skulle verkligen kvalificera sig som en vy för detta.
Så det här är bara ta lite, Det ringer någon portfolio.php
som vi har, och det är förbi i titeln och portfölj.
Och det är bara att göra det.
Faktiskt, jag tar tillbaka.
Detta är en styrenhet, eftersom render, kom ihåg, gör utsikten.
Så portfolio.php i detta fall skulle vara vyn.
Ledsen, grabbar.
Portfolio.php kommer att bli vyn, och det skulle bara
vara din controller för det.
Och om vi tar en titt på detta sista här, mallar,
mallar är alla dina åsikter här.
Så om vi ser naturligtvis Vi ser en hel del HTML här.
>> Så den här är bara visa dig vad inloggningssidan ska se ut.
Du märker att vi har en del bilda grupper, har på skicka.
Här är hur du bestämma vad visas där.
Du har någon knapp type = "submit", och då har du vad du vill ha det
som ska visas i knappen.
Så det är hur man skulle göra det visas som vad du vill.
>> Och vi ser här har vi några användarnamn, några lösenord,
och när vi faktiskt slog in, det kommer att bli en del inlägg,
och det kommer att lägga till vad?
Vad är ansvarig för denna uppfattning?
När vi träffar Skicka, vad som kommer att kallas?
Vet vi?
Det är just här, så login.php.
Något ni är kommer att genomföra.
>> Så du kan alltid säga vad som kommer att bli
ropade efter du träffar Skicka genom denna första raden här.
Vad form action är.
När denna blankett lämnas in, vilka åtgärder tar vi?
Vi kallar login.php, och vi kalla det med denna metod
av inlägget, som har den dold information.
OK?
Så det här är din uppfattning, och då är det uppenbart om vi gick till login.php-- Har vi det
ännu?
Yeah.
>> Så som vi ser här, det här har mycket mer logiskt.
Det är alla våra PHP här.
Vi försöker se om det var $ _GET, om det var $ _POST, validera saker,
frågande, allt det här.
Så de är bara tre olika saker här.
du behöver inte ändra saker.
Du kommer att skapa saker i mall, eventuellt,
men så långt som HTML eller styling av något av detta går,
Du kan lämna det som vanligt eller så intrikat som du vill.
>> Vissa människor får verkligen in i den och göra några ganska häftigt webbplatser.
Du behöver inte göra det.
Om du har tid, det är en riktigt cool grej.
Du kan röra runt med CSS och HTML och få en mycket bättre känsla för det,
men känner mig inte pressad att.
Det finns mycket för dig att göra på back end med om genomförande logga in,
och registrera, och alla dessa saker.
>> Så förhoppningsvis som hjälper lite.
gör ni har några frågor om något vi har gått över,
några andra källor?
Jag kommer definitivt att skicka alla mitt exempel PHP-kod till er killar,
och då gärna att ta bilder eller whatnot i detta.
Också det är online.
Du kan alltid bara titta igen.
Så om det är det, alla bra?
Ja.
>> PUBLIK: Jag vill bara att bekräfta, när vi är
gör välj i SQL, den stjärnan betyder allt, eller hur?
ALLISON Buchholtz-AU: Ja.
PUBLIK: Och sedan om du har inte stjärnan,
om du vill att det ska ta från en specifik rad, då du bara sätta namnet of--
ALLISON Buchholtz-AU: Namnet på den rad
och vad du vill du vill att värdet av.
>> PUBLIK: Och sedan datum.
ALLISON Buchholtz-AU: Vad du är ute efter, ja.
På samma sätt, om du DELETE * från några bord, kommer det att ta bort allt.
Så, * är bara en vild kort för allt.
>> PUBLIK: OK.
>> ALLISON Buchholtz-AU: Cool.
Grymt.
Tja, har en stor måndag, grabbar.
Vi ses nästa vecka.
Lycka till på din pset.