[Powered by Google Translate] [Walkthrough Problem nastavite 7] [Zamyla Chan] [Harvard University] [To je CS50] [CS50.TV] Pozdravljeni vsi in dobrodošli na podlagi obiskov, 7 CS50 finance. Zdaj smo uradno storiti vse psets v CS50, in smo ravnokar končali s še eno, ki se bo zabavno izvajanje spletne strani, kjer lahko uporabniki prijavite v CS50 finance ter nakup in prodajo zalog. Danes bomo imeli nekaj orodja, ki so nam na voljo. Bomo lahko govorili o dovoljenjih. Kadarkoli imate spletno mapo, boste želeli, da uporabnikom omogočajo izvajanje določenih datotek pa tudi drugih, ki so pravkar prebrali, Tako si bomo pogledali v dovoljenji in kako lahko nastavite teh. Potem gremo pogledati v PHP, HTML in SQL kodo. Prvič, dovolilnice. Ko ste v terminalu v določenem imeniku, potem kaj želite storiti, je, da želite zagnati ukaz chmod. To je sledilo bodisi črkami ali številkami ustreza temu, kar si v bistvu želijo videti svet, sami ste videli, itd Na primer, ko imate mapo, potem hočeš, da mapa za poganjanje vsakogar, ki ga vidi, kaj bi naredil, je, da bi lahko zaženete ukaz chmod + x in nato ime mape. Ko imate datoteko, na primer datoteke CSS ali slikovne datoteke - kot JPEG in rastrske slike, takih stvari, ali katere koli kode JavaScript - hočeš, da se da brati za vsakogar, Torej, kaj morate storiti, je lahko uporabite nadomestni - ki je zvezdica - v bistvu navaja v mapi CSS - vse, kar je v tej mapi -  Jaz bom rekel, da se dogaja, da se da brati za vsakogar. Pri dovoljenjih, ko bomo uporabili kratico, bomo lahko tudi številke namesto tega. Torej, vidite, da je na koncu, ko kaj hočeš biti izvedljiva - ki je predstavljal številka 1 - nekaj, kar je mogoče odčitati število 4 in potem - pisati je številka 2 - in tako v bistvu, če želite kombinacijo tistih, potem ko jih dodate. Če želite nekaj, da se da brati, pisati in izvršljiva, potem bi dodali do 4, 2 in 1, in da bi vam 7, potem, ko ste mapo, ki jo želite, da je to izvedljivo za vsakogar - kot tudi bralne in pisalne - potem bi ta 7, 1, 1. To bi bilo za vas 7, nato 1 za druge ljudi. Če imate spec, boste dejansko določi, katere mape in datoteke, ki morajo biti chmod-ed posebej. Na primer, če imate mape - to so 7-1-1 - če imate fotografije ali HTML, CSS, JavaScript, Nato so se bodo 6, 0, 4 - ali 6, 4, 4 - in potem PHP datoteke bo 6, 0, 0. Ideja za to je, da uporabniki ne bi dejansko videli vašo kodo PHP, ampak lahko videli izhoda. Čudovito! Selitev v PHP. Preprosto, kadar želite datoteko PHP, datoteka pripono. Php. Prav tako lahko HTML mešati z PHP kodo. Če imate datoteko HTML, na primer, potem ga lahko postavite v levi kot, vprašaj, php - da vaš php kodo - in nato zaprite, da z drugo vprašajem in pod pravim kotom. Spremenljivke v PHP so veliko lažje obravnavati kot spremenljivke v C Vsaka spremenljivka šele začne z znak za dolar pred njo, in oni slabo vnesli. To pomeni, da vam ni treba skrbeti o nekaj enako vrvico ali celo število. Lahko pa preprosto reči, to je moje ime spremenljivke in potem je to njegova vrednost, tako da se bo lažje obravnavati tam. Druga stvar je, da PHP omogoča uporabo asociativnih nizov. Lahko samo preprosto določiti niz, kot bi jih v C z besedami, znak za dolar, ime vašega niza, je enaka, in nato v oklepaju so v bistvu samo seznam vrednosti vseh elementov v matriki. Toda v PHP, kaj lahko naredimo je določiti bistvu - to je nekako kot hash funkcijo. Določite lahko indeks - kaj boš, da ga pokličete - in potem, ki ustreza vrednosti. Če ste dejansko preide v = 1, b = 2, c = 3, potem bi se vaš niz v indeksu dam 1. To vam bo pset ogreje z nekaj PHP v rubriki vprašanja, nato pa se potopite v CS50 finance. Imamo nekaj - imamo nekaj funkcij, v bistvu, izvajati na tej spletni strani. Želimo, da se omogoči uporabnikom, da se registrirajo na naši spletni strani z uporabniškim imenom in geslom. Želimo, da bi lahko pogledate ponudbo, in potem bi izpisal ime tega citata, kot tudi trenutne cene, ki jih je na. Želimo, da bi lahko videli v svojem portfelju vse delnice, ki so jih odkupile doslej. Želimo si tudi, da bi jim omogočili nakup zalog in jih prodajajo. In potem končno, želimo, da bi lahko ogledate zgodovino za vse transakcije, ki ste jih opravili. Potem, na koncu, ko boste že izvaja vse to, potem ste prosti za izvedbo eno dodatno funkcijo. Šli bomo v njih. Tisti, ki so lahko bodisi omogoča uporabnikom, da dobijo dodaten denar z vložitvijo dodatnega denarja, ali bi jim dovolite, da spremenite svoje geslo, ali kaj podobnega, pošlji jim potrdilo, ko nakupa ali prodaje zalog. Tam je omejen seznam funkcij, ki bi lahko sami izvajajo, tako da je zadnja tam. Ker je spletna stran, fantje imajo tudi veliko svobode, da ga prilagodite. Mi ne zagotavljajo nekaj kode CSS, pa si zagotovo prosto poteg, da bi bilo videti lepše, vendar je osnovno, je osnovna funkcionalnost tako da se vedno sklicujejo na spec o tem, kaj se dejansko morali vključiti tam. Po določilu, da bomo lahko s pomočjo naprave, kakor tudi strežnik. To bo gostil našo spletno stran za nas, na svojem lokalnem strežniku. Če sledite tem navodilom, razširite in pset 7 distribucijsko kodo v virtualni gostiteljico / lokalne mape gostiteljice,  potem lahko preprosto obiščite http://localhost/ v Google Chrome v napravo, in potem bi dosegli kodo, ki ste jih pisno pset 7. Pset 7 prihaja z kup kode distribucijskega in upam, we've - skozi vse psets pred tem - nas navajeni na obravnavi z oznako distribucijskega razumeli, kaj so funkcije že na voljo, in kako bi morali biti sposobni uporabiti teh in drugih funkcij, da bomo za izvedbo. V tem primeru imamo 3 mape. Imamo HTML mapo, ki vključuje mapo, in mapo Predloge. Kaj bomo, da se delaš s tem pset je nekako loči razmišljanje - programiranje mišljenje - v PHP kode z dejansko vizualnega vidika. Bomo eno datoteko PHP, ki počne vse misli, zapisano v bazo podatkov, natisne stvari, če ima izkazi - stvari, kot je ta - in potem, da prenese podatke v naše datoteke predloge - ali template.php datoteko. Kaj storiti, je, da bo prebral podatke, nato pa ga bo izpisal. Mi lahko obravnavajo predloge za "neumno", v tem, da ne res jih želite da se delaš veliko dela pri izračunu stvari. Želimo, da naši nadzorniki za to. Malo o tem - pa si oglejte nekaj distribucijskega kode. Tu imamo index.html datoteko, in to je precej prazna. V bistvu kaj počne - se pravi, dobro, bom zahtevajo configuration.php datoteko. Ne vidimo, da je v redu, vendar je v bistvu poklical configuration.php datoteko in izvajanje tega. Potem je pa to, da se bo zaradi njih portfelja. Rendering je funkcija, tako da če smo v krmilniku, Poklicali bomo omet, bomo dati datoteko, nato pa so podatki, ki smo na prehodu v, tako, da bo to poklical portfolio.php-naravi pri prehodu iz teh podatkov, tako da lahko portfelj ukvarjati s tem. In zdaj, tukaj imamo login.php obrazec.  To je regulator, ki v bistvu skrbi za sečnjo palcev Tukaj pa preveri, če je obrazec, ki do te datoteke in se ukvarja s potrjevanjem vlogo. Poiskali bomo v tej funkciji opravičujem. Ko smo želeli natisniti sporočilo o napaki, Opravičujemo se bomo uporabili in da bodo preusmerili uporabnika na določeno stran da bo izpisal posebno sporočilo o napaki, da smo pokazal. Nadaljevanje bo zbirko podatkov - Bomo dobili v več o tem kasneje. Potem boste videli, da sem dol, če je bila vloga ni predložena, potem postane obrazec. To pomeni, da gre za login_form.php, tako da je pogled na to. Login.php je pravzaprav, kjer smo videli HTML, ki se ukvarjajo z dejanskim vizualnega vidika. Tukaj imamo možnost vnosa oznake za uporabniško ime, geslo za vnos, kot tudi gumb Pošlji. To je pravzaprav, kjer je vizualni vidik in oblika HTML se bo odločilo. Tukaj pa pravi, da bo treba predložiti do določenega metodo, imenovano post. Pridemo do razlike med metodami - objavite v primerjavi priti, tam je tudi nekaj, kar ti dal - bomo dobili v teh metod kasneje, vendar zaradi tega pset, Jaz bi zelo priporočamo, da uporabite post. Vemo, da v bistvu, ko je predložen ta obrazec - od login_form.php, - potem bo šel v akciji - login.php, - v bistvu mimo vseh teh parametrov iz teh obrazcev v login.php. Rezultati, pridobljeni v tej obliki so navedene v tem po asociativni array. Kazalci različnih elementov v matriki po so točno tisto, ki jo določite tukaj. Pravite, da je ime tega vhoda je ime. Ime tega 1 z geslom. Prav tako boste videli ime kot indeks povezovalne matrike tam. Če gremo na mapo vključuje imamo to funkcije datoteko, ki se bo zelo koristno. Vse te funkcije se izvajajo za vas. Ni vam treba posebej izvajalo katerega od teh sebe, vendar bomo zelo koristno. Imamo opravičujemo, ki je, kot sem že dejal, bo v bistvu izpisal sporočilo o napaki za vas na določeno stran - apology.php. Potem imamo smetišče, tako da če pokličeš smetišče nato pa preide v spremenljivko, potem vas bo popeljal na stran, ki bo prikazal, da je spremenljivka za vas. Potem smo logout, ki bo v bistvu na koncu določenega uporabnika sejo. Iskanje se bo koristen. Ker imamo opravka z narekovaji in zalog, da bomo lahko - in to je v bistvu v realnem času. Moramo vedeti, kaj te zaloge vrednosti, tako da imamo funkcijo iskanje, ki se ukvarja z dokumentacijo Yahoo zalog. Ko pogledaš gor določen simbol zalogi, se bo vrnil k vam stalež simbol kakor tudi ime in trenutne cene te zaloge. To je funkcija za iskanje. Potem imamo opravka z mySQL, Tako bomo se želijo izvesti nekatere poizvedbe na naših podatkov SQL. Imamo poizvedbe za reševanje - na vrsto abstraktnih del tega ven. Gremo mimo v celotnem nizu naše poizvedbe SQL - in vse spremenljivke, ki gredo v njem - in kaj to počne, je dejansko izvajanje, da je za nami. Namesto, da bi napisal vse to ven, da vsakič, ko želite, da se pozanima - jih dobili vse rezultatov iz te poizvedbe - potem lahko pokličete na poizvedbo funkcijo, in ga bomo vrnili k vam - glede na to, kaj boste uporabljali za vašo poizvedbo - Verjetno vrstica vse rezultate, ki se ujemajo s poizvedbo ali podobno. Več o tem kasneje, čeprav. Končno smo preusmeriti, ki, kot že ime pove, vas preusmeri na drugo stran. In potem imamo omet, ki ga bomo lahko kličem nekajkrat. Ko ste v upravljavca, pokličite postane v predlogo strani nato pa preide v vrednosti, ki bo nato obravnavajo predloge. Te vrednote so verjetno bo, da se ukvarjajo z vrsto proizvodnje, ki jo želite , ki bo prikazana na vaši predlogi strani. Ok. To so funkcije, in tam je veliko več za to distribucijo kode. Spodbujam vas, da gredo skozi to in raziskujejo sami. Prav tako bo verjetno spec sprehod skozi nekaj drugih elementov distribucijskega kode. Tu je povzetek funkcij najdemo v functions.php. Ok. Prva naloga je, da uporabnikom omogočajo registracijo na spletni strani. Zdaj pa je prijavni obrazec na spletni strani, in se vam z nekaj uporabnikov z gesli. Lahko uporabite te uporabniškega imena in se prijavite, vendar želite, da bi ljudem omogočili, da svoje uporabniško ime in se dodajo na spletni strani. Postavitev za prijavo je precej podoben prijavnega obrazca, razen uporabniško ime ni na že obstoječe, in uporabnik mora tudi zagotoviti novo geslo in potem ponavadi imamo geslo potrditev. Ko uporabnik vhodi vse te informacije, jih želimo dodati v naši bazi uporabnikov. Bomo imeli baze - baze SQL - da bomo reference. V tej bazi podatkov, bomo imeli tabelo z vsemi uporabniki ki vsebuje njihovo ime, geslo in tudi koliko denarja imajo. V registru, želimo, da bi lahko vnese te podatke. Želimo, da se prikaže, da je obrazec. Želimo zagotoviti, da njihovo geslo - da so vstopili 1, nato pa tudi, da so gesla tekmo, ko so ga vnesite dvakrat. Po vsem, kar se izvaja - ob predpostavki, da se preveri te napake - potem želimo dodati tiste uporabnike, da naši bazi podatkov. Nazadnje, ko ste registrirani, to je zelo priročno, če vam ni treba ponovno prijaviti ko ste registrirani, Tako se bomo, da jih prijavi na spletno stran, če ste registrirati uspešno. Prva naloga je, da se prikaže obrazec, in to se dejansko dogaja, da je - ves ta proces registracije se bo po vzoru zelo natančno po prijavi razen namesto login.php imate morda register.php. Namesto login_form.php--ki je predloga - Boste morali registrirati obliki. Boste želeli dodati še eno področje - geslo Potrditev polja - ne le na eni uporabniškim imenom in geslom eni. Nato smo želeli preveriti, ali so gesla tekmo ali so prazne. Imamo regulator - register.php--ki se dogaja, da skrbijo za početje te preglede. Ko je obrazec, ki prek po metodi potem so vse te spremenljivke, zajete v poštnem matrike. Hočeš, da poskrbite, da po matrika vrednost indeksa na geslu ujema s potrditvijo elementa. Hočeš, da poskrbite, da niso prazni in želite, da se prepričajte, da so vsi isti. Ena stvar PHP priročno je, da nam ni treba uporabljati niz primerjavo več. Mi lahko uporabite enaka, je enaka operaterja  Za preverjanje, ali so strune enaka drug drugemu. Za ravnanje z napako, boste želeli, da se opraviči. Se opravičujem, preprosto klic funkcije  in nato določite vrsto sporočila, ki ga želite izhod. Nato želite dodati uporabnika v bazo podatkov. Do zdaj je vse, kar sem počel, je le lokalno, ki se ukvarjajo z rezultati obliki. Zdaj smo dejansko želijo, da jih dodate na naši bazi podatkov. Za to smo najprej želeli zagotoviti, da ime ni prazen. Razumite, da je na spletni strani, ne morete imeti več uporabnikov z istim imenom, tako da boste želeli, da poskrbite, da ko nekaj vstavili v zbirko podatkov - vstaviti novega uporabnika - potem ne boste dobili trk med obstoječim uporabniškim imenom in uporabniško ime, ki si prizadeva za oddajo. Za tem, ko ste izvršiti poizvedbo - vstavljanje določen uporabnik s svojim geslom in začetno višino denarnih sredstev - ko praviš, da je izraz, potem bo MySQL dejansko vrne false, če ne. Struktura uporabnikov je taka, da je uporabniško ime edinstvena vrednost, tako da ne more imeti več kot eno. Ko poskusite vstaviti novo vrstico z imenom, ki že obstaja, da se bo to vrne false - kot logično vrednost false. Zahtevna stvar tukaj je, da boste želeli, da preverite, ali je rezultat posledica vaše vprašanje. Če to ne uspe, potem boste želeli preveriti pri trojni enaka operaterja. To se dejansko dogaja, da preverite, ali je napaka ali ne, ker je v samo nekaj preprostimi enaka, enaka, bi bilo res, če se vrstica, ki je bila prazna. Rezultat okvare, če je trčenje med imeni je dejanska vrednost false. Tukaj je, kako bi se lahko vstavite v bazo podatkov. Tu je izraz, ki bi ga vodijo nujno v SQL. Ena stvar je, da lahko dejansko šel na spletne strani, ki upravlja vaš zbirke podatkov SQL in igral je z vstopom ročno bodisi vrednosti ali vrstice. To bo oddajala kaj SQL izhod. Prav tako lahko vodijo SQL ukaze v zbirki podatkov  in potem vidim, kaj bi lahko bilo sintaksa, in nato pretvorijo v poizvedbe funkcijo, ki jo imamo v pset 7, , ki se bo zelo podobna vprašanja, ki jih dejansko vodijo. Če bi želel vstaviti novo vrstico v moji mizi uporabnikov, potem bi določite vložek na uporabnike, ki je ime moji mizi. Potem sem navesti imena stolpcev. Potem bi zagotovila vrednosti, skupaj z mojim geslom. Gesla v naši tabeli uporabniki niso shranjeni le kot niza. Ti so shranjeni v šifrirani različici tako da boste želeli zagnati funkcijo grobnico na dejansko gesla, in da bo dal pravo vrsto skladiščenja za niz uporabnikom. Tek bo to vstaviti novo vrstico v tabeli uporabnikov. Za spopadanje s poizvedbo funkcijo, Pred C smo uporabili znak za odstotek kot ogrado. Podobno je enak koncept ogrado tukaj velja. S poizvedbo, ki ste jo določili celotno poizvedbo razen kadar imate opravka s spremenljivkami, kot svoj vložek v poizvedbi potem namesto da jih dejansko dajanje v notranjosti - kot takrat, ko smo imeli printf v C. izjave Mi bi dal niz in nato ogrado tam, potem pa po vsaki vejica, navedite, katere spremenljivke bomo imeli. Tu bomo uporabljali znak vprašaj, kot je naš ogrado nato pa preide v vsako spremenljivko, oziroma da za ograde - če bi te spremenljivke iti. Torej, tukaj bi se najprej vprašaj se nadomesti z dejanskim uporabniškim imenom potem je drugo vprašanje znamka z geslom. Potem končno, ko ste jih registrira in jih dodajo v zbirko podatkov, potem boste želeli, da jih prijavi v spletno stran. Imamo neke vrste super svetovnega spremenljivke, imenovano sejo. Zasedanje traja določeno id, in da ustreza id uporabnika, ki je trenutno prijavljen Kaj boste želeli storiti, je najti kakšno je njihovo uporabniško ime je in nastavite, da se seje id id, kot da se posebna uporabnikov. Funkcija, ki boste želeli uporabiti, je tukaj SQL ukaz , ki bo prinesla zadnjo vstavljeno številko id od svojega mizi. Potem se bo klic vrstic - it'll pokličite id - it'll dodelite ime za številko, ki jo vrne. To bo poklical, da je id. Zdaj smo končali knjigo, in gremo lahko naprej, da citiram. Citiraj uporabniku omogoča vnos imena določenega staleža, in potem bomo vrnili lastnosti te zaloge. Kaj boste želeli storiti, je, da sem imel krmilnik in nekatere predloge. V tem primeru bomo imeli upravljavca, ki se dogaja, da stori vse za razmišljanje za nas. To se dogaja, da pogledate simbol in nato preide v vrednosti do predlog, ki bo izpisal. Bomo imeli 2 predloge tukaj. Mi boš moral 1 predlogo, ki določa obliko, v kateri so uporabniki tekoč vnos imena zalogi - ime deleža. Potem bomo tudi dogaja, da želijo drugo predlogo, ki prikazuje te vrednosti. Si lahko ogledate v prijavi kot primer, kako bi lahko imela obliko, ki sprejme vhod, razen tu, smo le želeli 1 polje. Ne želimo, da uporabniškega imena in gesla polje. Hočemo samo 1 besedilno polje, ki omogoča uporabniku, da vložek ime določenega staleža. Potem želite poslati te podatke - ko ste pogledal ta stalež - da quote_form.php. Iskanje se bo vrnil simbol parka, ime in ceno. Tisti, ki se nahajajo znotraj asociativni array. Poišči lookup funkcijo znotraj functions.php za več informacij o vrnitvi vrst teh. Čudovito! Torej na koncu boste želeli prikazati borznih informacij. Boste verjetno želeli prikazati - boš želijo dostop do teh spremenljivk. Ko imate cene v spremenljivko - kot tudi imena in simbola - potem boste želeli prikazati tiste v vaši predlogo strani. Ta model bi lahko imenovali stran show_quote.php ali kaj podobnega. Vaš quote.php strani bi bila zaradi razstavno ponudbo in nato preide v vseh teh vrednot. Nato v vašem php strani, ste dejansko natisniti tiste vrednote, na vidiku HTML strani. Vi samo uporabo funkcije tiskanja in se peljemo v ceno. Obstajata 2 načina - lahko ga nato združite z operaterjem dot, ali pa uporabite ogrado. Uporabniki sčasoma se bodo nakup in prodajo zalog. Želimo, da se jim na nek način vidi vse zaloge, ki jih imajo trenutno. Gremo na klic, da je njihova portfelja. Portfolio, bi verjetno za vsakega uporabnika, vsebuje kup vrstic navedbo vrste deleža, ki ga imajo, in nato, koliko tistih, ki jih imajo. Naše obstoječe tabele - zdaj imamo uporabniki tabelo v naši bazi podatkov. Ta vsebuje uporabniškega imena, kot tudi njihovo geslo in koliko denarja imajo. Ni pravi način za shranjevanje vseh svojih zalog v to. Saj ne, da bomo lahko vstavili nove stolpce za vsak stalež. To bi bilo zelo, zelo dolga vrsta, saj imamo neskončno količino vrst zalog, da bi lahko imeli. Torej, namesto, kaj bomo naredili, je v isti zbirki podatkov, bomo imeli uporabniki mizo, potem pa bomo tudi imeli portfelja mizo. Portfelj miza bo zagotovo povezana s tabelo uporabnikov, temveč bo portfelj tabela strukture imajo borzne informacije, koliko delnic tega staleža mora uporabnik, kot tudi uporabnikov zlasti id številko. Imate uporabnikov tabelo, ki ima id, kakor tudi uporabniško ime, se hash - ki je geslo, šifrirano geslo - nato se znesek denarja imajo. Identifikacijska številka bi bila povezana z id številko iz portfelja. Portfelj bi samo še simbol parka, kot tudi delnice - število delnic tega staleža, da ima uporabnik. V tej tabeli portfelja bi morali v bistvu vse delnice v lasti vseh uporabnikov na spletnem mestu. Kasneje, šele določiti nekatere uporabnik delnic - samo njihov portfelj - bi pridobivanje vrednosti iz tabele vašega portfelja, kot to id številka je značilna za tega uporabnika. Ko prikažete portfelj, boste želeli prijaviti vsako zalog v portfelju uporabnika. Boste želeli, da poročajo o številu delnic in trenutno vrednost teh delnic. To je sedanja vrednost teh delnic ni shranjen v tabeli portfelja ker to se dogaja, da je treba posodobiti - na minimum - vsak dan z Yahoo. Da bi dobili te informacije, ne morete reference, da iz vašega SQL poizvedbi. Kaj funkcija zagotavlja, da je z nami? Kaj funkcijo bo dobil ceno? To je iskanje, tako da bo z uporabo lookup na določen simbol vam veliko informacij. To ti dam 3 informaciji - ime, simbol, kot tudi ceno. Ko lookup določen simbol, potem lahko dobiš cene in potem lahko uporabite ceno, ki se prikaže v vašem portfelju. Portfelj je treba tudi prikazati uporabnikovo trenutno stanje gotovine. To polje je shranjena v tabeli uporabnikov. Potem se spomnimo, kako smo v bistvu bi morali - da imamo različne vrste PHP datotek. Bomo imeli krmilnik, ki v bistvu naredi vse razmišljanje za vas. In potem imamo predloge, v katerih se ukvarja s predlogo prikazovanje podatkov. Moraš razmišljati o tem, kaj spremenljivke bo regulator morali vzeti noter Če imamo opravka z portfelja, ki realizacij vsako ime, simbol, in delež številko, kot tudi trenutna cena staleža, potem boste želeli, da bi našli nek način dejansko potujejo - lahko prenese v vrsto vrednosti, ki ustrezajo tem. Pojdimo v zgled, kako lahko pridobite vse zaloge v lasti posameznega uporabnika. To ne gre - še - s ceno staleža. Kaj bi to storiti, je teči poizvedbo. To bi pridobila simbol, kot tudi deleže od - Kličem te tabele, vendar v tem primeru, kaj bi to bilo? Kaj je ime tabele, da imamo opravka z, ki je simbol in delnice za posameznega uporabnika? To je bodisi uporabniki ali portfelja. Portfolio. Kaj bi to naredil, je izraz portfelj za simbole in deleži za posameznega uporabnika. Tu, sem rekel, (izberite simbol, delnice OD TBL - toda namesto tabele, boste namesto, da z portfelja. "Kje je v bistvu moj pogoj. Pravim samo želim, da bi dobili tiste asociativne nize, ki ustrezajo  s tem naslednjimi pogoji - id enaka.  Potem bom dal ogrado tam in takrat seje id. Kaj bi to narediti, je reči, za vsako vrstico v vrsticah. To je čeden način, namesto da bi dejansko ustanovljena za zanko da se ponovi čez vse indeksov, nato pa v PHP, lahko imate za vsako-zanke. Če imate določen niz, potem lahko rečemo, da bom poklical na vsako naslednjo element - Bom poklical vsak element je to ime. Torej, za vsakega od teh elementov, da bom jim pravimo temu potem lahko to storim. Pri tem za vsako imate vrstice so vaše dejanske polju, in vsako vrstico, da boš poklical vrstico. Vsakič, ko se izvrši organ, bo šel gor in se bo posodobilo vrstico na naslednji element v vrsticah. Zdaj, v smislu nakupa zalog, kaj želimo storiti, je dobil zalog, ki jih uporabnik želi kupiti in da je število delnic, ki jih uporabnik želi kupiti, nato pa - če želijo - dodal, da zaloge na svojem portfelju. Očitno je, da če si nekaj kupi, nato pa, da se bo zmanjšala znesek denarja, ki ga imajo, tako da se bo zmanjšal svoj denar. Bomo morali ukvarjati s posodabljanjem portfelj, kot tudi uporabniki tabelo, ki vsebuje denar. Toda najprej, morate dobiti dejanske zaloge in količino delnic, ki jih uporabnik želi. Za to boste potrebovali HTML obrazec, ki bo prosi za simbol zalogi , ki ga želite kupiti, kot tudi število delnic. Potem boste želeli dodati. Boste želeli izbrati določene vrednosti. Šli smo skozi to malo že, ampak, ko poskušate pridobiti nekatere vrstice - pridobiti nekatere vrstice iz tabele SQL, To je naslednja skladnja. Imate izbiro, in nato, če navedete zvezdo, da bomo v bistvu vrne celotno, celotno vrstico za vas. Potem spet, imate stanje, v katerem, nato pa ste ga določili - Želim samo uporabniško ime, da je enak mail-in, tako da bo le pridobivanje vrstico uporabnikom, ki ustreza-mail v. Ko uporabnik želi dodati svoj delež v portfelju, morate preveriti nekaj napak. Hočeš, da poskrbite, da se uporabnik lahko dejansko privoščiti zalog, tako da boste želeli preveriti svoj denar. Pred tem smo uporabili zvezda pridobiti celotno vrstico iz tabele SQL. Ampak tukaj, bomo lahko dejansko samo določi, da želim samo 1 vrednost - Želim samo denar. Torej, tukaj bi bilo vrniti denar za uporabnika z identifikacijsko številko 1. Če je uporabnik že kupil določeno park, nato pa kupuje več tega staleža, nato pa v svojem portfelju - ne želite ločen vod, druga vrstica, ki vsebuje ta novi posel. Si dejansko želijo posodobiti znesek. Vse to je res spreminja, je znesek delnic, ki si lasti. Če uporabljate vložek v poizvedbo -, tako da je samo vstavite v vaš portfelj vseh teh vrednot - uporabnikov id številka, kot tudi simbol zaloge, ki jih kupujete in delnice, potem boste prav tako želeli opredeliti, no, če sem naletela na dvojnika ključa - V tem primeru je dvojnik ključa ni le uporabnikov, temveč tudi id Borzni simbol - saj lahko le - naša predpostavka je, da lahko imate samo 1 vrstico  ki ustreza 1 posebnim simbolom. Torej, na dvojnem ključu - če naletite trčenju tam - greš samo posodobiti delnic na novo vrednost. Delnice enaka, kar smo jih imeli pred plus številom delnic, ki jih je uporabnik nakupu. Zdaj, ko smo posodobili portfelja mizo, bomo želeli posodobiti uporabnikov gotovine. To je v tabeli uporabnikov, tako da bomo lahko odšteje določen znesek od denarja. Domnevam, da se bo denar v gotovini z odbitkom enaka - in potem določen znesek. Če želite posodobiti denar, bi - če sem hotel vzeti denar od pošte-in, potem pa sem izvesti to vprašanje - "Posodobitve" in nato uporabniki iz denarnega stolpec gotovini - Jaz bi odpravila 9.999 dolarjev samo, če je uporabniško ime enako-mail v. Vendar pa v tem primeru ne želimo odšteti 9.999 posebej. Želimo, da določite, dobro, želimo, da odštejemo trenutne cene zalogi pomnoženo s številom delnic, ki jih kupujete. Zdaj smo jim omogočili, da si ogledate vse zaloge, ki jih imajo, kot tudi kupite več zalog. Prav tako smo že jim je omogočilo, da pogledate trenutne cene staleža. Tu želimo, da bi jim, naj jih proda. Najprej smo želeli prikazati v bistvu - želimo, da bi lahko videli vse zaloge, ki jih imajo, tako da tukaj smo želeli prikazati vse vrstice iz portfelja. Če se bodo odločili za prodajo zalog določeno, potem bomo predvidevati, da želijo prodati vse. Niso le, da bo prodal 50% svojih delnic, ki jih boš prodal 100% od tega. Mi lahko samo izbrisati celotno vrstico iz portfelja. Mi lahko izbriše delnice v določenem uporabnikov iz določenega simbola. Tam je sintaksa za to. Potem smo želeli posodobiti denar. Bomo dodali v gotovini, ki je enak znesku delnic, ki se prodajajo pomnožene s trenutno ceno na zalogi - ne cena, po kateri so ga kupili, ampak cena, po kateri so - tekoča cena, ko so ga proda. Za sklicevanje na trenutno ceno staleža, boste želeli uporabiti lookup, ki vam bo dala ceno staleža v sedanjem času. Zdaj smo zapustili z zgodovino, katerega želite, da se omogoči uporabniku, da bi spremljali vse svoje posle - želi, da bi kadar koli proda nekaj, ko so kupili zalog. Želimo, da določite čas, ko so to storili, da tudi, koliko so kupili in kaj je bilo na zalogi. Ali imamo kakšno tok, obstoječe strukture, ki določa, da je? No, imamo portfelja, ki prikazuje število delnic, ki jih ima uporabnik za posamezno delnico. Vendar smo navezali portfelja na način, da se posodobi, ko kupujemo več, ker bi zgodovina - če ste kupili Apple, 10 delnic njem, pozneje pa na prodajo 5, potem bi rad videl tiste ločeno kot samostojne dejavnosti, ločene vrstice. Ker ta ukrep predstavljati, da v naši tabeli portfelja bi bilo samo update za to posebno vrstico,  tako da smo verjetno boš želel drugo tabelo. V naši podatkovni banki imamo uporabniki mizo, imamo portfelja mizo, in zdaj bomo verjetno želeli Zgodovina mizo. Ta zgodovina tabeli lahko spremljate trenutni datum, kot tudi posebno Borzni simbol, kot tudi, koliko delnic, in potem kakšne ukrepe je - če ste bili nakup teh delnic ali pa jih je bilo njihovo prodajo. Za spopadanje z datumom, obstaja nekaj načinov, da lahko to storijo. PHP je način sledenja datum, ki ga lahko pogledate sami. V SQL lahko uporabite tudi zdaj ali sedanji žig. To je odvisno od vas. Samo poskrbite, da vsakič, ko uporabnik kupi ali proda, se boste posodobiti svoj denar V tabeli uporabnikov, boste posodobitev vrstice v tabeli portfeljev, potem boste tudi posodabljanje zgodovino, tako da se bodo 3 ločene poizvedbe SQL, da boste tam pristajajo. Imamo kup funkcionalnosti zdaj. Samo nekaj opominov, da je v kazala, boste želeli povezati vsaj vašem - pa boste želeli, da se omogoči uporabniku, da se povežete z buy.php stran. To se dogaja, da se omogoči uporabniku - buy.php je krmilnik, tako da bo bodisi vam pošlje - ki vas bo poslal v obliki, ki omogoča, da si ogledate stvari. Imamo zgodovino. Imamo odjaviti, dobili ponudbo in nato prodajo. Tisti, ki so na minimumu, kaj želite pokazati. V zvezi s portfeljem, se portfelj dejansko kaže s kazalom. Če gremo v indeksu, tukaj vidimo, da omogoči, da portfolio.php in prehaja v asociativni niz - v bistvu enak naslov portfelja. Torej, to je upravljavec. Če gremo v predlogo portfolio.php, potem pa vse, kar ima, je - v bistvu prikaže sliko, ki pravi, oh, ta stran je v izdelavi. Kasneje, ko se boste peljali v - boš mimo v bistvu podrobnejše informacije. Namesto, da bi samo naslov, boste verjetno poteka v več stvareh. Ko imate te vrednosti, potem lahko portfolio.php ukvarjajo s temi vrednostmi in njihovo tiskanje v kakršno koli vrstnem redu. Ko ste izvaja vse tiste, boste morali izvesti 1 dodatno funkcijo. To je lahko bodisi omogoča uporabniku, da spremenite svoje geslo, ponastavite svoje geslo, če ste jo pozabili - tako za ponastavitev gesla, potem Verjetno boste prav tako želeli urediti register, tako da jim omogoča, da določite e-poštno sporočilo tako da, če pozabite svoje geslo, ga lahko jaz. Lahko verjetno vpišite svoje uporabniško ime, nato pa e bo poslano na njih s povezavo na mogli prikrivati ​​svoje geslo. Lahko imaš nekaj, kar omogoča uporabnikom, da dobijo prejemke vsakič, ko kupujejo ali prodajajo nekaj, in končno, jim omogoči, da dodate denar na njihovi spletni strani. Samo, da se vrnete v koncept krmilnikov in predloge malo. Imeli boste nekaj takega - tako boste imeli krmilnik tukaj. Zdaj smo iskali na login.php primer. Ko imamo krmilnik, v bistvu je bo trajalo 2 primere. Ko imamo kontrolorje, da sva v tem, da smo kos tudi vrste, ki se ukvarjajo s ko imamo obrazce, kot je dobro. Krmilnik bo v bistvu imajo posebne ukrepe - 1, če je že predložil obrazec, nato pa dva, če je uporabnik pride na to stran prvič in je treba še, da je vhod obliki. Bom skočil v tem primeru, preden bo do prvega primera, ki ima obliko palca Tukaj smo rekli, če je obrazec, ki z metodo post - Ne skrbi za to malo. Naj vas ne skrbi, da preveč, ampak razumem, da v bistvu ta funkcija se ukvarja z ali je obrazec predložen ali ne. Ta pogoj je izpolnjen, če je uporabnik predložil obrazec. Če ne, potem bomo želeli poklicati ometa login_form.php, nato pa preide v naslovu. Ta naslov je šele v bistvu dogaja, da se pojavi v glavi. Kaj to je v bistvu pravi, ok - no, če si gre login.php in dejansko ni prijavljen, potem pa želim, da jih pošlje stran, ki je ta oblika ki jim omogoča vnos uporabniškega imena in gesla. Potem sem šel na login_form, nato pa, da je dejansko obliko. Potem, ko uporabnik trdi, da je obrazec, da boš ga predloži login.php z metodo post. Potem sem se dejansko dogaja za vstop v ta del mojega če-ostalo zanke. Potem je tukaj, da imamo opravka z vrednotami, vnesenih v obrazec. To je tukaj, da imamo opravka z njimi. Potem, ko ste se ukvarjajo s temi vrednotami - če imate opravka z - torej imamo opravka z quote.php stran, kjer lahko nekdo vhod v park, da se želijo poiskati, nato pa videli, da je zaslon - To je nekako podobno tukaj. Tukaj imamo obrazec za prijavo - you'd najbrž quote obliko - ampak potem, ko se je uporabnik dejansko predložila te informacije, potem boste želeli krmilnik prenesti v drugo predlogo da jim pokazati, da dejanske informacije. Torej prav tu, potem boste verjetno - do konca leta vašem stanju tukaj - če je metoda enako delovno mesto - potem boste verjetno želeli, da postane drugo stran - prikaži quote - ki vas pošilja na tej strani - show_quote.php-- nato pa se bo v tej datoteki sklic te vrednosti. Ima to smisel? Imamo krmilnik, ki v bistvu ukvarja z 2 primerih - ali ste vnesli v obrazec ali ne. Če še niste vnesli obrazec, potem vas bo preusmeril na tem obrazcu, ki vas bo nato dal nazaj na to stran. Potem, ko so informacije na upravljavca, da bo organ, ki obravnava informacije, kot je potrebno - niti pogledala vrednosti zalog, in potem, ko ga je pogledala te vrednote in jih ima lepo oblikovano paleto, potem lahko prenesli to vrsto v predlogo strani  ki se ukvarja z oddajanjem ta podatek. Še enkrat, saj je splet, to bo še zabavno. Mi smo zunaj podjetja C, tako da nismo omejeni na ASCII in da je terminal izhod, tako zabavali s tem. Lahko bi bilo tako vizualno kot želite. Lahko ga lahko uporabniki vhodnih milijonov dolarjev, v času, ali pa jih omejiti in se v resnici pomeni in jim omogoči, da vnesete samo 1 cent hkrati ali nekaj takega. Zagotovo se prepričajte, da se zabava s tem. PHP koda je malo lažje, ker je to nekoliko lažje načrtovati svoje psevdokod v dejansko izvajanje. Torej, zagotovo zabavali s tem, ker je dejansko naš zadnji košček v CS50. S tem je bila to Walkthrough 7. Ko ste končali gledal walkthrough in končal svoj pset, nato pa so bili tudi psets, in zdaj smo na končnega izdelka - ko pridemo skozi kviz 1. Potem upajmo, lahko uporabite orodja, ki ste se jih naučili iz psets - ne samo sintakso, ampak bolj abstrakten pojem, kako bi gotovo - všeč, hočem to narediti, in potem dejansko izvajanje tega. Učenje, kako se borijo s sintakso in distribucije kode. Branje kodo drugih ljudi, in interpretacije, da je uporaba že obstoječe funkcije. Torej, veliko sreče z zadnjim pset. To je bilo v veselje, da vodi walkthroughs. Upam, da sem bil v pomoč za vas. To so bili walkthroughs, in hvala lepa. [CS50.TV]