[Musikken afspilles] ALLISON Buchholtz-AU: Okay, alle, velkommen tilbage til afsnittet. Forhåbentlig du havde alle en stor Halloween weekend, eller Halloweekend, som jeg ynder at sige, alle udhvilede og nyttiggøres. Og heldigvis er det ikke sner mere. Det er faktisk solrig udenfor. Jeg var virkelig glad for. Ikke klar til at trække mine vinterstøvler. Forhåbentlig pset6 gik temmelig godt. Hvis du er træt af C, er jeg glad at sige, at du er færdig med C for nu. Vi har fuldt overflyttet i web-programmering, så du skal arbejde i HTML, PHP, måske en lille smule af JavaScript. Jeg ved ikke, hvad næste uges pset er, så jeg kan ikke garantere hvad din næste pset vil være, men denne uges pset er CS50 Finance, som er dybest set gennemførelse slags webside der giver dig mulighed for at købe og sælge lager, og holde styr på dem. Og det er ret cool, fordi alle af det dynamisk genererede. Du kan have forskellige brugere, der hver har deres egne oplysninger, og du kommer til at være gennemførelse af alt dette. Det tager et stykke tid. Jeg tror helt sikkert det er lettere end C psets, men det tager længere tid. Du er ved at lære et nyt sprog, PHP, som er meget lig C, men naturligvis vil kræve dig at kigge op syntaks og forstå hvordan man kan konvertere mellem sprogene. Men jeg tror ikke, der er noget super begrebsmæssigt hårdt om dette pset. Det er bare at lære nyt sprog og få gennem alle disse små stykker. Hvis du fyre har læst igennem spec, det er temmelig lang. Jeg tror, ​​denne ene er ligesom 21 sider, hvis jeg husker korrekt. Det er en lang spec. Så hvis du ikke har læst it-- 22. 32. Wow. Så jeg var slukket med 50% der. Så 32 sider. Så det er lang. Der er masser af stykker, men ingen af stykkerne skulle være så slemt. Det er bare en masse. Så absolut komme i gang tidligt hvis det er muligt, som sædvanlig, men jeg tror, ​​det bør føle sig lidt pænere end især psets som restituere sig og ændre størrelse, der er lige meget svært at ombryde dit hoved omkring. Så med dette, vi kommer til at dykke i. Jeg har ikke din dagsorden glide i dag, men vi er kommer til at være tale om PHP. Jeg vil give dig sådan en lynkursus på nogle ting at du måske ønsker at vide om PHP. Forskellige syntaks ting, ting at se ud for. Vi kommer til at tale lidt om SQL. Lige meget enkle ting der, og så også MVC er Model View Controller, som er, hvordan din pset er sat op, således at forstå, hvordan det værker vil være super nyttig. Ok. Så PHP. Du fyre burde have gjort noget meget, meget simpelt med PHP, som er denne bund ting her, hvor du indsendte en form for toppen her, der havde nogle navn, du input, og det vil sige ligesom goddag, Ben, eller hej, Allison, og det ville dukke op. Så dette er faktisk, hvad det bør har lignede fra din pset, I tilfælde af du fyre ønskede at vide eller ikke helt regne det ud. Men vi har disse spørgsmålstegn her som angiver, at dette er PHP. De pak det, og derefter htmlspecialcharge husk, er bare, sørg for, at du er sikker fra enhver crazy injektion angreb eller hvis nogen forsøger at sætte skøre ondsindede karakterer ind i dit navn felt, ikke det gør gerne op din server eller whatnot. Og derefter, hvis vi bemærker, denne HTML form, havde en fremgangsmåde til $ _GET, hvilket hvis vi husker vores superglobale variabler fra PHP, $ _GET, $ _POST, vi vil komme ind dem i en lille smule. Men vi ved, at vi har nogle navn her, der svarer til navnet at vi indgivet. Så dette er bare lidt ligesom meget simple PHP HTML samarbejde at du fyre havde fra pset seks. Men det betyder ikke rigtig svare på, hvad er PHP. Selvfølgelig er det et sprog, men vi har ikke rigtig talte om det i dette afsnit, så der er en lille smule mere om hvad PHP egentlig er. Så PHP er bare PHP hypertekst præprocessor. Det er faktisk betragtes et programmeringssprog fordi det har logik, hvorimod hvis vi husker at tale om HTML, vi kaldte det et kodesprog versus et programmeringssprog, fordi HTML er strengt modificere hvordan tingene ser på siden. Det er bare at modificere om noget er fed, eller om det er en form, element, eller noget lignende. Det har ikke nogen logik. Det ikke har løkker eller betingelser. Du kan ikke fejl tjekke tingene. Du ville enten vise ting på en bestemt måde eller bede om ting fra brugeren. Det er det. Så med PHP, faktisk det gør det muligt for os at gøre alle disse mere logiske ting, ligesom validere input eller manipulere det på nogen måde. Vi kan kombinere det med HTML, som vi lige så i din sidste pset og lige nu, og det giver os mulighed for at skabe disse dynamiske websider. Så hvis du fyre ever-- Jeg ved ikke, om du var ligesom mig, men i midten skole de havde os tage denne IT klasse, hvor vi skabt bare HTML websider, og de var statisk og klikke rundt til andre ting, men de aldrig ændret. Med dynamiske dem, hvad vi kan gøre, er, ligesom med CS50 Finance, du kommer til at have forskellige brugere. Afhængig af disse brugere ' præferencer, og hvad de køber eller hvad de sælger for deres lagre, du kommer til at vise forskellige ting. Så hvis der er nogle identifikationssærpræg til din brugerkonto ved hjælp af denne webside, kan vi dynamisk beslutte, hvad der skal vises for dem. Det er ikke det samme for hver enkelt person, hvilket, hvis vi blot havde HTML, siden ville være den samme for hver enkelt person, der besøgte. PHP giver os mulighed for at personliggøre sider. Og så kan vi enten sætte dem i den samme fil, der, som i tilfældet før her, så vi, at vi har HTML alle her og så har vi denne lille smule af PHP. Vi kan gøre sådan, eller med CS50 Finance, hvis du fyre har kigget på files-- og vi skal have tid at gå gennem et par af dem sammen i slutningen af ​​section-- vi kan se, hvordan du kan faktisk holde dem adskilt, som faktisk er en bedre ting at gøre. So. Lynkursus. Alle hurtige enkle ting du måske brug for at vide for PHP. Erklæring af variabler. Det blå er lidt irriterende, men forhåbentlig du fyre kan se det. Hvis ikke, vil jeg skrive det på kridt bord. De erklærer variabler. Én ting at vide er, at i modsætning C, PHP er løst eller dynamisk indtastet, hvilket betyder at du ikke behøver at fortælle en variabel, hvilken type det er. Du kan simpelthen sige nogle variable er lig med, hvad du ønsker det, og det vil afgøre, hvilken type denne variabel på køre tid for dig. Som du kan se, kan det skabe nogle meget interessante ting. Men for de fleste formål, du behøver ikke at angive den type. Du kan, og du kan skrive kaste ting som du normalt ville ikke se, hvis du ønsker at tvinge det til at være en bestemt type, men du behøver ikke at. Det kommer ikke til at råbe på dig hvis du bare erklære en variabel og ikke angiver en type for det. Så i tilfælde af at du ikke læse denne-- Jeg ved, det er ikke den bedste. Jeg troede, det ville dukke op better-- den måde du formatere enhver variabel er bare med et dollartegn, hvad du ønsker det at blive kaldt, og derefter hvad du tildele den. Så i dette tilfælde, dette er nogle $ var = 3. Så hvis vi nogensinde bruge $ var et eller andet sted, vil det bare være det samme som at sætte 3 der. OK? Så enhver variabel, bare dollar tegn, uanset du vil ringe til din variabel, og hvad du vil have det til lige. Lidt køligere. Mindre at skrive til initialisering en variabel, right? Giver det mening for alle? Bare hurtig syntaks forskel mellem C og PHP. Arrays er meget køligere i PHP. Vi kan give dem nøgler. Så den måde at tænke på det er, at hvis vi nogensinde ønskede at få adgang til et element i et array, vi har brug for at kende indeks af det, ikke? Så vi ved, at med C, vi kunne få adgang til det første element ved at gøre matrix beslag nul, eller hvis vi ønsker det første element, matrix beslag én. Og hvis vi ønskede noget derinde, kan vi lige nødt til at gentage gennem, medmindre vi faktisk vidste indekset. En ting, der er virkelig cool med PHP arrays er, at de er hvad vi kalder associativ. Så vi kan knytte nogle nøglen til en vis værdi, og vi er faktisk i gang at-- Jeg vil vise dig hvordan vi kan bruge dette i en anden. Men dybest set, hvis du nogensinde ønsker at initialisere et array som, du har nogle $ array. Så på samme måde, det er bare nogle variable, som vi er ved at oprette. Dette kunne kaldes hvad du ville. Dette kunne være $ eksempel. Bare en anden variabel. Hvad gør det et array er beslag syntaks, som vi har her. Ligesom normal C. Og vi har nogle nøglen til en vis værdi. Så nøgle1 går til Værdi1, TAST2 to går til value2. Disse par er adskilt med en komma, ligesom normale arrays. Dog. Big One. Nøgler er valgfri. Du behøver ikke at bruge dem. Og hvis du ikke gør det, så er det bare normalt. Spørgsmål? Eller, oh. PUBLIKUM: Nå, om retten. Hvor er hukommelse kommer fra? Kan det også være det samme som [Uhørligt] og fra stakken? Er det også ved hjælp af PHP? Ligesom når vi forbinder dem? ALLISON Buchholtz-AU: Med PHP, har vi ikke en tendens at bekymre sig om, hvor vores hukommelse kommer fra. Vi bruger ikke en masse tid på at tale om det, så det er ikke rigtig noget du behøver at bekymre sig om. Så nøgler er valgfri. På samme måde, hvis du ikke gør ønsker at gøre dette associerede, du bare vil have en normal matrix, hvor matrix nul er det første element og array er den anden element, kan du gøre det nøjagtigt som du ville i C. Du har nogle variabel, der kommer til at være din array, og det er lig med disse beslag her. Ja. PUBLIKUM: Har det den samme punkt til notation. Ligesom, jeg kan gøre, ligesom en række ++, og som peger på den anden. ALLISON Buchholtz-AU: Du kan do-- Nå, kan du have nogle iterator, i, at du kan gøre i ++ og gøre en array af i på samme måde. Men det er det. Så, som i dette tilfælde, array af 1 vil være lig 20. Samme slags indeksering notation. Dette er dybest set bare et implicit ting her, hvor der står nul, nul til 10, til 1 til 20, 2 til 30. Det er bare implicitte nøgler til det. Hvilke ændringer med PHP er at du nu har magten at overflytte disse nøgler til gøre, hvad du gerne vil. Så én ting er her. Så jeg har blot nogle eksempler her, at jeg skrev op til jer fordi jeg har lyst til eksempler altid hjælpe mere end blot det abstrakte. Så i dette tilfælde her, vi har nogle associative array det er mit fornavn, mit efternavn, og jeg am ekko, som er lige til alle formål her kommer til at printe ud til outputtet her. Og det siger, OK. Udskriv den værdi, svarer til opstilling på centrale Allison. Og jeg kan også sende dig guys alt denne kode efter klasse. Så, når vi køre dette, hvad gør du tror der vil ske? Hvad kommer til at printe ud? PUBLIKUM: Dit efternavn. ALLISON Buchholtz-AU: Mit efternavn. Det gør det. Lige her. Udskriv. Så hvis vi skulle ændre dette, og vi var at tilføje en anden til vores list-- Så lad os sige, vi har Emma her, og vi knytte din sidste name-- Lad os se om jeg staver denne ret. PUBLIKUM: Ja. ALLISON Buchholtz-AU: Ja. PUBLIKUM: Godt arbejde. ALLISON Buchholtz-AU: Lovely. Så nu, hvis vi har denne her og Vi ønskede at finde dit efternavn, du har det der. Så du kan bare tænke på det som erstatter denne tast her. Du er bare erstatte indekset. Så det giver dig mulighed for at bare søge gennem en række meget lettere. Du behøver ikke at kende indekset. Så længe denne nøgle, som du leder efter for eksisterer et eller andet sted i sættet, PHP vil finde det, og det vil vende tilbage værdien forbundet med det. Så det giver dig en masse mere magt med dine arrays. Ja. PUBLIKUM: Hvis du har to taster samme, vil det give dig en fejl? ALLISON Buchholtz-AU: Det bør give dig en fejl, ja. Gør det lidt mere mening for jer? Og på samme måde, har vi en vifte her, der ikke har nogen taster. Også dette er en syntaks som du måske ønsker at være opmærksom på, fordi du nødt til at bruge dette i din pset. Når du laver en ekko, har du disse citater, og når du refererer til en del af et array, du er nødt til at have disse krøllede parenteser omkring dem. Det er lidt irriterende, men du bare nødt til at gøre det. Så bare noget at holde i tankerne. Hvis du kører ind i fejl, Jeg ved, at dette findes i min opstilling men det er at kaste fejl på mig, prøv at sætte seler omkring det og det burde virke. Så i dette tilfælde her, er dette en normal C-array, som vi er vant til. Har tre, fem og seks, og vi bare ønsker at udskrive det første element, så det bør udskrive tre. Og jeg kørte alle disse, så forhåbentlig intet ændret. Vi ser nederst her, det bare udskriver tre. Cool. Det mening for alle? Associative arrays. Meget køligere end normale arrays. Dette er why-- Vidste David vise dig PHP gennemførelse af pset6 under forelæsning på alle? OK. Så vil jeg vise dig. Jeg kender ikke det fra t-- PUBLIKUM: Han gjorde i sidste uge. ALLISON Buchholtz-AU: Var det i sidste uge? PUBLIKUM: Ja. ALLISON Buchholtz-AU: Ja. Så speller kan gøres på lignende seks linjer med PHP, og en del af den magt, der er denne associative array hvor du kan bare lægge hvert ord i, og du har det lig med sand eller falsk. Og så kan du sige, oh. Retur ordbog på nogle ord, og hvis det er der, vil det returnere sandt. Ellers vil det ikke finde det, og det vil vende tilbage falsk. Så sådan en cool lille ting. Ok. Så dem er associative arrays. De er pretty cool. Jeg kan lide dem virkelig. Og naturligvis denne-- Ah. OK. Nu er det virker. Måske. OK. En anden ting. Så med lighed, blot en cool ting at huske på. Med PHP, fordi det er dynamisk indtastet typen kan ændre sig afhængigt af, hvornår du kører det, hvordan du kører det. Jeg har faktisk nogle cool eksempler, jeg vil vise jer. Men == bare tjekker for ligestilling efter typen jonglering. Så hvis du har noget, der er lignende karakter 1 og nummer 1, PHP vil fortælle dig, at de er ens, fordi det kan jonglere de typer af den to af dem, indtil det er lige, som måske for din sag er fint. Hvis du har brug for at se, om de er samme slags værdi og samme type, du ønsker denne ===. Og jeg tror ikke, du har nogen tilfælde, hvor du skal bruge det i din pset, men for en masse dig, der vil gå på at gøre websider for din endelige projekter og aktiviteter, er det en god ting at vide, at == og === er forskellige, og det er en god sondring at forstå. OK. So. Foreach løkker. De er en måde at gentage gennem et array. Så, bare gerne arrays blev så meget køligere i PHP, Deres måde at gentage gennem et array, tror jeg, også bliver meget køligere og meget mere kraftfuld. Så i stedet for at skulle oprette nogle for jeg er lig med 0, og uanset hvad, og derefter opdatere det Jeg, som du går igennem, vi har denne awesome foreach løkke. Så her er den standard generelt strukturen af ​​disse to. Så du enten have foreach nogle matrix som den værdi, du ønsker at gentage som. Så dette er navnet på arrayet variabel, du vil referere til, og dette er, hvad du vil at kalde det i løkken. OK? Så det svarer til hvert element i arrayet, og du bruger denne værdi inden for denne løkke. Jeg har et eksempel. Jeg kender eksempler er så meget bedre. Og så dette er, hvis der er ingen nøgler, så dette er ligesom hvis vi bare have en, hvor tasterne er de normale indeks for dit array. Eller det er også tilfældet, hvis du ikke har brug for nøglerne. Hvis du er ligeglad tasterne og du bare ønsker at gentage gennem de værdier for hver af dem i den rækkefølge, det er fint. Du kan bruge struktur. Ellers, hvis der er nøgler, vores $ Value bare skifter til $ key værdi. Så det bare skifter til en nøgle værdi par. Og så kan vi henvise til $ key og $ værdi i vores løkke. OK? So. Eksempel. Gør det pænere. OK. Så vi har denne ene her, hvilket vi har nogle are-- Du kan også skabe et array som denne ved at have nogle variable lig til array med parenteser, eller du kan bare gøre beslag. Du bør gøre beslaget, men dette er en anden måde at gøre det. Så her har vi nogle vifte af tre elementer af et, to og tre, og vi har vores foreach. Bemærke dette svarer til array, vi iteration forbi, og dette er, hvad vi kalder hver ting i vores array. Og alt dette gør, er det er kommer til at udskrive hver værdi. Så hvis vi kører det, vi bemærke, at vi har værdien én, to værdi, værdien tre. Og på samme måde som typisk arrays skal være af en type, arrays behøver ikke at alle være af samme type her. Så nu har vi nogle int. Vi har to strenge. Så dine arrays kan få meget mere kraftfuld og måske lidt bit Messier, afhængigt på den måde, du ønsker at se på det. Så vi kan ændre dette til, hvad vi ønsker. Vi bruger værdi. Det er bare standard ting, vi bruger. Men, bare vigtigt at vide, at vi kan kalder dette som tæller, hvis vi ønskede. Og så længe de lever op, selvfølgelig alle er glade. Hvis du nogensinde ønsker at køre en PHP køre noget lignende denne kommando line du kender denne her, du bare gøre PHP, og derefter uanset fil, du vil køre. Så hvis du ønsker at rode rundt med PHP, og mere logik og du behøver ikke virkelig har brug for at se ud i en webbrowser, du kan bare køre det i kommandolinjen gerne, at og ekko vil udskrive ud, hvad du kan lide. OK. Den anden måde, som vi har, er ligesom dette. Så dette er en sag, hvor måske du ønsker at bruge både nøglen og værdi, Jeg ved, at disse ligesom super konstruerede eksempler men jeg håber, de gør det lidt tydeligere. Så her har vi nogle matrix igen, men denne gang, i stedet for bare at have du ved, der er ingen nøgle. Vi har nøgler til hver af disse. Så en er gonna være en, vil b svare til to, og c svarer til tre. Og i dette tilfælde, hvis vi skriver det på denne måde, Vi har adgang til både nøgle og værdi for hver af disse. Så når vi køre dette, vi får hver af disse. Så det udskriver vores nøgler og tilsvarende værdier. En anden cool ting er, at, og jeg kender sagde som denne ikke havde nøgler, men det altid implicit har en afgørende, fordi hvis du ikke uddelegere en nøgle, selvfølgelig, din nøgler er bare dine indekser eller indekser så vi kunne altid også gøre denne ene. Ligesom dette. Jeg vil udskrive. Så i dette tilfælde, hvis du bemærker, vi har vores implicitte nøgler af nul, en og to her. Og på samme måde med dette, du kan altid bare sige r som værdi, og du bare har adgang til værdien. Du behøver ikke bekymre sig om din nøgler, selv hvis din har nøgler, hvis du er ligeglad dem, behøver du ikke nødvendigvis nødt til at sætte dem i din foreach loop. Er der giver mening for alle? PUBLIKUM: Kan du bare kalder nøgler, også? ALLISON Buchholtz-AU: Ja du kunne helt gøre det, også. Faktisk, vente. Hold på. ville it-- Nej. Hvis du vil have nøglen, så du behøver at gøre nøglen til værdi. PUBLIKUM: Tilføj værdi. ALLISON Buchholtz-AU: Ja. Og du bare aldrig bruge værdien er alt. PUBLIKUM: OK. ALLISON Buchholtz-AU: Hvis du bare sætte én ting derinde, det kommer til at antage, at du er taler om værdi, ikke nøglen. Store spørgsmål. Ok. Cool. Faktisk, hold fast. Lad mig se, hvad jeg har. Så før vi kommer i stilling og få, jeg vil bare gerne vise jer en lille smule om, hvordan det er dynamisk maskinskrevet, som er form for cool. Jeg har alle disse. Jeg har ligesom fire eksempler op her, og jeg vil sende dig alt denne kode efter klasse. Så her har vi nogle variabel a. Det er bare 1 plus 1, right? Og vi kommer til at printe ud, hvad det er lig, og så har vi nogle type. Og nogen der har nogen gæt om, hvilken type det kommer til at være? PUBLIKUM: En int. ALLISON Buchholtz-AU: Ja, det er en int. Så det bare føjer dem sammen. Det er en int. Alle gode. Så denne næste, vi har hvad der ligner strenge. Når vi kører dette, det tænker, oh. Du faktisk forsøger bare tilføje ting. Du skal bare fik forvirret. Så jeg vil bare ordne det for dig. Du betød int. Jeg ved, du mente int. Så dette er en af ​​de måder, du kan se, PHP har et sind sin egen. Selvom vi udtrykkeligt sagde, se, disse dem er strenge. Jeg mener strengen én. Men det siger, åh, men du forsøger at tilføje dem, så skal du mener det er et heltal. Bare tro mig på dette. Så det siger, det er et heltal, og det tilføjer dem som normal. Så lidt cool, hvis du vil at få doven med dine ting, eller du ønsker at tilføje noget. En stor ting er, at hvis du tænker tilbage på pset2, noget, der var bruger indtastet, højre, at vi tænker er en char eller en snor i første omgang. Nu har vi ikke til eksplicit sige, åh, gør dette til en int. PHP ville bare være ligesom, oh yeah. Jeg ved, du mente en int. Silly dig. Du har ikke betyde en streng. Så i dette tilfælde, nu at vi har denne, hvad tror du fyre tror det kommer til at gøre her? Vi har en streng og en int nu. PUBLIKUM: Det er stadig en int. ALLISON Buchholtz-AU: Det er stadig en int. Og grunden is-- jeg ville sætte flere eksempler, men denne ene er sjovt. Grunden til det gør det fordi det er ligesom du forsøger at tilføje ting. Så hvis du forsøger at tilføje ting, vil jeg antage, rimeligt, du har noget rimeligt, at du kan tilføje. Jeg vil blot gøre det en int, og vi bare at tilføje det, som sædvanlig. Og derefter på samme måde, jeg tror du fyre får den idé. Vi har også denne en her, som er bare forkuller, og det gør de samme ting. Det er ligesom, du fjollet bruger. du ved, du vil have en int. PUBLIKUM: Hvis vi lægger et brev, vil det gør det [uhørligt] værdi eller ej? ALLISON Buchholtz-AU: Åh, det er et godt spørgsmål. Lad os se. Nope, stadig er en int. Så det er lidt skør. Det er bare lidt til at vise dig PHP kan undertiden opfører sig i irrational-- Ikke totalt irrationelt, men det kan opføre sig på måder, som du ikke rigtig forvente. Så, når du er i tvivl, så tjek de typer af ting. Denne funktion getType kan være super nyttig. Typisk hvis du laver noget med plustegn eller enhver matematiske operatorer, det kommer til at påtage sig noget rimeligt er bare en int. Så du har char 1 eller en snor 1, eller den faktiske int 1, det kommer til at antage, at. Hvis du ønsker at typecast noget, du helt kan. Du kunne gøre noget lignende fordoble her, tror jeg. Og i så fald, går det til at sige, åh. Jeg vil gøre dette til en dobbelt, fordi du udtrykkeligt sagde, det er en dobbelt. Du kan altid eksplicit gøre PHP gøre noget, men. PUBLIKUM: Vent, hvorfor er A plus 1 er der? ALLISON Buchholtz-AU: Oh. Der. Det var bare et ekko. Det var min skyld. Så kan du eksplicit fortælle det til gøre noget ud af en bestemt type, men det meste af tiden, det kommer til at dynamisk beslutte, at på runtime. Så det kommer til at holde går gennem og det vil være ligesom, OK. Hvad gør mest sans for at dette kan være? Skulle det faktisk være en streng? Skal det være en int? Skal det være en float? Skal det være en dobbelt? Og det vil afgøre det for dig. Du kan tvinge den til at gøre hvad du vil, men-- PUBLIKUM: Betyder det at det langsommere? ALLISON Buchholtz-AU: Nå, Jeg mener, C er meget effektiv. Jeg tror, ​​det er helt sikkert langsommere, fordi det har til processen, som det kommer. C, jeg er næsten sikker på er hurtigere. Men selvfølgelig er der en masse fede ting i her at vi ikke behøver at bekymre sig om. Så hvis vi søger gennem et array, vi behøver ikke at faktisk skabe nogle søgning via array. Vi kan blot bede om nøglen og PHP vil tage sig af det. Cool. Awesome. Ligner slutningen af ​​mine eksempler. Du fyre er aldrig at glemme, at nu. Du kommer til at være ligesom, åh, PHP er bare gerne, at mor, der er ligesom nej, nej, nej. Jeg ved hvad du mener. Jeg ved, hvad du ønsker. OK. Så dette er, forhåbentlig, nyttige for din pset, i det mindste i begyndelsen, fordi du er alt om håndtering med former og ting fra brugeren. Så der er to måder, som vi passere rundt info med PHP og HTML når vi passerer mellem disse to ting. Så vi har $ _GET, som føres gennem URL'en, og vi har $ _POST, som er vedtaget i meddelelsen krop, og så vi anser det skjult. Men én ting at forstå er, at ingen af ​​disse anses for sikker. Hvis du har nogen, der er opsnappe beskeder går frem og tilbage mellem dig og server, kan de stadig få disse data. De bare nødt til at se lidt hårdere. Det er ikke rigtig at-- det er bare skjult fra URL. Det er stadig i brødteksten, selv, så hvis de har adgang til det, det er egentlig bare like-- Det er ligesom forskellen mellem noget skrives på ydersiden af en konvolut og noget væsen skrevet på et stykke papir inde. Det er ikke så svært at åbne kuverten og få det stykke papir indeni. Indrømmet, det ville være meget lettere lige læst udenfor. Men det er, hvordan du kan slags opfatte disse. Ingen af ​​disse er virkelig anset for sikker. OK? Indrømmet, ikke rigtig noget for din pset fordi du ikke beskæftiger sig med forretningshemmeligheder, men det er typisk et ting, som vi virkelig gerne understrege, fordi folk tænke, åh, ja, det er skjult. Det skal være super sikker. Nej. Det er ikke sikkert. Det er bare lidt mindre usikker, tror jeg. Eller usikker. Så vi har faktisk et eksempel. Som du ved, jeg elsker undervise mere med eksempler. Jeg føler mig som dette hjælper bedre. Så har vi nogle enkle formular her som faktisk, hvis du fyre nogensinde forvirret omkring PHP, dette er virkelig små, men php.net er faktisk virkelig god dokumentation. Jeg kan virkelig godt lide det. Jeg bruger det til at forberede sig på dette sektion, så jeg kan dyrlægen det for dig. Dette er et eksempel fra dem hvordan $ _POST og $ _GET arbejde. Den eneste forskel mellem to af disse, foruden hvor oplysningerne er vises, uanset om det er i URL'en eller i legemet, er også hvad metoden. Så i din formular til HTML-- Dette er en meget simpel HTML-formular. Kan nogen fortælle mig, hvad den gør? PUBLIKUM: Spørg om dit navn og alder. ALLISON Buchholtz-AU: Præcis. Så vi har en eller anden form handlinger. Der lader os vide, det er nogle handling form. Og hvad der kommer til at ske er, når vi rammer Indsend, det kommer til at kalde action.php, hvilket er, hvad det er, og det kommer til at kalde det en fremgangsmåde til $ _POST. Så i dette tilfælde, din information er skjult. og det er bare dit navn, nogle input type kaldet navn, nogle alder, input type = "text", som vi også kalder alder. Og derefter, hvis vi ramte Indsend, Indsend vil kalde action.php. Så når vi faktisk ramt Indsend, vi ved, at det har sendt sig selv, og vi vil faktisk se dette i din problem sæt, som forhåbentlig vi får komme til at gå igennem en lille smule. Og alt det gør her er POST er nogle superglobal variabel som vi talte om i løbet af foredraget. Og hvordan du kan tænke omkring $ _POST er at det er bare et associativt array. OK? Så dette er nogle nøgle, dette er nogle vigtige, og hvad brugerinput bliver en værdi for hver af dem. OK? Så hvis vi skulle skrive, hvad dette array faktisk lignede lige efter vi indsendt formularen, vi ville have, dette er vores $ _POST, og nogle matrix, hvor vi har nogle navn. Lad os bare sige, at vi vil gøre mit navn, og så har vi nogle alder, 21. Woo. Så dette er alle $ _POST er. $ _POST er blot et associativt array, OK? Det bare siger, OK. Hvad er de ting, vi har bedt om fra brugeren? Hvad er de variabler at vi passerer rundt at vi har bedt om i denne form? Og hvad er det værdier forbundet med det? Så i dette tilfælde, hvis jeg sendte det med et navn på Ally og en alder af 21, dette er, hvad $ _POST ser ud. OK? Og dette er, hvad denne PHP fil har adgang til. Okay? Så i dette tilfælde, det er ligesom få enhver anden ting fra vores array. I stedet for et indeks i vores array, har vi nogle af de vigtigste. Så dette vil give mig værdien ved nøglen navn. Så dette bliver Ally, og Denne ret her kommer til at give mig værdi på $ _POST hvor Nøglen er alder, hvilket vil være 21. Du kommer til at være gøre dette ganske lidt. Ja, fra hvilken del? PUBLIKUM: Da du var peger på den nederste del. ALLISON Buchholtz-AU: Denne nederste del? OK. Så du forstår dette er vores HTML dannes, og vi har nogle metode $ _POST, der betyder noget. Dette kunne også være $ _GET, men til dette formål, vi bare sige, det er $ _POST. Når vi indsende denne formular, dette er en del af en PHP-fil der hedder. Så denne PHP-fil vil nu udføre får de oplysninger fra vores HTML form. Så hvad det gør, er, når vi hit Indsend på vores HTML-formular, den går dig denne superglobal, som er lige et associativt array. Det er dette. Det er ligesom forbifarten, at til filen. Og hvad det siger, er, OK, her er $ _POST. Det er din associative array. Gøre med det hvad du vil. Og vi siger, OK. Giv mig værdien ved navn og give mig værdien i en alder. Så disse er blot nøgler, og dette er vores array. Giver det mening? PUBLIKUM: Mhmm. ALLISON Buchholtz-AU: Awesome. PUBLIKUM: Hvis du er nødt til at gentage Formularen tager det bare skrive over data? ALLISON Buchholtz-AU: Ja. Mhmm? PUBLIKUM: Hvorfor har du at præcisere, at det er en int? ALLISON Buchholtz-AU: I dette tilfælde brugeren blot tvinge den til at være en int. PUBLIKUM: OK. ALLISON Buchholtz-AU: Jeg kender ikke hvis du rent faktisk skulle det, men til deres formål, besluttede de at de ville have det til at være en int. De er bare Typecasting det. Måske er de bruger det som noget andet senere. Dette er blot et uddrag. Ja? PUBLIKUM: Hvad hvis de har skrevet 12, T-W-E-L-V-E, for alder? ALLISON Buchholtz-AU: Hvis de forsøgt at skrive det som en int? PUBLIKUM: Ja. ALLISON Buchholtz-AU: Jeg glemme, hvad det gør. Jeg tror, ​​det kunne forsøge at konvertere det første tegn på en int, eller tage den værdi og konvertere det, men jeg glemmer hvad det. Være en sjov ting at skrive et program og forsøge. Har et par linjer. OK, så dette er en af ​​de vigtigste ting, som du kommer til at gøre. Jeg har tænkt mig at forhåbentlig gå gennem et par af filer fra pset med jer. Det ser ud til vi kommer til at har tid, så vi kan gøre det. Men du kommer til at være gør en masse ting som dette, hvor du passerer ting fra en HTML-formular i denne PHP form, vil så udføre nogle sæt af instruktioner på de data, der blev leveret. Det er bogstaveligt talt kernen i din pset. Ja. PUBLIKUM: Den type = "submit", at gør en knap på HTML-formular. Er der måde at kalde at knap noget? Så ville du være som name = "send"? Eller er det knap bare kommer til at være tømme lige nu, fordi du kun gav det en type, ikke et navn. ALLISON Buchholtz-AU: Jeg synes det er bare at være tom lige nu. Vi kan helt klart se i pset, fordi vi vil helt sikkert se på registrere slags ting. Men ja, kan du helt specificere den tekst, du ønsker på din knap. OK, så SQL. Når du køber og sælger aktier, du har brug for at holde styr på dem. Så den måde, vi kommer til at gøre det er med SQL, som er blot en database. Tænk på det som en tabel, hvor du holder alle disse oplysninger om dine forskellige brugere. Og du fyre er faktisk kommer til at skabe en af ​​disse. Det er temmelig cool. Og der er kun fire vigtigste ting at du behøver at vide for denne pset, og de er opdatering, så du dybest set opdatere dataene. Der antager, at det er der allerede. Hvis det ikke er der, går det at ramme dig med en fejl, så måske du ønsker at kontrollere. Og du vil opdatere on-- jeg bør actually- jeg har tid, Jeg vil skrive et par af disse. Jeg vil faktisk give jer et par prøve, fuld SQL-kommandoer, fordi disse er blot de vigtigste dem, men du kan slutte sig til dem sammen. Så jeg vil gøre det, og jeg vil sende at ud til dig med disse bemærkninger. Så hvis du ønsker at opdatere noget, nødt til at fortælle det, hvad du opdaterer og hvor du opdaterer den. Så en typisk SQL-kommando ville være opdatering ID, hvor noget er lig med noget. Eller lignende opdatering adresse hvor ID lig med 3, og dette ville opdatere adressefeltet af din bruger, som har en ID på tre. OK? Så hvis du går til SQL og W3Schools, de har awesome eksempler. Faktisk kan jeg trække nogle op i en lille smule. Og derefter indsætte i, du er bare indsætte visse værdier der. Så hvis du prøver at skabe nogle nye indrejse, så du opretter en ny bruger, du kunne gøre indsatsen ind uanset hvad din database hedder, og du ville have alle disse værdier. Så har du vælge, Vælg værdier for at se. Så hvis du prøver at kontrollere, se, hvis en bruger eksisterer, eller du er forsøger at få specifik oplysninger om en bruger du skal bruge skal du vælge. Og derefter slette, tror jeg, er temmelig simpel dér. Du er bare slette noget fra bordet. Og i virkeligheden, så lad mig faktisk trække op nogle eksempler for jer. Åh se, det er min 61 side. Så hvis vi går til W3Schools, Forhåbentlig er det op igen. Ja, elsker det. Vi går til SQL. Så dette er noget her. Så dette er en meget simpel SELECT. Mand, jeg elsker denne funktion. Så kan du have SELECT nogle felt fra kunderne. I dette tilfælde kunder refererer til online database, du bruger, så uanset hvad dit bord kaldes, og stjerne betyder bare vælge alt. Giv mig alle. Så jeg bare ønsker at give jer et par eksempler på, hvor denne er. Så vi har SELECT, UPDATE. Så her er lidt af den generelle syntaks. Så Update, uanset din tabelnavn er, og derefter indstille er, hvor du faktisk går at være, hvad data, du er ved at ændre. Så dette kunne være-- Let mig statuere et eksempel her. Så dette vil være-- OK. Så jeg skabte en lille database for os. Vi kommer til at have noget ID, nogle år, og nogle navngivet. Så ID ene kommer til at være år '15, og vi bare vil gøre det mig. Hvem ønsker at være den anden person i vores bord? Nogen. Jeg skal bare vælge Emma fordi dit navn hurtige. Emma, ​​hvilket år er du? PUBLIKUM: Hvilket år? ALLISON Buchholtz-AU: Ja. PUBLIKUM: '16. ALLISON Buchholtz-AU: '16. Du bare kommer til at være min forsøgskanin for dag. OK, så vi har disse to personer. Faktisk, lad mig gøre det. Lad os sige, at jeg hørte hende forkert, og jeg faktisk sagde hun er et år yngre. Hun er '17. Hvad vi ønsker at gøre her, hvis vi ønskede at opdatere Emmas år at være korrekt ved hjælp af det, hvad vi havde gøre, er at vi ville sige UPDATE data herovre. Og det kan alle være på én linje, men da jeg komprimeret til rummet her, Jeg har tænkt mig at skrive her. Og vi ønsker at indstille. Så dette er tabellen, vi opdaterer. SET vil være hvilken søjle eller hvilke data vi rent faktisk ændrer sig. Hvad vi skiftende er år, så vi kommer til at sige SET år = 16, og derefter WHERE fortæller os, hvilken bruger eller hvad række er vi faktisk opdatere denne. Så hvor? Vi har to muligheder her. Hvad er de to? Disse er unikke, right? Så vores navne er unikke og vores ID er unik, så hvad er de to muligheder for hvor vi kunne gøre dette? Jeg vil give dig en. Vi kunne gøre WHERE ID = 2, eller vi kunne gøre, hvad hvis vi skal væk fra dette paradigme her. PUBLIKUM: [uhørligt]. ALLISON Buchholtz-AU: Præcis. Så kunne vi også gøre name = Emma. Og en af ​​disse ville arbejde. Og vi kørte dette, ville det være ligesom, OK. Vi vil ændre det. Du er faktisk 16, så nu er du til højre igen. OK, så det ville være super nyttige i din pset hvor måske nogen besluttede at købe 100 aktier Apple, og så de var ligesom, just kidding. Jeg ønsker kun 90 aksjer. Og så sælger de 10 af dem, så du nødt til at opdatere den mængde af lagrene at de har. Så opdaterer lagre, opdatere tabellen. OK. Så det er et eksempel der. Det er opdateringen syntaks. SLET. Oh. Indsæt i er vores anden. Så denne her er meget ens. Vi kunne bare sige, i denne tilfælde lad os tilføje nogen. Vi kan tilføje Ben dette tidspunkt. Vi INSERT INTO, og vi ønsker navnet på vores bord. I dette tilfælde er det data. Og så har vi bare ønsker, er du nødt til siger VÆRDIER, og hvad du vil gøre er, du faktisk nødt til at sørge at du har noget for hver række som du ønsker. Du skal bare sætte dem i orden. Så i dette tilfælde, ville vi sige 3. Du er 18, højre Ben? PUBLIKUM: 19. ALLISON Buchholtz-AU: 19? PUBLIKUM: 19. ALLISON Buchholtz-AU: Din års '19? Du opgraderer i '18, right? PUBLIKUM: Oh. ALLISON Buchholtz-AU: Graduation år. PUBLIKUM: OK. ALLISON Buchholtz-AU: Jeg var ligesom, er du allerede planer om at tage et år fri her? Så '18, har vi Ben. Så i dette tilfælde vil det gå igennem, det ville skabe en ny post her. Cool. Ikke alt for dårlig, right? En masse af dette kommer til at være syntaks for jer. Begreber skal komme, forhåbentlig forholdsvis let. Syntaksen er den eneste, det kan være lidt tricky. Og så er vores sidste er DELETE, og som du bemærker, Jeg kan varmt anbefale denne hjemmeside. Det er dejligt. Der er et væld af ting. Så på samme måde, som vi havde nogle UPDATE, DELETE er meget ens. Vi har i stedet Slet fra data. Så i dette tilfælde vores sidste jeg vil skrive ned her. Lad os sige, vi ønskede at slette mig. Jeg kan ikke skrive i dag. SLET uanset tabel vi er i, data. Og der er faktisk tre måder vi kunne vælge at slette mig. Kan du fyre fortælle mig, hvad de tre måder er, hvordan du kan slette mig? ID er lig med 1, hvor ID er lig med 1. Vi kunne gøre, hvor år er lig 15, eller hvis navn er lig med Allison. selvfølgelig, er der kun tre forskellige måder, fordi disse er alle unikke. Typisk i din tabel, og især i din pset, du kommer til at indstille en af disse kolonner at være unik. Det er sandsynligvis kommer til at være nogle unikke ID nummer, fordi hvis du have-- faktisk, det kan faktisk lade dig få to. Jeg kan ikke huske, om det vil lade du har to af de samme ting. PUBLIKUM: så ville det ændre deres adfærd. ALLISON Buchholtz-AU: Det ville. Det vil medføre en adfærd, der er uventet, at du virkelig ikke kan forudsige. Så du vil helt sikkert have en kolonne i din database, som vil være enestående, og det er typisk, kan du indstille det, så det er ligesom et unikt id, og det vil bare opdatere hver gang du indsætte i tabellen. Hver gang du opretter en ny række, vil det automatisk tilvækst og give det nogle unikke id. Så vink for din pset. OK. Så det er SQL. Så nu vil vi til at tale om den allersidste ting, som binder i faktisk temmelig godt med din pset, hvis det ville gå fremad. Så MVC, model view controller. Dette er egentlig bare en måde at holde tingene organiseret. På samme måde med C beder vi jer at skabe funktioner og adskilte ting ud, det er bare en måde at adskille kode, når du laver webudvikling. Så det gør tingene meget mere elegant og forenklet, og dette er faktisk den måde, at din pset er faktisk sat op, så uanset om du kan lide det eller ej, er du nødt til at lære det, selv hvis du ikke tror du lærer det. Og en ting er, det giver dig også mulighed for at gøre meget mere som en bruger samarbejde. Så da jeg tog CS50, jeg gjorde en hjemmeside for mit afsluttende projekt, og jeg var ligesom, jeg vil håndtere database stuff. Jeg vil gøre back-end stuff, og min værelseskammerat, der jeg tog med det var meget artsy. Hun gør scenografi, og hun ønskede at gøre det alle temmelig. Så jeg er ligesom, OK. Du kan tage sig af alle forenden stuff. Og de ting er, som vi vil se meget snart, denne model view controller lader dig helt adskilt fra de øvrige kode, så at jeg kunne arbejde på at gennemføre vores sider, og manipulere information i vores databaser, og hun kunne bare gøre tingene smuk, og vi var begge virkelig glad, fordi vi fik til at gøre hvad vi begge ønskede, og vi behøvede ikke at beskæftige sig med den anden. Så vi hang sammen ud. Vi kan godt lide at hænge ud. Jeg vidste bare ikke ønsker at beskæftige sig med alle CSS og HTML stuff. Jeg var ligesom, du gør det temmelig. Jeg vil beskæftige sig med databasen. Så vi har det virkelig køligt, stor lille tabel. Jeg elsker tabeller. Og dybest set, den model, du kan tænke over, er blot din database. Jeg var den model person for mit projekt. Det handler om opbevaring af information og organisere disse data. Så det er hvad vi kan lide at kalde tilbage ende. Så du fyre vil beskæftige sig med SQL-databasen og datafiler. Det er din model. Din mening som du måske tænke, slags giver mening, er, hvad din brugeren rent faktisk ser. Det er brugergrænsefladen. Det er at fronten vender komponent. Så det er hvad min værelseskammerat kom til at arbejde på hele tiden. Hun var super glad. Så det er alle af HTML, og der er meget lidt PHP. Hvis du bare taler om hvad der vises til brugeren, vi taler om hypertekst. Vi taler om, hvordan det ser ud. Vi taler ikke om logik, forhold, eller whatnot. Alt dette bliver håndteret af regulatoren, OK? Så det håndterer brugernes anmodninger og får information. Så én ting, du bør vide om din pset er, at dine synspunkter, noget, der er faktisk visning af information bør aldrig være at gøre opkald til din model. Alt dette håndteres i din controller. Din controller er den ene mægle mellem disse to. Den vil spørge den model om visse oplysninger. Det kan gentage over at information, finde ud af hvad du rent faktisk har brug for fra det, hvad man skal gøre med det, og så vil det gå på blot de oplysninger, du nødt til visningen for dig at udskrive det ud eller vise den til brugeren, OK? Fordi vi se det som hvad der vender mod brugeren, så det vil være meget nemmere for dem at finde ud af, åh, hvis du laver nogle opkald til din model og du beder for alle brugere der starter med bogstavet A, og du laver det efter din mening, alle, der kan se din webside potentielt kan få adgang til det. Du behøver ikke nødvendigvis ønsker det. Du ønsker ikke folk til at se mere i databasen, end hvad de skal se. Bare deres særlige præferencer. Så controlleren håndterer alt dette. Så alle dine .php filer, som vi vil se kan du overveje din controller filer. Og det er, hvor du er virkelig kommer til at være anmoder om ting fra din database, og iteration eller manipulere det som nødvendigt før overføre det til ses. Det er en virkelig cool pset, efter min mening. Jeg synes det er lidt mere ligesom instant tilfredsstillelse, fordi du implementerer en masse små bittesmå ting, og hver ting bør arbejde på egen hånd. Ikke kan lide, gøre alt og derefter se, om det virker. Ligesom med software hvor du er ligesom, jeg er virkelig håber dette er ret, fordi hvis det ikke er, der er en masse af placerer det kunne være forkert. Ok. Bare sørg for, at jeg sagde alt, hvad jeg havde brug for at sige om MVC. Ja. Cool. Så i CS50 Finance, har vi vores model, som jeg lige har sagt her. Det kommer til at være MySQL og phpMyAdmin. Jeg kan helt sikkert trække dem op, så jer får en chance for at se på det. Som jeg sagde før, er det din SQL Databasen fungerer som din model, og du kan sende det, vi kalder forespørgsler, der er bare den slags ting. Disse kaldes en forespørgsel. Dette er en forespørgsel, hvor du bare spørge din database for noget, eller du ændrer din database eller anden måde. Det er alt det er. Og du gør det med den funktioner, vi har givet dig her. Du kan også manipulere dem ved hånden via phpMyAdmin, som vi kan helt sikkert tage et kig på. Jeg vil lave en prøve database med jer. OK. Så controller. Så i dette tilfælde, hvis du varsel, alt dette er PHP. Bemærk, der er slags din vigtigste ting på din controller er, at det bør være overvejende PHP. Hvis du har HTML i din controller, ikke rigtig sikker på, hvad der foregår der. På samme måde, som jeg sagde, hvis du formår at [uhørligt] med HTML, Jeg er rigtig interesseret. Så hvad vi har her er du har nogle forespørgsel. Forespørgslen er en funktion, vi byggede til jer. Det er ligesom en wrapper til at foretage forespørgsler til din database lidt lettere. Hvis du ikke har det, syntaksen for faktisk taler til din SQL database ville være anderledes, så vi bare levere det for jer. Vi kan godt lide at gøre livet let. Så i dette tilfælde, kan du fyre fortælle mig, hvad denne linje gør? SELECT * fra nogle tabel. PUBLIKUM: Vælg alt fra denne tabel. ALLISON Buchholtz-AU: Præcis. Så det siger, giv mig alt fra denne tabel. Og det er at opbevare den i nogle variable resultat. Og det siger, hvis resultatet er ikke lig til falsk, så gør vi hver af dette. Så hvis der er noget her, hvis din bordets tom, eller det bare ikke eksisterer, det kommer til at vende tilbage falsk. Så i dette tilfælde, er vi bare at gøre sikker på, at noget var faktisk returneres til os. Og så her, vi har vores store foreach løkke at vi iteration over vores resultat, og vi kalder den ro, og vi siger gøre denne skabelon hvor dine data er dette resultat. OK? Så det er bare at behandle rækken af ​​resultatet. Ellers råber. Så dette er et eksempel af controlleren. Som du kan se, er dette kun sted-- Ja, undskyld? PUBLIKUM: Hvorfor er der et og-tegn før rækken? ALLISON Buchholtz-AU: En tegnet før rækken. Vi bare iteration. Det er også en adresse of-- PUBLIKUM: Så det er ligesom C henvisninger. ALLISON Buchholtz-AU: Det er Sørg for, at du faktisk ændre den oprindelige og ikke en kopi. Det er på samme måde med C, hvor vi passerer ved henvisning her, bare at sørge for. PUBLIKUM: Er det ikke == i stedet for ikke = i PHP? ALLISON Buchholtz-AU: Det er ikke ==. PUBLIKUM: Fordi lig i C er bare-- ALLISON Buchholtz-AU: Det er bare ikke =. Yeah, no. Det er ikke ==. Fordi == i PHP tjekker for lighed med toggling, indrømmet, men ekstra kvalitet. Så, det er ikke == i PHP. Det er en af ​​den lille syntaks forskelle. Ja. Så vi bare iteration gennem hver række, og gøre, hvis du fyre læse gennem din spec, er blot nogle andre funktioner, der er faktisk kommer til at behandle al HTML og vise det i dit webbrowser til dig. OK. Så vi kan lide at tænke på dine controllere som hvad håndterer forretningslogik. Som du kan se her, det er, hvor vi er tager vores data fra tabellen, vi behandler det på en måde, og så er vi passerer det off. Når vi gør gøre nogle skabelon, nogle skabelon er vores opfattelse, og vi passerer det kun de data, at det bør få. Ikke alle data. Netop de data, som vi ønsker det for at få. OK? Dybest set dataene efter forarbejdning. Så dette er af den opfattelse, er dette summen skabelon, vi har, og alt dette gør, er, kan du har en lille PHP i din visning. Det er ikke ligesom en ingen PHP i betragtning. Du skal bare have meget minimal PHP i betragtning, og du bør aldrig være forespørge i dit synspunkt. Du bør aldrig tale til din database i dit synspunkt. Det er den store forskel. Så hvad der sker her er, at vi har PHP, der er iteration gennem rækken. Så i dette tilfælde, da vi var iteration gennem hver række og gøre noget, var dette sandsynligvis som en todimensionel opstilling hvor vi har nogle træk, er i sig selv et array, fordi vi iteration gennem det igen. Og vi bare udskrive rækken navn, og derefter afslutte det. Du bør ikke brug for dette i foreach. Jeg har aldrig set det før faktisk. Jeg bare gøre foreach. OK, så det er visningen. Lad os se om vi kan gå igennem en lille smule af din pset. Vi har 15 minutter, så jeg er sikker på du fyre ville gerne, at mere end blot slutter tidligt. Lad mig se om jeg kan bringe dette op. Så jeg ved ikke, hvor mange af jer har hentet det og whatnot endnu, men vi har brugernavn her, og vi har nogle password. Og desværre, højre nu databasen er tom, så vi faktisk har brug for at oprette en database. Tja, det er underligt. Fandt du ikke forvente, at. Tekniske fejl. Tekniske problemer. Vi har nogle pset7. Cool. Så en ting du kan gøre er, med en query-- jeg vil oprette en tabel. Så dette vil være users-- hvad du kan gøre her er, hvis vi har some-- Virkelig nu? OK. Selvfølgelig gør jeg ikke så varmt. Oh. Jeg ved hvorfor. Fordi jeg aldrig har oprettet mine faktiske tabeller. Så når du først begynder med en database, du naturligvis nødt til at beslutte, hvad der er ting, jeg har brug for at have i her? Så hvis vi bare gå ud vores data tabel her, vi havde nogle id, som kan bare blive en int. Og hvis vi ser over her, der er en cool ting at-- Så indeks. Hvis du gør det primære, vil det gøre det ting, at din tabel er organiseret efter, og det vil også gøre det unikt. Så i dette tilfælde, vil vi gøre det primære, og jeg har tænkt mig at gøre dette navn, så vil vi bare gøre det til en varchar ligesom 26 bogstaver, fordi hvorfor ikke? Og så kan du gå til Gem, og derefter hvis du ser, har vi nogle brugere her. Så hvis vi ønskede at gøre en indsætte, vi kunne gøre det denne måde, eller hvis du ønskede praksis med din queries-- Oh boy. Jeg har ikke brugt det i for evigt. Jeg tager dette tilbage. Du kan redigere dette på egen hånd enten blot ved manuelt at indsætte information med noget lignende, du kan ændre nogen af ​​disse Hvis du ønskede at make-- Hvis du ønsker at pludselig slippe af navn, kan du tabe, du kan gøre alle disse ting. Hvis du skal nogensinde manuelt ændre dit bord, Jeg foreslår at gøre det på phpMyAdmin versus forsøger at finde ud af SQL forespørgsler generelt. Når du først starter din pset, du bliver nødt til at arbejde her, så vænne sig til,. Og så når du rent faktisk ønsker at indsætte ting i dit table-- Jeg virkelig spekulerer på, hvor det er, fordi there's-- Her er det. Det er, hvad jeg ønskede. Så hvis du går til SQL, kunne du faktisk se, som vi ser her, vi har SQL-forespørgsler. Så hvis vi ønskede at vælge noget eller hvis vi ønskede at indsætte noget, vi kan gøre indsatsen ind brugerne, right? Jeg tror, ​​du har brug for den omvendte skråstreg. Én ting at vide, er, hvis du nogensinde bruger denne, du nødt til at bruge disse tilbage apostrof, der typisk, hvis du er på en Mac, lige over fanen. Så en god ting at vide. Du kunne indsætte i brugere, og vi har vores værdier, right? Så vi har værdier og vores værdier i dette tilfælde ville bare være, vi kun har et ID, så vi kunne gøre, hvis vi ønskede. Det er underligt. OK. Så det er ligesom en kort lille ting med SQL, men det kunne være mere nyttigt at faktisk se på nogle af filerne i her. Så gå til Downloads. Åh, ikke Downloads. Så bare en hurtig gennemgang af hvad der er i hver af disse mapper. Det omfatter, at vi bare har ting at konfigurere din browser, vi har disse konstanter, og vi har disse funktioner. Hvis du er interesseret i nogen af ​​dem, Jeg anbefaler at se på funktioner. En af dem, der er super nyttigt, faktisk er dette en her, dump. Så hvis du bruger denne, det vil faktisk bare udskrive uanset variabel at du kan lide det. Så hvis du har problemer med at regne ud af, hvad dette array ser ud, eller hvad disse data faktisk, hvordan det er formateret, dette er en stor ting at bruge. Især når du har en brugeren med multiple lager, dette vil være noget fantastisk at bruge. Fordi det kan være formatted-- Jeg kender i hvert fald for mig, når jeg gjorde denne pset blev det formateret på en måde, at jeg ikke helt forvente. Så jeg forsøgte at gentage over det og forsøger at manipulere det, men jeg har ikke rigtig forstå, hvad jeg gjorde. Så hvis du bare dumpe det, vil det printe det ud til browseren, og du kan se præcis hvordan det er formateret. Det vil typisk printe det ud som en array med sine nøgler og sine værdier. Så det kan hjælpe der. Det kan også bidrage til at gøre sikker på, at du faktisk snuppe de data, du troede, du var. Så hvis du var ligesom, mit bord absolut siger, at der er en bruger med dette id, men når du går at dumpe variabel, det er ikke der, du naturligvis ved, det er hvor en fejl kommer til at være. Dette er en af ​​de bedste værktøjer for debugging, i min udtalelse. Og så er der en par andre ting her, men for det meste, det er jeg vil gerne henlede Deres opmærksomhed på, fordi det er meget nyttigt. Offentlig, hvad vi har her, er, dette er alle vores CSS stuff. Så CSS, skrifttyper, vores billeder, whatnot. Dette er alt ting, du behøver ikke at ændre. Kan du fyre tænke over, hvis dette har ting som CSS i skrifttyperne, ville dette være en model, eller en visning, eller en controller? PUBLIKUM: [uhørligt] ALLISON Buchholtz-AU: det ville være mere af en visning, right? Det håndterer alle ting, hvordan tingene ser ud. Så hvis vi åbner denne her ser vi at alt hvad der sker her er vi rendering noget. OK? Så dette vil meget kvalificere som en visning for dette. Så dette er bare at tage nogle, det ringer nogle portfolio.php som vi har, og det er forbi i titel og portefølje. Og det er bare at gøre det. Faktisk, jeg tage det tilbage. Dette er en controller, fordi gøre, husk, gør udsigten. Så portfolio.php i denne tilfælde ville være dit udsyn. Beklager, gutter. Portfolio.php bliver din mening, og det ville bare være din controller til det. Og hvis vi tager et kig på denne sidste her, skabeloner, skabeloner er alle dine synspunkter her. Så hvis vi ser, naturligvis vi se en masse HTML her. Så denne ene er blot viser dig, hvad loginsiden skal se ud. Du bemærker vi har nogle danne grupper, har indsende. Her er hvordan du beslutte, hvad vises på der. Du har nogle knap type = "submit" og så har du, hvad du vil have det skal vises i knappen. Så det er hvordan du ville gøre det vise sig som hvad du gerne vil. Og vi ser her har vi nogle brugernavn, nogle kodeord, og når vi faktisk ramt Indsend, det kommer til at være nogle indlæg, og det kommer til at skrive til hvad? Hvad er controller til dette synspunkt? Når vi ramt Indsend, hvad der kommer til at hedde? Ved vi? Det er lige her, så login.php. Noget du fyre er vil gennemføre. Så du kan altid fortælle hvad der kommer til at være opkaldt efter du trykker Indsend af denne første linje her. Hvad form handling. Når denne formular er forelagt, hvad skal vi tage? Vi kalder login.php, og vi kalder det med denne metode af post, som har skjulte oplysninger. OK? Så dette er din mening, og så selvfølgelig hvis vi gik til login.php-- Gør vi det endnu? Ja. Så som vi ser her, er dette har en meget mere logisk. Det er alle vores PHP her. Vi forsøger at se, hvis det var $ _GET, hvis det var $ _POST, validering ting, forespørgsler, alle disse ting. Så dem er blot tre forskellige ting her. du behøver ikke at ændre tingene. Du vil være at skabe ting i skabelonen eventuelt men så vidt HTML eller styling af noget af det går, du kan lade det være som almindeligt eller så indviklet, som du gerne vil. Nogle mennesker får virkelig ind i det, og lave nogle temmelig awesome websteder. Du behøver ikke at gøre det. Hvis du har tid, er det en virkelig cool ting. Du kan rode rundt med CSS og HTML og få en meget bedre fornemmelse for det, men ikke føler sig presset til. Der er masser for dig at gøre på bagenden med at implementere logge ind, og registrere, og alle disse ting. Så forhåbentlig det hjælper en lille smule. tror du fyre har nogen spørgsmål om noget, vi har gået forbi, andre ressourcer? Jeg vil helt sikkert sende alle mit eksempel PHP kode til jer, og så er du velkommen til at tage billeder eller whatnot på dette. Også det er online. Du kan altid bare se igen. Så hvis det er det, alle godt? Ja. PUBLIKUM: Jeg vil bare at bekræfte, når vi er gør vælge i SQL, den stjerne betyder alt, right? ALLISON Buchholtz-AU: Ja. PUBLIKUM: Og derefter, hvis du ikke har stjernen, hvis du vil have det til at tage fra en specifik række, så skal du bare sætte navnet of-- ALLISON Buchholtz-AU: Navnet på rækken og hvad du ønsker du ønsker, at værdien af. PUBLIKUM: Og så datoen. ALLISON Buchholtz-AU: Uanset du leder efter, ja. På samme måde, hvis du SLET * fra nogle tabel, det vil slette alt. Så * er bare en vild kort til alt. PUBLIKUM: OK. ALLISON Buchholtz-AU: Cool. Awesome. Nå, har en stor Mandag fyre. Jeg vil se dig i næste uge. Held og lykke på din pset.