[Jwe mizik] ALLISON BUCHHOLTZ-AU: Tout dwa, tout moun, akeyi tounen nan seksyon. Èspere ke nou tout te gen yon gwo Halloween fen semèn, oswa Halloweekend, jan mwen renmen di, tout repoze epi refè. Ak Erezman li pa nèj ankò. Li nan aktyèlman Sunny deyò. Mwen te reyèl kontan sou sa. Pa pare yo trennen soti bòt sezon fredi mwen. Èspere ke, pset6 al trè byen. Si ou se fatige nan C, Mwen kontan yo di w ap fè ak C pou kounye a. Nou te konplètman favorize tranzisyon nan pwogram entènèt, se konsa ou pral dwe ap travay nan HTML, PHP, petèt yon ti kras nan JavaScript. Mwen pa konnen sa pwochen semèn nan pset se, se konsa mwen pa ka garanti sa pset pwochèn ou an pral dwe, men pset semèn sa a nan se CS50 Finans, ki se fondamantalman mete ann aplikasyon sòt nan nan paj entènèt ki pèmèt ou achte ak vann stock, ak kenbe tras nan yo. Lè li nan trè fre, paske tout nan li se dynamique pwodwi. Ou ka gen diferan ki itilizatè chak gen enfòmasyon pwòp yo, epi ou ap ale nan dwe mete ann aplikasyon nan tout sa. Li pran yon ti tan. Mwen definitivman panse ke sa a se pi fasil pase C psets, men sa pran pi lontan. W ap aprann yon nouvo lang, PHP, ki se trè menm jan ak C, men nan kou ki pral mande pou ou yo gade jiska sentaks ak konprann ki jan yo konvèti ant lang yo. Men, mwen pa kwè ke gen nan anyen super concept difisil sou sa a pset. Li nan jis aprann nan nouvo lang ak ap resevwa nan tout pyès sa yo ti kras. Si ou nèg te li a espèk a, li a trè long. Mwen panse ke yon sèl sa a, se tankou 21 paj, si mwen sonje kòrèkteman. Li se yon espèk lontan. Se konsa, si ou pa te li l-- 22. 32. Wow. Se konsa, mwen te etenn pa 50% a. Se konsa, 32 paj. Se konsa, li long. Gen anpil bagay nan moso, men pa youn nan moso yo ta dwe sa ki move. Se jis nan yon anpil. Se konsa, definitivman jwenn te kòmanse byen bonè si sa posib, tankou pou chak dabitid, men mwen panse li ta dwe santi yon ti kras joli pase espesyalman psets yo tankou reprann yo epi rdimansyonman ki yo se jis trè difisil yo vlope tèt ou alantou. Se konsa, avèk sa, nou ap ale nan plonje nan. Mwen pa gen ajanda ou a glise jodi a, men nou ap pral fè pale de PHP. Mwen pral ban nou kalite yon kou aksidan sou kèk bagay ke ou ta ka vle konnen sou PHP. Diferan sentaks bagay sa yo, bagay sa yo gade deyò pou. Nou pral yo dwe pale yon ti kras sou SQL. Bagay sa yo jis trè senp la, ak Lè sa a tou mv se ki gen konpòtman egzanplè View Kontwolè, ki se ki jan se pset ou mete kanpe, se konsa konprann ki jan ki travay yo pral super itil. Tout dwa. Se konsa, PHP. Ou nèg ta dwe te fè yon bagay trè, trè senp ak PHP, ki se Bagay anba sa a isit la, kote ou soumèt kèk fòm sou la tèt isit la ke te gen kèk non ke ou D ', epi li ta di tankou hello, Ben, oswa hello, Allison, epi li ta pòp moute. Se konsa, sa a se aktyèlman ki sa li ta dwe te te sanble ak soti nan pset ou a, nan ka ou nèg te vle konnen oswa ou pa t 'byen figi li soti. Men, nou gen mak kesyon sa yo isit la ki endike ke sa a se PHP. Yo vlope li, ak Lè sa a, htmlspecialcharge, sonje, se jis, asire w ke ou se san danje soti nan nenpòt atak piki fou oswa si yon moun ap eseye mete karaktè fou move nan jaden non ou, li fè sa pa renmen moute sèvè ou oswa etajèr. Lè sa a, si nou remake, sa a HTML fòm te gen yon metòd pou $ _GET, ki, si nou sonje superglobals nou an soti nan PHP, $ _GET, $ _POST, nou pral ale nan moun ki nan yon ti kras. Men, nou konnen ke nou gen kèk non isit la ki koresponn ak non an ke nou soumèt. Se konsa, sa a se jis kalite tankou nan trè senp PHP HTML kolaborasyon ke ou nèg te genyen depi nan pset sis. Men, sa pa reyèlman reponn ki sa ki PHP. Li evidan li nan yon lang, men nou gen pa reyèlman pale de sa nan seksyon sa a, se konsa gen nan yon ti jan ti kras pi plis sou sa ki PHP aktyèlman se. Se konsa, PHP se jis PHP ipèrtèks preproseseur. Li la aktyèlman konsidere kòm yon lang programmation paske li gen lojik, Lè nou konsidere ke si nou sonje pale de HTML, nou te rele ke yon lang markeup kont yon lang programmation paske HTML se senpman chanje ki jan bagay sa yo gade sou paj la. Li nan jis modifye si wi ou non yon bagay nan fonse, oswa si li nan yon fòm, eleman, oswa yon bagay tankou sa. Li pa gen okenn lojik. Li pa gen pasan oswa kondisyon. Ou pa ka erè tcheke bagay sa yo. Ou ta swa montre bagay sa yo nan yon sèten fason oswa mande pou bagay sa yo soti nan itilizatè a. Sa a li. Se konsa, avèk PHP, li aktyèlman pèmèt nou fè tout nan bagay sa yo plis ki lojik sa yo, tankou valide D 'a oswa manipile li nan kèk fason. Nou ka konbine li ak HTML, kòm nou jis te wè nan dènye pset ou ak kounye a, epi li pèmèt nou kreye paj sa yo entènèt dinamik. Se konsa, si ou nèg ever-- Mwen pa konnen si ou te tankou m ', men nan lekòl mwayen yo te nou pran klas sa a IT kote nou te kreye jis HTML paj wèb, epi yo te estatik, epi klike alantou lòt bagay, men yo pa janm chanje. Ak sa ki dinamik, sa nou kapab fè se, tankou ak CS50 Finans, w ap ale nan gen itilizatè diferan. Tou depan de moun ki itilizatè ' preferans, ak sa yo ap achte oswa sa yo ap vann pou aksyon yo, w ap ale nan montre bagay diferan. Se konsa, si gen nan kèk idantifye karakteristik pou itilizatè ou yo ap itilize sa a paj entènèt, nou kapab dynamique deside ki sa yo montre pou yo. Li pa menm bagay la pou chak yon sèl moun, ki si nou jis te gen HTML, paj la ta dwe menm bagay la pou chak sèl moun ki te vizite. PHP pèmèt nou pèrsonalize paj. Lè sa a, nou ka swa mete yo nan dosye a menm, ki, tankou nan ka a anvan isit la, nou te wè ke nou gen HTML tout isit la ak Lè sa a nou gen sa a ti kras nan PHP. Nou ka fè tankou sa yo, oswa avèk CS50 Finans, si ou nèg te gade nan files-- epi nou ta dwe gen tan nan etap nan yon koup nan yo ansanm nan fen nou an section-- ka wè ki jan ou kapab aktyèlman kenbe yo separe, ki se aktyèlman yon bagay pi bon fè. So. Aksidan kou. Tout bagay sa yo rapid senp ou ta ka bezwen konnen pou PHP. Deklare varyab. Sa ble nan yon ti kras anmèdan, men èspere ke ou nèg ka wè li. Si ou pa, mwen pral ekri li sou tablo a lakre. Varyab yo deklare. Youn nan bagay yo konnen se ke, kontrèman ak C, PHP se blesi oswa dynamique tape, ki vle di ke ou pa bezwen di yon varyab ki kalite li ye. Ou ka jis tou senpleman di kèk varyab ki egal a tou sa ou vle li nan, e li pral deside ki kalite varyab sa nan moman kouri pou ou. Kòm ou pral wè, sa a kapab kreye kèk bagay trè enteresan. Men, pou pifò rezon, ou pa bezwen presize kalite a. Ou kapab, epi ou ka tape jete bagay sa yo tankou ou nòmalman pa ta wè si ou vle fòse li yo dwe yon kalite sèten, men ou pa gen. Li pa nan ale nan rele nan ou si ou jis deklare yon varyab epi yo pa presize yon kalite pou li. Se konsa, nan ka ou pa ka li this-- Mwen konnen li a pa pi bon an. Mwen te panse li ta montre moute nan better-- fason ou inisyalize varyab se jis nenpòt ki ak yon siy dola, ki sa ki ou vle li yo dwe rele, ak Lè sa a sa w ap plase li. Se konsa, nan ka sa a, sa a se kèk $ var = 3. Se konsa, si nou janm sèvi ak $ var yon kote, li pral jis menm bagay la tou kòm mete 3 a. OK? Se konsa, okenn varyab, jis siy dola, kèlkeswa sa ou vle rele varyab ou a, ak tou sa ou vle li nan egal-ego. Little pi fre. Mwens yo ekri pou inisyalizin yon varyab, dwa? ki fè sans a tout moun? Jis rapid diferans sentaks ant C ak PHP. Matris yo se anpil pi fre nan PHP. Nou ka ba yo kle. Se konsa, wout la nan panse osijè de li se ke, si nou tout tan tout tan te vle jwenn aksè nan yon eleman ki nan yon etalaj, nou bezwen konnen nan endèks nan li, dwa? Se konsa, nou konnen ke ak C, nou te kapab gen aksè eleman nan premye pa fè etalaj bracket zewo, oswa si nou vle eleman nan premye, etalaj bracket yon sèl. Men, si nou te vle yon bagay nan la, nou ta ka jis gen repekte nan, sof si nou aktyèlman te konnen endèks la. Youn nan bagay ki se reyèlman fre ak ranje PHP se yo ke yo ap sa ki nou rele asosyatif. Se konsa, nou ka asosye kèk kle nan kèk valè, epi nou ap aktyèlman pral to-- mwen pral montre w ki jan nou ka sèvi ak sa a nan yon dezyèm fwa. Men, fondamantalman, si ou te janm vle inisyalize yon etalaj tankou sa yo, ou gen kèk etalaj $. Se konsa, nan menm fason an, li nan jis kèk varyab ke nou ap kreye. Ta ka rele sa a tou sa ou te vle. Sa a te kapab $ egzanp. Jis yon lòt varyab. Ki sa ki fè li yon etalaj se la bracket sentaks ke nou gen isit la. Jis tankou nòmal C. Epi nou gen kèk kle nan kèk valè. Se konsa, key1 ale nan value1, key2 de ale nan value2. Pè sa yo yo separe ak yon vigil, jis tankou ranje nòmal. Sepandan. Big youn. Keys yo se si ou vle. Ou pa bezwen sèvi ak yo. Men, si ou pa fè sa, Lè sa a, li nan jis nòmal. Kesyon? Oswa, oh. ODYANS: Bon, sou bò dwat la. Ki kote nan memwa a vini soti nan? Èske li tou dwe menm bagay la tankou [Fèbl] ak pou soti nan chemine a? Eske se sa ke tou lè l sèvi avèk PHP? Menm jan ak lè nou ap ki lye ak yo? ALLISON BUCHHOLTZ-AU: Avèk PHP, Nou pa gen tandans enkyete sou ki kote nou an memwa nan vini soti nan. Nou pa depanse yon anpil nan tan ap pale sou sa, se konsa li a pa reyèlman anyen ou bezwen enkyete sou. Se konsa, kle yo se si ou vle. Nan menm fason an, si ou pa fè sa vle fè sa a ki asosye, ou jis vle yon etalaj nòmal kote etalaj zewo se eleman nan premye ak etalaj se yon sèl dezyèm lan eleman, ou ka fè li egzakteman menm jan ou ta nan C. Ou gen kèk varyab ki nan pral fè etalaj ou a, epi li egal parantèz sa yo isit la. Wi. ODYANS: li gen nan menm pwen nan notasyon. Tankou, mwen kapab fè tankou yon etalaj ++, e ke lonje dwèt nan yon sèl, dezyèm lan. ALLISON BUCHHOLTZ-AU: Ou ka do-- Byen, ou ka gen kèk iterator, mwen, ke ou ka fè m ++ ak fè yon etalaj de mwen nan menm fason an. Men, sa a li. Se konsa, tankou nan ka sa a, etalaj de 1 ta egal 20. Menm sòt de notasyon Indexing. Sa a se fondamantalman jis yon bagay enplisit isit la, kote li di zewo, zewo rive 10, nan 1 a 20, 2 a 30. Se jis nan kle enplisit pou li. Ki chanjman ak PHP se ke ou kounye a gen pouvwa a mute moun kle fè tou sa ou ta renmen. Se konsa, yon sèl bagay se isit la. Se konsa, mwen gen jis kèk egzanp isit la ke mwen te ekri moute pou ou nèg paske mwen santi tankou egzanp toujou ede pi plis pase jis abstrè a. Se konsa, nan ka sa a isit la, nou gen kèk etalaj asosyatif ki se non premye m 'yo, siyati mwen, mwen menm k Eko, ki se jis pou tout rezon isit la pral enprime soti nan pwodiksyon an isit la. Epi li di, OK. Enprime soti valè a ki koresponn ak etalaj nan kle Allison. Apre sa, mwen kapab tou voye ou nèg tout kòd sa a apre klas la. Se konsa, lè nou kouri sa a, ki fè ou panse ki pral rive? Ki sa ki nan ale nan enprime soti? ODYANS: siyati ou. ALLISON BUCHHOLTZ-AU: non Denye mwen. Li fè sa ki. Dwa isit la. Enprime soti. Se konsa, si nou te chanje sa a ak nou te ajoute yon lòt moun list-- nou an Se konsa nou di nou gen Emma isit la, epi nou asosye dènye name-- ou Ann wè si mwen eple dwa sa a. ODYANS: Yeah. ALLISON BUCHHOLTZ-AU: Wi. ODYANS: Bon travay. ALLISON BUCHHOLTZ-AU: Lovely. Se konsa, kounye a si nou gen sa a isit la ak nou te vle jwenn siyati ou, ou genyen li la. Se konsa, ou ka jis panse a li kòm ranplase sa a kle isit la. W ap sèlman ranplase endèks la. Se konsa, li pèmèt ou jis rechèch nan yon etalaj pi fasil. Ou pa bezwen konnen endèks la. Osi lontan ke sa a kle ke w ap chèche pou egziste yon kote nan etalaj la, PHP pral jwenn li epi li pral retounen valè a asosye ak li. Se konsa, li ba ou yon anpil plis pouvwa ak ranje ou. Wi. ODYANS: Si ou gen de kle yo menm, li pral ba ou yon erè? ALLISON BUCHHOLTZ-AU: Li ta dwe ba ou yon erè, yeah. ki fè yon ti kras plis sans pou ou nèg? Ak nan menm fason an, nou gen yon etalaj isit la ke pa gen okenn kle. Epitou sa a se yon sentaks ke ou ta ka vle yo dwe okouran de, paske ou pral gen yo sèvi ak sa a nan pset ou yo. Chak fwa w ap fè yon eko, ou gen quotes sa yo, ak nenpòt lè w ap refere li yon pati nan yon etalaj, ou gen gen sa yo aparèy òtopedik Curly bò kote yo. Li nan kalite anmèdan, men ou jis gen fè li. Se konsa, jis yon bagay yo kenbe nan tèt ou. Si w ap kouri nan erè a, Mwen konnen ke sa a ki egziste nan etalaj mwen men li la voye erè nan m ', eseye mete aparèy òtopedik bò kote l ' epi li ta dwe travay. Se konsa, nan ka sa a isit la, sa a se yon nòmal C etalaj ke nou ap itilize yo. Gen twa, senk, ak sis, epi nou jis vle enprime soti eleman nan premye, kidonk sa a ta dwe enprime soti twa. Apre sa, mwen t 'kouri tout bagay sa yo, se konsa èspere ke pa gen anyen chanje. Nou wè nan pati anba a isit la, li jis simagri soti twa. Fre. Ki fè sans pou tout moun? Ranje asosyatif. Anpil pi frèt pase ranje nòmal. Sa a se why-- David Èske montre w aplikasyon an PHP nan pset6 pandan konferans nan tout? OK. Se konsa, mwen pral montre w. Mwen pa konnen li koupe t-- la ODYANS: Li te fè semèn pase a. ALLISON BUCHHOLTZ-AU: Èske li te semèn pase a? ODYANS: Yeah. ALLISON BUCHHOLTZ-AU: Yeah. Se konsa, ka ortograf dwe fè nan tankou sis liy ak PHP, ak yon pati nan pouvwa a nan ki se sa a etalaj asosyatif ki kote ou ka jis chaje chak mo a, epi ou gen l 'egal a vre oubyen fo. Se konsa, ou ka di, o. Retounen diksyonè nan kèk mo, ak si li nan gen, li pral retounen vre. Sinon, li pa pral jwenn li epi li pral retounen fo. Se konsa, kalite yon fre ti kras bagay. Tout dwa. Se konsa, sa yo se ranje asosyatif. Yo ap trè fre. Mwen vrèman renmen yo. Ak evidamman this-- Ah. OK. Koulye a, li la ap travay. Petèt. OK. Yon lòt bagay. Se konsa, avèk egalite, jis yon bagay fre kenbe nan tèt ou. Avèk PHP, paske li se dynamique tape, kalite a ka chanje tou depann de lè ou kouri li, ki jan w ap kouri li. Mwen aktyèlman gen kèk fre egzanp ki mwen pral montre w guys. Men, == jis chèk pou egalite apre kalite Jungle. Se konsa, si ou gen yon bagay sa a, se tankou pèsonaj la 1 ak nimewo 1, PHP ta di ou ke moun yo egal paske li ka Jungle ki kalite a de nan disip yo jouk li a egal, ki petèt pou ka w la se amann. Si ou bezwen wè si yo la menm kalite valè ak kalite la menm, ou vle === sa a. Apre sa, mwen pa panse ou gen nenpòt ka kote ou bezwen sèvi ak ki nan pset ou, men pou yon anpil nan nou menm ki pral ale sou fè paj wèb pou pwojè final ou a ak bagay sa yo, li nan yon bon bagay yo konnen ke == ak === yo diferan, ak li nan yon bon distenksyon yo konprann. OK. So. Fortch pasan. Yo se yon fason yo repekte nan yon etalaj. Se konsa, jis tankou ranje te vin tèlman pi fre nan PHP, fason ou nan repekte nan yon etalaj, mwen panse, tou vin pi pi fre ak plis ankò pwisan. Se konsa, olye pou yo gen yo kreye kèk pou mwen egal 0 ak kèlkeswa sa, ak Lè sa a aktyalizasyon ki mwen jan ou ale nan, nou gen sa a riban fortch pè. Se konsa, isit la nan jeneral nan estanda estrikti nan de sa yo. Se konsa, ou swa gen fortch kèk etalaj kòm valè a ou vle repekte kòm. Se konsa, sa a se non an nan etalaj la varyab ke ou vle referans, ak sa a se sa ou vle yo rele li nan riban an. OK? Se konsa, sa a koresponn ak chak eleman nan etalaj la, epi ou sèvi ak sa a valè ki nan sa a bouk. Mwen gen yon egzanp. Mwen konnen egzanp yo, se pou pi bon. Se konsa, sa a se si gen pa gen okenn kle, se konsa sa a, se tankou si nou jis gen yon sèl ki kote kle yo yo se endis yo nòmal pou etalaj ou a. Oswa sa a se tou nan ka a si ou pa gen okenn itilize pou kle yo. Si ou pa pran swen sou kle yo ak ou jis vle repekte nan ak valè yo pou chak nan moun ki nan tou sa lòd, sa a, se amann. Ou kapab sèvi ak estrikti an. Sinon, si gen kle, nou an $ Valè jis chanje a $ valè kle. Se konsa, li jis chanje nan yon valè kle pè. Lè sa a, nou ka al gade nan $ kle ak $ valè nan riban nou an. OK? So. Egzanp. Fè li joli. OK. Se konsa, nou gen yon sèl sa a isit la, ki nou gen kèk are-- Ou kapab tou kreye yon etalaj tankou sa a pa gen kèk varyab egal a etalaj ak parantèz, oswa ou ka jis fè bracket. Ou ta dwe fè bracket la, men sa a se yon lòt fason yo fè li. Se konsa, isit la nou gen kèk etalaj nan twa eleman nan yon sèl, de, ak twa, e nou gen fortch nou an. Avi sa a yon sèl koresponn ak nan etalaj ke nou ap iteration sou, ak sa a se sa nou ap rele chak bagay nan etalaj nou an. Apre sa, tout sa a ap fè se li nan pral enprime soti chak valè. Se konsa, si nou kouri li, nou remake ke nou gen valè yon sèl, valè de, valè twa. Ak nan menm fason an ki tipikman ranje bezwen yo dwe nan yon sèl kalite, ranje pa gen nan tout gen kalite a menm isit la. Se konsa, kounye a nou gen kèk Int. Nou gen de strings. Se konsa, ranje ou kapab jwenn pi plis pouvwa anpil e petèt yon ti kras ti jan messier, tou depann sou wout la ou vle gade nan li. Se konsa, nou ka chanje sa a mèt fè tout sa nou vle. Nou itilize valè. Se jis bagay la estanda nou itilize yo. Men,, jis enpòtan konnen ke nou kapab rele sa a tankou kontwa si nou te vle. Epi osi lontan ke yo matche ak moute, evidamman tout moun nan kè kontan. Si ou janm vle kouri nan yon PHP kouri yon bagay tankou lòd sa a liy ou konnen sa a isit la, ou jis fè PHP, ak Lè sa a tou sa dosye ou vle kouri. Se konsa, si ou vle dezòd otou ak PHP, ak plis ankò lojik la epi ou pa reyèlman bezwen wè tankou nan yon navigatè entènèt, ou ka jis kouri li nan liy lan bay lòd tankou sa ak eko pral enprime soti tou sa ou renmen. OK. Nan lòt fason ke nou gen se tankou sa a. Se konsa, sa a se yon ka kote petèt ou vle yo sèvi ak tou de kle a ak valè a, Mwen konnen sa yo, se tankou egzanp super parvenus men mwen espere yo fè li yon ti kras pi klè. Se konsa, isit la nou gen kèk etalaj ankò, men fwa sa a, olye pou yo jis gen ou konnen gen nan pa gen kle. Nou gen kle pou chak nan sa yo. Se konsa, yon se pral gen yon sèl, b ap koresponn nan de, epi c ap koresponn ak twa. Ak nan ka sa a, si nou ekri l 'nan fason sa a, nou gen aksè a tou de kle ak valè pou chak nan sa yo. Se konsa, lè nou kouri sa a, nou jwenn chak nan sa yo. Se konsa, li simagri soti kle nou an ak korespondan valè. Yon lòt bagay fre se ke, e mwen konnen di tankou sa a yon sèl pa t 'gen kle, men li toujou gen yon chal kle paske si ou pa delege yon kle, nan kou, ou kle yo se jis endis ou oswa endis pou nou te kapab toujou tou fè yon sèl sa a. Tankou sa a. Mwen pral enprime soti. Se konsa, nan ka sa a, si w remake, nou gen kle enplisit nou an nan zewo, youn, ak de isit la. Epi menm jan an ak yon sèl sa a, ou ka toujou jis di r kòm valè, epi ou jis gen aksè a valè an. Ou pa pran swen sou ou kle, menm si ou gen kle, si ou pa pran swen sou yo, ou pa fè sa nesesèman bezwen mete yo nan bouk fortch ou yo. Èske sa fè sans pou tout moun? ODYANS: Èske ou ka jis rele kle yo, tou? ALLISON BUCHHOLTZ-AU: Yeah ou te kapab totalman fè sa, tou. Aktyèlman, rete tann. Kenbe sou. ta l-- No Si ou vle kle a, Lè sa a, sa ou bezwen fè kle nan valè. ODYANS: Ajoute valè. ALLISON BUCHHOLTZ-AU: Yeah. Epi ou jis pa janm sèvi ak valè tout moun. ODYANS: OK. ALLISON BUCHHOLTZ-AU: Si ou jis mete yon sèl bagay nan la, li a pral asime ke ou se ap pale de valè a, pa kle a. Great kesyon. Tout dwa. Fre. Aktyèlman, kenbe sou. Kite m 'wè sa m' genyen. Se konsa, anvan nou jwenn nan post epi pou yo jwenn, mwen jis vle montre ou nèg yon ti kras sou ki jan li a dynamique tape, ki se kalite fre. Mwen gen tout sa yo. Mwen gen tankou kat egzanp moute isit la, epi mwen pral voye ba ou tout sa a kòd apre klas la. Se konsa, isit la nou gen kèk varyab a. Se jis 1 plis 1, dwa? Epi nou ap ale nan enprime soti sa ki sa a, se egal a, ak Lè sa nou gen kèk kalite. Epi nenpòt moun ki gen nenpòt ki Estimation sou sa ki tape l 'nan pral fè? ODYANS: Yon int. ALLISON BUCHHOLTZ-AU: Yeah, li nan yon int. Se konsa, li jis ajoute yo ansanm. Li nan yon int. Tout bon. Se konsa, yon sèl sa a kap vini an, nou gen sa gade tankou strings. Lè nou kouri sa a, li panse, o. Ou ap aktyèlman ap eseye jis ajoute bagay sa yo. Ou jis te resevwa konfonn. Se konsa, mwen jis ale nan fikse li pou ou. Ou vle di Int. Mwen konnen ou te vle di Int. Se konsa, sa a se youn nan fason ki ou kapab wè, PHP gen yon lide nan pwòp li yo. Menm si nou klèman te di, gade, yo menm sa yo, se strings. Mwen vle di fisèl la yon sèl. Men, li te di, oh, men w ap eseye ajoute yo, kidonk, ou dwe vle di li nan yon nonb antye relatif. Jis mete konfyans m 'sou sa a. Se konsa, li di li nan yon nonb antye relatif, epi li ajoute yo tankou nòmal. Se konsa, jan de fre si w ap ale yo ka resevwa parese ak bagay sa yo ou, oswa ou vle ajoute yon bagay. Yon bagay gwo se ke, si ou panse tounen nan pset2, yon bagay ki te itilizatè antre, dwa, ke nou panse se yon Char oswa yon fisèl an premye. Koulye a, nou pa bezwen klèman di, o, fè sa-a yon int. PHP ta jis pou tankou, oh yeah. Mwen konnen ou te vle di yon int. Nyè ou. Ou pa t 'vle di yon fisèl. Se konsa, nan ka sa a, kounye a ke nou gen sa a, ki ou nèg panse ke li k ap pase yo fè isit la? Nou gen yon fisèl ak yon int kounye a. ODYANS: Li nan toujou yon int. ALLISON BUCHHOLTZ-AU: Li nan toujou yon int. Ak rezon an is-- mwen ta ka mete plis egzanp, men plezi sa a yon sèl la. Rezon ki fè la li nan fè li se paske li a tankou w ap eseye ajoute bagay sa yo. Se konsa, si w ap eseye ajoute bagay sa yo, mwen pral asime, rezonab, ou gen yon bagay rezonab ke ou ta ka ajoute. Mwen jis ale nan fè li yon int, ak nou ap jis pral ajoute li, tankou dabitid. Lè sa a, menm jan an, mwen panse ke ou nèg jwenn lide la. Nou genyen tou yon sèl sa a isit la, ki se jis charaktèr, epi li fè menm bagay la. Se tankou, ou komik itilizatè. ou konnen ou vle yon int. ODYANS: Si nou mete yon lèt, yo pral li fè [fèbl] valè a oswa ou pa? ALLISON BUCHHOLTZ-AU: Oh, sa a, se yon bon kesyon. Ann wè. Non, toujou se yon int. Se konsa, li nan yon ti kras fou. Sa a se jis kalite montre w PHP ka pafwa konpòte yo nan irrational-- Pa totalman irasyonèl, men li ta ka konpòte yo nan fason ki ou pa vrèman espere. Se konsa, lè nan dout, tcheke ki kalite bagay sa yo. Sa a gettype fonksyon kapab super itil. Tipikman, si w ap fè anyen ak plusses oswa nenpòt operatè matematik, li a pral asime anyen rezonab se jis yon int. Se konsa, ou gen Char 1, oswa yon fisèl 1, oswa aktyèl Int a 1, li a pral asime ke. Si ou vle kataloge anyen, ou totalman kapab. Ou te kapab fè yon bagay tankou double isit la, mwen kwè. Ak nan ka sa a, li nan ale nan di, o. Mwen pral fè sa-a yon doub paske ou klèman di li nan yon doub. Ou kapab toujou klèman fè PHP fè yon bagay, men. ODYANS: Rete tann, poukisa se Yon plis 1 a? ALLISON BUCHHOLTZ-AU: Oh. Gen. Li te jis yon eko. Sa ki te fòt mwen. Se konsa, ou ka klèman di l 'bay fè yon bagay nan yon kalite sèten, men pi fò nan tan an, li k ap pase yo dynamique deside ke nan ègzékusion. Se konsa, li ale nan kenbe ale atravè tout epi li k ap pase yo dwe tankou, OK. Ki sa ki fè pi plis nan sans pou sa a yo dwe? Ta dwe li aktyèlman gen yon fisèl? Ta dwe li yon int? Ta dwe li yon flote? Ta dwe se yon doub? Epi li pral deside ke pou ou. Ou kapab fòse li fè sa ou vle, but-- ODYANS: ki fè li pi dousman? ALLISON BUCHHOLTZ-AU: Bon, Mwen vle di, C se trè efikas. Mwen panse ke li la definitivman pi dousman paske li gen nan pwosesis la jan li k ap pase. C, mwen se prèske asire w se pi vit. Men evidamman gen nan yon anpil nan bagay sa yo fre nan isit la ke nou pa gen enkyete sou. Se konsa, si nou ap chèche nan yon etalaj, nou pa gen yo aktyèlman kreye kèk rechèch nan etalaj la. Nou ka jis mande pou kle a ak PHP pral pran swen l '. Fre. Awesome. Sanble nan fen egzanp mwen. Ou nèg yo pa janm ale bliye ke kounye a. W ap ale nan dwe tankou, oh, PHP se jis tankou sa manman ki moun ki nan tankou pa gen, pa gen okenn, pa gen. Mwen konnen sa ou vle di. Mwen konnen sa ou vle. OK. Se konsa, sa a se, èspere ke, itil pou ou pset, omwen nan konmansman an anpil, paske ou se tout sou fè fas ak fòm ak bagay sa yo soti nan itilizatè a. Se konsa, gen de fason ke nou pase alantou info ak PHP ak HTML lè nou ap pase ant de bagay sa yo. Se konsa, nou gen $ _GET, ki se te pase a URL la, epi nou gen $ _POST, ki se pase nan mesaj la kò, ak pou nou konsidere li kache. Men, yon bagay yo konprann se ke ni nan sa yo yo konsidere kòm ki an sekirite. Si ou gen yon moun ki se entèrsèptan mesaj yo pral retounen ak lide ant ou menm ak sèvè, yo ka toujou jwenn done sa a. Yo jis gen gade yon ti kras pi rèd. Li nan pa reyèlman that-- li nan jis kache pou URL la. Li nan toujou nan kò a mesaj, menm si, Se konsa, si yo gen aksè a sa a, li vrèman jis like-- Se tankou diferans lan ant yon bagay ke yo te ekri sou deyò a nan yon anvlòp ak yon bagay ke yo te ekri sou yon moso papye anndan an. Li nan pa sa ki difisil yo louvri anvlòp la epi pou yo jwenn mòso papye a andedan. Akòde, li ta dwe pi fasil jis li deyò an. Men, lè sa a jan ou kapab kalite panse a sa yo. Ni nan sa yo, se reyèlman konsidere kòm ki an sekirite. OK? Akòde, pa reyèlman gen pwoblèm pou pset ou paske ou pa ap fè fas ak sekrè komès, men li la anjeneral yon sèl bagay ke nou reyèlman renmen mete aksan sou paske moun panse, o, byen, li la kache. Li dwe super an sekirite. No Li pa nan sekirite. Se jis yon ti kras mwens anksyeu, mwen devine. Oswa unsecure. Se konsa, nou gen aktyèlman yon egzanp. Kòm ou konnen, mwen renmen anseye plis ak egzanp. Mwen santi mwen tankou sa a ede pi byen. Se konsa, nou gen kèk fòm senp isit la ki aktyèlman, si ou nèg yo se tout tan tout tan konfonn sou PHP, sa a se reyèlman piti, men se aktyèlman php.net reyèlman bon kopi dokiman yo. Mwen vrèman renmen li. Mwen te lè l sèvi avèk li pou prepare yo pou sa a seksyon, se konsa mwen kapab veterinè li pou ou. Sa se yon egzanp nan men yo sou kòman $ _POST ak $ _GET travay. Sèl diferans ki genyen ant de la nan sa yo, san konte kote enfòmasyon an se parèt, si li nan nan URL la oswa nan kò a, se tou ki metòd la se. Se konsa, nan fòm ou pou HTML-- Sa a se yon fòm HTML trè senp. Èske nenpòt moun kapab di m 'ki sa li fè? ODYANS: Mande pou non ou ak laj. ALLISON BUCHHOLTZ-AU: Egzakteman. Se konsa, nou gen kèk aksyon fòm. Sa pèmèt nou konnen li nan kèk fòm aji. Ak sa ki nan pral rive se, lè nou frape soumèt, li a pral rele action.php, ki se sa ki sa a se, epi li k ap pase yo rele li ak yon metòd pou $ _POST. Se konsa, nan ka sa a, ou enfòmasyon se kache. ak li nan jis non ou, gen kèk kalite D 'rele, gen kèk laj, kalite opinyon = "tèks" ki nou menm tou nou rele laj. Lè sa a, si nou frape soumèt, Soumèt pral rele action.php. Se konsa, lè nou aktyèlman frape soumèt, nou konnen ke li te afiche, se pou chak, epi nou pral aktyèlman wè sa a nan ou pwoblèm mete ki èspere ke nou pral li ale nan mache nan yon ti kras. Apre sa, tout li nan fè isit la se POST se kèk varyab supèrglobal ke nou te pale osijè de pandan konferans. Ak ki jan ou ka panse osijè de $ _POST se ke li nan jis yon etalaj asosyatif. OK? Se konsa, sa a se kèk kle yo, sa a se kèk kle yo, ak tou sa D 'nan itilizatè vin tounen yon valè pou chak nan sa yo. OK? Se konsa, si nou te ekri sa sa a etalaj aktyèlman te sanble ak dwa apre nou soumèt fòm lan, nou ta gen, sa a se nou an $ _POST, ak kèk etalaj kote nou gen kèk non. Kite yo jis di nou pral fè non m ', ak Lè sa a nou gen kèk laj, 21. Woo. Se konsa, sa a se tout $ _POST se. $ _POST se jis yon etalaj asosyatif, OK? Li jis di, OK. Ki sa ki bagay sa yo nou te mande pou soti nan itilizatè a? Ki sa ki varyab yo ke nou ap pase alantou ke nou te mande pou nan fòm sa a? Lè sa a, ki sa yo nan valè ki asosye ak sa? Se konsa, nan ka sa a, si mwen soumèt li ak yon non Ally ak yon laj de 21, sa a se sa $ _POST sanble. OK? Lè sa a se ki sa sa a Dosye PHP gen aksè a. Tout dwa? Se konsa, nan ka sa a, sa a se jis tankou resevwa nenpòt ki lòt bagay soti nan etalaj nou an. Olye pou yo yon endèks nan nou an etalaj, nou gen kèk kle. Se konsa, sa ki pral bay m 'valè a nan non kle. Se konsa, sa a pwal Ally, ak dwa sa-a isit la ki pral ban m ' valè a nan $ _POST kote a kle a se laj, ki pral 21. W ap ale nan gen fè sa byen yon ti jan. Yeah, ki soti nan ki yon pati? ODYANS: Lè ou te montre nan pati a anba. ALLISON BUCHHOLTZ-AU: pati anba sa a? OK. Se konsa, ou konprann sa a se HTML nou an fòme, ak nou gen kèk metòd $ _POST, ki zafè. Sa a ta ka tou $ _GET, men pou rezon sa a, nou ap jis ale nan di li nan $ _POST. Lè nou soumèt fòm sa a, sa a se yon pati nan yon dosye PHP ki nan rele. Se konsa, sa a ranpli PHP se kounye a ale nan egzekite bay enfòmasyon ki soti nan HTML nou an fòm. Se konsa, sa li nan fè sa ki, lè nou frape soumèt sou fòm HTML nou an, li nan pase ou supèrglobal sa a, ki se jis yon etalaj asosyatif. Li nan sa a. Li nan jis tankou pase ki nan dosye a. Epi ki sa li di se, OK, isit la nan $ _POST. Li nan etalaj asosyatif ou yo. Fè avèk li sa w vle. Apre sa, nou ap di, OK. Ban m 'valè a nan non, ak ban m 'valè nan nan laj. Se konsa, sa yo se sèlman kle, ak sa a se etalaj nou an. Èske sa fè sans? ODYANS: Mhmm. ALLISON BUCHHOLTZ-AU: Awesome. ODYANS: Si ou gen ranvwaye a fòm li jis ekri sou done yo? ALLISON BUCHHOLTZ-AU: Yeah. Mhmm? ODYANS: Poukisa ou gen ou presize ke li nan yon int? ALLISON BUCHHOLTZ-AU: Nan ka sa a, nan itilizatè se jis fòse li nan dwe yon int. ODYANS: OK. ALLISON BUCHHOLTZ-AU: Mwen pa konnen si ou ta aktyèlman bezwen sa, men pou rezon yo, yo deside ke yo te vle li nan dwe yon int. Yo ap jis typecasting li. Petèt yo ap sèvi ak li kòm yon lòt bagay pita sou. Sa a se jis yon sèl brib. Wi? ODYANS: E si yo tape 12, T-W-E-L-V-E, pou laj? ALLISON BUCHHOLTZ-AU: Si yo te eseye tape ke kòm yon int? ODYANS: Yeah. ALLISON BUCHHOLTZ-AU: Mwen bliye sa ki fè. Mwen panse ke li ta ka eseye konvèti pèsonaj la premye yo yon int, oswa pran valè a ak konvèti li, men mwen bliye ekzakteman ki sa li. Fè yon bagay plezi yo ekri yon pwogram epi eseye. Fè yon liy koup. OK, se konsa sa a se youn nan prensipal la bagay sa yo ke w ap ale nan dwe ap fè. Mwen pral èspere ke mache nan yon koup nan dosye yo soti nan pset la avèk ou guys. Li sanble ke nou ap ale nan gen tan, se konsa nou ka fè sa. Men, w ap ale nan gen fè yon bann bagay sa yo tankou sa a, kote w ap pase bagay sa yo nan yon fòm HTML nan fòm PHP sa a ki pral Lè sa a, egzekite kèk seri enstriksyon sou done a ki te bay la. Sa a literalman esansyèl la nan pset ou yo. Yeah. ODYANS: Kalite a = "soumèt", ki fè yon bouton sou fòm nan HTML. Èske gen fason yo rele ki bouton yon bagay? Se konsa, ou ta dwe tankou non = "soumèt"? Oswa se ke bouton jis pral fè vide kounye a, paske ou sèlman li renmèt li yon kalite, se pa yon non. ALLISON BUCHHOLTZ-AU: Mwen panse ke li nan jis ale nan rete vid kounye a. Nou kapab definitivman gade nan la pset, paske nou pral definitivman dwe gade nan la enskri jan de bagay konsa. Men, yeah, ou kapab definitivman presize tèks la ke ou vle sou bouton ou yo. OK, se konsa SQL. Lè w ap achte ak vann aksyon, ou bezwen kenbe tras nan sa yo. Se konsa, wout la nou ap ale nan fè sa se ak SQL, ki se jis yon baz done. Panse a li kòm yon tab kote w ap kenbe tout enfòmasyon sa a sou itilizatè diferan ou yo. Epi ou nèg yo se aktyèlman ale nan kreye youn nan sa yo. Li trè fre. Apre sa, yo se jis kat bagay prensipal ke ou bezwen konnen pou sa a pset, epi yo ap aktyalizasyon, kidonk, ou fondamantalman mete ajou done yo. Sa sipoze ke li nan deja la. Si li nan pa la, li la pral frape ou ak yon erè, se konsa petèt ou vle tcheke. Epi ou pral mete ajou on-- mwen ta dwe actually- mwen gen tan, Mwen pral ekri yon koup la sa yo. Mwen pral aktyèlman ba ou nèg yon koup la egzanp lan, se kòmandman SQL plen, paske sa yo yo se jis prensipal la yo menm, men ou ka rantre nan yo ansanm. Se konsa, mwen pral fè sa epi mwen pral voye ki soti nan ou avèk nòt sa yo. Se konsa, si ou vle mete ajou yon bagay, bezwen di li ki sa ou ap mete ajou ak ki kote ou ap mete ajou li. Se konsa, yon lòd SQL tipik ta dwe aktyalizasyon ID kote yon bagay egal yon bagay. Oswa tankou adrès aktyalizasyon ki kote ID egal 3, ak sa a ta mete ajou jaden an adrès nan itilizatè ou yo ki te gen yon ID nan twa. OK? Se konsa, si ou ale nan SQL ak W3Schools, yo gen egzanp pè. An reyalite, mwen ta ka rale kèk moute nan yon ti kras. Lè sa a, insert nan, w ap jis mete sèten valè a. Se konsa, si w ap eseye kreye kèk nouvo antre, kidonk, ou ap kreye yon itilizatè nouvo, ou ta ka fè insert nan kèlkeswa sa ki baz done ou rele, epi ou ta gen tout valè sa yo. Lè sa a, ou gen chwazi, chwazi valè yo wè. Se konsa, si w ap eseye tcheke yo wè si yon itilizatè ki egziste oswa ou se eseye pwan espesifik enfòmasyon sou yon itilizatè w ap ale nan dwe lè l sèvi avèk chwazi. Lè sa a, efase, mwen panse, se trè senp la. W ap sèlman efase yon bagay nan men tab la. Ak an reyalite, kite m 'aktyèlman rale moute kèk egzanp pou ou guys. Oh gade, li nan paj 61 mwen. Se konsa, si nou ale nan W3Schools, èspere ke li nan 'ankò. Wi, renmen li. Nou ale nan SQL. Se konsa, sa a se yon bagay isit la. Se konsa, sa a se yon trè senp chwazi. Monchè, mwen renmen fonksyon sa a. Se konsa, ou ka gen chwazi kèk jaden SOTI NAN kliyan yo. Nan ka sa a, kliyan refere a nan sou entènèt baz done ki w ap itilize, se konsa tou sa se tab ou rele, ak etwal jis vle di chwazi tout bagay. Ban m 'tout moun. Se konsa, mwen jis vle ba ou nèg yon koup nan egzanp nan kote sa a se. Se konsa, nou gen chwazi, MIZAJOU. Se konsa, isit la se kalite sentaks la an jeneral. Se konsa, aktyalizasyon, tou sa ou Non tab la se, ak Lè sa SET se kote ou ap aktyèlman pral yo dwe ki sa done ou ap chanje. Se konsa, sa a te kapab be-- Se pou m 'fè yon egzanp isit la. Se konsa, sa a se pral be-- OK. Se konsa, mwen kreye yon baz done ti kras pou nou. Nou pral gen kèk ID, kèk ane, ak kèk yo te rele. Se konsa, yon sèl ID pral yo dwe ane '15, epi nou ap jis ale nan fè li m '. Ki moun ki vle gen dezyèm lan moun nan tablo nou an? Nenpòt ki moun. Mwen jis ale yo chwazi Emma paske rapid non ou lan. Emma, ​​ki ane ou ye? ODYANS: Ki sa ki ane? ALLISON BUCHHOLTZ-AU: Yeah. ODYANS: '16. ALLISON BUCHHOLTZ-AU: '16. W ap jis pral fè kochon Gine m 'pou jodi a. OK, se konsa nou gen de moun sa yo. Aktyèlman, kite m 'fè sa a. Se pou nou di m 'te tande l' mal, ak mwen aktyèlman te di li nan yon ane ki pi piti. Li nan '17. Ki sa nou vle fè isit la, si nou te vle aktyalizasyon ane Emma a yo dwe kòrèk lè l sèvi avèk sa, ki sa nou ta fè se nou ta di done MIZAJOU sou isit la. Lè sa a ka tout dwe sou yon sèl liy, men depi mwen konprese pou espas isit la, Mwen pral ekri isit la. E nou vle yo mete. Se konsa, sa a se tab la nou ap mete ajou. SET a pwal sa kolòn oswa sa done yo ki nou aktyèlman chanje. Ki sa nou ap chanje se ane, se konsa nou ap ale nan di SET ane = 16, ak Lè sa a KI KOTE di nou ki itilizatè oswa sa ranje yo nou aktyèlman à sa a. Se konsa, ki kote? Nou gen de opsyon isit la. Ki sa ki yo se de a? Sa yo se inik, dwa? Se konsa, non nou yo se inik ak ID nou an se inik, Se konsa, sa yo se de opsyon ki disponib nan pou kote nou te ka fè sa? Mwen pral ba w yon sèl. Nou ta ka fè KI KOTE ID = 2, oswa nou te ka fè sa si nou ap pral koupe sa a paradigm isit la. ODYANS: [fèbl]. ALLISON BUCHHOLTZ-AU: Egzakteman. Se konsa, nou ta ka tou fè Non = Emma. Ak swa nan sa yo ta ka travay. Apre sa, nou kouri sa a, li ta dwe tankou, OK. Nou pral chanje li. Ou se aktyèlman 16, se konsa kounye a ou ap dwat ankò. OK, se konsa sa a ta dwe super itil nan pset ou ki kote petèt yon moun deside yo achte 100 aksyon nan Apple, ak Lè sa a yo te tankou, jis plèzantri. Mwen vle sèlman 90 aksyon. Se konsa, yo vann 10 nan yo, se konsa ou bezwen mete ajou kantite lajan an nan aksyon sa yo genyen. Se konsa, à aksyon, à tab. OK. Se konsa, sa a, se yon egzanp la. Sa a sentaks la ajou. Efase. Oh. Insert nan se lòt yon sèl nou an. Se konsa, yon sèl sa a isit la se trè menm jan an. Nou te ka jis di, nan ka sa ka kite a ajoute yon moun. Nou kapab ajoute Ben tan sa a. Nou INSERT INTO, epi nou vle non an nan tablo nou an. Nan ka sa a li nan done. Lè sa a, nou jis vle, w ap ale nan di VALÈ, ak sa ou ap ale nan fè se, ou aktyèlman bezwen asire w ke ou gen yon bagay pou chak ranje ke ou vle. Ou jis mete yo nan lòd. Se konsa, nan ka sa a, nou ta ka di 3. Ou se 18, dwa Ben? ODYANS: 19. ALLISON BUCHHOLTZ-AU: 19? ODYANS: 19. ALLISON BUCHHOLTZ-AU: '19 ane ou a? Ou gradye nan '18, dwa? ODYANS: Oh. ALLISON BUCHHOLTZ-AU: ane gradyasyon. ODYANS: OK. ALLISON BUCHHOLTZ-AU: Mwen te tankou, ou ye deja planifye pran yon ane koupe isit la? Se konsa, '18, nou gen Ben. Se konsa, nan ka sa a, li ta ale nan, li ta kreye yon nouvo antre isit la. Fre. Pa twò move, dwa? Yon anpil nan sa a ki pral gen sentaks pou ou guys. Konsèp ta dwe vini, èspere ke, relativman fasil. Sentaks la se bagay la sèlman ki kapab yon ti kras difisil. Lè sa a, yon dènye nou an, se Efase, ak jan ou remake, Mwen trè rekòmande sit wèb sa a. Li nan gwo. Genyen yon tòn bagay. Se konsa, nan menm fason an ke nou te gen kèk MIZAJOU, efase se trè menm jan an. Olye de sa nou te efase soti nan Done. Se konsa, nan ka sa a, dènye nou an yon sèl mwen pral ekri desann isit la. Se pou nou di nou te vle efase m '. Mwen pa ka ekri jodi an. Efase soti nan tou sa tab nou ap nan, done. Apre sa, yo aktyèlman twa fason nou te ka chwazi yo efase m '. Èske ou ka di m 'sa mesye twa a fason yo, ki jan ou ta ka efase m 'konsa? ID egal 1, kote ID egal 1. Nou ta ka fè kote ane egal 15, oswa kote non egal Allison. nan kou, te gen sèlman twa fason diferan, paske sa yo, yo tout inik. Tipikman nan tablo ou a, ak espesyalman nan pset ou a, w ap ale nan mete youn nan kolòn sa yo yo dwe inik. Li nan pwobableman ale nan gen kèk ID inik nimewo, paske si ou have-- aktyèlman, li ta ka aktyèlman kite ou gen de. Mwen pa kapab sonje si li pral kite ou gen de nan menm bagay la. ODYANS: Lè sa a, li ta chanje konpòtman yo. ALLISON BUCHHOLTZ-AU: Li ta. Li pral lakòz konpòtman ki se inatandi, ke ou pa ka vrèman predi. Se konsa, ou pral definitivman gen yon kolòn nan baz done ou a, ki pral inik, ak li a tipikman ou ka mete li pou ke li la tankou yon ID inik, epi li pral jis mete ajou chak fwa ou insert nan tab la. Nenpòt ki lè w kreye yon nouvo ranje, li pral otomatikman kantite ak ba li kèk ID inik. Se konsa, allusion pou pset ou yo. OK. Se konsa, se sa ki SQL. Se konsa, kounye a nou ap ale nan pale sou bagay la trè dènye, ki mare nan aktyèlman trè byen ak ou pset, si li ta ale pi devan. Se konsa, mv, modèl View kontwolè. Sa a se vrèman jis yon fason kenbe bagay sa yo òganize. Nan menm fason an ak C nou mande ou nèg yo kreye fonksyon ak bagay sa yo apa soti, sa a se jis yon fason yo separe soti Kòd lè w ap fè devlopman entènèt. Se konsa, li fè bagay sa yo pi plis elegant ak senplifye, ak sa a se aktyèlman wout la ki pset ou se aktyèlman mete kanpe, se konsa si ou renmen li oswa ou pa, w ap ale nan aprann li, menm si ou pa panse w ap aprann li. Epi yon sèl bagay se, li te tou pèmèt ou fè anpil plis tankou yon kolaborasyon itilizatè. Se konsa, lè mwen te pran CS50, mwen te fè yon sit entènèt pou pwojè final mwen, epi mwen te tankou, mwen pral okipe bagay la baz done. Mwen pral fè tounen fen bagay, ak mwen kolokasyon ki moun ki mwen te pran ak li te trè artsy. Li fè konsepsyon sèn, epi li te vle fè li tout bèl. Se konsa, mwen tankou, OK. Ou ka pran swen nan tout fen bagay la devan. Epi bagay la se, kòm nou pral wè trè byento, ki kontwolè modèl View pèmèt ou konplètman separe ke kòd sa ke mwen te ka travay sou mete ann aplikasyon paj nou an, ak enfòmasyon manipile nan baz done nou an, epi li ta ka jis fè bagay sa yo bèl, epi nou tou de te vrèman kontan, paske nou te rive nan fè sa nou tou de te vle ak nou pa t 'gen fè fas ak yon sèl la ak lòt. Se konsa, nou te pandye soti ansanm. Nou renmen pann soti. Mwen jis pa t 'vle fè fas ak tout CSS la ak HTML bagay. Mwen te tankou, ou fè l 'bèl. Mwen pral fè fas ak baz done a. Se konsa, nou gen sa a vrèman fre, gwo ti kras tab. Mwen renmen tab. Ak fondamantalman, modèl la ou kapab panse osijè de se jis baz done ou. Mwen te moun nan modèl pou pwojè mwen an. Se sou tout depo a nan enfòmasyon ak òganize ki done. Se konsa, li a ki sa nou renmen yo rele tounen fen. Se konsa, ou nèg pral fè fas ak baz done a SQL ak dosye yo done. Sa a modèl ou yo. View ou, menm jan ou ta ka panse, kalite fè sans, se sa ki itilizatè ou aktyèlman wè. Li nan koòdone nan itilizatè. Li nan ki devan fè fas a eleman. Se konsa, se sa ki kolokasyon mwen te rive nan travay sou tout tan tout tan an. Li te super kontan. Se konsa, ki nan tout nan HTML a, ak gen nan anpil ti PHP. Si w ap jis ap pale de sa k ap parèt nan itilizatè a, nou ap pale de ipèrtèks. Nou ap pale de ki jan li sanble. Nou pa ap pale de lojik, oswa kondisyon, oswa etajèr. Tout moun nan ki vin okipe pa kontwolè a, OK? Se konsa, ki manch itilizatè demann yo ak vin enfòmasyon an. Se konsa, yon sèl bagay ou ta dwe konnen sou pset ou a se ke, nan opinyon ou a, nenpòt ki bagay ki se aktyèlman montre enfòmasyon pa ta dwe janm dwe fè rele nan modèl ou yo. Tout moun nan ki se okipe nan kontwolè ou yo. Kontwolè ou se yon sèl la medyatè ant de sa yo. Li pral mande modèl la pou sèten enfòmasyon. Li ka repekte sou ki enfòmasyon, figi konnen ki sa ou aktyèlman bezwen soti nan li, sa yo dwe fè ak li, ak Lè sa a li pral pase sou jis enfòmasyon ou bezwen gade nan pou ou pou w enprime li soti oswa montre li nan itilizatè a, OK? Paske nou wè gade nan kòm tou sa ap fè fas a itilizatè a, se konsa li pral pi fasil pou yo eseye figi konnen, oh, si ou ap fè kèk rele nan modèl ou epi ou ap mande pou tout itilizatè ki moun ki kòmanse ak lèt ​​A, ak w ap fè sa nan gade ou, nenpòt ki moun ki ka wè paj entènèt ou an te kapab potansyèlman jwenn aksè sa. Ou pa nesesèman vle sa. Ou pa vle moun yo wè plis nan baz done a pase sa yo ta dwe wè. Jis preferans espesifik yo. Se konsa, kontwolè a okipe tout nan sa. Se konsa, tout nan dosye php ou a, ki nou pral wè ou ka konsidere dosye kontwolè ou yo. Epi sa a, kote w ap reyèlman ale nan gen mande pou bagay sa yo soti nan baz done ou a, ak iteration oswa manipile li kòm nesesè anvan pase l 'sou yo dwe wè. Li se yon pset vrèman fre, nan opinyon mwen. Mwen panse ke li nan yon ti kras pi plis tankou satisfaksyon enstantane, paske ou aplike yon anpil nan ti kras bagay sa yo ti, ak chak bagay ta dwe travay sou pwòp li yo. Pa renmen, fè tout sa ak Lè sa a wè si li fonksyone. Menm jan ak ak lojisyèl kote ou ap tankou, mwen se reyèlman espere sa a se dwa, paske si li pa, gen yon anpil nan mete li te kapab dwe mal. Tout dwa. Jis fè si ke m 'te di tout bagay mwen te bezwen di sou mv. Yeah. Fre. Se konsa, nan CS50 Finans, nou gen modèl nou an, jan mwen jis te di isit la. Li nan pral fè miskl ak fpmyadmen. Mwen kapab definitivman rale moun moute pou ou nèg jwenn yon chans gade nan li. Tankou mwen te di anvan, li SQL ou baz done aji kòm modèl ou, ak ou ka voye voye sa nou rele demann, ki yo se jis sa yo kalite bagay sa yo. Yo rele sa yo yon sijè rechèch. Sa a se yon sijè rechèch, ki kote ou ap jis mande baz done ou pou yon bagay, oswa w ap chanje ou baz done nan kèk fason. Sa a tout li ye. Epi ou fè sa ak nan fonksyon nou te ban nou isit la. Ou kapab tou manipile yo nan men atravè fpmyadmen, ki nou kapab definitivman pran yon gade nan. Mwen pral kreye yon echantiyon baz done ak ou guys. OK. Se konsa, kontwolè. Se konsa, nan ka sa a, si ou avi, sa a se tout PHP. Remake nan kalite ou Bagay prensipal la kontwolè ou se ke li ta dwe sitou PHP. Si ou gen HTML nan kontwolè ou a, pa reyèlman asire ki sa k ap pase sou la. Menm jan an jan mwen te di, si ou jere yo [fèbl] ak HTML, Mwen se reyèl ki enterese. Se konsa, sa nou gen isit la se ou gen kèk rechèch. Rekèt se yon fonksyon ki nou bati pou ou guys. Se tankou yon pakè yo fè demann nan baz done ou yon ti kras pi fasil. Si ou pa t 'gen sa, sentaks la pou aktyèlman ap pale ak baz done SQL ou ta diferan, se konsa nou jis bay li pou ou guys. Nou renmen fè lavi fasil. Se konsa, nan ka sa a, ka ou nèg di m 'sa liy sa a ap travay? CHWAZI * ki soti nan kèk tab. ODYANS: Chwazi tout bagay soti nan tablo sa a. ALLISON BUCHHOLTZ-AU: Egzakteman. Se konsa, li di, ban m ' tout bagay soti nan tablo sa a. Epi li estoke l 'nan kèk rezilta varyab. Lè sa a di, si rezilta se pa egal fo, Lè sa a, nou fè chak nan sa a. Se konsa, si pa gen anyen isit la, si ou tab an vid oswa li jis pa egziste, li a pral retounen fo. Se konsa, nan ka sa a, nou ap jis fè asire w ke yon bagay te aktyèlman retounen li ban nou. Lè sa a, isit la, nou gen nou an bouk fortch gwo ke nou ap iteration sou nou an rezilta, epi nou ap rele li ranje, epi nou di rann modèl sa a kote done ou a se rezilta sa a. OK? Se konsa, li jis pwosesis ranje ki gen rezilta a. Sinon, li ape. Se konsa, sa a se yon egzanp nan kontwolè a. Kòm ou wè, sa a se nan sèlman place-- Yeah, regrèt? ODYANS: Poukisa gen yon comercial anvan ranje? ALLISON BUCHHOLTZ-AU: Yon comercial anvan ranje. Nou ap jis iteration. Sa a tou yon adrès of-- ODYANS: Se konsa, li tankou C indican. ALLISON BUCHHOLTZ-AU: Se fè si ke w ap aktyèlman chanje orijinal la epi yo pa yon kopi. Li nan nan menm fason an ak C kote nou ap pase pa referans isit la, jis a asire w. ODYANS: Èske li pa == olye pou yo pa = nan PHP? ALLISON BUCHHOLTZ-AU: Li pa == la. ODYANS: Paske egal nan C se just-- ALLISON BUCHHOLTZ-AU: Li nan jis pa =. Yeah, pa gen okenn. Li pa nan ==. Paske == nan PHP chèk pou egalite ak toggling, yo akòde, men bon jan kalite siplemantè. Se konsa, li pa nan == nan PHP. Li nan youn nan ti kras nan sentaks diferans. Yeah. Se konsa, nou ap jis iteration nan chak ranje, ak rann, si ou nèg li nan espèk ou a, se jis kèk lòt fonksyon ki se aktyèlman ale nan pwosesis tout HTML a epi montre li nan ou navigatè entènèt pou ou. OK. Se konsa, nou renmen panse nan contrôleur ou kòm sa manch lojik biznis la. Kòm ou wè isit la, sa a se kote nou ap pran done nou an soti nan tablo a, nou ap travay sou li nan kèk fason, ak Lè sa a nou ap pase l 'la. Lè nou fè rann kèk modèl, kèk modèl se gade nou an, epi nou ap pase li sèlman done a ke li ta dwe jwenn. Se pa tout done yo. Jis done sa yo ke nou vle li nan jwenn. OK? Fondamantalman done yo apre nou fin travay. Se konsa, sa a se gade nan, sa a se modèl la sòm ke nou genyen, ak tout sa a ap fè se, ou ka gen yon ti kras PHP nan gade ou. Li pa nan renmen yon pa gen okenn PHP nan vi. Ou ta dwe jis gen trè PHP minimòm nan vi, epi ou pa janm ta dwe rekèt nan gade ou. Ou ta dwe pa janm dwe pale nan baz done ou a nan vizyon ou. Sa se diferans nan gwo. Se konsa, sa k ap pase sou isit la se, nou gen PHP ki nan iteration nan ranje a. Se konsa, nan ka sa a, depi nou te iteration nan chak ranje ak rann yon bagay, sa a te pwobableman tankou yon etalaj de dimansyon kote nou gen kèk ranje ki se, nan tèt li, yon etalaj, paske nou ap iteration nan l 'ankò. Apre sa, nou ap jis enprime soti non an ranje, Lè sa a, fini ak li. Ou pa ta dwe bezwen sa a nan fortch la. Mwen pat janm wè ke anvan aktyèlman. Mwen jis fè fortch. OK, se konsa sa a, se gade nan. Ann wè si nou ka mache nan yon ti kras nan pset ou yo. Nou gen 15 minit, se konsa mwen si ke ou nèg ta renmen ke pi plis pase jis ki fini bonè. Kite m 'wè si mwen ka pote sa a leve. Se konsa, mwen pa konnen ki jan anpil nan ou nèg te telechaje li ak etajèr ankò, men nou gen non itilizatè isit la, ak nou gen kèk modpas. Men, malerezman, dwa kounye a baz done a se vid, se konsa nou aktyèlman bezwen yo kreye yon baz done. Oke, sa a, se etranj. Pa t 'atann sa. Erè teknik. Difikilte teknik. Nou gen kèk pset7. Fre. Se konsa, yon sèl bagay ou ka fè se, ak yon sijè rechèch mwen pral kreye yon tab. Se konsa, sa a pwal users-- sa ou ka fè isit la se, si nou gen some-- Vrèman kounye a? OK. Li evidan mwen pa fè sa cho. Oh. Mwen konnen pou ki rezon. Paske mwen pa janm kreye tab aktyèl m 'yo. Se konsa, lè ou premye kòmanse ak yon baz done, ou evidamman gen deside ki sa yo nan bagay mwen bezwen gen nan isit la? Se konsa, si nou jis ale nan done nou an tab isit la, nou te gen kèk ID, ki ka jis rete yon int. Men, si nou gade sou isit la, gen nan yon bagay fre that-- Se konsa, endèks. Si ou fè sa primè, li pral fè nan li bagay ki se tab ou ki te òganize pa, epi li pral tou fè li inik. Se konsa, nan ka sa a, nou pral fè li primè, ak mwen pral fè non sa a, Lè sa a, nou pral jis fè l 'yon varchar de tankou 26 lèt, paske poukisa pa? Lè sa a, ou ka ale pou konsève pou, ak Lè sa a, si ou wè, nou gen kèk itilizatè isit la. Se konsa, si nou te vle fè yon Insert, nou te ka fè l ' fason sa a, oswa si ou te vle pratik ak ou queries-- Oh ti gason. Mwen pa te itilize sa a nan pou tout tan. Mwen pran sa a tounen. Ou ka edite sa a sou pwòp ou a swa jis pa manyèlman mete enfòmasyon ak yon bagay tankou, ou kapab chanje nenpòt nan sa yo si ou te vle make-- Si ou vle toudenkou debarase m de non, ou ka lage, ou ka fè tout bagay sa yo. Si ou bezwen tout tan tout tan manuelman chanje tab ou, Mwen sijere fè l 'nan fpmyadmen kont ap eseye figi konnen SQL an demann an jeneral. Lè ou fèk kòmanse pset ou a, w ap ale nan gen nan travay nan isit la, se konsa jwenn itilize ak sa yo ki. Lè sa a, lè ou aktyèlman vle insert bagay sa yo nan table-- ou Mwen vrèman mande kote se sa ki, paske there's-- Isit la li ye. Sa a ki sa mwen te vle. Se konsa, si ou ale nan SQL, ou te kapab aktyèlman wè, jan nou wè isit la, nou gen demann SQL. Se konsa, si nou te vle chwazi yon bagay oswa si nou te vle insert yon bagay, nou ka fè insert nan itilizatè yo, dwa? Mwen panse ke ou bezwen antislach la. Youn nan bagay yo konnen se, si w ap tout tan tout tan lè l sèvi avèk sa a, ou gen yo sèvi ak sa yo tounen apostrof, ki yo, se tipikman, si w ap sou yon Mac, dwa pi wo a tab. Se konsa, yon bon bagay yo konnen. Ou te kapab insert nan itilizatè yo, e nou gen valè nou, dwa? Se konsa, nou gen valè, ak valè nou nan ka sa a ta jis pou, nou sèlman gen yon ID pou nou ta ka fè yon sèl si nou te vle. Sa a etranj. OK. Se konsa, sa a, se jis tankou yon kout ti bagay ak SQL, men li ta ka pi plis itil nan aktyèlman gade nan kèk nan dosye yo nan isit la. Se konsa, ale nan Downloads. Oh, pa Downloads. Se konsa, jis yon solisyon rapid nan sa ki nan nan chak nan sa yo dosye. Li gen ladan l, nou jis gen bagay sa yo ki configured navigatè ou a, nou gen konstan sa yo, e nou gen fonksyon sa yo. Si w ap enterese nan nenpòt nan yo, Mwen rekòmande gade nan fonksyon. Youn nan yo ki se super itil, aktyèlman se yon sèl sa a isit la, pil fatra. Se konsa, si ou itilize sa a, li pral aktyèlman jis enprime soti tou sa varyab ke ou renmen l 'bay. Se konsa, si w gen pwoblèm lè n ap kalkile konnen ki sa ki sa a etalaj sanble, oswa sa ki sa a done aktyèlman, ki jan li fòma, sa a se yon gwo bagay yo sèvi ak. Espesyalman lè ou gen yon itilizatè ak stock miltip, sa a se pral yo dwe yon bagay gwo yo sèvi ak. Paske li ta kapab formatted-- Mwen konnen omwen pou m 'lè m' te fè sa a pset, li te fòma nan yon fason ke mwen pa t 'byen atann. Se konsa, mwen te ap eseye repekte sou li epi li ap eseye manipile li, men mwen pa t 'reyèlman konprann sa m 'te fè a. Se konsa, si ou jis pil fatra li, li pral enprime li soti nan navigatè a, epi ou ka wè egzakteman ki jan li fòma. Li pral tipikman enprime li kòm yon etalaj ak kle li yo ak valè li yo. Se konsa, li ka ede la. Li ka ede tou fè asire w ke ou ap aktyèlman arachman done yo ki ou te panse ou te. Se konsa, si ou te tankou, tab avè m 'definitivman di gen nan yon itilizatè ak ID sa a, men lè ou ale nan pil fatra a varyab, li nan pa la, ou evidamman konnen sa a, se ki kote yon erè nan pral fè. Sa a se youn nan zouti ki pi bon pou debogaj, nan opinyon mwen. Lè sa a, gen nan yon koup lòt bagay isit la, men pou pati ki pi, sa a, se la yon sèl mwen vle trase atansyon ou a, paske li se trè itil. Piblik, sa nou genyen isit la se, sa a se tout nan bagay CSS nou an. Se konsa, CSS, polis, imaj nou an, etajèr. Sa a se tout bagay ki ou pa gen li modifye. Èske ou ka mesye panse osijè de si sa a gen bagay sa yo tankou CSS nan polis yo, ta sa a dwe yon modèl, oswa yon View, oswa yon kontwolè? ODYANS: [fèbl] ALLISON BUCHHOLTZ-AU: Li ta gen plis nan yon vi, dwa? Sa a se manyen tout bagay sa yo, ki jan bagay sa yo gade. Se konsa, si nou louvri sa a isit la, nou wè ki tout sa ki k ap pase isit la se nou ap rann yon bagay. OK? Se konsa, ta sa a anpil kalifye kòm yon View pou sa a. Se konsa, sa a se jis pran kèk, li nan rele kèk portfolio.php ke nou gen, ak li a pase nan Tit ak dosye. Epi li jis rann sa. Aktyèlman, mwen pran ki tounen. Sa a se yon kontwolè, paske rann, sonje, rann gade nan. Se konsa, nan sa a portfolio.php a ta dwe gade ou. Padon, guys. Portfolio.php a pwal vizyon ou, ak sa a ta jis gen kontwolè ou pou sa. Men, si nou pran yon gade nan sa a yon dènye isit la, modèl, modèl yo tout nan opinyon ou isit la. Se konsa, si nou gade, evidamman nou wè yon anpil nan HTML isit la. Se konsa, yon sèl sa a se jis ki montre w ki sa paj an login ta dwe sanble. Ou remake nou gen kèk gwoup fòm yo, yo gen soumèt. Isit la nan ki jan ou deside ki sa se parèt sou la. Ou gen kèk kalite bouton = "soumèt", ak Lè sa a ou gen sa ou vle li yo montre nan bouton. Se konsa, sa a, se ki jan ou ta fè li montre moute kòm tou sa ou ta renmen. E nou wè isit la nou gen kèk non itilizatè, gen kèk modpas, ak lè nou aktyèlman frape soumèt, li a pral gen kèk post, epi li k ap pase yo poste nan ki sa? Ki sa ki nan kontwolè a pou sa a wè? Lè nou frape soumèt, sa k ap pase yo dwe rele? nou konnen? Li nan dwa isit la, se konsa login.php. Yon bagay ou nèg yo se ale nan aplike. Se konsa, ou ka toujou di sa k ap pase yo dwe rele apre ou frape soumèt pa liy sa a premye isit la. Ki sa ki fòm aksyon an se. Lè yo soumèt fòm sa a, ki aksyon nou pran? Nou rele login.php, epi nou rele li ak metòd sa a nan pòs, ki te gen nan enfòmasyon kache. OK? Se konsa, sa a se vizyon ou, ak Lè sa evidamman si nou te ale nan login.php-- Èske nou genyen li ankò? Yeah. Se konsa, jan nou wè isit la, sa a gen yon anpil plis lojik. Li nan tout PHP nou isit la. Nou ap eseye wè si li te $ _GET, si li te $ _POST, validation bagay sa yo, rekèt, tout bagay sa a. Se konsa, moun yo se jis twa nan bagay sa yo diferan isit la. ou pa bezwen chanje bagay sa yo. Ou pral kreye bagay sa yo nan modèl, petèt, men osi lwen ke HTML a oswa manier nan nenpòt nan sa a ale, ou ka kite li kòm senp oswa fasil pou kòm konplike jan ou ta renmen. Gen kèk moun ki jwenn vrèman nan li epi li fè kèk sit trè pè. Ou pa oblije fè sa. Si w gen tan, li nan yon bagay vrèman fre. Ou ka dezòd otou ak CSS ak HTML epi pou yo jwenn yon pi bon santi yo pou li, men se pa santi presyon. Genyen anpil pou ou pou w fè sou la tounen fen ak mete ann aplikasyon ouvri sesyon an, epi enskri, ak tout nan bagay sa yo. Se konsa, èspere ke ki ede yon ti kras. ou nèg gen nenpòt kesyon sou anyen nou te ale sou, nenpòt ki lòt resous? Mwen pral definitivman voye tout nan egzanp mwen PHP Kòd ou nèg, ak Lè sa a santi yo lib yo pran foto oswa etajèr nan sa a. Epitou li nan entènèt. Ou ka toujou jis gade ankò. Se konsa, si sa a, se li, tout moun sa ki bon? Wi. ODYANS: Mwen jis vle nan konfime, lè nou ap fè chwazi nan SQL, nan etwal vle di tout bagay, dwa? ALLISON BUCHHOLTZ-AU: Wi. ODYANS: Lè sa a, si ou pa gen zetwal la, si ou vle li pran ki sòti nan yon espesifik ranje, Lè sa a, ou jis mete non an of-- ALLISON BUCHHOLTZ-AU: Non an nan ranje a ak sa ou vle ou vle valè a nan. ODYANS: Lè sa a, dat la. ALLISON BUCHHOLTZ-AU: Kèlkeswa sa w ap chèche pou, yeah. Nan menm fason an, si ou fè efase * soti nan kèk tab, li pral efase tout bagay. Se konsa, * se jis yon bwa kat pou tout bagay. ODYANS: OK. ALLISON BUCHHOLTZ-AU: Cool. Awesome. Oke, gen yon gwo Lendi, guys. Mwen pral wè ou an semèn pwochèn. Bon chans sou pset ou yo.