[Speel van musiek] ROB BOWDEN: Hi. Ek is Rob, en ek hoop dat jy gereed voorraad te sit in hierdie oplossing. Eerstens, laat ons 'n blik op registreer. So onthou dat hier Ons monitor om te sien of 'n vorm was gepos word aan hierdie bladsy. So die eerste ding wat ons gaan te doen, is om te gaan na die ander. En ons gaan te lewer die register vorm. So het die register vorm gaan te plaas register.php. En wat is dit aan die gang te stuur? Dit gaan 'n gebruikersnaam te stuur dat die gebruiker gaan vul, 'n wagwoord, en 'n bevestiging - die wagwoord weer getik. So nou wanneer daardie vorm gepos word aan register.php ons sal voer hierdie as. Kyk na hierdie as, ons is die eerste gaan die insette te bekragtig. Ons wil om seker te maak dat die rekening wagwoord was nie leeg is en dat die bevestiging eintlik ooreenstem met die wagwoord. Sodra ons het bewys dat ons kan eintlik registreer die gebruiker. Wat beteken dit? Wel, ons wil voeg die gebruiker in ons databasis. En dit is hoe ons sal dit doen. So ons gaan te voeg in die gebruikers tafel die velde gebruikers naam, hash, en kontant. Die standaard waarde van kontant gaan wees 10,000. En ons gaan om te slaag as gebruikersnaam, gebruikersnaam, deur die pos super globale dit is van die vorm ingedien word. En ons gaan om te enkripteer die wagwoord. So as dit opgevolg het, dan lei sal wees nie-vals. As dit misluk, dan het ons wil om verskoning vra. Iets het verkeerd gegaan. En wat kon verkeerd gegaan het? Wel, daar moet wees 'n unieke gebruikersnaam. En so het die navraag kan misluk het As die rekening reeds bestaan ​​in die tabel. So die veronderstelling dat dit was 'n unieke gebruikersnaam, dan moet ons gaan om navraag te gryp die ID van die gebruiker. Onthou dat die ID is Auto-verhoog van. En so as dit gebeur om te misluk vir 'n paar rede, dan wil ons vra om verskoning dat ons nie die ID kan gryp. Maar die veronderstelling dat dit nie slaag nie, dan Ons gryp die ID van wat die navraag teruggestuur, winkel wat in ons sessie - Daarom wil ons hierdie gebruiker deur aan te meld die stoor van die ID in die sessie super globale, en uiteindelik lei na ons portefeulje. En dit is dit vir register. Nou gaan ons aan te beweeg na kwotasie. So quote gaan hê 'n baie soortgelyke ingestel. Ons sien hier dat dit die kode wat ons gaan om uit te voer wanneer 'n vorm is gepos word aan hierdie bladsy. Maar eers moet ons eintlik ' daardie vorm te lewer. So 'n blik op kwotasie vorm, watter gebiede is daar? Ons sien dat al quote het is 'n enkele teks boks met die naam simbool. En so wanneer kwotasie vorm gepos te quote.PHP ons nou gaan hierdie kode uit te voer. En die enigste veranderlike in ons post super globale gaan simbool te wees. Ons bevestig dat om seker te maak dat hulle eintlik gepos word om die simbool. En as hulle het nie, sal ons sê jy moet 'n simbool. Aanvaarding van hulle het 'n simbool, ons kyk op daardie simbool. Onthou nou dat look up dalk ' misluk sedert, wel, miskien was dit nie 'n geldig simbool om mee te begin. So as dit opkyk terugkeer valse, ons wil om verskoning vra dat die simbool is nie gevind nie. Sodra ons het gevind dat die simbool, nou is ons kan die quote.PHP sjabloon lewer. Wat beteken dit lyk? Dit is net gaan om te druk dat 'n aandeel van wat ook al die aandele se naam was is die moeite werd, ongeag die voorraad prys is. Nou hoekom gebruik ons ​​hierdie htmlspecialchars funksioneer? Dit is omdat die voorraad naam en simbool kan eintlik bevat spesiale karakters wat nie geïnterpreteer word as HTML. Alle reg, sodat dit is dit vir kwotasie. Nou wil ons kyk na artikels en portefeulje. Maar eers moet ons eintlik nodig het om te bou die portefeuljes tafel. Hier is hoe ons gaan om dit te doen. So kom ons neem 'n blik op die struktuur. En ons sien dat die portefeuljes tafel gaan 'n ID te hê. So wat gaan aan die gebruiker se wees ID dit is die plaas van die aandele. Ons het 'n simbool, wat gaan wees die simbool van die maatskappy wat ons is die plaas van die aandele vir. En dan aandele is die aantal aandele wat word ingevoeg. So onthou dat volgens die pset spec, Ons spesifiseer dat ID en simbool - Ons check indekse, ID en simbool is die primêre sleutel. So 'n gebruiker-ID en simbool skakelpaar moet verskyn net 'n enkele tyd in die tabel. Nou laat ons kyk na die kode. So nou jeug gaan al te gryp van ons portefeulje inligting en vertoon dit aan die gebruiker. So die eerste, ons gaan die kontant aan te gryp dat die gebruiker het tans uit die kontant tafel. Onthou, die soektog is altyd iets 'n verskeidenheid van skikkings om terug te keer. So selfs al het ons net gekies kontant van 'n enkele ry, het ons nog nodig het om te gryp wat kontant deur kruip in die nulde indeks van rye en gryp die kontant-indeks. So nou wil ons al die te kies inligting uit die portefeuljes tafel wat relevant is vir die oomblik aangemeld gebruiker. Ons is natuurlik nodig om dit te bekragtig wat eintlik daarin geslaag om, wat ons moet altyd doen wanneer ons navraag. Sodra ons het al van daardie inligting, die pset spec weet ons dat ons moet dit doen om mooi te stoor al die inligting in hierdie posisies skikking. So ons herhaling oor al die portefeulje-inligting, kyk op die voorraad wat verband hou met elke ry in die portefeulje-inligting, en dan stoor in die posisie verskeidenheid van die naam, prys, aandele en simbool al verband hou met die voorraad. En uiteindelik, ons gaan te lewer portfolio.PHP, verby in die bedrag van kontant wat ons tans het, die posisies skikking wat ons net gebou, en die titel van hierdie bladsy wat portefeulje sal wees. Kom ons neem 'n blik op portfolio.PHP. En ons sien dat die groot interessante deel is van hierdie lus. So ons herhaling oor die posisies skikking, die skep van 'n tafel, waar die tafel - ons mense aan elke ry met die inligting wat ons het binne-in die posisies skikking. Weer, moet ons htmlspecialchars te gebruik in die geval van hierdie simbool of die naam bevat HTML karakters. En hier is ons die prys te vermenigvuldig en die bedrag van die aandele wat ons het in orde te kry hoeveel dit is tans die moeite werd om die gebruiker. En dit is dit vir portefeulje. Nou kan ons 'n blik op die verkoop te neem. So verkoop gaan terug na die gaan formaat wat ons gehad het in register.php. Ons sien dat 'n vorm gaan te word om hierdie bladsy gepos. Maar eers, toe ons die bladsy laai, ons gaan om dit te doen. So, wat is dit? Wel, ons kan net die verkoop bladsy 'n enkele teks boks wat die gebruiker gaan hierdie simbool wat ons wil verkoop. Maar ons gaan 'n bietjie meer slim en ons gaan 'n druppel te hê af wat die gebruiker toelaat om te kies werklike simbole wat hulle reeds het. So is ons om die gebruiker se portefeulje. Ons gaan om te kies uit portefeuljes al die simbole wat die gebruiker tans die oomblik aangemeld gebruiker. Maak seker dat daarin geslaag. En nou gaan ons te loop oor die teruggekeer inligting, net gryp elke simbool, en om dit te stoor in hierdie simbole skikking. En nou is ons gaan lewer die verkoop vorm. So die verkoop vorm gaan net 'n drop down menu, 'n uitgesoekte. En elke opsie in die verkoop vorm gaan net die druk van die simbool dat ons gryp uit die portefeuljes tafel. So die verkoop vorm gaan stuur terug na sell.PHP. Kyk na sell.PHP, dit is die kode wat gaan om uit te voer wanneer ons voorlê na hierdie bladsy. Ons wil om te bevestig dat die gebruiker eintlik ingeskryf vir 'n simbool. Nou die veronderstelling dat hulle gedoen het - so nou wil ons om te bepaal hoeveel deel die gebruiker is eintlik verkoop en hoeveel kontant die gebruiker moet kry vir die verkoop van dat baie aandele. So ons gryp die getal aandele wat die gebruiker vir hierdie simbool. Ons is op soek tot in portefeuljes vir die gegee gebruiker en die gegewe simbool. Nou maak seker dat wat eintlik terug 'n ry. Want as dit gedoen het nie, die gebruiker nie eintlik het daardie simbool te verkoop. Die veronderstelling dat hulle nie dat die simbool, Ons wil hê dat die aantal aan te gryp aandele wat hulle het. En nou is ons wil om te kyk hoe hoeveel elke aandeel werd is. So het ons die opkyk funksie. Ons is op soek na die waarde van die simbool. Veronderstelling dat die voorkoms up opgevolg het, nou ons gaan eintlik werk al die inligting. So ons wil verwyder uit portefeuljes die aandele wat ons verkoop. Ons wil hê dat die gebruiker by te werk bedrag kontant. En ons is die opdatering dit met aandele tye die aandele prys - so dit is hoeveel geld die gebruiker net gemaak. En nou wil ons ons geskiedenis te werk. So ons het nie 'n blik na die geskiedenis tafel is nie. So ons sal terug kom. Nou uiteindelik gaan ons te lei terug na die portefeulje. Nou kom ons neem 'n blik op die koop. So, koop moet mooi wees soortgelyk aan verkoop. Ons sien dat ons weer gaan om te kyk om te sien of ons te stuur na hierdie bladsy. Die veronderstelling dat ons nie, ons is gaan die koop vorm te laai. So, wat nie die koop vorm lyk? Ons sien hier is dit net 'n gereelde vorm wat gaan stuur terug na buy.PHP. En dit gaan 'n simbool te hê wat die gebruiker betree, die aantal aandele wat die gebruiker wil koop van daardie simbool, en dit is dit. So wanneer ons ons terug na buy.PHP, ons is nou gaan hierdie kode uit te voer. Ons wil weer te bevestig dat die gebruiker aangegaan om iets geldig is. So hier is ons om seker te maak hulle eintlik ingeskryf vir 'n simbool. Hier is die maak van ons seker maak dat hulle eintlik ingevoer aandele. En hier is ons om seker te maak dat hulle aangegaan om 'n heelgetal vir aandele, so hulle nie probeer ABC aandele te koop. Nou wil ons kyk om die prys van die simbool so weet ons hoeveel geld ons moet aftrek van die gebruiker. Nou sal ons kies hoeveel kontant die gebruiker eintlik het en maak seker dat wat daarin geslaag. Hier is ons gryp die kontant. En nou is hier, ons is seker te maak dat die gebruiker het genoeg kontant. So as die aantal aandele van die gebruiker wil keer om te koop die prys van elke van die aandele is groter as die bedrag kontant wat ons het, dan is die gebruiker kan dit nie bekostig nie. Veronderstelling dat die gebruiker het genoeg kontant, nou wil ons in te voeg in die gebruiker se portefeulje. Wel, ons sal voeg in die gebruiker se portefeulje as dit gebeur te wees om die eerste keer dat die gebruiker is te koop daardie spesifieke simbool. Maar wat as hulle reeds gebeur sommige Apple voorraad te hê? Wel, nou is ons gebruik maak van die op duplikaatsleutel update verklaring. So dit is hoekom ons vroeër aangedui dat ID en simbool moet 'n gesamentlike wees primêre sleutel, so dat as ons probeer om te Voeg 'n ID en simbool wat reeds daar, ons sal net werk om die aandele van die nuwe aandele wat te sluit die gebruiker is te koop. Nou wil ons die bedrag van om te werk kontant wat die gebruiker het nie, aangesien hulle net spandeer 'n bietjie geld op hierdie aandele. En uiteindelik, sal ons werk Die geskiedenis tabel weer. Watter, weer, sal ons kyk op in 'n tweede. En uiteindelik het ons sal lei terug te portfolio.PHP. So kom ons neem 'n blik op Die geskiedenis tafel. Nou onthou dat die geskiedenis tafel veronderstel om tred te hou van al die koop en verkoop dat alle gebruikers, nie net die huidige getal aandele wat die gebruikers het, en dit is wat portefeulje is vir. So ons hou van die gebruiker wat koop of te verkoop, of hierdie spesifieke transaksie was 'n koop- of 'n verkoop, die simbool wat die wese gekoop of verkoop word, is die aantal aandele dat ons te koop of te verkoop, die prys van 'n enkele aandeel wat die wese gekoop of verkoop word, en uiteindelik, die tyd dat dit te koop of te verkoop plaasvind. En dit is al oor die geskiedenis inligting wat ons nodig tred te hou van. So wanneer ons kyk na verkoop, het ons gesien dat ons inbring in die geskiedenis verkoop, as die vraag of ons is te koop of te verkoop, Die huidige tyd stempel, en die huidige gebruiker die simbool wat die wese verkoop, die aantal aandele wat verkoop, en die prys van die voorraad in hierdie tyd. Net so, in te koop, sal dit lyk amper dieselfde. Die enigste verskil is in plaas van die verkoop, ons koop. So in koop en verkoop, ons inbring in die geskiedenis tafel al die koop en verkoop wat gebeur. So al history.PHP moet doen is om te gryp die inligting uit die geskiedenis tafel, maak seker dat dit opgevolg het, en lewer daardie inligting. So kyk na die history.PHP sjabloon, die interessante inligting is reg hier. Ons herhaling oor al die transaksies, drukwerk of hierdie was 'n koop of te verkoop, opmaak datum, tyd wat ons gemaak het om hierdie transaksie. Onthou ons moet htmlspecialchars te gebruik op die simbool, net in geval. En ten slotte, die regmaak van 'n aantal aandele wat gekoop is en die prys van 'n enkele aandeel op daardie tydstip. En wat gee al die geskiedenis inligting wat ons nodig het. En dit is dit vir hierdie pset. My naam is Rob, en hierdie was CS50 Finansies.