JASON Hirsch: Welkom om almal te week agt. Ons het 'n opwindende week voor ons. Julle het in die afgelope paar duif lesings vir PHP, SQL, HTML, CSS, so vier splinternuwe tale wat gaan neem die res van hierdie kursus. Ons sal ook leer om 'n paar van die ander tale voor loop se einde. Maar in elk geval, Nodeloos om te sê, dit is 'n baie opwindende tyd in CS50, nou is jy bemeester het C, oënskynlik, en is beweeg op tot programmering vir webblaaie. So hierdie week, gaan ons om te gaan op 'n warrelwind-toer deur die vier tale wat ek net genoem het, HTML, CSS, PHP, en SQL. En hopelik, sal ons baie laat tyd aan die einde van die artikel om te praat oor hierdie week se P stel en antwoord enige vrae wat jy al het. Elke week, dieselfde lys van hulpbronne vir jou, om jou te help met die week se probleem gestel en gaan oor die materiaal - Maar hierdie week in die besonder, vir hierdie web-gebaseerde probleem sit, is daar 'n gasheer van ander hulpbronne uit daar dat jy sal waarskynlik vind ongelooflik nuttig. Ek het hulle hier. Ek sal e-pos wat jy hierdie artikel na artikel, en dit ook aanlyn wees. Maar in die besonder, daar is baie van groot hulpbronne wat daar is. Daar is ook 'n paar nie so 'n groot kinders, so wees versigtig van daardie. Maar op hierdie skuif, ek het vier goeie hulpbronne, een vir elk van die tale wat jy werk met hierdie week - een verwysing blad vir HTML, 'n verwysing blad vir CSS. Hierdie reg hier is die PHP handleiding. So in plaas van tik man en dan 'n PHP opdrag, dit is waar jy wil gaan kyk op die funksie prototipe en voorbeelde en ook 'n paar wenke en truuks vir die gebruik van PHP funksies. Jy sal hierdie webwerf gebruik dikwels, sodat ek u aanmoedig om te word vertroud met dit. Dit kan 'n bietjie tegnies, maar dit bied ook 'n ton van die hulpbronne en voorbeelde vir al die funksies en selfs ander, soos hoe skikkings te gebruik of verskillende soorte veranderlikes. Hierdie webwerf is baie nuttig vir PHP. En dan, vir SQL, as jy duif in hierdie week se probleem stel, sal jy weet wat ons gebruik om 'n databasis. En ons toegang daardie databasis deur 'n relatief mooi gebruikerskoppelvlak. Of dit is een manier om toegang dat die databasis. Die gebruikerskoppelvlak is genoem phpMyAdmin. Daar is 'n SQL blad, wat ons sal kyk later vandag. En jy kan tik in hul monster SQL navrae, dinge in jou databasis te doen en dan hardloop die navrae. En as hulle reg is, sal dit sê, hierdie een is korrek. As hulle verkeerd is, sal dit sê, dit is nie korrek nie. Dit is 'n groot plek om te oefen jou SQL navrae voordat hulle in te skryf jou kode, om seker te maak jy maak het die formaat korrek is. Ten slotte, een ander webwerf hier. Dit is die webwerf waar jy kan gaan kyk seker dat jou te maak HTML-kode is geldig. So voor die draai van jou probleme soos hierdie week, maak seker dat al HTML is geldig. Verlede week, het jy valgrind hardloop, te maak seker jy het nie die geheue lekkasies. Hierdie week, moet jy seker maak almal van jou kode is geldig HTML5. As dit nie geldig HTML5, jy gaan kry punte af. So maak seker dat - net omdat dit werk nie beteken dit is heeltemal geldig. Begin jou kode deur middel van hierdie webwerf voordat hy dit in Weereens, hier is die webwerf. As jy enige terugvoer vir my, ons het 'n paar van die meer afdelings links, en ek wil altyd om te doen wat ek kan om te gee jou al die beste artikel ervaring moontlik. So laat my weet as daar iets is wat ek kan doen om te verbeter, of indien daar dinge wat jy sien dat ek beter kan doen. Dankie, Avi. Sit dit op die webwerf. Dit was die fiets ek gehad het toe ek was, kom ons sê, vier by die huis. Dit is 'n Teenage Mutant Ninja Turtle fietsry, in die geval dat jy nie kan sê, want dit is 'n bietjie vaag. Jy kan dit kry nou by ToysRUs vir, dink ek, oor die $ 100. Maar die funksie van hierdie fiets wat ek wil u aandag te skenk aan hierdie is reg hier. Dit is die opleiding wiele. Tot nou toe het jy al hand deur C. En ons het 'n lang geneem tyd, twee maande plus, om te gaan deur C. Vir hierdie volgende paar tale, Ons gaan nie te bestee soveel tyd. Die opleiding wiele kom af. En ons gaan om te duik in hierdie tale vinnig en beweeg deur middel van hulle vinnig, wat is nie te sê dat ons is maar net gaan om jou te laat swem daar is geen manier om te ondersteun jouself of uit te vind hoe hierdie tale werk. Ek het net het jy 'n lys van hulpbronne om jou te help. Maar hou in gedagte dat PHP is ongelooflik soortgelyk aan C. Ons gaan oor dit vandag en 'n paar van die verskille. Maar vir die grootste deel, daar is vir loops. Daar is indien toestande. As jy 'n probleem op te los, jy gaan gebruik om 'n kombinasie van daardie. Dit is baie soortgelyk. Die logika moet baie soortgelyk aan wat jy in die verlede gedoen het. Wat is regtig Nuwe hierdie week is die sintaksis en hoe jy jouself uitdruk. En jy wil 'n lus vir skryf, maar dit kan lyk 'n bietjie anders. Of jy wil 'n skikking te skep, maar dit kan lyk 'n bietjie anders. So in gedagte hou dat, vorentoe beweeg, Die logika is baie soortgelyk aan wat wat jy in die verlede gedoen het. Maar jy nou gaan om te stuit 'n baie nuwe sintaksis. En ons is nie van plan om jou te loop deur al die elemente van die sintaksis. So dit is regtig aan jou om uit te vind, aanlyn of deur uit te reik op Bespreek of e-pos my of praat met mekaar, hoe dinge in te skryf PHP en SQL navrae te skryf en hoe HTML en CSS te gebruik. Maar net sodat jy weet, dit is nie wat ons probeer om jou daar te gooi weer die Sharks te swem. Dit is wat jy waarskynlik sal doen met jou finale projek, as jy kies om 'n ander taal, soos IOS en Objektiewe C, of ​​as jy besluit om te begin ontwikkeling in die toekoms en duik in ander tale, soos Python of Ruby. Dikwels, die logika is baie soortgelyk oor al hierdie tale, en die sintaksis is wat anders is. En dit sal wees vir jou, as die programmeerder, te gaan gebruik om die web hulpbronne beskikbaar vir jou en figuur uit te vind hoe om te sê wat jy weet hoe uit te druk in C, in 'n ander taal. So, dit is 'n goeie praktyk, beide vir jou finale projek, en weer, vir wat jy sal waarskynlik doen nadat jy laat CS50. Voordat ons beweeg, nie almal enige vrae oor wat Ek het tot dusver gedoen het? Groot. Kom ons beweeg aan. Eerste, gaan ons kortliks praat oor die chmod opdrag. Dit sal ons doen aan die begin van jou probleme stel. Een van die heel eerste instruksies Vir jou, nadat jy die aflaai van die verspreiding kode, is om te verander die regte van die lêers en dopgehou wat jy ontvang. Kan iemand waag 'n raaiskoot of weet Hoekom is dit belangrik om te verander die regte van sekere lêers en dopgehou op jou rekenaar? Avi - Publiek: Toe niemand behalwe vir jy kan sien wat jy doen? JASON Hirsch: OK. So as ons iets wil sit op die web en jy het regte wat daardie net jy kan iets sien, dan kan niemand anders sien wat jy gemaak het. Wat anders? Ja. Publiek: Voorkom enigiemand anders wat jy wil nie iets om te sien, van sien iets. JASON Hirsch: Dit is ook waar. Daar is waarskynlik 'n paar kode wat jy skryf, wat jy doen nie wil hê mense om te sien. Jy is waarskynlik OK met mense te sien jou HTML en jou JavaScript. Maar jou PHP, 'n agterkant kode, 'n baie die logika in jou kode, miskien die dinge wat slaan 'n paar van jou wagwoorde vir jou databasis, kan jy dit nie doen nie wil hê mense om te sien dat tipe inligting. Dus is dit belangrik dat elke lêer en gids skep ons het regte van toepassing op die vraag of ons wil mense hierdie tipe van lêers te sien en dopgehou en in staat wees om dit te bekom en moontlik selfs verander nie. So is daar drie tipes regte. Daar is 'n lees toestemming, wat beteken jy kan 'n lêer of 'n lys van die lees inhoud van die gids. Daar is die skryf toestemming, wat beteken dat jy kan 'n lêer of verandering verander 'n gids en dan die voer toestemming, wat beteken dat jy kan voer 'n lêer of eerder, jy kan beweeg in 'n gids. So iets CD, as jy die toestemming om dit uit te voer, kan jy beweeg hierdie gids. Dit is 'n kort voorbeeld. Weer, moet jy oor die weg het in die probleem gestel. Maar ek skep 'n gids met die mkdir opdrag. Ek verander die regte. Hierdie twee lyne eintlik presies dieselfde ding. Dit is om te illustreer dat die sintaksis vir veranderende regte, of jy doen die A + x of 711, dit is dieselfde. Ons kyk af na hierdie pragtige tafel. Ons sien dat daar gebruiker regte eerste. Dit is jy, die individu, en jou bediener, potensieel. En dan is daar die groep en ander. Die verskille tussen die twee is relatief triviale. So oor die algemeen, sal ons knop diegene saam. Maar in wese, as ons 'n lêer genoem sluit in dat ons wil wees staat om onsself te verander en wat ons wil ander in staat wees om uit te voer, dit is die toestemming 711. En ons sien dat down hier in hierdie tabel. Ons het 'n lees, skryf, en uit te voer. Vir elkeen van ons, ons wil in staat wees om die te doen. Groep en ander, ons wil net hulle in staat wees om uit te voer. Die manier waarop ons vertaal dat in 'n aantal toestemming is deur binêre. So as ons drie kinders, dit is 'n 1 in dié kolom, 'n 1 in die twee-twee kolom, 'n 1 die viere kolom. Dit is 7 reg daar. En hierdie toestemming is 1. Hierdie toestemming is 1. So 711 toe is dieselfde as wat onsself lees, skryf, en uit te voer, en almal voer voorregte. Hierdie lyn reg hier, ons in die algemeen sal lees en skryf wanneer ons skep 'n gids. So hierdie lyn hier voeg net voer voorregte vir almal. Sodat soortgelyk aan sou wees, in Benewens dit wat ons het, toevoeging van 1, 1, 1 tot almal. Dat dit, dis nie nodig te voeg lees en skryf. Maar as jy gaan die getalle te gebruik, jy kan nie net iets byvoeg. Jy oorskryf ookal toestemming was daar en te implementeer om hulle met die nuwe nommer wat jy gee. Dit was redelik vinnig. Het enige iemand enige vrae oor die verandering van regte? OK. As ek 'n PHP-lêer, wat regte ek wil om dit te hê? Dit is in die probleem stel spec. So kan jy kyk na die spec en lees dan vir my die antwoord. Publiek: Jy wil die gebruiker te het lees-en skryf regte. En jy wil almal anders niks te hê. JASON Hirsch: En wat getalle is dit? Publiek: 600. JASON Hirsch: 600. So chmod 600 - wanneer jy druk 'n PHP-lêer, chmod 600. OK. Ek het 'n gids. Iemand behalwe Jeff, Ek het 'n lêer gids. Wat toestemming wil ek te gee aan die gids - ook in die probleem gestel spec, reg onder om die antwoord of die vorige antwoord? Moontlik ook op die skyfie - Marcus. Publiek: Vir die gids, dit is 711. JASON Hirsch: 711 - so 'n gids, jy wil gee 711. Jy wil in staat wees om die gids te lees, verander dopgehou, skuif na die gids. En jy wil almal anders in staat te wees om te navigeer in die gids nie, maar nie noodwendig die inhoud daarvan verander. Wat van 'n nie-PHP lêer, sê, 'n JavaScript-lêer? Wat regte wil ons dat die tipe van die lêer te gee? Publiek: 644. JASON Hirsch: 644 - hoekom wil ons dit 644 te gee? Publiek: Om jou te laat ander mense het dit gelees. En jy lees of skryf nie. JASON Hirsch: So reg, almal anders kan lees dat JavaScript lêer. En jy kan verander dat, benewens staat te wees om dit te lees. So een van die mees algemene foute mense het met hierdie probleem sit en hul finale projek, indien dit is 'n web-gebaseerde finale projek is, sal hulle nie gestel het die korrekte regte. En hulle sal nie in staat wees om hul webwerf te sien. Of 'n bepaalde deel van hul webwerf. So maak seker dat jy die regte korrek. Moet nie net aanvaar dat dit sal doen dit outomaties vir jou. OK. Dit was 'n klein ding wat ons het 'n goeie bedrag van die tyd op, so ons kan dit spyker. Kom ons beweeg na HTML. En weer, want hierdie volgende vier onderwerpe, Ons gaan om te gaan deur middel van hulle relatief vinnig. So voel asseblief vry om my te stop by enige tyd, as jy enige vrae het, of hulle is verwant aan wat ek dek of iets van lesing of selfs van die probleem stel. Stop my wanneer jy wil. Wanneer ons aan die einde is, sal ons net begin gaan oor die probleem stel. So HTML staan ​​vir HyperText Opmaak taal. Dit is nie 'n programmeertaal. Al wat dit doen is die struktuur van jou inhoud en ook 'n paar metadata. So byvoorbeeld, vermoedelik, baie van jy Facebook voor gebruik. En jy kan skakels sluit in, of jy kan 'n skakel sit as jou status. En dan, sal jy die skakel sien het altyd 'n mooi prentjie dit en sommige teks. Die algemeen, wat is 'n paar metadata vir 'n web bladsy. En dit is Facebook-spesifieke metadata. En dan, wanneer Facebook is om te lees dat bladsy en die inbring van die skakel, is dit lyk vir die spesifieke metadata, so dit weet watter prentjie te vertoon, wat titel te vertoon, en wat abstrakte teks te vertoon. So kan ons sluit metadata met ons webblad met behulp van HTML. En dit help ons ook struktuur Die inhoud, in die algemeen, wat ons wil gaan waar. Alles in HTML is 'n element. En elemente hier - hierdie CS50, teks is die element. En dit het 'n paar tags. Dit het dit 'n tag. En ons sien daar is 'n A aan die begin en dan 'n streep 'n, so die sluiting van die 'n merker aan die einde. Soms, daar is nie 'n oop tag en 'n beslote tag. Daar is net een ding. Ons sal 'n voorbeeld van wat te sien op die volgende skuif. So jy hoef nie 'n oop en 'n beslote tag. Maar vir hierdie, is ons encasing hierdie CS50 element in die 'n anker tag. En in wese, hierdie tags vertel die leser wat om te doen met die spesifieke element. So weer, CS50 is die teks ons gaan om te sien. En dit gaan wees 'n tipe van die anker. Anker is in wese gebruik vir die skakels na iets. In die besonder, as wat jy kan reeds vertel, is dit 'n verwys na die CS50 tuisblad. Die volgende deel van die etiket - of oor die algemeen, 'n deel van etikette is eienskappe. En ons sien hier dat die 'n etiket het een kenmerk, hierdie href kenmerk. En hulle verander 'n bepaalde etiket. In werklikheid, as jy gaan na een van die webtuistes of die verwysings wat ek jou gegee voor of kyk op die etiket 'n aanlyn, jy sal sien daar is 'n ton van potensiaal eienskappe. Dit is waarskynlik een van die mees algemene. Dit is vir my 'n te skep verwys na die spesifieke webwerf. En eienskappe algemeen gegee word, Indien nie uitsluitlik gegee, in die sleutel-waarde pare. So hier is die sleutel, href. En die waarde is hierdie reg hier. En dit sal later handig te pas kom, wanneer ons begin met behulp van 'n paar biblioteke help ons kode in JavaScript of skryf HTML inhoud. Ons word dikwels gaan wees - net soos ons sou verskeidenheid bracket 0 en wat dit doen sou gee ons 'n bietjie waarde. In die toekoms, sal ons doen 'n baie dinge soos iets bracket href. En dit sal vir ons die waarde van die href, of as ons wil hê dat die href te werk sleutel en dan gee dit 'n bepaalde waarde. So, net soos met skikkings waar ons moes sleutel 0 of sleutel 1 of sleutel 2 of selfs met 'n Hutstabel, wel, met hash tabelle so goed, jy het waarskynlik - dit was 'n skikking, sodat die sleutel 0, sleutel 1, sleutel 2. Dit indeks is daar, ons kan dink dat as 'n sleutel. En die waarde is net is daar gestoor. Al hierdie eienskappe is die sleutel-waarde pare. En dit sal belangrik wees vir die verandering hulle of die opdatering van hulle of inbring om hulle later op. Ten slotte, jy het gesien hierdie struktuur voor, maar dit is die mees basiese struktuur van HTML-bladsy. Op die top, het ons vertel dat dit is in werklikheid HTML. En dan het ons 'n oop HTML tag en 'n beslote HTML tag. So alles wat binne dit is die HTML. Ons sien die kop en die liggaam. Die hoof van die dokument algemeen sluit wat? Enige raaiskote vir wat jy sit in die kop? Publiek: Jy het die titel en styl. JASON Hirsch: Die titel. Dit was 'n groot raaiskoot. Ek kan gestort het jy af na die. Wat is 'n paar ander dinge? Ons het genoem dat een van hulle kan gaan in die kop. Publiek: Hy het gesê, style. JASON Hirsch: Styles - so as jy wil om te skakel in 'n JavaScript of selfs 'n CSS, wat jy praat oor wanneer jy praat oor style. Nog 'n lêer, jy wil om te skakel in 'n buite lêer, wat sal waarskynlik gaan in die kop. Wat anders? Ons het genoem 'n paar skyfies gelede as een van die dinge wat HTML vir jou kan doen. Dit kan - begin met 'n M - Publiek: Metadata. JASON Hirsch: Metadata - so 'n baie van die metadata sal gaan in die kop, want dit sal nie noodwendig om deel te wees van die liggaam van jou kode te wees. Dit is oor die algemeen - die liggaam is die inhoud, wat iemand sien. En so het ek net het die antwoord weg my volgende vraag. Maar in die liggaam is oor die algemeen die inhoud wat gaan om te vertoon op die webblad. Soos ons sal sien, ingewikkelde webwerwe geneig om te meng of te verander tot wat hulle het in die kop en die liggaam. Maar oor die algemeen, die hoof bevat dinge wat die gebruiker is nie van plan om sien op die skerm. Dit skakel in ander lêers en bied metadata. Terwyl die liggaam bevat alles die gebruiker gaan om te sien. Enige idee wat dit beteken p tag? Publiek: Paragraaf? Publiek: Print. Publiek: Dit beteken nie dat die gedrukte media. Publiek: Beteken dit paragraaf? JASON Hirsch: Paragraaf - so dit is 'n lid. En dit p tag, ek kon net getik dit op die skerm en dan ingesluit 'n lyn breek aan die einde van dit. Enigiemand wat weet hoe om te sluit 'n lyn te breek? Publiek: PR - JASON Hirsch: PR - Publiek: Sny pr? JASON Hirsch: PR streep staan ​​vir lyn breek. Maar paragrawe spesifieke opmaak. En ons sal kry om opmaak in 'n Tweedens, wanneer ons praat oor CSS. Maar alles binne-in hierdie p tags sal 'n verstek uitleg het verband hou met dit, waarskynlik 'n paar spasiëring tussen verskillende paragrawe. En dit sal 'n manier om te onderskei wees blokke van die kode. Enige ander etikette - wat ander etikette wat jy gesien het? JASON Hirsch: H1 deur h6. H1 deur h6, en wat is dit? Publiek: Dit sal dui hoe groot en waag om die letters is. JASON Hirsch: Right, dit staan ​​kop. En so header1 is 'n groot kop. Dit sal waarskynlik by verstek wees dapper, 'n groot lettergrootte, waarskynlik gesentreer op die skerm, al die pad af te h6, wat is 'n kleiner lettergrootte, minder beklemtoon. Van die kursus, kan jy, in jy CSS-lêer of iewers in jou kode - wat, weer, sal ons kry met wat in 'n tweede - verander wat die standaard gedrag van 'n h1 tag is. Maar hou in gedagte dat Chrome, Safari, Firefox, Internet Explorer almal verstek lyk vir 'n baie hierdie standaard tags. Jy kan, weer, altyd verander hoe hulle lyk. Enige ander etikette wat almal gesien het? Ja - Publiek: A DIV site. JASON Hirsch: 'n div tag - div tag het geen ingeboude formaat, per SE, wat gebruik word om te sluit af verskillende tipes van die kode. Enige ander tags? Ja. Publiek: li - JASON Hirsch: li - Wat is li vir? Publiek: List. Publiek: Lys JASON Hirsch: Li vir die elemente. Daar is twee tipes van die lyste. Wat is die twee tipes? Publiek: georden en geordende. JASON Hirsch: georden en geordende - so ul erwe vir geordende lys. Dit is as jy 'n bullet wys, 'n lys van die koeëls. 'N geordende lys is 'n genommerde lys. En so sal jy 'n oop ul tag doen en dan ton van die elemente en dan sluit die ul tag. en dit sal skep 'n On-geordende lys. Ons gaan 'n paar voorbeelde te sien van HTML in 'n bietjie. Maar voor dan, ek wil te kry om CSS. En CSS staan ​​vir Cascading Style Sheets. En dit is baie nou verwant na HTML, maar effens anders. Dit help jou om al die inhoud formaat dat HTML strukture. So in CSS, ons oor die algemeen nie wil styl elke enkele kop of elke enkele beeld of elke enkele paragraaf. Ons wil 'n paar elemente te stileer of dalk 'n spesifieke element. En die manier waarop ons die styl 'n spesifieke element is om dit te gee 'n ID. So, dit is 'n kenmerk. Dit het 'n sleutel en 'n waarde. ID is die sleutel. Logo is die waarde. Ek opgetel logo lukraak. En as jy iets gee om 'n ID, Die algemeen, wat moet gegee word een element. En dan, in die styl blad, kan jy styl wat besondere element egter jy wil om dit te sien. As jy wil 'n aantal te stileer elemente, miskien is dit 'n sekere klas van kop, net 'n paar van jou kop. Miskien is dit 'n kop en 'n beeld en 'n paragraaf wat jy wil almal gesentreer word. Dan kan jy die groepe gee elemente al 'n klas. En jy kan die klas gee spesifieke style. So 'n ID en 'n klas is twee maniere om te breek die kode, sodat jy kan help meer spesifiek in wat jy styl. Daar is drie maniere om te stileer. Die eerste een is, met hierdie styl kenmerk. So jy sien, die styl sleutel is styl. Die styl waarde is eintlik nog 'n belangrike waarde lys. In hierdie geval, het ek opgetel een van die belangrikste, text-align. En ek het gesê, in die middel. Jy kan vra jouself op hierdie punt, hoe het ek weet text-align. Wat beteken dat selfs doen? Dit is 'n groot vraag te vra, en ons gaan in 'n tweede daar te kom. So dit is een manier om iets te styl, net gee dit die styl kenmerk. Nog 'n manier om iets te styl is - dit is akshar vroeër genoem. Jy kan gebruik styl tags en sit dit in die kop van jou HTML-dokument. So jy is basies sê, Die inhoud binnekant hier is 'n paar styl inhoud. En die formaat, want dit is die ding wat jy wil styl en dan binnekant van krulhakies, die sleutel waarde denim eienskappe wat jy wil te gee daardie spesifieke tipe element. Ten slotte, en dit is die mees algemene manier. En dit is die manier waarop ons doen dit in p stel 7. Dit is 'n eksterne stylblad. So jy het 'n. Css lêer. En binnekant van dit, sien jy 'n baie dinge wat lyk soos hierdie, die naam van 'n soort van element of 'n ID of 'n klas en dan binnekant van krullerige draadjies, 'n lys van sleutel waarde pare. Natuurlik, as jy 'n eksterne lêer, gaan jy nodig het om dit in te sluit - skerp sluit, sou dit wees om die C-analogie - in jou HTML-lêer. So jy het om dit te sluit kode in jou HTML-lêer. Dit synde die naam van die lêer en die veronderstelling dat dit is in dieselfde gids. OK. Dit was 'n baie. En ons nou gaan om asem te haal en te kyk op 'n paar werklike, live webwerf en verken die meer. Maar voor ons dit doen, doen niemand enige vrae? So as jy wil om dit te doen, saam met my, ons kan gaan na die toestel. En Ek het die CS50 tuisblad. Jy kan dit doen met enige webwerf. Maar hoekom doen ons nie begin met die CS50 tuisblad? Kom ons verfris. Ek het eintlik raai jy doen dit saam met my, want wat ons nou gaan doen gaan wees ongelooflik handig vir jou, nie net in P-Stel 7, maar in P-Stel 8 as well. Ja. Publiek: Is daar 'n manier om kommentaar te doen in HTML, sonder die gebruik van PHP? JASON Hirsch: Ja, jy kan kommentaar te lewer in HTML. Publiek: Wat is die sintaksis? Publiek: uitroepteken Dash Dash. Publiek: OK. JASON Hirsch: Ja. Dit is die sintaksis. Jy kan kommentaar maak in HTML. Jy kan kommentaar maak in PHP. As jy sien, kommentaar in HTML sal nog steeds vertoon, wanneer ons kyk na die HTML bron-kode van 'n spesifieke terrein. So hierdie cs50.net. As jy regs kliek in die meeste moderne blaaiers op die meeste 'n bladsy, jy sien die bladsy bron. So laat ons doen wat op CS50. En kyk en kyk, ons sien 'n reuse-ding. CS50 lyk eintlik mooi mooi. Daar is baie van die webwerwe sal nie kyk hierdie mooi. As jy gaan na die tuisblad Google se en maak dit op. Dit sal nie hierdie mooi kyk. Maar jy sien dat, by die top - hierdie is 'n soort van 'n klein. Kom ons maak hierdie groter. OK. Op die top, DOCTYPE HTML, dit is bekend. Dan sien ons die oop HTML tag en die kop, reg hier, al van hierdie metatags. En jy kan hierdie og sien nie gaan om te gaan na dit nou. Maar ek is byna positief dat diegene sou wees Facebook. Dit is eintlik die Facebook. Ek dink wat staan ​​vir 'n oop grafiek. So onthou, was ek noem daar Faceboook-spesifieke metadata wat jy kan gee aan 'n bladsy. Dit is wat reg is hier. So wanneer jy 'n skakel van hierdie bladsy op Facebook, die beeld is dit gaan om te wys is die beeld hier. En jy eintlik sien dat dit Facebook, want dit is die Facebook beeld. Maar in elk geval, ons opsy om. So ons het 'n paar metadata tags hier. Ons sien die CS50 titel. En weer, die titel is wat gaan hier in die blad leser. Ons sien dit is 'n skakel in, reg hier, 'n eksterne JavaScript lêer. Ons het nie veel gepraat oor JavaScript, maar volgende week - en seker as jy doen 'n web-gebaseerde probleem stel, jy sal gebruik word JavaScript. Dit is hoe jy 'n skakel in die eksterne JavaScript-lêers. Ons sien hier, uiteindelik, die CSS styl blad, dat dokumente van hierdie style van die kode. Kom ons eintlik oop te maak en neem regtig vinnig 'n blik. Dit lyk mal. Daar is geen manier wat ek sou wees staat om deur te lees. So kan jy eintlik al is, as jy 'n blik, kan jy soort van te sien dat daar is - daar gaan ons. Dit lyk soos iets wat ons gesien het voor, die agtergrond, die opstel van dit gelykstaande aan 'n rooi-groen-blou waarde. Hierdie dinge soort van moet lyk nie of dat buitelandse, selfs al is, wanneer dit soos hierdie, kan dit 'n bietjie oorweldigend. Ons gaan nie om te kyk na hierdie CSS-lêer of spandeer baie tyd op dit, want Dit is, weer, baie moeilik om te lees. Kom ons gaan terug na hierdie HTML bladsy vir CS50. En laat ons blaai af na die liggaam. En binne-in sien ons hierdie div tag. Ons sien 'n kop reg hier. Ons sien die anker tag. En hierdie lys element is gegee 'n spesifieke klas. En ons sien dat die klas herhaal oor en oor weer. Daar is jy Curtis. Daar is die opmerking in HTML5. En as jy sien, kan ons nog steeds sien nie, maar dit is nie vertoon. Dit is eintlik baie interessant. Dit lyk soos hierdie tellings lys element is kommentaar uit. As ons na hierdie bladsy, weer, is dit nog steeds verskyn daar, so interessant. Ag, dit is hoekom, want hierdie volgende reël. Wat anders sien ons van belang is? Die res van dit is meer verwarrend, in hantering van hierdie reg die helfte van die webwerf, wat is 'n bietjie bietjie meer kompleks. So dit is wat 'n paar HTML gaan lyk. Vir my egter dit is 'n bietjie oorweldigend, en dit beteken nie help my dat daar nog baie. Maar daar is iets wat nie, in werklikheid, help my baie. En dit is wat ek gebruik wanneer ek probeer om uit te vind hoe om iets lyk soos dit die geval is, of hoe kan Ek maak veranderinge aan my webwerf. En dit is 'n ontwikkelaar instrument wat gebou in Chrome. So as jy gaan na hierdie drie bars reg hier en gaan af na gereedskap klik op Ontwikkelaar gereedskap, 'n bietjie venster pop-up aan die onderkant van die bladsy. En in die besonder, Chrome, want dit is wonderlike, sal hierdie venster formaat en neem die HTML en maak dat dit lyk 'n baie mooier vir jou. So nou is dit eintlik 'n paar opvoubare HTML wat jy kan verken te inspekteer die elemente van die bladsy. As ons wil hê om te kyk na die liggaam, dit eintlik beklemtoon. Wanneer jy blaai oor 'n deel van die HTML, in hierdie venster, sal dit beklemtoon die deel dit praat oor in die groot venster. So laat my weer probeer blaas dit op 'n bietjie. OK. So laat ons maak die liggaam. En ek blaai oor hierdie links DIV. En jy sien dat dit in die lig te Dit het die helfte van die skerm. So laat se kliek op daardie en uit te brei nie. Binnekant van dit, dit lyk soos Daar is twee divs. Daar is hierdie eerste DIV. Ek kan nie sien wat uitgelig. Ek weet nie, maar dit lyk soos hierdie tweede een links innerlike, is die inhoud aan die linkerkant van die skerm. Dan is daar hierdie ding genoem kop. Dit lyk soos dit in die lig te die CS50 deel. As ons oop te maak, sien ons dat dit niks meer as header 1. Dit is 'n gegewe ID, en dit is gegee die teks cs50. So weer, op soek na dit deur middel van hierdie konsole of die gebruik van die ontwikkelaar gereedskap paneel aan die onderkant van die skerm word ' verkenning van hierdie webwerf, hopelik, 'n baie minder intimiderend en 'n baie meer toeganklik te maak. Dit laat ons ook om te verstaan ​​dat hierdie webwerf, al lyk dit baie mooi en lekker is, is nie alles wat veel meer as wat jy gaan wees doen op Probleem Stel 7. En dit is heeltemal binne jou vermoë om te skep. As ons wil - die ander cool ding oor die gebruik van hierdie gereedskap is, as jy regs kliek op die titel, kan jy die HTML wysig. So kom ons noem dit Jason. En nou sal jy sien ek het verander die HTML op hierdie bladsy. Natuurlik, ek het nie verander nie dit permanent. As ek verfris my leser, dan sou dit gaan terug na die oorspronklike HTML. Maar soms wil ek my kode te ontfout, en ek wil nie om te kyk net my gedit-venster en probeer verstaan wat gaan aan. Ek wil om te sien wat live sal gebeur nie. So ek sal-kode wysig soos hierdie en kry dit die manier wat ek wil om dit te sien. En dan sal ek die veranderinge in my kode. En ek vind dat dit 'n baie makliker wanneer jy die dinge kan doen onmiddellik, soos dat. Sê weer, ons wil 'n ander te maak kans, want ons is die ondersoek met HTML en CSS nou. Ek kan die HTML nou wysig. En ek gaan 'n skakel in te sluit. So ek gaan CS50 se huis te verander bladsy, so dit sal 'n skakel na - laat ons sê - my tuisblad. Wat is die naam, as iemand onthou, of Wat is die kenmerk wat ek wil gee om 'n anker blad wanneer ek wil dit iewers anders 'n skakel? Publiek: href? JASON Hirsch: href - So nou, sal jy sien dat daar is 'n onderstreepkarakter onder Jason. Dit is omdat Chrome, by verstek, gee ankers 'n onderstreepkarakter. Jy het waarskynlik gesien wat voor wanneer jy gegaan het om 'n webblad. Dinge wat links is onderstreep en in blou. Die standaard styl vir 'n skakel is om in die algemeen te onderstreep en sit dit in blou. As ek nie doen nie, Ek kan dit verander nie. En ons sal dit verander in 'n tweede. Maar nou, ook sien dat, as ek sweef oor hierdie, in die onderkant links van die skerm, reg bokant die woord elemente is die skakel wat ek gegee het. So kliek as ek gedoen het op hierdie - en ons kan regs kliek op dit, maak 'n nuwe blad. Dit is nie eintlik my tuisblad. Dit is net my naam. Daar gaan jy. Ons het nou draai dit in 'n skakel. Kom ons ondersoek sommige CSS as well. Die pragtige ding - en ek gaan maak dit 'n bietjie kleiner - ongeveer hierdie konsole is, wat gek CSS blad het ons gesien voor, dit was regtig moeilik om te ontleed nie, is nou pragtig uitgelê vir ons op die linkerkant hierdie venster. Sodat ons kan kyk. En as ons uit te brei hierdie blad style, ons kan sien al die verskillende style wat geassosieer word met, in hierdie geval, hierdie spesifieke element, hierdie skakel element. As ons dit doen op die blad verbinding style, wat wys net ons, nie waar alles vandaan kom, maar in wese al hierdie style wat is wat op hierdie spesifieke element nou. En kom ons sê, ons wil om dit te verander 'n bietjie. So, dit is al die style wat wat op hierdie spesifieke element. Sê ons wil om dit te verander, want ons wil om te sien hoe iets lyk. En ons is maar net speel reg rondom nou. Of ons wil iets uit te toets, voordat dit in die kode te skryf en stoot en dit maak dit lewe. Ons kan gaan na die blad style. En in die eerste blokkie dit sê, element.style. En hier, kan jy plaas, kan jy iets byvoeg. So wil ek - Kom ons gaan na my skakel en die stel die agtergrond. En dit eintlik autofills dit vir jou, al die moontlike eienskappe. Agtergrond, en ek wil daardie blou te maak. Uit nie, is nie 'n woord. Blue is 'n woord. Het ek dit sien kom? O, is dat omdat dit is in die href? OK. So ek sien geen verandering hier. En dit is omdat, as ons die hoogtepunt van die skakel, sal jy sien dat die skakel is eintlik nie die beheer van die eienskappe van hierdie besondere element. Dit is eintlik, as ons die skakel oop te maak, hierdie kop reg hier wat beheer hoe dit lyk. So as ek wil die agtergrond te maak blou, Ek het eintlik het om te verander agtergrond van die kop element. En nou sien ons dat die agtergrond is blou. So weer, dit vinnig kan gaan deur middel van hierdie materiaal redelik vinnig. Maar dit is in wese wat jy gaan om te doen. Dit is nie op Probleem Stel 7, maar beslis wanneer jy kodering op die web. OK. Ek wil die agtergrond blou te maak. Selfs al is, in hierdie geval, blou lyk redelik lelik. Ek kan gaan in hier, speel rond. Ek sien dat dit verander na blou werk nie op die a. Ek moet eintlik die kop verander element die blou te sluit agtergrond. En dan, as dan het ek gaan terug na my CSS lêer, hoe kan ek eintlik stel hierdie agtergrond blou en maak hierdie verandering stok? Want as ons agterkom as ek verfris die bladsy, is al die veranderinge wat ek gemaak gegaan. So het ek besef, OK, my agtergrond is blou. Ek nodig het om te gaan in daardie header1 element en verander die agtergrond blou. Hoe kan ek eintlik maak dat verandering? Wel, onthou dat, as ons gaan binne van hier, hierdie kop, die titel het 'n ID. En dit is die titel. En so in ons CSS-lêer, kan ons sê, OK, enigiets doen met ID van die titel en gee hierdie bykomende eiendom. Hoe weet ons verwys iets met die ID van die titel, enige idees, of enigiemand weet hoe ons verwys ID's in ons CSS-lêer? 'N gemors, dit is presies reg. En jy het 'n wenk van die reg hier. So iewers in hierdie CSS-lêer, daar is hierdie lyn van kode - # Gelaat # linker-innerlike # header # titel. En dit is wat dit marge bodem, definisie van die kantlyn onderkant van hierdie bepaalde element. Wel, as ek wou om dit te verander, Ek sou gaan in hierdie CSS-lêer. En ek kon nie vind hierdie deel van die CSS-lêer. Of ek kon my eie skryf. Ek kon hash titel krullerige stut en doen dan agtergrond kolon blou kommapunt en naby dat krullerige stut. En dit sou die agtergrond verander kleur van hierdie element na blou. Die rede waarom hulle gee jou so baie hier is dat dit nodig is in hierdie geval, omdat titel is 'n unieke ID. Maar wat jy kan doen is nes dinge. So is dit gesê, OK, gaan aan die linkerkant. Dit is baie klein. Ek vra om verskoning vir wat. Maar gaan na die ding met ID linkerkant. Binnekant van die, kyk vir die ding met ID links binneste. Binnekant van die blik, kyk vir die ding met ID kop. Binnekant van die, kyk uit vir die ding ID titel en verander die titel ID. So dit is net 'n manier nes dinge. Sommige mense soos nes nie, want dit maak dit 'n bietjie duideliker. Jy sal sien hier ook reg hier, is daar geen hash. Dit is net H1. Dit is omdat H1 is die lig van die naam van 'n generiese etiket. En daar is 'n paar CSS eienskappe wat verband hou met elke enkele H1. So as ek het 'n ander H1 op hierdie bladsy Ek sou ook sien dat hierdie styl was toegepas word om dit so goed. As ek wou 'n styl op 'n klas, hoe kan ek verwys 'n klas of praat oor 'n klas in 'n CSS-lêer? Publiek: Dot. JASON Hirsch: Dit is met 'n dot. So laat ons terug na hierdie bladsy te gaan voor. As ek dit doen hash ID. Dit is die verandering van die styl van die ding met ID. Of jammer, as ek dit doen hash logo, dis vind die ding met die ID van logo en gee dit 'n besondere CSS styl. As ek iets doen top., Dit is die vind van alles met die klas van die top en die verandering van sy style. As ek nie net H1, dat elke bevind enkele H1 en dit gee die net styl Ek wil om dit te gee. As ek dit doen H1 spasie en dan. Top. Dit gaan vind al die h1s en dan al die mense met die klas van bo-en dan slegs verander die style wat ek wil om dit te gee. En weer, kan ons geskryf het sommige van hierdie op ons eie. Maar ons sal nie so ver gekry het. Baie beter, dit lyk eintlik gaan op 'n ware live webwerf en te sien hoe hulle dit doen en kyk na al die fantastiese dinge wat jy kry om te doen. Kom ons kyk na 'n webwerf voordat ons beweeg aan. En dit is die een wat jy sal waarskynlik vertroud te raak met. Dit is CS50 Finansies. So weer, kan jy eintlik gaan in en neem hierdie CSS-lêer op jou rekenaar, want jy het afgelaai van hierdie CSS-lêer, as jy afgelaai van die probleem stel. Ons kan gaan na Tools en Ontwikkelaar gereedskap. En ons sien 'n baie eenvoudige HTML uitleg. Ons het top-, middel-en onderkant. En weer, iets wat jy moet wees vertroud is met, want jy het gekyk deur die verspreiding kode vir hierdie week se probleem stel. Op die top is, per die kode, 'n enkele beeld genoem. En dit is die bron van die beeld. Sê ek het klaar al wat Ek wou vir Probleem Stel 7. En dit is korrek werk nie, maar Ek wil om te verander hoe dit lyk. En ek wil die agtergrond te verander van die top van die bladsy, byvoorbeeld, blou. As dit my, sal ek kom in hier en uit te vind, OK wat ek wil verander. Kom ons kyk, div ID top, wat lyk soos die bokant van die bladsy. So laat ons gaan daar. Kom ons probeer om die verandering van die agtergrond. Kom ons gaan doen Alice blou, omdat dit is 'n mooier een. En jy sal sien dat - kan jy waarskynlik nie sien nie. Maar daar is 'n ligte blou, langs die CS50 logo. Kom ons verander dit eerder na rooi. En jy sal nou sien ek net verander die agtergrond kleur te red. So nou wil ek gaan in my CSS-lêer en tik # top krullerige hakie hier. Jy kan die kode reg te sien hier, krullerige stut. En dan, sou ek agtergrond voeg kleur, rooi. En dan, sou daar 'n krullerige stut. So dit is hoe ek sou verken en eksperimenteer met opmaak op die CS50 Finansies site. Ek kan dit hier en toets doen dit uit op my leser. En dan, kan ek gaan in my werklike kode en maak die veranderinge wat sal eintlik gaan woon en dat mense eintlik sien, as hulle na te kom my spesifieke site. OK. Dit was 'n baie. Ek vra om verskoning vir gaan deur dit so vinnig. Het enige iemand enige vrae Glad oor HTML of CSS? Publiek: Kan jy net gaan oor hoe jy gekoppel wat Jason geword het, weer? JASON Hirsch: Wat jy gekoppel beteken? Publiek: Jy verskaf 'n skakel na 'n ander webwerf, met behulp van die anker. JASON Hirsch: So is jy vra, net generies, hoe jy 'n skakel? Publiek: Ja. JASON Hirsch: OK. Die kode vir die maak van 'n skakel - Publiek: Nee, soos in die HTML. JASON Hirsch: Down hier, bedoel jy? So as ek 'n skakel in te sluit iewers, sê, dit is die HTML op my bladsy hier. Dit is die HTML. Miskien is dit oop in 'n lêer, index.html. Ek gaan in Kom ons hierdie kopiereg John Harvard skakel na iets. So ons sal dit alles verander as HTML. Al wat jy doen is, sluit die a, sodat in hakies 'n beslote bracket aan die begin, en dan bracket streep 'n beslote bracket aan die einde. So nou is ek ingesluit 'n anker tag. En eintlik, as jy klik uit hierdie, sal dit nou formaat dit wysig as HTML. En sê, ons wil om dit te skakel. Ons wil u die href kenmerk. En ons sê - En nou, as jy sien, kopiereg John Harvard is blou. En wanneer ek scroll oor dit, dit is nou 'n skakel. So kan jy die kode te skryf. Jy kan pretty much enigiets omring jy wil in 'n anker tag en draai dit in 'n skakel. Publiek: OK. Het dit. JASON Hirsch: En as ek nie wil dit - natuurlik, soms mense geneig hierdie dinge wat net kyk om te dink Blou generies en onderstreep is nie die mooiste manier om 'n skakel te maak. So as ek kom hier, jy sien dat, iewers in 'n CSS-lêer, is daar geskryf dit 'n en dan twee krulhakies. So kom ons sê dat, vir die skakels, ek doen nie wil hulle blou word, eerder ek wil hê dat die kleur van 'n skakel na wees hierdie mooi magenta. Kom ons gee dit die kleur. Kom ons kies magenta. Nou, al die skakels op my bladsy het geword om hierdie mooi kleur van magenta. Sommige mense hou nie van kleure nie. Sommige mense hou nie beklemtoon dat. Jy kry om te kies. Met skakels, kan jy die styl hoe hulle kyk wanneer jy hulle besoek het. As jy sien op 'n baie bladsye, links draai pers op jou besoek het. Jy kan daardie kleur sowel verander. Ja. Publiek: So jy dit verander vir elke enkele skakel. Maar as jy wou net die skakel om te doen self, sou jy net doen in die ID onderkant of iets? JASON Hirsch: So groot vraag. As jy hier opgemerk, ek verander 'n paar deel van die CSS wat van toepassing is op alles wat 'n A. As ek wou doen net wat skakel aan die onderkant, ek sou gaan na my CSS-lêer en waarskynlik doen net soos jy gesê het, hash onderste ruimte a. En wat my sal gee Soos in al die onderkant. Of ek kon, alternatiewelik, gee dit 'n unieke ID en dan net doen hash skakel. En wat my sal toelaat om dit uit te verander. Maar net uitdeel ID's wil en dank is oor die algemeen 'n slegte praktyk, omdat diegene moet uniek wees. En hoe meer jy daardie, is dit kan 'n bietjie verwarrend. Ja. Publiek: Kan jy dieselfde gee ID na verskeie eienaars? JASON Hirsch: Tegnies, ja. Niks gaan om jou te stop, maar jy Indien jy nie moet gee dit 'n klas. OK, enige ander vrae oor HTML of CSS? OK. Kom ons beweeg na PHP. O, ja. Publiek: Wat is dit oor hierdie webwerwe wat beteken dat ons kan wysig hulle voor ons verfris. Maar wanneer ons verfris dit terugval terug na die aanvanklike HTML? JASON Hirsch: Groot vraag - So wanneer ons gelaai hierdie webblad, dit is HTML. En dit is JavaScript. Die PHP uitgevoer om ons te gee wat tipe webwerf wat ons sien. En dit is wat geskep is om HTML, sommige JavaScript, en 'n paar CSS. En dit is nou toeganklik deur ons rekenaar. En 'n afskrif van die lêers is gestoor plaaslik op ons rekenaar, vir die oomblik. Sodat ons kan wysig dat plaaslike kopie. Maar natuurlik, is ons nie die wysiging die bediener kopie. En wanneer ons verfris die bladsy kry ons 'n ander bediener kopie. En so sien ons dinge terug soos dit was. As ons in staat was om, van hier, te wysig die amptelike webwerf, wil ons 'n baie het probleme. Publiek: Ja, sodat ons kan lees en skryf die kopie. JASON Hirsch: Right. Ons is net die maak van plaaslike veranderinge hier, Maar weereens, baie nuttig vir die verkenning, dikwels. Wanneer ek skryf my finale projek vir Byvoorbeeld, ek wil sien hoe sommige webwerf gemaak om iets te kyk die manier waarop hulle gedoen het. Ek sal in gaan en die paneel af hier, om te kyk wat hulle CSS te gee dit of watter kleur hulle opgetel of hoe hulle het dit so dat, wanneer jy huiwer oor iets, die lys afgekom in 'n mooi waterval mode. Dit is 'n goeie manier om te kyk wat ander webwerwe doen en leen van hulle. Kom ons beweeg na PHP. PHP staan, in 'n rekursiewe sin, PHP Hypertext verwerker. En PHP, wat dit gaan doen is voer-kode bediener kant. So gaan ons nooit PHP-kode te sien. Dit beteken egter speel mooi met HTML en dikwels genereer 'n baie HTML-kode. Maar as jy vertroud met die probleem sal wees Stel 7, sal jou PHP-kode uit te voer, genereer 'n HTML, en dit is wat die gebruiker sal uiteindelik sien. PHP is ongelooflik soortgelyk aan C. Daar is egter 'n paar verskille, en daardie verskille is belangrik om daarop te let. Een verskil is dat veranderlikes in PHP is losweg getik. Het enige iemand 'n sin van wat dit beteken? Publiek: Nie nodig om dit self te werp. Soos geen behoefte in die teks te skryf. JASON Hirsch: Ek sal nie die woord gooi, maar ja, nie nodig om te verklaar 'n tipe van 'n spesifieke veranderlike. Hoe plaas ons verklaar 'n veranderlike? Publiek: Gebruik 'n dollar-teken. JASON Hirsch: Gebruik 'n dollar-teken. So $ x 'n veranderlike is. $ 1 is 'n veranderlike. $ String is 'n veranderlike. Diegene veranderlikes, $ x kon 'n heelgetal. Dan, kan dit 'n string wees. Dan, kan dit 'n karakter wees. Dit maak nie regtig saak nie. Ook, die koel ding oor PHP is, sê, $ x is die string een. En $ y is die karakter een. Jy kan $ x en y $ voeg, en dit sal gee jou 2, wat jy sou verwag. So is daar bedrywighede in PHP. Omdat dit losweg getik veranderlikes, sommige implisiete beslissende is vir jou gedoen en 'n paar bedrywighede. Jy kan operasies doen dinge van verskillende tipes. Terwyl voor, jy dikwels 'n fout in C sê: Dit is nie die tipe wat veronderstel is om hier te gaan. Slegs dinge van hierdie tipe kan hier gaan. Jy gaan nie dat die tipe te kry van die fout, in die algemeen, in PHP. So dit is 'n groot verskil - hoe ons omgaan met veranderlikes. Die tweede groot verskil is dat PHP-kode vertolk word. Wheres, is C-kode saamgestel. Wat beteken dit? Wel, vir C-kode wat jy het dit deur 'n vertaler. Jy gegenereer 'n binêre lêer. En jy het wat binêre lêer. Jy het sorg vir al foute voor gegenereer die binêre lêer. Van die kursus, kan daar gewees het segmentering foute, wanneer jy hardloop die binêre lêer. Maar dit is nie soos wat jy vergeet het om te sluit die definisie van printf, of jy het nie 'n veranderlike te gebruik en net het 'n verkwistende veranderlike. Of jy het nie definieer 'n funksie prototipe. Al wat gebeur het voor jy saamgestel. Dit het jy al die foute of sleg dinge wat gedink kan gebeur. En dan, jy het jou 0 en 1 lêer wat jy het. PHP-kode nie werk nie soos dit. Jy gaan jou PHP-kode te skryf. Dan gaan jy behalwe dit, vermoedelik. En ten minste in P-Stel 7, jy gaan jou webblaaier te verfris, en jy gaan om te sien wat gebeur het. Jy gaan sien die uitset van daardie PHP-kode. Jy kan ook sien op die top van jou bladsy, 'n fout. Omdat jy het 'n paar fout in jou PHP. Jy kan nog steeds sien die res van die die webblad is op soek na goed. Maar een deel is verkeerd, en daar is 'n fout in daardie plek. En dit is omdat daardie deel van jou PHP-kode nie werk nie. Trouens, wanneer jy uit te voer, as jy gaan iets soos by.php. Dit gaan om te gaan deur jou PHP lêer reël vir reël en dit uit te voer Dan en slegs dan. Dit is nie van plan om dit op te stel voor tyd of stel 'n afskrif en gee dan wat saamgestel afskrif aan almal. Elke keer, gaan dit deur te gaan reël vir reël en dit uit te voer. So 'n paar lyne kan werk en uitset iets reg. En ander lyne gebreek en uitset 'n fout in plaas. Dus, wanneer debugging met PHP, het ons gegee jy 'n paar nuttige dinge jy debug te help, soos die stortingsterrein funksie. Maar oor die algemeen, jy gaan hierdie foute te sien. En dit is hoe jy gaan weet jy iets verkeerd gedoen het. Maar jy net gaan om die fout om te sien Sodra jy eintlik loop die kode. Nog 'n belangrike aspek van PHP en web ontwikkeling is die idee van die get versus post. Kan iemand verduidelik wat die verskil Tussendeur kry en post is? Niemand - ja. Publiek: Maak nie een van hulle laat die gebruiker sien die data, en een van hulle nie? JASON Hirsch: Groot. Ja, jy het iets om by te voeg? Publiek: Ek dun pos is 'n super-globale veranderlike. JASON Hirsch: So beide van hierdie veranderlikes wat aan jou gegee. Dit is net veranderlikes. En jy weet hulle is veranderlikes, want hier het ek gebruik die dollar-teken. Hierdie is veranderlikes aan u deur PHP. En wanneer jy tussen webblaaie beweeg, jy wil 'n paar inligting te red. Jy wil waarskynlik om te spaar as die gebruiker is aangeteken in Dit is nie gestoor in AOO en post. Dit is gered in iets anders, 'n ander veranderlike. Enigiemand wat weet wat veranderlike wat gered is in, of wat jy gebruik in veranderlike P-Stel 7, om seker te maak dat die gebruiker is aangeteken in? $ _session, Dit is presies reg, waarskynlik belangrik om vertroud te wees met die name van hierdie dinge jy gebruik dikwels. So gebruik jy die sessie veranderlike te red inligting van bladsy tot bladsy. Dit is 'n super veranderlike. Dit bestaan ​​op elke bladsy, miskien soos 'n globale veranderlike, as jy wil om te dink daaroor soos dit. Daar is 'n paar van die ander veranderlikes wat u toelaat om inligting oor te dra van bladsy tot bladsy. In die besonder, die mense wat ons sal fokus op is die AOO en die post veranderlikes. In PHP sien hulle soos $ _GET En $ _POST. En die verskil, as Marcus het daarop uit, tussen die twee van hulle is dat, inligting in $ _GET is vertoon in die URL. So as ons kyk hier, sien ons 'n YouTube-skakel. Ons sien dit vraagteken. Ons sien v = en dan 'n bietjie waarde. Terug na die idee van sleutel waarde paar, die v is die sleutel. En hier is die waarde. So as ons gaan na hierdie bladsy of kodering op hierdie bladsy, sou ons 'n veranderlike genoem $ _GET. As ons na $ _GET oop bracket "V" naby bracket, baie soortgelyk aan skikking notasie, dit is 'n mede-skikking want ons is nie die gebruik van indekse. Is met behulp van toue as sleutels. Maar baie soortgelyke idee. As ons na ons, sou hierdie waarde kry. Op hierdie bladsy, wil ons in staat wees om hierdie waarde te gebruik. As ons werklik te kyk, laat ons gaan na 'n YouTube bladsy. Wat video moet ons kyk? Hierdie een, is mense Hobbit fans? Gehoor: Ja. JASON Hirsch: So ek kopiëring hul aandeel URL en plak dit in 'n nuwe venster. En nou, as jy kyk hier, sal jy kennis dat, weereens - Ek gaan om te kopieer en plak dit in gedit, sodat ons kan sien dat dit groter. Jy sal sien dat dit hierdie vraagteken. Die vraagteken dui dat alles na dit gaan wees gered in die get veranderlike. Dit het dan die v, dit is die eerste sleutel en die eerste waarde. Ampersand is spesiaal. Ampersand sê, OK, ons klaar is met die eerste waarde. Ons is nou op pad na 'n ander sleutel waarde paar. Hier is die sleutel funksie genoem, en die waarde is youtu.be. So as ek 'n kodering hierdie bladsy en iemand het na hierdie URL en ek moes Miskien watch.php. En ek is kodering nie. En ek kan gebruik om die $ _GET veranderlike. En ek wil hê dat 'n V, en Ek sou 'n funksie. En as ek die v sleutel, ek sou hierdie waarde kry. En as ek gedoen het $ _GET bracket "funksie" naby bracket, sou ek hierdie waarde kry. Weereens, is dit nie noodwendig toepassing nie op - natuurlik, die YouTube sleutels en waardes en inligting te kry nie van toepassing op Ons probleem Stel 7. Maar daar is sekere dinge wat ons slaag via raak in ons probleem Stel 7. En seker, as jy na 'n webblad of kodering jou eie bladsy, die $ _GET Sal handig te pas kom wanneer jou kodering. Wat is een van die redes $ _GET te gebruik dan As dit bied geen privaatheid? Jy sien al hierdie inligting dit is oorgedra. Dit is al vertoon aan die gebruiker. Maar wat is een van die redes wat jy dalk iets wil red in $ _GET, soos teenoor $ _POST? Hoekom wil jy dalk om dit te doen? Alle regte. Ek vra jou in Quiz 1. Wat is die voordeel van $ _GET? Wat is 'n pro? Ja - Publiek: Dit is makliker om te deel van inligting. JASON Hirsch: Ek dink dit is groot. Dis makliker om inligting te deel. Dit is makliker om te boekmerk. Jy kan nou boekmerk YouTube.com / kyk v = iets? En gaan aan daardie spesifieke video. As YouTube altyd gedoen het POST versoeke te verskillende bladsye, elke YouTube URL sou wees YouTube.com. Jy kan nie 'n boekmerk 'n enkele video. Want as jy sê gedeel dat skakel met iemand anders, hulle doen nie outomaties kry jou post veranderlike. Hulle is maar net om hierdie skakel, en die skakel is dieselfde vir almal. So dit is een pro. Dit laat jou toe om 'n boekmerk hierdie inligting of deel hierdie inligting of maak dit 'n bietjie meer gebruiker-vriendelik. Natuurlik, is daar geen privaatheid, so ons het hierdie post veranderlike. En post inligting is nie vertoon in die URL. Dit is nie heeltemal privaat. Maar dit is effens meer private. En so sal jy hierdie URL sien hier, cs50.net. Of jy aangeteken in die webwerf, dit gaan om dieselfde te hê URL, cs50.net. Dit is duidelik dat, iets anders is, as jy aangeteken in die webwerf. Jy het een, waarskynlik insette van jou PIN. En dit het bevestig dat met die bediener. En dit is waarskynlik spaar sommige ander inligting. Maar die URL nie verander nie. En so is dit die geval is, wanneer iets deur die pos gestuur. Die URL nie verander nie. Hierdie pos inligting is nie vertoon in die URL. Maar 'n staat verander het, en miskien daar is 'n paar inligting gestoor in die NA veranderlike. Jammer. voor ek gaan in SQL, enige vrae oor PHP, in die besonder, vrae oor dinge wat ons nie gaan oor wat jy het of enige sintaksis of logika vrae oor PHP? OK. Die finale taal wat jy sal wees interaksie met hierdie week is die Structured Query Language, SQL, uitgespreek opvolger dikwels. Dit laat jou toe om met die databasis in 'n formele manier. En dit speel baie mooi met PHP. As jy sien in Probleem Stel 7, het ons gegee om 'n funksie genoem navraag. En dit neem 'n SQL string en voer die soektog op die databasis. In die afgelope jare, was jy nie gegee om hierdie funksie. Jy het PHP funksies te gebruik te maak die soektog op die databasis en tjek vir foute en dan kry die resultate. En eintlik, dit is nie so moeilik, want weer, dit speel baie mooi met PHP. En PHP gee jou 'n baie funksies om met 'n SQL databasis. So dikwels, die twee van hierdie gaan saam. Van die kursus, kan jy interaksie met die SQL databasis met enige aantal ander tale. Maar PHP is 'n groot een om te kies. 'N databasis - ons gaan oor hierdie vinnig, want dit is 'n buzz woord wat ons gaan begin gebruik dikwels - is 'n versameling van die tafels. So ons kan dink dit as 'n Excel-lêer. 'N Excel-lêer het verskeie afdelings op die onderkant van die skerm. Elke blad sal ons nou noem 'n tafel, waar 'n tafel is 'n versameling van rye. En wat is 'n ry? Wel, 'n ry, is dat dieselfde ding in die Excel lêer. Dit het net sekere waardes vir elke gegee veld of elke gegewe kolom. Dit is soos 'n inskrywing in die tabel. Dit is 'n student wat 'n ID, 'n het spesifieke ID, en 'n spesifieke naam en 'n spesifieke huis. So 'n databasis is 'n versameling tafels. En tafels self 'n aantal rye of rekords. Daar is ook in elke tafel, sekere velde. En wat bepaal wat elke rekord gaan hê, velde soms genoem kolomme maar oor die algemeen genoem velde. In hierdie baie eenvoudige tafel, ek het drie velde, 'n ID-veld, 'n gebruikersnaam veld, en 'n gemors veld. En ek het drie rye. Op die oomblik is, hulle is leeg. Hulle sou waarskynlik nie leeg wees As dit was my werklike databasis. So as jy Excel gebruik het, soortgelyke idee na wat jy doen in Excel, al is, natuurlik, nou gaan ons in staat wees om nie veel meer kragtige dinge wat op die inligting wat gestoor word in ons databasis. Jy sal skep self een databasis vir Probleem Stel 7. Maar jy skep verskeie tafels binne die databasis. Jy skep 'n databasis of 'n tafel vir die gebruikers. Jy sal ook die skep van 'n tafel vir waarskynlik voorraad transaksies, te hou spoor van hulle, omdat jy nodig het om te implementeer 'n geskiedenis funksie. Beide die tafels sal verskillende velde. Byvoorbeeld, in 'n gebruiker veld, moet jy waarskynlik hul gebruikernaam en 'n wil ID en 'n gemors van hul wagwoord. In die blok tafel wat hou van geskiedenis of die Geskiedenis tafel, jy waarskynlik nie die gebruiker se naam moet nie en die hash en die ID. Jy het waarskynlik net een van daardie moet waardes wat uniek is, te assosieer dit met 'n gegewe gebruiker. Maar dan, wat jy wil ander te stoor dinge soos wat die tyd was transaksie gemaak. Wat voorraad gekoop of verkoop word? Hoeveel aandele van die voorraad gekoop of verkoop word? Wat was die prys waarteen die voorraad gekoop of verkoop word? So weer, jy gaan te word interaksie met 'n databasis wat gaan verskeie tafels te hê. Elke tafel gaan hê sy eie stel velde. Maar daar sal waarskynlik 'n soortgelyke veld in elke tabel, wat bring dit in verband met mekaar. Gewoonlik, hierdie is 'n ID-veld. Want as elke gebruiker het 'n unieke ID en jy assosieer dat ID met elke transaksie wat die gebruiker maak of al daardie gebruiker se geskiedenis. En jy het die gebruiker se ID. Jy kan meer inligting kry van óf tafel. Jy kan hul rekening, en jy kan jy al van hulle transaksies. Enige vrae oor databasisse, of spesifieke vrae? Eintlik, laat ons hou nie. Ons sal daar wees in twee kante. So is daar vier operasies op databasisse wat jy sal gebruik word in Probleem Stel 7 en waarskynlik ooit gebruik word. Die eerste ding wat jy wil doen, is insetsel 'n nuwe rekord in 'n tabel of 'n nuwe ry in 'n tabel. Dit is die generiese funksie, die generiese vorm, van die SQL navraag. Voeg in die tabel, watter kolomme jy wil in te voeg en dan die waardes wat jy gaan om te wil sit in die kolomme of velde. As jy meer tafels in 'n databasis of verskeie databasisse, jy dalk ook nodig om die databasis te spesifiseer en die tafel wat jy wil hê dinge te sit in. Maar baie eenvoudig, as jy wil te voeg in iets, jy sê, hier is die velde ek wil in te voeg in. En hier is die waardes. In sommige tafels, ook, en hierdie gebruiker tabel is 'n goeie voorbeeld. Waarskynlik in hierdie gebruiker se tafel en waarskynlik in jou gebruiker se tafel in P-Stel 7, daar is nie net 'n gebruikersnaam waarde. Daar is nie net 'n waarde in kontant, of in die veld, eerder. Daar is ook 'n ID-veld. Ek gaan nie dat ID-veld in te voeg. Dit gaan gegee word aan my outomaties, wanneer 'n nuwe rekord plaas. So is daar 'n paar veld wat jy kan stel om outomatiese wees. Miskien wil jy elke gebruiker te gee 10000 $ kontant uit die kolf. So ek hoef nie te voeg 'n aantal van kontant hier. Al wat ek nodig het om te voeg, is die gebruiker se naam. En dan sal die kontant veld pre-bevolk, en die ID-veld sal vooraf bevolk. So dikwels, is ons nie die inbring iets wat in elke veld, omdat die ander velde is pre-bevolk. Want dit is hoe ons opstel van die tafel. Die tweede ding wat jy gaan wil doen, is 'n rekord verwyder. Die verwydering van iets is baie eenvoudig. Jy gee die tafel waar jy wil iets uit te verwyder. En jy sê, OK, ek wil verwyder die rekord wat 'n rekening van Milo. Of ek wil hê dat alle rekords te verwyder wat het 'n rekening van Milo of wat 'n transaksie van die gebruiker ID-nommer 2. Enige vrae oor hierdie twee tipes navrae? Publiek: [onhoorbaar]. JASON Hirsch: Ja. So ek gaan ry en rekord te gebruik verwissel en 'n paar met kolom en veld. Maar 'n mens ry is een rekord. Een kolom is een veld, gaan terug na hierdie tafel. OK. Die volgende ding wat jy waarskynlik gaan doen, is om 'n paar inligting uit die tabel. Dit is 'n Kies navraag. En weer, wat tafel Ek kies uit? En wat kolom wil ek kies, of watter waarde ek wil om te kies en waaruit ry? So die Gekose is 'n bietjie spesifieke. Ek sê OK, ek wil hierdie tabel. En dan wil ek die kolom gebruikersnaam en Ek wil dit uit die ry met ID 2. Dit is een manier om 'n Kies om te doen. Of ek kan sê, gee my elke enkele rekening. Of ek kan sê, gee my 'n hele ry van die tabel, waar die rekening is 1. So is daar 'n paar verskillende maniere om te doen Select navrae, afhangende van hoe veel inligting wat jy wil, Jy kan altyd kies alles van daardie spesifieke tafel en dan lus deur dit, pluk uit die dinge wat jy wil. Maar hou in gedagte, as jy kies 'n baie van die dinge wat uit 'n tafel en jy het 'n baie groot tafel, sal dit neem 'n geruime tyd, so die beste om te kies net dinge wat jy gaan aan die einde gebruik. Ook, met Kies en met al hierdie ander SQL opdragte so goed, ek is gee jou die kaal bene weergawe. Maar sê, ek kies gebruikers en ek wil hulle uit te druk alfabeties, Ek kon al die gebruikers soort kies en dan hulle alfabeties in my kode. Of is daar 'n manier om die kies te skryf soektog, wat kies dinge in 'n alfabetiese mode, gebaseer af van 'n spesifieke kolom bruis of dalende. So in gedagte hou dat, 'n baie van wat jy wil doen, kan waarskynlik in gedoen word die soektog deur 'n bykomende kenmerk. So moenie opkyk hierdie navrae aanlyn of die ander dinge wat jy kan doen met hierdie navrae hulle uit te brei. Ten slotte, die laaste ding wat jy wil doen, is nie iets wat voeg of te verwyder iets nie, maar eerder werk iets. En dit is gedoen met die opgradering navraag, en weer, wat tafel. En wat verandering wil ek maak? En aan watter ry of rekord doen Ek wil hê dat die verandering te maak? Enige vrae oor SQL? OK. So het ons ongeveer 15 minute. En dit is die laaste skyfie wat ek het. En hopelik, die laaste skyfie is 'n goeie segue in die probleem gestel is, omdat die begrip van waar ons wil voeg rekords, te verwyder, kies hulle en werk hulle sal ons help die groter logika verstaan ​​en vloei van Probleem Stel 7. So ek weet al die antwoorde op hierdie vrae. Ek gaan nie om jou te vertel al die antwoorde. Maar as iemand anders wil bied 'n vraag aan die groep of 'n antwoord op een van hierdie vraag, kan ons gebruik as 'n beginpunt te praat oor die probleem stel. Of as iemand 'n meer generiese vraag van die probleem stel, voel vry om te vra as well. En ons kan daar begin. Hou in gedagte dat jy stil seer almal. Ja. Publiek: So is die enigste manier om te slaag veranderlikes na en van verskillende web bladsye, of die mees geskikte manier, met behulp van die pos of KRY? JASON Hirsch: So ja, dit is die mees geskikte manier om te sê - wanneer iemand vul 'n vorm - inligting te kry op 'n ander web bladsy, met behulp van AOO of NA. As gevolg van die raamwerk wat ons gebruik In hierdie probleem stel, sal jy sien dat 'n baie keer, ons lewer 'n ander bladsy. Of ons ons lewer 'n ander lêer nie noodwendig 'n ander bladsy. So ons gaan in 'n veranderlike. En dan, maak dit 'n HTML bladsy, met behulp van die inligting uit daardie veranderlike. Dit is tegnies nie verby inligting tussen verskillende web bladsye. Dit is verby inligting tussen verskillende lêers. En so kan ons enige gebruik veranderlike wat om te doen. Maar ja, as ons wou om te slaag inligting uit 'n spesifieke bladsy aan 'n ander bladsy, AOO-en post gaan wees om die manier om dit te doen nie. Enige ander vrae oor die probleem gestel? OK. Kom ons gaan deur, dan, 'n spesifieke deel van die probleem stel. Jy gaan moet, op 'n punt, vertoon iemand se portefeulje op die skerm. Wat doen ek bedoel as ek sê portefeulje, in die konteks van die probleem gestel? Publiek: Dit is soos die aandele wat hulle het hoe baie aandele wat hulle besit, die prys, en hoeveel geld wat hulle verlaat het. JASON Hirsch: Dit klink great. So ek wil al die aandele te vertoon hulle besit vir elke voorraad maatskappy se aandele en waarskynlik hoeveel dit is die moeite werd, en dan 'n aparte veranderlike, hoeveel geld hulle besit. So sê Ek wil om dit te beskryf. Kom ons begin praat oor hoe ek kon gaan om dit te doen, wat tafels Ek is gaan nodig om te hê in staat wees om dit te doen. Ja - Publiek: Wel gebruikers, en dan, ek dink jy kan 'n tabel genaamd maak Aandele of iets soos dit, wat sou wees hoeveel hulle gekoop het. JASON Hirsch: OK. So ek gaan 'n tabel genaamd nodig Gebruikers, wat hou van die gebruikersnaam, vermoedelik, waarskynlik 'n paar ID, waarskynlik 'n individu se wagwoord. Wat is iets anders wat jy het net gesê dit is wat verband hou? Iemand buiten Michael, wat iets anders wat verband hou met die is elke gebruiker, uniek aan hulle? Publiek: ID. JASON Hirsch: ID - Wat is 'n ander ding is dat ons waarskynlik gaan om te wil vertoon op hierdie bladsy? Publiek: Hulle naam. JASON Hirsch: Hulle naam - wat is Nog 'n ding wat verband hou met hierdie spesifieke probleem sit? Publiek: Wat aandele wat hulle besit - JASON Hirsch: Daar gaan 'n baie van wat aandele wat hulle besit. Wat is een van die spesifieke waarde al is, dat hulle gaan hê verband hou met hulle? Hoe gaan hulle te koop en verkoop hulle aandele? Publiek: Cash. JASON Hirsch: Hulle is gaan kontant. So elke gebruiker gaan hê een waarde vir geld. En dit gaan wees uniek aan elke gebruiker. So in die gebruiker se tafel, maak dit sin om te sit in kontant. Jy kan, natuurlik, skep 'n ander tabel gebruikers-ID's en hul waarde van kontant. Maar dit maak nie sin nie. Dit maak sin om net te sit alles in een tabel. So ons gaan 'n tafel te hê met daardie inligting. En dan, wat is die ander tafel ons gaan hê? Jy het gesê, 'n Aandeel tafel. Wat is ons om in Die voorrade tafel? Enigiemand, idees - Publiek: die maatskappy. JASON Hirsch: Ons gaan te sit in die naam van die maatskappy, so AAPL vir Apple. Ja. Publiek: Hoeveel aandele en hoeveel hulle werd is. JASON Hirsch: Hoeveel aandele, hoeveel hulle werd is - wat is iets anders wat ons moet in die tabel? Publiek: 'n gebruiker-ID na die indeks nie. JASON Hirsch: 'n Gebruiker ID. So in daardie tafel, sal ons waarskynlik - kom ons sê, as dit is iemand wat besit drie aandele, drie rye, elk met dat die gebruiker ID of daardie individu se gebruiker ID, maar 'n ander maatskappy se naam, 'n verskillende aantal aandele vermoedelik, en 'n ander prys waarde vir elke van die aandele. Weereens, wat ek nou sê, is nie noodwendig die implementering, want jy besef daar is 'n paar meer doeltreffende maniere om dit te implementeer. Maar dit is 'n goeie plek om te begin. OK. So dit is die twee tafels wat ons het. Nou wil ons hierdie bladsy te vertoon. Wat is die eerste tipe navraag sou ons nodig het om te maak. Op elke bladsy, aanvaar dat 'n gebruiker aangeteken het, ons het hul gebruikers-ID. So, wat is die eerste tipe navraag wat ons nodig het om te maak? Ja. Publiek: Hulle gebruiker ID. JASON Hirsch: Ons het hul gebruikers-ID, wanneer ons begin by die kode begin van ons blad. So, wat is die eerste tipe navraag ons nodig het om te maak, gegewe 'n gebruiker se ID? Toe het ons oor die vier tipes. Daar is net vier moontlike antwoorde. Publiek: Dit is kies 'n rekord. JASON Hirsch: A Kies - ons wil om te kies uit die gebruiker se tafel te kry, kom ons sê, hul bedrag kontant. En ons kan die bedrag van kontant te druk op die top van die skerm. OK. Wat is die volgende tipe navraag wat ons wil doen? Ons het 'n paar ander dinge ons nodig het om te wys. Diegene word gestoor in 'n ander tafel. So hoe gaan ons dit te kry? Publiek: Jy kies vir hulle. JASON Hirsch: A Kies - weer, daar is net vier opsies. Kies waarskynlik klanke soos die regte een. Dus moet ons 'n ander kies om navraag te doen, weer met behulp van die gebruiker ID. En nou, ons wil nie net een om terug te keer ry, bu alle rye wat ooreenstem met ons kriteria, waar die gebruiker ID gelyk aan 1. En dan kan ons gaan en laat 'n lus net al die druk op die skerm, Miskien druk die maatskappy uit elk van diegene wat op die skerm. Groot, dit klink soos dit is vertoon 'n portefeulje, nie veel meer ingewikkeld as dit. OK, die gebruiker dan besluit dat hulle het baie van die geld wat oorgebly het. En hulle wil 'n paar te koop meer aandele van 'n voorraad. Kom ons sê, het hulle reeds besit hierdie maatskappy se aandele te. So hulle gaan na jou koop bladsy. Hulle insette die maatskappy se naam. Wat is die soektog na die insette van die maatskappy se naam, wat jy nodig het om te voer die volgende? Ja. Publiek: Update. JASON Hirsch: Update - en wat tafel wil jy werk? Publiek: Hul tafel, gebaseer op hul ID-nommer? JASON Hirsch: So werk nie die gebruiker se tafel - so werk die Voorrade tafel, waar die gebruikers-ID nie net wedstryde, maar die voorraad naam wedstryde ook. Jy sal 'n bietjie waarde kry. En dan, sal jy wil hê dat die waarde te neem en voeg egter baie aandele wat hulle wil koop nie. So jy wil nie om blindelings oorskryf wat waarde. Maar jy kan, in werklikheid, neem dat die aanvanklike waardeer en net werk dit. Jy kan dit doen soos 'n plus gelyk, eerder as om net 'n leeftyd. Wat is iets wat al - as ons dink oor hierdie en ons wil wees so sterk as moontlik - ons moet doen voordat ons hardloop dat update navraag? Hulle wil vyf jaar van Apple te koop. Elke deel van Apple is $ 200. Publiek: Ons moet geld eers nagaan. JASON Hirsch: Ons moet check geld eerste. Ons moet seker maak dat hulle genoeg geld het. Watter soort navraag kan ons uitvoer om maak seker dat hulle genoeg geld? Publiek: Nog Select. JASON Hirsch: A Kies - Ons kies op grond van hul gebruikers-ID, hul waarde van kontant te kry. Doen 'n paar vinnige wiskunde. En as dit gaan monster, hulle het genoeg kontant. Dan kan ons ons werk loop. Of miskien, indien nie, gaan ons dan. Ons gee hulle 'n waarskuwing. OK. Sê hulle het nie 'n maatskappy. Hulle is te koop van 'n nuwe maatskappy. Hulle is te koop Microsoft. Watter soort navrae doen wat ons wil doen, As hulle wil Microsoft om te koop? En hulle het nie enige Microsoft. Nie Manu, iemand anders, iemand Behalwe Marcus? Carlos - Publiek: A Kies, om seker te maak hulle het genoeg geld. JASON Hirsch: Klink goed. Publiek: En dan is jy voeg op die [onhoorbaar]. JASON Hirsch: Presies, ons is gaan wil te voeg in die blok tafel. En ons gaan om te wil plaas. Ons kan hul gebruikers-ID die naam voeg, van die maatskappy, en hoeveel aandele hulle wil koop. Wat is 'n paar ander bedrywighede wat is bladsye of funksies wat jy is gaan hê om te implementeer in P-Stel 7, dat ons moet gaan oor? Publiek: Eintlik het ek soort van 'n 'n vraag oor hierdie een. Voordat jy vertoon die portefeulje, moet jy Yahoo se webwerf te kontroleer maak seker dat die voorraad pryse het nie verander nie? JASON Hirsch: Dis klanke soos 'n goeie idee. So, wat Marcus is, is gesê, OK, voorraad pryse voortdurend verander. In die aandele wat hulle besit tafel, ons tabel genaamd Voorrade, kan ons red van die prys van die voorraad wat hulle gekoop het by. Maar dit lyk nie of dat robuuste, omdat die prys van die voorraad is gaan voortdurend te verander. So in werklikheid, het jy waarskynlik nie nodig die prys van die voorraad te red. Maar elke keer as jy vertoon hul portefeulje, jy verfris of werk die prys van die voorraad. En as jy - en jy het reeds. Ek weet jy het al gekyk in die probleem sit nou al terug. Jy het besef dat ons geskryf sommige kode vir julle wat sal toelaat dat jy die prys van 'n voorraad te kry, gegee 'n maatskappy se naam. So ja, wat waarskynlik klink 'n bietjie meer robuuste. Maar die tafel hoef nie noodwendig die prys van die voorraad te red. OK. Wat is 'n paar ander funksies wat jy nodig om hierdie week te implementeer wat ons kan praat oor? Ek wil om te praat oor hulle. Wat wil jy praat oor? Dit is waarskynlik in hierdie spec. Ek wil net blaai af na die onderkant van die spec en vra my die eerste woord jy sien dat dit nie sin maak nie. Een van die ander funksies - laat ons praat oor een. Ons sal daar begin. Publiek: Opname van die geskiedenis. JASON Hirsch: Recording die geskiedenis, 'n groot een. So jy gaan te hê om tred te hou 'n geskiedenis van transaksies. So jy wil die spoor van elke te hou tyd wat hulle koop of verkoop 'n voorraad. Ek het my voorraad. Ons het net gesê, is dit waarskynlik maak sin 'n Gekose te sluit, te kry om hul bedrag kontant en kyk terug. Dit is waarskynlik slim dan in te sluit 'n voeg of 'n werk, afhangende van of hulle eie dat voorraad. As ons wil ook om tred te hou 'n geskiedenis, hoe kan ons dit doen? Is dit gaan in die blok tafel? Publiek: No JASON Hirsch: Nee, dit waarskynlik gaan in 'n ander tafel. Omdat sê jy koop 10 aandele van Apple. Dan koop jy 'n ander 10 aandele. Jy wil sleep aparte rekords. Dit is twee afsonderlike transaksies. So het ons 'n ander tafel, 'n Vorige tafel. So weer, ons koop. Ons voer 'n kies, en 'n insetsel of 'n werk. Wat doen ons nou? Wat is die volgende navraag voer ons wanneer ons koop iets? Ons wil die spoor van die geskiedenis te hou. Ja. Publiek: Jy wil om tred te hou van mislukte transaksies ook. JASON Hirsch: Wel, voordat ons sê watter tipe transaksie, wat wil ons - Watter tipe navraag, Carlos, sou toelaat dat ons tred te hou van die dinge in die algemeen? Jy het vier raai. Watter een dink jy? Publiek: opdatering. JASON Hirsch: Nie werk. Wat is jou tweede raai? Publiek: kies. JASON Hirsch: As jy wil hou spoor van iets, het jy waarskynlik wil hê dit neer te skryf iewers of stoor dit vir later. So as dit nie werk, dan - Publiek: Voeg dit. JASON Hirsch: Insert, daar gaan ons. Ja, so jy kies die bedrag van kontant wat hulle het, klink great. Hulle het nie genoeg kontant nie. Daardie transaksie is nie van plan om te werk. Nee, jy hoef nie te hou van 'n transaksie indien dit nie werk nie. Of jy kan, as jy wil gee hulle 'n harde tyd. Maar jy hoef nie. Dan moet jy voeg of te verander in hul voorraad tafel. En nou, moet jy jou ander tafel. Jy moet jou geskiedenis tafel of alles wat jy wil om dit te noem. En in daardie tafel, jy gaan 'n nuwe ry in te voeg. Dit is waarskynlik gaan om te die gebruiker se ID. Dit is waarskynlik gaan hê die naam van die voorraad. Dit is waarskynlik gaan hê 'n tyd wat hulle dit gedoen het. En in hierdie geval, sal jy waarskynlik wil hê dat die prys in te voeg. Want vir 'n geskiedenis, wat jy doen nie omgee wat die huidige prys is. Jy gee wat die prys is wanneer hulle gekoop of verkoop iets. So dit klink soos, koop te implementeer ten volle behels 'n aantal verskillende SQL navrae, Maar eerlik, nie dat veel kode algehele. OK. En wat sorg van die geskiedenis. Kom ons sê, ons wil vertoon ons geskiedenis. Ons het gepraat oor die vertoon ons portefeulje. Hoe sou ons mekaar ons geskiedenis? Publiek: Vermoedelik chronologies. JASON Hirsch: Vermoedelik chronologies - wat navraag doen jy dink ons ​​wil gebruik? Publiek: A kies. JASON Hirsch: A kies - kies dalk al die rye van die tafel wat ooreenstem met die gebruiker-ID en dan wys hulle chronologies, Klink goed. Moet ons kode te skryf sorteer deur middel van die lys? Publiek: Nee, want jy vertel ons is daar 'n stygende en dalende ding. JASON Hirsch: ding? Publiek: Ja. JASON Hirsch: Ja. OK, draai nie in die kode vir my, wat hand sorteer deur middel van jou navrae, om hulle te sorteer. Hierdie kode is reeds gegee is. Jy kan 'n Kies navraag skryf wat allerhande dinge. Sorteer hulle vooraf en dan druk hulle uit. Dit maak soveel meer sin om te doen dit so, as die ander manier. Ja. Publiek: Het ons nodig het om te sorteer hulle vooraf? Dit beteken nie dat jy soort hulle in die databasis? JASON Hirsch: Die Select navraag terug om hulle aan julle gesorteer. So doen, eerder as om net hulle terug te keer na jou in 'n ewekansige volgorde en dan sorteer hulle self. Ja. Publiek: Is daar 'n manier om dit te hou gesorteer in die databasis self, sodat jy hoef nie te sorteer dit elke keer as jy - Publiek: Kan jy plaas dit gesorteer? JASON Hirsch: Vraag - maak dit saak dat dinge gesorteer in die databasis? Publiek: No JASON Hirsch: Wel, hulle is gesorteer. Hulle is chronologies gesorteer. Maar laat ons aanvaar dat dinge uitgesorteer chronologies, van bo tot onder. Ons het 'n Google-vorm. Wanneer iemand reageer op ons Google vorm, is dit net kry sit in die onderkant van die tafel. Maak dit saak dat dinge gesorteer nie chronologies? Publiek: As dit nie soseer, het jy nie elke keer te sorteer jy info uit. Maar as dit is reeds uitgesorteer is, kan jy nie nie dat bykomende te doen funksie oproep? JASON Hirsch: So dit is eintlik 'n goeie punt. Vir ons as programmeerders, dit kan saak. En ons wil dalk 'n databasis te vind wat nie dinge sorteer chronologies. Of die opstel van ons databasis, so dit hou dinge uitgesorteer deur die gebruiker ID. So dat die pad, sê, ons het 1000 gebruikers-ID's. Of Facebook, ons het miljoene van die gebruiker-ID's. Ons wil nie ons tafel om net ewekansige of ons databasis ewekansige wees. Dit sal lekker wees as al die gebruikers-ID's is gesorteer. So dan kan ons binêre soek hardloop op ons tafel en dan net vind die spesifieke stuk. So ja, afhangende van - as ons afgeskaal up, ons wil dalk 'n databasis te vind wat gehou dinge gesorteer in 'n ander manier, sodat hierdie navrae sou minder tyd in beslag neem. En ons het nie het om te gaan deur middel van ons hele databasis in elke enkele ry in 'n gegewe tabel. Maar die vlak wat ons werk op ons hoef nie te bekommerd wees oor die behoud van dinge uitgesorteer. Ons kan aanneem dat die tyd wat dit neem die soektog uit te voer gaan wees gering, gegee wat ons te doen het met. Maar ja, goeie idee - soos ons skaal, dit dalk sin maak om te ontwerp ons databasis in 'n bietjie van 'n ander manier. Een finale ontwerp van die databasis ding wat ek wil sowel noem, want jy sal word gegradeer of gedruk eerder op die ontwerp van jou databasis. Ons het gepraat oor hierdie. Kontant is uniek aan elke gebruiker. So jy het 'n tabel genaamd kontant wat het hul gebruikers-ID en hul bedrag van kontant en dan 'n tabel met die naam gebruikers wat hul gebruiker ID en hul gebruikersnaam. Die tabelle kaart op elke ander een-tot-een. Dit maak seker sin vir hulle een tafel te wees. So laat ons veronderstel jy het 'n gebruiker tabel wat hou van gebruikers name en kontant. Jy het nou 'n tabel met die aandele 'n individu besit. En 'n individu mag besit meer as een voorraad. So dit nie die kaart nie op mekaar een-tot-een. Dit maak nie sin nie 'n reuse te hê tabel 30 rekords wat al herhaal 'n rekening het nie, dat alle herhaal 'n wagwoord, dat alle herhaal 'n aantal van kontant. Maar elkeen het dalk 'n ander voorraad naam of 'n ander voorraad prys. Dit maak nie sin te hê dat baie groot rekords. Wees slim oor wanneer jy skep hierdie databasisse, sodat jy dit nie doen iets dom soos wat, herhaal 'n baie onnodige inligting. OK. Ons het twee minute oor. Mense is buite opgewonde om aan te sluit ons of waarskynlik, vermoedelik, begin om hul eie klas. Het enige iemand enige vrae voordat ons klaarmaak? OK, dit was inderdaad 'n warrelwind deur alles. Ek vra om verskoning dat dit moes so vinnig wees en dat ons nie kan wees as hands-on hierdie week as ek sou het graag te gewees het. Maar as jy enige vrae oor enigiets wat ons het oor of enigiets in hierdie probleem gestel - vermoed jy het dit gelees en sit in 'n goeie geloof poging - voel vry om my te e-pos of kontak my. Ek is meer as gelukkig om deur te werk jou kode met jou of beantwoord enige vrae wat jy het. Hou in gedagte dat hierdie week, 'n baie jou tyd sal bestee word die leer van die nuwe sintaksis en probeer om te verstaan hoe SQL navrae of PHP te skryf funksies of ooreenkoms met 'n MVC raamwerk. Baie van hierdie week waarskynlik jou tyd sal nie probeer om uit te vind die gek logika dat ons jy vra om te doen. Baie van dit wat ons het net verby relatief eenvoudig. So dit beteken nie wag tot op die laaste minuut. Maar dit beteken nie pas hoe jy jou werk daarvolgens, om seker te maak jy verstaan ​​en die leer van die sintaksis. So jy is nie, almal van 'n skielike, wetende presies wat jy wil doen, maar met geen idee hoe om te presies dit skryf. OK, ek sien julle volgende week.