[Muziek] ALLISON Buchholtz-AU: Oké, iedereen, welkom terug naar sectie. Hopelijk hebben jullie al een geweldige gehad Halloween weekend, of Halloweekend, zoals ik willen zeggen, al uitgerust en hersteld. En gelukkig is het niet meer sneeuwt. Het is eigenlijk zonnig buiten. Ik was echt blij mee. Niet klaar om uit te slepen mijn winterlaarzen. Hopelijk pset6 ging vrij goed. Als je moe bent van C zijn, ik ben blij te zeggen dat je klaar bent met C voor nu. We volledig overgezet in web programmeren, dus je zult werken in HTML, PHP, misschien een beetje van JavaScript. Ik weet niet wat er volgende week PSET is, dus ik kan niet garanderen wat je volgende pset zal zijn, maar deze week pset is CS50 Financiën, die in feite de uitvoering van het soort webpagina die u toelaat om te kopen en te verkopen in voorraad hebben, en bijhouden van hen. En het is wel cool, omdat alle daarvan wordt dynamisch gegenereerd. U kunt verschillende gebruikers die hebben elk hun eigen informatie, en je gaat worden implementeren dat allemaal. Het duurt een tijdje. Ik denk zeker dat dit makkelijker dan C psets, maar het duurt langer. Je leert een nieuwe taal, PHP, die lijkt op C, maar natuurlijk gaat om te eisen je opzoeken syntax en begrijpen hoe om te zetten tussen de talen. Maar ik denk niet dat er iets is super conceptueel moeilijk over dit pset. Het is gewoon het leren van de nieuwe taal en het krijgen van door al deze kleine stukjes. Als jullie hebben gelezen via de spec, het is vrij lang. Ik denk dat dit één is als 21 pagina's, als ik me goed herinner. Het is een lange spec. Dus als je het-- niet hebt gelezen 22. 32. Wow. Dus ik was af met 50% daar. Dus, 32 bladzijden. Dus het is lang. Er zijn tal van stukken, maar geen van de stukken zou dat slecht zijn. Het is gewoon een stuk. Dus zeker vroeg aan de slag indien mogelijk, zoals gewoonlijk, maar ik denk dat het moet een beetje voelen mooier dan vooral de psets zoals herstellen en het formaat dat gewoon zijn erg moeilijk om je hoofd rond te wikkelen. Dus met dat, we gaan om te duiken in. Ik hoef niet uw agenda hebben schuift vandaag, maar we zijn gaat worden over PHP. Ik zal geven u een soort van een spoedcursus over sommige dingen die je zou willen weten over PHP. Andere syntax dingen, dingen om op te letten. We gaan om te praten een beetje over SQL. Gewoon heel eenvoudige dingen daar, en dan ook MVC is Model View Controller, die is hoe je pset is ingesteld, dus begrijpen hoe dat werken zal super handig. Prima. Dus PHP. Jullie moeten doen iets heel, heel simpel met PHP, dat is deze bottom ding hier, waar u een bepaalde vorm van de ingediende top hier dat sommige naam gehad dat u input, en het zou zeggen als hallo, Ben, of hallo, Allison, en het zou opduiken. Dus dit is eigenlijk wat het moet hebben leek uit je PSET, voor het geval dat jullie wilde weten of niet helemaal achter. Maar we hebben deze vraagtekens hier die aangeven dat dit is PHP. Zij draaien ze, en dan htmlspecialcharge, vergeet niet, is gewoon, zorg ervoor dat je veilig bent vanaf elke gek injectie aanval of als iemand probeert te zetten crazy kwaadaardige personages in uw naam veld, is het niet graag tot uw server of wat al niet. En dan, als we opmerken, deze HTML vorm had een werkwijze $ _GET, die als we bedenken ons superglobals van PHP, $ _GET, $ _POST, we zullen gaan op degenen die in een beetje. Maar we weten dat we een aantal naam Hier die overeenkomt met de naam dat we ingediend. Dus dit is net zoiets als de heel simpel PHP HTML samenwerking dat jullie hadden van pset zes. Maar dat doet er niet echt Antwoord Wat is PHP. Uiteraard is het een taal, maar we hebben niet echt over gesproken in deze sectie, dus er is een beetje meer over wat PHP eigenlijk is. Dus PHP is gewoon PHP hypertext preprocessor. Het is eigenlijk beschouwd een programmeertaal omdat het de logica, terwijl als we herinneren het over HTML, we noemen dat een opmaaktaal versus een programmeertaal omdat HTML strikt modificeren hoe dingen kijken op de pagina. Het is gewoon het wijzigen de vraag of er iets is vet, of dat het een vorm, element, of iets dergelijks. Het hoeft niet elke logica. Het maakt geen lussen of voorwaarden. Je mag geen foutcontrole dingen. Je zou ofwel dingen weer te geven op een bepaalde manier of vragen om dingen van de gebruiker. Dat is het. Dus met PHP, het eigenlijk niet toestaat ons om al deze logischer dingen te doen, zoals valideren van de invoer of manipuleren op een bepaalde manier. We kunnen combineren met HTML, zoals we net zag in je laatste pset en nu, en het stelt ons in staat om te creëren deze dynamische webpagina's. Dus als jullie ever-- Ik weet niet of je was net als ik, maar op de middelbare school ze hadden ons dit IT klasse waar creëerden we gewoon HTML-webpagina's, en ze waren statisch en klik rond andere dingen, maar nooit veranderd. Met dynamische degenen, wat we kunnen doen is, net als met CS50 Financiën, je gaat naar verschillende gebruikers. Afhankelijk van deze consumenten voorkeuren, en wat ze kopen of wat ze verkopen voor hun aandelen, je gaat om te laten zien verschillende dingen. Dus als er een aantal identificerend kenmerk voor uw gebruiker met behulp van deze Web-pagina, kunnen we dynamisch beslissen wat voor hen om weer te geven. Het is niet hetzelfde voor elk persoon, die, als we hadden gewoon HTML, de pagina zal hetzelfde zijn voor elke persoon die bezocht. PHP stelt ons in staat om pagina's te personaliseren. En dan kunnen we ofwel zet ze in hetzelfde bestand, dat, zoals in het geval voordat ik hier, dat zagen we we hebben HTML allemaal hier en dan hebben we dit kleine stukje PHP. We kunnen doen als dat, of met CS50 Financiën, als jullie hebben gekeken naar de files-- en we de tijd moeten hebben om door een paar van hen zijn aan het eind van de section-- we kunt zien hoe u kunt eigenlijk houd ze scheiden, dat is eigenlijk een beter ding om te doen. So. Spoedcursus. Al de snelle eenvoudige dingen Misschien moet u weten voor PHP. Verklaren variabelen. Dat blauw is een beetje vervelend, maar hopelijk kunnen jullie het zien. Zo niet, dan zal ik het schrijven op het krijtbord. Het verklaren variabelen. Een ding om te weten is dat, in tegenstelling tot C, PHP is losjes of dynamisch getypeerde, wat betekent dat je niet hoeft te vertel een variabele wat voor soort het is. Je kunt gewoon zeggen sommige variabele is gelijk aan hoe je het ook wilt, en zal het type bepalen die variabele tijdens runtime voor u. Zoals u zult zien, kan dit te maken een aantal zeer interessante dingen. Maar voor de meeste doeleinden, u niet nodig om de soort te specificeren. Je kunt, en u kunt typen gegoten dingen zoals je normaal zou het niet zien als je wilt dwingen een bepaald type zijn, maar je hoeft niet. Het gaat niet om je schreeuwt als je gewoon een variabele declareert en niet een soort opgeven voor. Dus in het geval u niet kunt lezen dit-- Ik weet dat het niet de beste. Ik dacht dat het zou verschijnen better-- de manier waarop u een variabele initialiseren is gewoon met een dollarteken, wat je wilt dat het wordt genoemd, en dan wat je toe te wijzen. Dus in dit geval, dit is een $ var = 3. Dus als we ooit gebruiken $ var ergens, het zal alleen maar dezelfde als putting 3 bevindt. OK? Dus, een variabele, net dollarteken, wat dan ook u wilt uw variabele noemen, en hoe je het ook wilt gelijk. Beetje koeler. Minder om te schrijven voor het initialiseren een variabele, toch? Is dat zinvol voor iedereen? Gewoon snel syntax verschil tussen C en PHP. Arrays zijn veel koeler in PHP. We kunnen ze geven toetsen. Dus de manier van denken over het is dat, als we ooit wilde om een element in een array, we moesten het weten index van het, toch? Zodat we weten dat met C, we kan toegang krijgen tot het eerste element door het doen scala beugel nul, of als we wilt dat het eerste element, array beugel een. En als we wilden iets daar kunnen we alleen maar hebben om door te herhalen, tenzij we eigenlijk wisten de index. Een ding dat is echt koel met PHP arrays is dat ze wat we associatieve noemen. Dus we kunnen associëren sommigen de sleutel tot een bepaalde waarde, en we zijn eigenlijk aan de hand to-- Ik zal je laten zien hoe we deze kunnen gebruiken in een tweede. Maar in principe, als je ooit wilt een array zo initialiseren, heb je een aantal $ array. Dus op dezelfde manier, het is gewoon enkele variabele die we creëren. Dit zou kunnen worden genoemd wat je wilde. Dit kan bijvoorbeeld $. Gewoon een andere variabele. Wat maakt het een array is het bracket syntax dat we hier hebben. Net als normale C. En we hebben een aantal sleutel tot een bepaalde waarde. Dus key1 gaat naar value1, key2 twee gaat naar value2. Deze paren zijn met een gescheiden komma, net als normale arrays. Echter. Grote. Toetsen zijn optioneel. Je hoeft niet om ze te gebruiken. En als je dat niet doet, dan is het gewoon normaal. Vraag? Of, oh. PUBLIEK: Nou, over het recht. Waar is het geheugen uit? Kan het ook dezelfde zijn als [Onhoorbaar] en van de stapel? Is dat ook met behulp van PHP? Net als toen we ze nu koppelen? ALLISON Buchholtz-AU: Met PHP, Wij hebben de neiging zorgen te maken over waar onze geheugen vandaan komt. We hebben niet veel te besteden tijd aan het praten over dat, dus het is niet echt iets je zorgen te maken over. Dus sleutels zijn optioneel. Op dezelfde manier, als je dat niet doet willen deze bijbehorende maken, je wil gewoon een normale scala waar matrix nul is het eerste element en array-een is de tweede element, kun je het precies doen zoals je zou in C. Je hebt een aantal variabele dat gaat om uw array, en gelijk deze beugels here. Ja. Publiek: Heeft het de hetzelfde punt te notatie. Zoals, kan ik doen als een reeks ++, en die verwijst naar de tweede. ALLISON Buchholtz-AU: U kunt doen-- Nou, je kunt een aantal iterator hebben, i, dat je ik kan doen ++ en doe een reeks i dezelfde manier. Maar dat is het. Dus, zoals in dit geval, reeks van 1 zou gelijk is aan 20. Zelfde soort indexering notatie. Dit is eigenlijk gewoon een impliciete ding hier, waar het nul nul tot 10 zegt 1 tot 20, 2 tot 30. Het is gewoon impliciet toetsen voor. Welke veranderingen met PHP is dat heb je nu de kracht om die toetsen toewijzen doen wat je wilt. Dus een ding is hier. Dus ik heb slechts enkele voorbeelden hier dat ik schreef voor jullie want ik voel me als voorbeelden altijd helpen meer dan alleen de abstract. Dus, hier in dit geval, we hebben een aantal associatieve array dat is mijn voornaam, mijn achternaam, en ik ben echo, dat is gewoon voor alle doeleinden hier gaat afdrukken om de output hier. En het zegt, OK. Print de waarde die komt overeen met array key Allison. En ik kan ook sturen jullie al deze code na de les. Dus, als we dit uitvoeren, wat doen je denkt dat er gaat gebeuren? Wat gaat er om uit te printen? Publiek: Uw achternaam. ALLISON Buchholtz-AU: Mijn achternaam. Het doet. Hier. Uitprinten. Dus als we dit en we veranderen waren aan iemand anders toe te voegen aan onze list-- Dus laten we zeggen dat we Emma hier, en we associëren uw laatste name-- Laten we eens kijken of ik de spelling van dit recht. Publiek: Ja. ALLISON Buchholtz-AU: Ja. Publiek: Good job. ALLISON Buchholtz-AU: Lovely. Dus nu als we dit hier en we wilden je achternaam te vinden, u het daar hebben. Dus je kunt gewoon denken als deze sleutel vervangen here. Je bent gewoon het vervangen van de index. Zodat het u toestaat om gewoon zoeken via een reeks veel gemakkelijker. U hoeft niet om de index te kennen. Zolang deze toets dat je op zoek bent voor ergens bestaat in de array, PHP zal het vinden en het zal terugkeren de waarde gekoppeld. Dus het geeft je veel meer stroom met arrays. Ja. PUBLIEK: Als u twee toetsen de hetzelfde, het zal geven u een fout? ALLISON Buchholtz-AU: Het moet je een foutmelding geven, ja. Maakt dat iets te maken meer zin voor jullie? Op dezelfde wijze hebben we een array hier dat heeft geen sleutels. Ook dit is een syntax die je zou willen bewust te zijn van, want je zult hebben om dit te gebruiken in uw pset. Telkens wanneer u een aan het doen bent echo, je hebt deze citaten, en wanneer je verwijst deel van een array, moet je deze hebben accolades om hen heen. Het is een beetje vervelend, maar je moet het gewoon doen. Dus gewoon iets om in gedachten te houden. Als u gebruik maakt in fouten van, Ik weet dat dit bestaat in mijn reeks maar het is het gooien van fouten bij me, probeer dan braces omheen en het zou moeten werken. Dus in dit geval, is dit een normale C array die we gewend zijn. Heeft drie, vijf en zes, en we gewoon wilt afdrukken uit het eerste element, dus moet deze uitprinten drie. En ik heb al deze run, dus hopelijk niets veranderd. We zien op de bodem hier, het drukt gewoon uit drie. Cool. Dat zinvol voor iedereen? Associatieve arrays. Veel koeler dan normaal arrays. Dit is why-- Wist David laten zien de PHP uitvoering van pset6 tijdens de lezing op alle? OK. Dus, ik zal je laten zien. Ik weet niet het uit de t-- PUBLIEK: Hij deed vorige week. ALLISON Buchholtz-AU: Was het vorige week? Publiek: Ja. ALLISON Buchholtz-AU: Yeah. Dus speller kan op als zes regels met PHP en een deel van de kracht van die is dit associatieve array waar je kan gewoon elk woord in te laden, en je hebt het gelijk aan waar of onwaar. En dus kun je zeggen, oh. Terugkeer woordenboek op een woord, en Als het er is, zal het ware terug. Anders zal het niet vinden het en het zal return false. Dus een soort van een leuke ding. Prima. Dus dat zijn associatieve arrays. Ze zijn wel cool. Ik vind ze echt. En uiteraard dit-- Ah. OK. Nu het werkt. Misschien. OK. Een ander ding. Dus, met gelijkheid, maar een cool ding om in gedachten te houden. Met PHP, omdat het is dynamisch getypeerde, afhankelijk van wanneer u het type je het draait, hoe je het draait. Ik heb eigenlijk een aantal leuke voorbeelden die ik je laten zien jongens. Maar == gewoon controleert gelijkheid na soort jongleren. Dus als je iets hebt dat is net als het personage 1 en nummer 1, PHP zou je vertellen dat die gelijk zijn omdat kunnen de types van het jongleren twee ervan tot het gelijke, die misschien voor uw zaak is prima. Als u nodig hebt om te zien of ze de dezelfde soort waarde en hetzelfde type, je wilt deze ===. En ik denk niet dat je enig geval dat je nodig hebt om te gebruiken dat in PSET, maar veel u die zal gaan om webpagina's te doen voor uw laatste projecten en dingen, het is een goede zaak om dat == kennen en === zijn verschillend, en het is een goede onderscheid te begrijpen. OK. So. Foreach loops. Ze zijn een manier doorlopen van een array. Dus, net als arrays werd zo veel koeler in PHP, uw weg te herhalen door middel van een array, denk ik, wordt ook veel koeler en veel krachtiger. Dus in plaats van te hoeven maken wat voor i gelijk is aan 0 en wat dan ook, en bij te werken dan dat i als u door te gaan, we hebben deze geweldige foreach lus. Dus hier is de standaard algemene structuur van deze twee. Dus ofwel moet foreach sommige serie als de waarde die u wilt herhalen als. Dus dit is de naam van de array variabele die u wilt verwijzen, en dit is wat je wilt te noemen binnen de lus. OK? Zodat deze overeenkomt met elk element van de array, en u deze waarde gebruiken binnen deze lus. Ik heb een voorbeeld. Ik ken voorbeelden zijn zo veel beter. En dit is dus als er geen toetsen, dus dit is als als we maar een waar de sleutels zijn de normale indices voor uw array. Of dit ook in het geval als je heb geen gebruik voor de toetsen. Als je niet de zorg over de sleutels en je gewoon willen door middel van herhalen met de waarden voor elk van deze in welke volgorde, dat is prima. U kunt de structuur te gebruiken. Anders, als er toetsen, onze $ Waarde verandert alleen tot $ key waarde. Zodat het net verandert in een belangrijke waarde paar. En dan kunnen we verwijzen naar $ key en $ waarde binnen onze lus. OK? So. Voorbeeld. Maken het mooier. OK. Dus hebben we dit één hier, die hebben we een aantal zijn-- U kunt ook een array als deze door het hebben van een aantal variabele gelijk array met haakjes of je kan gewoon doen beugel. U moet de beugel te doen, maar Dit is een andere manier om het te doen. Dus hier hebben we een aantal reeks van drie elementen van één, twee en drie, en we hebben onze foreach. Merk deze overeenkomt met de array die we itereren over, en dit is wat we je belt elk ding in ons aanbod. En dit alles doet is dat het gaat elke waarde uit te printen. Dus als we draaien, merken we dat we waarde hebben één, twee waarde, de waarde van drie. En op dezelfde manier typisch arrays behoefte aan een type zijn, arrays hoeven niet alle van hetzelfde type hier. Dus nu hebben we een aantal int. We hebben twee snaren. Dus je arrays kunnen krijgen veel krachtiger en misschien een beetje beetje Messier, afhankelijk op de manier waarop je wilt kijken. Dus kunnen we dit veranderen aan wat we willen. We gebruiken waarde. Dat is gewoon de standaard dingen die we gebruiken. Maar, alleen belangrijk om te weten dat we kunnen noemen dit als teller als we wilden. En zolang ze met elkaar overeenkomen, uiteraard is iedereen blij. Als je ooit wilt een PHP draaien zoiets als dit commando uit te voeren lijn je dit weet hier, je gewoon doen PHP, en dan wat bestand dat u wilt uitvoeren. Dus als je wilt prutsen met PHP, en meer de logica en je hoeft niet echt nodig om zien als in een webbrowser, kun je gewoon draaien in de opdrachtregel als dat en echo zal afdrukken uit wat je wilt. OK. De andere manier die we hebben is als deze. Dus dit is een geval waar misschien wilt zowel de sleutel en de waarde gebruiken, Ik weet dat deze zijn net als super gekunsteld voorbeelden maar ik hoop dat ze maken het een beetje duidelijker. Dus hier hebben we een aantal serie opnieuw, maar dit keer, in plaats van enkel het hebben je weet dat er geen sleutel. We hebben sleutels voor elk van deze. Dus een is gonna be een, zal b corresponderen twee, zal en c corresponderen met drie. En in dit geval, indien schrijven we het op deze manier, we hebben toegang tot zowel key en voor elk van deze. Dus toen we deze run, we elk van deze. Drukt het zo uit onze sleutels en corresponderende waarden. Een ander cool ding is dat, en ik weet zei als deze geen sleutels had, maar altijd impliciet een sleutel want als je niet delegeren een sleutel, natuurlijk uw toetsen zijn gewoon uw indexen of indices dus we konden altijd ook dit doen. Net als dit. Ik zal uitprinten. Dus in dit geval, als u merkt, we hebben onze impliciete sleutels nul, één, en twee hier. En op dezelfde manier met deze, je kunt altijd gewoon r zeggen als waarde, en je hoeft alleen toegang tot de waarde. Je hoeft niet de zorg over uw toetsen, zelfs als je beschikt over toetsen, als je niet de zorg over hen, die u per se niet moeten ze in je foreach lus zetten. Is dat zinvol is voor iedereen? Publiek: Kan je gewoon bellen met de sleutels, ook? ALLISON Buchholtz-AU: Ja, je helemaal dat kon doen, ook. Eigenlijk wachten. Hold on. zou het-- No. Als je de sleutel, dan wil je nodig hebt om de belangrijkste te doen aan waarde. Publiek: waarde toevoegen. ALLISON Buchholtz-AU: Yeah. En je gewoon gebruik nooit waarde is alles. Publiek: OK. ALLISON Buchholtz-AU: Als u zomaar een ding daar, het gaat ervan uit dat je bent over de waarde niet de sleutel. Grote vraag. Prima. Cool. Eigenlijk houd op. Laat me zien wat ik heb. Dus voordat we in post en krijg ik ik wil gewoon om u te tonen jongens een beetje over hoe het is dynamisch getypt, dat is wel cool. Ik heb al deze. Ik heb net vier voorbeelden hier, en ik zal u al deze code na de les. Dus hier hebben we een aantal variabele a. Dat is gewoon 1 plus 1, toch? En we gaan om uit te printen wat dat is gelijk aan, en dan hebben we een soort. En iemand enig gissingen over welk type het gaat worden? Publiek: Een int. ALLISON Buchholtz-AU: Ja, het is een int. Zodat het net voegt ze samen. Het is een int. Allemaal goed. Dus deze volgende, we wat eruit strings. Wanneer we deze run, het denkt, oh. Je bent eigenlijk probeert om gewoon dingen toevoegen. Je moet alleen wel in de war. Dus ik ga gewoon om het te repareren voor u. Je bedoelde int. Ik weet dat je int betekende. Dus dit is een van de manieren waarop u kunt zie, PHP heeft een eigen mening heeft. Hoewel we zeiden expliciet, kijk, deze degenen zijn strings. Ik bedoel de string één. Maar het zegt, oh, maar je probeert om ze toe te voegen, dus je moet zeggen dat het een integer. Vertrouw me op dit punt. Dus het zegt dat het een geheel getal, en het hen voegt als normaal. Dus wel cool als je gaat te lui krijgen met je spullen, of wil je iets toevoegen. Een groot voordeel is dat, indien je denkt terug naar pset2, iets dat de gebruiker was ingevoerd, rechts, dat we denken is een char of een string op het eerste. Nu hoeven we niet expliciet hoeft te zeggen, oh, maken dit een int. PHP zou net zijn als, oh ja. Ik weet dat je een int betekende. Silly u. Je was niet de bedoeling van een string. Dus in dat geval, nu dat we dit, wat doen jullie denken dat het gaat om hier te doen? We hebben een string en een int nu. Publiek: Het is nog steeds een int. ALLISON Buchholtz-AU: Het is nog steeds een int. En de reden is-- ik zou zetten meer voorbeelden, maar deze is leuk. De reden dat het doet is omdat het is alsof je probeert om dingen toe te voegen. Dus als je probeert toe te voegen dingen, ik ga ervan uit, redelijk, je iets hebt redelijk dat je zou kunnen toevoegen. Ik ga gewoon om het te maken een int, en we gaan gewoon om het toe te voegen, zoals gebruikelijk. En dan op dezelfde manier, ik denk dat jullie het idee krijgen. Wij hebben ook deze ene hier, dat is gewoon klusjes, en het doet het zelfde ding. Het is net als, je domme gebruiker. je weet dat je wilt een int. PUBLIEK: Als we een brief, zal het doet de [onverstaanbaar] waarde of niet? ALLISON Buchholtz-AU: Oh, dat is een goede vraag. Laten we eens kijken. Nope, nog steeds is een int. Dus het is een beetje gek. Dit is gewoon een soort van aan te tonen u PHP kan soms gedragen in irrational-- Niet volkomen irrationeel, maar het zou kunnen gedragen op een manier die je niet echt verwachten. Dus, als u twijfelt, controleer het soort dingen. Deze functie gettype kan super nuttig. Typisch, als je iets met het doen plussen of een rekenkundige operatoren, het gaat om iets te veronderstellen redelijk is gewoon een int. Dus, heb je char 1, of een koord 1, of de feitelijke int 1, het gaat om te veronderstellen dat. Als u wilt typecast wat dan ook, je helemaal kunt. Je zou iets doen als verdubbelen hier, geloof ik. En in dat geval gaat het om te zeggen, oh. Ik zal dit een dubbel omdat maken u expliciet gezegd dat het een dubbel. U kunt altijd expliciet maken PHP iets doen, maar. PUBLIEK: Wacht, waarom is A plus 1 is er? ALLISON Buchholtz-AU: Oh. Er. Het was gewoon een echo. Dat was mijn schuld. Dus, kun je de expliciete opdracht geeft maak er iets van een bepaald type, maar de meeste van de tijd, het gaat om dynamisch beslissen dat tijdens de uitvoering. Dus het gaat om door te gaan door middel van en het zal zijn als, OK. Wat maakt de meest zin om dit te laten zijn? Zou het inderdaad een string zijn? Moet het een int? Moet het een float? Moet het een dubbel? En het zal beslissen dat voor u. U kunt het te dwingen te doen wat je wilt, maar-- Publiek: Betekent dat het langzamer maken? ALLISON Buchholtz-AU: Nou, Ik bedoel, C is zeer efficiënt. Ik denk dat het zeker langzamer omdat het heeft om het proces als het gaat. C, ik ben er bijna zeker van is sneller. Maar het is duidelijk dat er een veel coole dingen in het hier dat we geen zorgen te maken over. Dus, als we op zoek bent door een array, we hoeft niet daadwerkelijk creëren sommige zoektocht door de array. We kunnen alleen maar vragen om de sleutel en PHP zal zorgen voor het. Cool. Awesome. Het lijkt erop dat het einde van mijn voorbeelden. Jullie zijn nooit om nu te vergeten. Je gaat om te zijn als, oh, PHP is gewoon als dat moeder die is net nee, nee, nee. Ik weet wat je bedoelt. Ik weet wat je wilt. OK. Dus dit is, hopelijk, nuttig voor uw PSET, althans in het begin, omdat je alles over het omgaan met vormen en dingen van de gebruiker. Dus zijn er twee manieren waarop we pas rond info met PHP en HTML als we passeren tussen die twee dingen. Dus we hebben $ _GET, die wordt doorgegeven via de URL, en we hebben $ _POST, die in het bericht is afgelopen lichaam, en dus we beschouwen het als verborgen. Maar een ding om te begrijpen is dat geen van deze worden veilig geacht. Als je iemand hebt die is het onderscheppen van de berichten gaan heen en weer tussen u en de server, kunnen ze nog steeds krijgen van deze gegevens. Ze moeten gewoon een beetje harder kijken. Het is niet echt dat-- het is alleen verborgen voor de URL. Het is nog steeds in het bericht, hoewel, dus als ze toegang hebben tot dat, het is eigenlijk gewoon like-- Het is als het verschil tussen iets aan de buitenkant worden geschreven een envelop en iets wezen geschreven op een stuk papier binnen. Het is niet zo moeilijk om de envelop te openen en krijgt het stuk papier binnen. Toegegeven, het zou veel gemakkelijker zijn lees net de buitenkant. Maar dat is hoe je kunt soort van denken van deze. Geen van deze zijn echt als veilig beschouwd. OK? Toegegeven, niet echt belang voor uw pset omdat je niet te maken met bedrijfsgeheimen, maar het is meestal een ding dat we echt graag benadrukken omdat mensen denken, oh, nou ja, het is verborgen. Het moet super veilig. Nee. Het is niet veilig. Het is gewoon iets minder onzeker, denk ik. Of onveilig. Dus hebben we eigenlijk een voorbeeld. Zoals u weet, ik hou van leren meer voorbeelden. Ik voel me als dit helpt beter. Dus, we hebben een aantal eenvoudige vorm hier die eigenlijk, als jullie ooit verward over PHP, dit is echt klein, maar php.net is eigenlijk echt goede documentatie. Ik vind het echt. Ik gebruikte het voor te bereiden op deze sectie, dus ik kan de dierenarts het voor u. Dit is een voorbeeld van hen over hoe $ _POST en $ _GET werk. Het enige verschil tussen twee van deze, behalve waar de informatie is weergegeven, of het nu in de URL of in het lichaam, ook welke methode. Dus in uw formulier voor HTML-- Dit is een zeer eenvoudige HTML-formulier. Kan iemand mij vertellen wat het doet? Publiek: Vraag om je naam en leeftijd. ALLISON Buchholtz-AU: Precies. Dus we hebben een vorm acties. Dat laat ons weten dat het een daad vorm. En wat gaat er gebeuren is, wanneer we geraakt Submit, het gaat om bellen action.php, dat is wat dit is, en het gaat om het te noemen met een werkwijze $ _POST. Dus in dit geval, uw informatie is verborgen. en het is gewoon je naam, aantal input type genaamd naam, wat leeftijd, input type = "text" dat we ook de leeftijd noemen. En dan, als we geraakt Submit, Submit zal roepen action.php. Dus als we daadwerkelijk getroffen versturen, we weet dat het geplaatst, zodanig, en we zullen eigenlijk dit zien in uw probleem stellen dat hopelijk krijgen om te lopen door middel van een klein beetje. En al is het hier te doen is POST is enige superglobal variabele dat we spraken over tijdens de lezing. En hoe kunt u denken aan $ _POST is dat het gewoon een associatieve array. OK? Dus dit is een aantal belangrijke, dit is een aantal belangrijke, en wat de gebruikersinvoer wordt een voor elk van deze. OK? Dus als we wat deze array schrijven eigenlijk leek vlak nadat we het formulier is ingediend, zouden we hebben, dit is onze $ _POST, en sommige serie waar we hebben een naam. Laten we zeggen dat we zullen mijn naam te doen, en dan hebben we een aantal jaar, 21. Woo. Dus dit is allemaal $ _POST is. $ _POST is gewoon een associatieve array, OK? Het zegt gewoon, OK. Wat zijn de dingen die we hebben gevraagd om vanuit de gebruiker? Wat zijn de variabelen dat we rond gaan voorbij dat we naar vroeg in deze vorm? En wat zijn de waarden in verband met dat? Dus in dit geval, als ik voorgelegd dat met een naam van Ally en een leeftijd van 21, dit is wat $ _POST eruit ziet. OK? En dit is wat dit PHP bestand toegang heeft. Oké? Dus in dit geval, dit is net als het krijgen van een ander ding uit ons aanbod. In plaats van een index in onze array, we hebben een aantal belangrijke. Dus dit gaat geven me de waarde op belangrijke naam. Dus dit gaat Ally zijn, en dit hier gaat om mij de waarde op $ _POST waar de sleutel leeftijd, die zal worden 21. Je gaat om te zijn doet dit nogal wat. Ja, uit welk deel? Publiek: Toen je die op het bodemdeel. ALLISON Buchholtz-AU: Dit onderste deel? OK. Dus, je begrijpt dit is onze HTML vormen, en we hebben een aantal methode $ _POST, die er toe doet. Dit zou ook kunnen zijn $ _GET, maar daartoe we gaan gewoon te zeggen dat het $ _POST. Wanneer wij dit formulier in te dienen, dit is onderdeel van een PHP-bestand dat heet. Dus dit PHP bestand gaat nu om uit te voeren gezien de informatie van onze HTML vorm. Dus wat het doet is, als we hit Submit op onze HTML-formulier, het is aan u voorbij deze superglobal, dat is gewoon een associatieve array. Het is dit. Het is net als het voorbijgaan dat aan het bestand. En wat er staat is, OK, hier is $ _POST. Het is uw associatieve array. Doe ermee wat je wilt. En we zeggen, OK. Geef me de waarde bij naam, en geef me de waarde op de leeftijd. Dus dit zijn gewoon toetsen, en dit is ons aanbod. Is dat zinvol? Publiek: Mhmm. ALLISON Buchholtz-AU: Awesome. PUBLIEK: Als u aan de opnieuw in te dienen vorm doet het gewoon schrijven over de data? ALLISON Buchholtz-AU: Yeah. Mhmm? Publiek: Waarom moet je om aan te geven dat het een int? ALLISON Buchholtz-AU: In dit geval, de gebruiker is gewoon te forceren naar een int zijn. Publiek: OK. ALLISON Buchholtz-AU: ik weet het niet als je echt nodig zou hebben dat, maar voor hun doeleinden, besloten ze dat ze wilde dat het een int zijn. Ze zijn gewoon typecasting het. Misschien zijn ze te gebruiken als iets later. Dit is slechts een fragment. Ja? Publiek: Wat als ze getypt 12, T-W-E-L-V-E, voor leeftijd? ALLISON Buchholtz-AU: Als ze probeerde te typen die als een int? Publiek: Ja. ALLISON Buchholtz-AU: I vergeten wat dat doet. Ik denk dat het zou kunnen proberen om te zetten het eerste teken naar een int, of neem de waarde en het omzetten het, maar ik ben vergeten wat het precies. Wees een leuk ding om te schrijven een programma en proberen. Doe een paar lijnen. OK, dus dit is een van de belangrijkste dingen die je gaat doen. Ik ga hopelijk lopen door een paar bestanden uit de pset met jullie. Het lijkt erop dat we gaan hebben tijd, dus kunnen we dat doen. Maar je gaat worden het doen van een heleboel dingen als dit, waar je voorbij dingen vanuit een HTML-formulier in deze PHP formulier dat zal dan voeren sommige reeks instructies de gegevens verstrekt. Dat is letterlijk de kern van uw pset. Yeah. Publiek: Het type = "submit", dat maakt een knop op de HTML formulier. Is er manier om te bellen die knop iets? Dus zou je zijn als name = "submit"? Of is die knop gewoon gaat worden leeg op dit moment, omdat je alleen gaf het een soort, geen naam. ALLISON Buchholtz-AU: Ik denk dat het gewoon leeg te zijn op dit moment. We kunnen zeker kijken in de PSET, want we zullen zeker kijken naar de registreren soort dingen. Maar ja, kunt u zeker opgeven de tekst die u wilt op uw knop. OK, dus SQL. Wanneer je het kopen en verkopen van aandelen, je nodig hebt om bij te houden van die te houden. Dus de manier waarop we dat gaan doen is met SQL, dat is gewoon een database. Zie het als een tafel waar je bent al deze informatie te houden over uw verschillende gebruikers. En jullie zijn eigenlijk naar een van deze te maken. Het is wel cool. En er zijn slechts vier belangrijkste dingen die u moet weten voor deze PSET, en ze updaten, zodat u in principe de gegevens bij te werken. Dat gaat ervan uit dat het er al is. Als het er niet is, gaat het je te raken met een fout, dus misschien wilt u om te controleren. En je zal updaten on-- ik moet eigenlijk- ik tijd heb, Ik zal een paar van deze te schrijven. Ik zal eigenlijk geven jullie een paar monster, volledige SQL-commando's, want dit zijn slechts de belangrijkste degenen, maar je kunt ze samen te voegen. Dus ik zal dat doen en ik zal sturen dat aan u met deze toelichting. Dus als je iets wilt bijwerken, nodig hebben om het te vertellen wat je updaten en waar je bij te werken. Dus een typische SQL-opdracht zou update ID waar iets iets gelijken. Of zoals update van adres waar ID gelijk 3, en dit zou het adresveld updaten van uw gebruiker met een ID van drie. OK? Dus als je naar SQL en W3Schools, ze hebben geweldige voorbeelden. In feite zou ik trek sommigen in een beetje. En dan voegen in, je bent gewoon inbrengen bepaalde waarden zijn. Dus als je probeert om wat nieuws te creëren binnenkomst, zodat je het creëren van een nieuwe gebruiker, je kon insert doen naar wat uw database wordt genoemd, en je zou al deze waarden. Selecteer vervolgens heb je, Selecteer waarden te bekijken. Dus als je probeert te controleren om zien of een gebruiker bestaat of je bent proberen te grijpen specifieke informatie over een gebruiker je gaat worden met behulp van select. En dan te verwijderen, denk ik, is er vrij eenvoudig. Je bent gewoon te verwijderen iets van de tafel. En in feite, laat me eigenlijk trekken enkele voorbeelden voor jullie. Oh kijk, het is mijn 61 pagina. Dus als we naar W3Schools, Hopelijk is het weer op. Ja, Love it. We gaan naar SQL. Dus, dit is iets hier. Dus, dit is een zeer eenvoudige SELECT. Man, ik hou van deze functie. Zo kunt u kiezen hebt sommige gebied van klanten. In dit geval verwijst naar de klanten online database die u gebruikt, dus wat je tafel wordt genoemd, en ster betekent gewoon selecteren alles. Geef me een ieder. Dus, ik wil gewoon dat jullie een geven paar voorbeelden van waar dit is. Dus we hebben SELECT, UPDATE. Dus hier is een soort van de algemene syntax. Dus UPDATE, ongeacht uw tabel naam is, en stel vervolgens is waar je eigenlijk naartoe gaat te zijn welke gegevens u veranderen bent. Dus dit Laten kon be-- mij maakt hier een voorbeeld. Dus dit gaat be-- OK. Dus heb ik een beetje databank voor ons. We gaan een aantal ID hebben, aantal jaar, en een aantal genoemd. Dus ID ene gaat jaar '15 te zijn, en we gaan gewoon om het te maken me. Wie wil de tweede zijn persoon in onze tafel? Iedereen. Ik ga gewoon naar Emma kiezen omdat snel van uw naam. Emma, ​​welk jaar ben je? Publiek: Welk jaar? ALLISON Buchholtz-AU: Yeah. Publiek: '16. ALLISON Buchholtz-AU: '16. Je bent gewoon gaat worden mijn cavia voor vandaag. OK, dus we hebben deze twee mensen. Eigenlijk, laat mij dit doen. Laten we zeggen dat ik hoorde haar fout, en ik eigenlijk zei ze is een jaar jonger. Ze is '17. Wat we hier willen doen, als we wilden jaar Emma's updaten correcte gebruik van die, om wat we zouden doen, is dat we zouden UPDATE data over zeggen hier. En dit kan allemaal op één lijn, maar aangezien ik gecomprimeerd voor de ruimte hier, Ik ga hier schrijven. En we willen stellen. Dus dit is de tafel we bijwerkt. SET gaat welke kolom of welke gegevens zijn we eigenlijk aan het veranderen. Wat we het veranderen is het hele jaar, dus we gaan naar SET jaar = 16 zeggen, en dan WAAR vertelt ons welke gebruiker of wat rij zijn we eigenlijk dit updaten. Dus waar? We hebben hier twee opties. Wat zijn de twee? Deze zijn uniek, toch? Dus onze namen zijn uniek en onze ID is uniek, ja, wat zijn de twee opties voor waar we konden dit doen? Ik zal je één geven. We konden doen WHERE ID = 2, of we konden doen wat als we gaan uit dit paradigma hier. Publiek: [onverstaanbaar]. ALLISON Buchholtz-AU: Precies. Dus we konden ook naam doen = Emma. En een van deze zou werken. En we liepen dit, zou het zijn als, OK. We zullen het te veranderen. Je bent eigenlijk 16, dus nu ben je weer rechts bent. OK, dus dit zou zijn super handig in je pset waar misschien iemand besloten om 100 aandelen te kopen van Apple, en toen waren ze willen, maar een grapje. Ik wil slechts 90 aandelen. En dus ze verkopen 10 van hen, zodat u moet het bedrag van de voorraden bij te werken dat zij. Dus, het bijwerken van de bestanden, het bijwerken van tafel. OK. Dus dat is een voorbeeld daar. Dat is de update syntax. DELETE. Oh. Invoegen in onze andere. Dus, dit hier is zeer vergelijkbaar. We kunnen alleen maar zeggen, in dit geval voegen we iemand. We kunnen Ben dit keer toe te voegen. Wij plaatst, en we wil de naam van onze tafel. In dit geval is het data. En dan hebben we alleen maar willen, je gaat zeggen WAARDEN, en wat je gaat doen wordt, eigenlijk moet u ervoor zorgen dat dat je iets voor elke rij hebben die je wilt. Je zet ze gewoon in orde. Dus in dit geval, zouden we zeggen 3. Je bent 18, rechts Ben? Publiek: 19. ALLISON Buchholtz-AU: 19? Publiek: 19. ALLISON Buchholtz-AU: '19 van uw jaar? Je afstuderen in '18, toch? Publiek: Oh. ALLISON Buchholtz-AU: jaar Graduation. Publiek: OK. ALLISON Buchholtz-AU: Ik was als, bent u al van plan om neem een ​​jaar hier af? Dus, '18, hebben we Ben. Dus in dit geval zou het gaan door, het zou een nieuw item aanmaken. Cool. Niet slecht, toch? Een groot deel van dit gaat zijn syntax voor jullie. Concepten moeten komen, hopelijk, relatief eenvoudig. De syntax is het enige wat dat kan een beetje tricky. En dan is onze laatste is DELETE, en zoals u merkt, Ik beveel deze website. Het is geweldig. Er is een ton van spullen. Dus, net zoals we hadden sommige UPDATE, DELETE is zeer vergelijkbaar. In plaats daarvan hebben we Verwijderen uit Data. Dus in dit geval, onze laatste één zal ik hier opschrijven. Laten we zeggen dat we wilden me verwijderen. Ik kan niet schrijven vandaag. DELETE uit welke tafel we in, data. Er zijn eigenlijk drie manieren we konden kiezen om me te verwijderen. Kunnen jullie mij vertellen wat de drie manieren zijn, hoe kon je me verwijderen? ID gelijk aan 1, waarbij ID gelijk is aan 1. We konden doen, waar jaar gelijk 15, of waar de naam gelijk is aan Allison. Natuurlijk, zijn er slechts drie verschillende manieren, want het zijn allemaal uniek. Typisch in uw tafel, en vooral in PSET, je gaat naar een van de set deze kolommen zijn uniek. Het gaat waarschijnlijk om een ​​aantal unieke ID getal, want als je eigenlijk have--, het zou eigenlijk laat je twee hebben. Ik kan me niet herinneren of het zal laten heb je twee van hetzelfde. Publiek: dan zou het hun gedrag veranderen. ALLISON Buchholtz-AU: Het zou. Het zal gedrag dat onverwacht veroorzaken, dat je niet echt kan voorspellen. Dus je zal zeker één kolom in uw database die uniek zal zijn, en het is meestal kunt u instellen het zo dat het is als een unieke ID, en het zal gewoon werken om de de tijd die u in de tabel. Elke keer als u een nieuw te creëren rij, zal het automatisch verhogen en geef het aantal unieke ID. Dus hint voor uw pset. OK. Dat is SQL. Dus nu gaan we het hebben over het allerlaatste ding, dat aansluit op eigenlijk best goed met je PSET, als het vooruit zou gaan. Dus MVC, model view controller. Dit is eigenlijk gewoon een manier om dingen op orde te houden. Op dezelfde manier met C vragen wij jullie om functies en aparte dingen te creëren uit, dit is gewoon een manier om te scheiden code wanneer je doet webontwikkeling. Dus het maakt de zaken veel meer elegante en vereenvoudigd, en dit is eigenlijk de manier dat uw PSET is eigenlijk opgezet, dus of je het leuk vindt of niet, je gaat om het te leren, zelfs als je niet denkt je leert het. En een ding is, het laat je ook naar doen veel meer als een gebruiker samenwerking. Dus toen ik CS50, deed ik een website voor mijn laatste project, en ik was als, zal ik omgaan met de database-spul. Ik kom terug doen end spul, en mijn kamergenoot die ik nam met het was zeer artsy. Ze doet stage design, en ze wilde het allemaal vrij te maken. Dus ik heb zoiets van, OK. U kunt verzorgen alle front-end spul. En het ding is, als We zullen zeer binnenkort te zien, dat model view controller laat je dat de code volledig te scheiden zodat dat ik kon werken aan de uitvoering van onze pagina's, en manipuleren van informatie in onze databases, en ze kon alleen maar dingen maken mooi, en we waren allebei erg blij, omdat we om wat te doen we allebei wilden en we niet te maken hebben met de ander. Dus we hingen samen. We willen om te hangen. Ik heb gewoon geen zin om te gaan met alle CSS en HTML stuff. Ik was als, je maakt het mooi. Ik zal omgaan met de database. Dus we hebben dit echt koele, grote kleine tafel. Ik hou van tafels. En in feite, het model dat u kunt denken is gewoon uw database. Ik was het model persoon voor mijn project. Het draait allemaal om de opslag van informatie en het organiseren van die gegevens. Dus het is wat we willen terugbellen end. Dus jullie te maken krijgt met de SQL-database en de databestanden. Dat is uw model. Je zicht, zoals je misschien denken, een soort van logisch, is wat je gebruiker eigenlijk ziet. Het is de gebruikersinterface. Het is dat de voorkant naar component. Dus dat is wat mijn kamergenoot ging aan de slag op de hele tijd. Ze was super blij. Dus dat is allemaal van de HTML, en er is zeer weinig PHP. Als je alleen maar praat over wat er wordt weergegeven aan de gebruiker, we hebben het over hypertext. We praten over hoe het eruit ziet. We hebben het niet over de logica, of voorwaarden, of wat al niet. Dat alles wordt behandeld door de controller, OK? Zodat behandelt de verzoeken van gebruikers en krijgt de informatie. Dus een ding dat je moet weten over uw PSET is dat in uw opvattingen, iets dat is eigenlijk weergeven van informatie mag nooit het maken van oproepen naar uw model. Dat alles wordt afgehandeld in je controller. Uw controller is degene bemiddelen tussen deze twee. Het zal het model vragen voor bepaalde informatie. Het kan itereren over dat informatie, uitzoeken wat je eigenlijk nodig hebt van het, wat te doen met het, en dan zal het doorgeven alleen de informatie die u nodig hebt om de weergave voor u het af te drukken out of weer te geven aan de gebruiker, OK? Omdat we zien het uitzicht als wat ook wordt geconfronteerd met de gebruiker, dus het zal veel gemakkelijker voor hen te achterhalen, oh, als je het maken sommigen noemen uw model en je vraagt ​​voor alle gebruikers die beginnen met de letter A, en je doet dat naar uw mening, iedereen die uw webpagina kunt zien dan ook toegang heeft dat. Je hoeft niet per se willen dat. Je wilt niet dat mensen zien meer in de database dan ze moeten zien. Alleen hun specifieke voorkeuren. Dus de controller omgaat met dat alles. Dus al je .php bestanden die we zullen zien kunt u overwegen uw controller bestanden. En dat is waar je bent echt gaat worden vragen om dingen uit uw database, en itereren of manipuleren als noodzakelijk voordat door te geven om te worden bekeken. Het is echt een coole PSET, naar mijn mening. Ik denk dat het een beetje meer zoals instant bevrediging, omdat je een te implementeren veel hele kleine dingen, en elk ding zou moeten werken op zijn eigen. Niet wilt, doe alles en dan kijken of het werkt. Like software waar je net als, ik ben hoop echt dat dit is gelijk, want als het niet, er zijn een heleboel plaatst het kan verkeerd zijn. Prima. Gewoon ervoor zorgen dat ik zei alles wat ik nodig had om te zeggen over MVC. Yeah. Cool. Dus in CS50 Finance, hebben we ons model, zoals ik al zei hier net. Het gaat om MySQL en phpMyAdmin zijn. Ik kan zeker trek deze omhoog zodat jullie krijgen een kans om te kijken. Zoals ik al eerder zei, het uw SQL databank fungeert als uw model, en je kunt sturen wat wij vragen noemen, die zijn net dit soort dingen. Deze worden een query genoemd. Dit is een vraag, waar je bent gewoon uw database vragen voor iets, of je bent het wijzigen van uw databank op een bepaalde manier. Dat is alles wat het is. En doe je dat met de functies die we hebben je hier gegeven. U kunt ook manipuleren ze met de hand via phpMyAdmin, die kunnen we zeker een kijkje nemen op. Ik zal een monster te creëren databank met jullie. OK. Dus, controller. Dus in dit geval, als u mededeling, dit is allemaal PHP. Merk op dat is een soort van uw belangrijkste ding van je controller is dat het meestal moet PHP. Als u HTML in je controller, niet helemaal zeker wat er aan de hand daar. Op dezelfde manier zoals ik al zei, als je beheren om [onverstaanbaar] met HTML, Ik ben echt geïnteresseerd. Dus wat we hier hebben is heb je een aantal query. Query is een functie die bouwden we voor jullie. Het is als een wrapper om queries te maken om uw database een beetje makkelijker. Als je niet hebben dat, de syntaxis voor eigenlijk te praten met uw SQL-database anders zou zijn, dus we net leveren het voor jullie. We willen het leven gemakkelijk te maken. Dus in dit geval, kunt u kerels vertel me wat deze lijn aan het doen is? SELECT * van enkele tafel. Publiek: Selecteer alles van deze tabel. ALLISON Buchholtz-AU: Precies. Dus het is te zeggen, geef me alles van deze tabel. En het is op te slaan in sommige variabele resultaat. En dit zegt, als resultaat is niet gelijk vals, dan is ieder van deze doen we. Dus als er niets hier, als uw table's leeg of het gewoon niet bestaat, het gaat om return false. Dus in dit geval, we alleen het maken van zeker van zijn dat er iets was eigenlijk teruggestuurd naar ons. En dan hier, we hebben onze grote foreach lus dat we itereren over ons resultaat, en we noemen het roeien, en wij zeggen maken deze template waar uw gegevens is dit resultaat. OK? Dus het is gewoon de verwerking de rij van het resultaat. Anders, het schreeuwt. Dit is dus een voorbeeld van de controller. Zoals u ziet, is dit de plek-- alleen Ja, sorry? Publiek: Waarom is er een ampersand voordat rij? ALLISON Buchholtz-AU: Een ampersand voordat rij. We zijn gewoon itereren. Dat is ook een adres van-- Publiek: Dus het is net als C verwijzing. ALLISON Buchholtz-AU: Het is zorg ervoor dat je eigenlijk bent het wijzigen van het origineel en geen kopie. Het is op dezelfde manier met C waar we passeren aan de hand hier, net om er zeker van. Publiek: Is het niet == in plaats van niet = in PHP? ALLISON Buchholtz-AU: Het is niet de ==. Publiek: Want gelijk in C is gewoon-- ALLISON Buchholtz-AU: Het is gewoon niet =. Ja, nee. Het is niet ==. Omdat == in PHP controleert gelijkheid met makelen, toegekend, maar extra kwaliteit. Dus, het is niet == in PHP. Het is een van de weinig syntax verschillen. Yeah. Dus we zijn gewoon itereren door elke rij, en maken, als jullie lezen via uw spec, is gewoon een andere functie die is daadwerkelijk gaat alle HTML verwerken en weer te geven in uw webbrowser voor u. OK. Dus, we willen denken van uw controllers als wat zorgt voor de business logica. Zoals je hier ziet, dit is waar we zijn het nemen van onze gegevens uit de tabel, we verwerken andere manier, en dan zijn we laten doorgaan. Als we dat doen maken sommige template, sommige template is onze mening, en we zijn alleen maar door te geven de gegevens die moet krijgen. Niet alle data. Alleen de gegevens die we willen erin te komen. OK? Principe de gegevens na verwerking. Dus dit is het uitzicht, dit is de som template die we hebben, en dit alles doet, kunt u heb een beetje PHP naar uw mening. Het is niet zoals een no PHP in zicht. Je moet gewoon zeer minimale PHP in het oog, en je mag nooit bevragen naar uw mening. Je mag nooit praten om uw database naar uw mening. Dat is het grote verschil. Dus wat is hier aan de hand is, hebben we PHP dat is itereren door de rij. Dus in dit geval, aangezien we itereren door elke rij en renderen iets, dit was waarschijnlijk als een twee dimensionale array waar we hebben een aantal op rij dat is op zichzelf een array, omdat we itereren door het weer. En we zijn gewoon uit te printen de naam rij, eindigen het dan. U moet dit niet nodig hebt in de foreach. Ik heb nog nooit eerder gezien eigenlijk. Ik doe gewoon foreach. OK, dus dat is het uitzicht. Laten we eens kijken of we door kunnen lopen een beetje van uw pset. We hebben 15 minuten, dus ik weet zeker dat je jongens zou dat meer dan gewoon graag eindigt vroeg. Eens kijken of ik dit kan brengen. Dus ik weet niet hoeveel van jullie heb het gedownload en toch wat al niet, maar we hebben gebruikersnaam hier, en we hebben een aantal wachtwoord. En helaas, rechts Nu de database leeg, dus hebben we eigenlijk nodig hebben een database. Nou, dat is raar. Had niet verwacht dat. Technische fouten. Technische moeilijkheden. We hebben een aantal pset7. Cool. Dus, een ding dat je kunt doen is, met een query-- Ik zal een tabel te maken. Dus dit gaat worden users-- wat kun je hier wil doen, als we some-- Nu echt? OK. Uiteraard doe ik niet zo heet. Oh. Ik weet waarom. Omdat ik nooit gecreëerd mijn werkelijke tafels. Dus als u voor het eerst beginnen met een database, heb je natuurlijk moeten beslissen wat zijn de dingen die ik moet hebben in hier? Dus als we gewoon af te gaan onze data tafel hier, we hadden wat ID, welke kan gewoon blijven een int. En als we kijken hier, er is een cool ding dat-- Dus index. Als je primaire doen, zal het het het maken ding dat uw tafel wordt georganiseerd door, en het zal ook het uniek maken. Dus in dit geval, zullen wij het primair te maken, en ik ga deze naam te maken, dan gaan we gewoon maken het een varchar van net 26 letters, want waarom niet? En dan kun je naar opslaan, en vervolgens als je ziet, hebben we een aantal gebruikers hier. Dus als we wilden een doen plaatst, we konden het doen op deze manier, of als je wilde de praktijk met uw queries-- Oh boy. Ik heb dit niet altijd gebruikt in. Ik neem dit terug. U kunt deze bewerken op je eigen, hetzij gewoon door het handmatig invoegen van informatie met iets als, je kan een van deze te wijzigen als je wilde make-- Als u wilt plotseling te ontdoen van de naam, kan je er bij neervalt, kun je al die dingen te doen. Als u ooit uw tafel handmatig wijzigen, Ik stel voor het doen in phpMyAdmin versus proberen te achterhalen van de SQL queries in het algemeen. Wanneer u voor het eerst uw PSET beginnen, je gaat om hier in te werken, dus wennen. En dan wanneer je eigenlijk wilt om dingen in te voegen in uw table-- Ik vraag me echt af waar dat is, omdat there's-- Hier is het. Dat is wat ik wilde. Dus als je naar SQL, je kon daadwerkelijk te zien, zoals we hier zien, we hebben SQL queries. Dus als we iets wilden selecteren of als we iets wilden voegen, we kunnen insert te doen naar de gebruikers, toch? Ik denk dat je de backslash nodig. Een ding om te weten is, als je ooit gebruik van deze, moet u deze terug te gebruiken apostrof, die typisch zijn, als je op een Mac, recht boven tab. Dus een goede zaak om te weten. Je zou kunnen invoegen in gebruikers, en we hebben onze waarden, toch? Dus we hebben een waarde, en onze waarden in dit geval zou gewoon, we hebben alleen een ID, zodat we kon doen één als we wilden. Dat is raar. OK. Dus dat is net als een korte klein ding met SQL, maar het zou nuttig om daadwerkelijk kijken naar een aantal van de bestanden in hier. Dus ga naar downloads. Oh, geen downloads. Dus, gewoon een snelle walkthrough van wat er in elk van deze mappen. Het bevat, hoeven we alleen maar dingen dat configureer uw browser, we hebben deze constanten, en we hebben deze functies. Als u geïnteresseerd bent in een van hen bent, Ik raad kijken naar functies. Een van hen, dat is super handig, eigenlijk is dit hier, dump. Dus als je dit gebruiken, het zal eigenlijk alleen uitprinten welke variabele dat je het graag. Dus als je problemen hebt met het uitzoeken wat deze array eruit ziet, of wat deze data eigenlijk, hoe het is geformatteerd, Dit is een groot ding om te gebruiken. Vooral wanneer u een gebruiker met meerdere voorraad, dit gaat worden iets geweldig om te gebruiken. Omdat het misschien formatted-- zijn Ik weet in ieder geval voor mij toen ik dat deed Dit PSET werd geformatteerd op een manier dat ik niet helemaal verwacht. Dus ik probeerde over te herhalen het en probeert te manipuleren, maar ik heb niet echt begrijpen wat ik aan het doen was. Dus als je gewoon dumpen, het zal print het uit naar de browser, en je kunt precies zien hoe het is geformatteerd. Het zal meestal print het uit als een array met haar sleutels en haar waarden. Dus het kan er helpen. Het kan ook helpen om te maken zeker van zijn dat je eigenlijk bent grijpen de gegevens die je dacht dat je was. Dus als je net als, mijn tafel zeker zegt dat er een gebruiker met deze ID, maar als je naar het dumpen variabele, het is er niet, heb je natuurlijk weet dat het waar een fout gaat worden. Dit is een van de beste tools voor het debuggen, naar mijn mening. En dan is er nog een paar andere dingen hier, maar voor het grootste gedeelte, dat is het degene die ik wil uw aandacht vestigen op, omdat het erg nuttig. Publiek, wat we hier hebben is, dit is al onze CSS spullen. Dus CSS, fonts, onze beelden, wat al niet. Dit is allemaal spul dat je niet hoeft te wijzigen. Kunnen jullie denken als dit heeft dingen zoals CSS in de fonts, zou dit een model, of het oog, of een controller? Publiek: [onverstaanbaar] ALLISON Buchholtz-AU: Het zou meer van het oog, toch? Dit is de behandeling van alle dingen, hoe de dingen kijken. Dus als we dit hier te openen, zien we dat alles wat hier gebeurt is dat we iets teruggeven. OK? Dus zou dit heel erg kwalificeren als een weergave voor. Dus dit is gewoon het nemen van een aantal, Het roept een aantal portfolio.php die we hebben, en het is voorbij in de titel en de portefeuille. En het is gewoon renderen dat. Eigenlijk neem ik dat terug. Dit is een controller, omdat maken, vergeet niet, maakt het uitzicht. Dus portfolio.php in deze geval zou uw oog zijn. Sorry, jongens. Portfolio.php gaat worden uw standpunt, en dit zou net wees dan uw controller voor. En als we een kijkje nemen op deze laatste hier, sjablonen, sjablonen zijn al uw standpunten hier. Dus als we kijken, uiteraard zien we veel van HTML hier. Dus dit is gewoon laten zien wat je de login pagina eruit moet zien. Je merkt hebben we een aantal vorm groepen, moeten indienen. Hier is hoe je beslissen wat verschijnt daar. Je hebt een soort knop = "submit", en dan heb je wat je wilt om weer te geven in de knop. Dus dat is hoe je het zou maken te zien zijn als wat je wilt. En we zien hier hebben we een aantal gebruikersnaam, sommige wachtwoord en toen we eigenlijk hit Submit, het gaat om wat post, en het gaat om plaatsen aan wat? Wat is de controller voor deze visie? Toen we op submit drukt, wat is gaan heten? Weten we dat? Het is hier, dus login.php. Iets wat jullie zijn gaan implementeren. Dus je kunt altijd zien wat gaat worden geroepen nadat je geraakt Submit door deze eerste regel hier. Wat de vorm actie is. Wanneer dit formulier wordt ingediend, welke actie we ondernemen? We noemen login.php, en we noem het met deze methode van de post, die heeft het verborgen informatie. OK? Dus dit is uw visie, en dan is het duidelijk Als we naar login.php-- Hebben we het nog? Yeah. Dus als we hier zien, is dit heeft veel meer logica. Het is hier al onze PHP. We proberen om te zien of het was $ _GET, als het was $ _POST, dingen valideren, bevragen, al deze spullen. Dus dat zijn gewoon de drie verschillende dingen hier. je hoeft niet om dingen te veranderen. Je zult het maken van dingen in sjabloon, eventueel, maar wat HTML of styling van een van deze gaat, laat je hem gewoon als platte of zo ingewikkeld als je wilt. Sommige mensen krijgen echt in en maak wat pretty awesome websites. Je hoeft niet om dat te doen. Als je tijd hebt, het is echt een cool ding. Je kan prutsen met CSS en HTML en krijg je een veel beter gevoel voor het, maar voel me niet druk om. Er is genoeg voor je te doen op de back-end met de uitvoering van inloggen, en te registreren, en al deze dingen. Dus hopelijk dat helpt een beetje. doen jullie nog vragen over alles wat we hebben laten zien, alle andere middelen? Ik zal zeker al sturen mijn voorbeeld PHP-code aan jullie, en dan voel je vrij om te nemen afbeeldingen of wat van. Ook is het online. U kunt altijd gewoon kijken weer. Dus als dat is het, iedereen goed? Ja. Publiek: Ik wil gewoon te bevestigen, als we doet select in SQL, het ster betekent alles, toch? ALLISON Buchholtz-AU: Ja. Publiek: En dan, als je hoeft niet de ster hebben, als je wilt dat het nemen van een specifieke rij, dan zet je gewoon de naam van-- ALLISON Buchholtz-AU: De naam van de rij en wat je wilt dat je wilt dat de waarde van. Publiek: En dan de datum. ALLISON Buchholtz-AU: Wat je zoekt, ja. Op dezelfde manier, als je dat doet DELETE * van sommige tafel, zal het alles te verwijderen. Dus, * is gewoon een wild kaart voor alles. Publiek: OK. ALLISON Buchholtz-AU: Cool. Awesome. Nou ja, een leuk maandag, jongens. Ik zie je volgende week. Veel succes op je pset.