SAM LEVATICH: Tervetuloa kohta tällä viikolla. En ole Andi. Andi on laskenut sairas tänä päivänä, ja minä on eräänlainen kutsutaan viime hetken vallata. Se on flunssa kausi, joten varmista, että olet oleskelevat puhdas, käsien pesu, ja syö terveellistä jotta sinäkin ole vuoteenomana. Mutta ilman puheitta, Eiköhän aloiteta. Tänään aiomme puhua PHP hieman bit-- miten PHP liittyy HTML, miten se koskee CSS, ja jotkut rainan kamaa teit viimeisestä määrityksestä. Aiomme puhua vähän tietoa SQL ja miten voit työskennellä tietokantojen, joka on melko keskeinen osa P set 8-- P asettaa 7. P asetettu 7. Ja sitten me aiomme puhua vähän vähän siitä, miten näkymä ohjaimet toimivat ja miksi se on filosofia joitakin moderni verkkosivuja ja eri suunnittelu. Aika paljon paljon erilaisia ​​sovelluksia ja sovellukset saatat lähetettäväksi käyttävät tätä mallia, View Controller puitteet, että sinulla on käytössä P asettaa 7, niin minä puhua hieman miksi se on tullut suosittu, miksi se on tärkeää ja mukavaa. Ja sitten minä vihdoin siirtyä muutamia vinkkejä kaataa P asetettu 7. Ja jos meillä on aikaa jäljellä lopussa, voimme todella tehdä joitakin työtä, että yhdessä. Niin, PHP. Itse asiassa, olet ehkä huomannut this-- et todellakaan tarvitse sukeltaa it-- mutta P asetettu 6 oli joitakin PHP koodi, joka oli meneillään. Ja koska PHP on C kaltainen kieli, PHP, toisin kuin HTML ja CSS, on ohjelmointikieli, katsoo HTML ja CSS ovat staattisia. He sivunkuvauskielet tekemisissä tyylillä ja visuaalinen ulkoasu. PHP on todella paljon. PHP on silmukoita, se on conditions-- kaikki jutut että on hauskaa noin C. Se on muutamia asioita, jotka ovat hieman hieman parempi kuin C, joka näemme, mutta mielestäni helpoin tapa puhua Tietoja PHP on vain sukeltaa. Joten aion mennä oikealle osaksi IDE tässä vaiheessa. Ensimmäinen asia, olemme menossa vain todella näyttää hieman joitakin PHP-koodin, joka oli P asetettu 6. Niin että teemme that-- ennen, että me juoksimme palvelin laitteen oli se, että meidän olisi type-- joko käyttää täytäntöönpano tai henkilöstön täytäntöönpanon on server.c menemällä hakemistoon ja käynnissä server.c joko ilman arguments-- joten vain soittaa sitä paikallinen isäntä, joka on mitä luultavasti teki suurimman time-- ja sitten syöttämällä se directory-- kanssa joka käyttää sen juuri jos sivusto olisi ajaa, pohjimmiltaan. Tällä viikolla P asetettu 7, kuten suuri kuin meidän koodi server.c on olemassa ihmisiä, jotka ovat jo kirjallinen nämä hienoja asioita haltuun CS50 että on hieman enemmän toimintoja, palvelin ohjelma joka pystyy käsitellä hieman enemmän ja hienoudet, että me will katso molemmissa P asettaa 7 ja P valitset 8. Ja siten, että käynnistät palvelin tapahtuu kirjoittamalla "apache50." Ja ennen kuin teet mitään, haluat varmistaa, että Apache 50 ei ole jo käynnissä, koska se on minun koneella, jonka tein testata sitä. Ja teette sen soittamalla apache50. Lopettaa, ja näet, että se on pysäyttää web-palvelin, jos voit katsoa sinne alaosassa päätelaitteen ikkunan. Ja sitten vain alkaa, olemme menossa soittaa, "apache50 aloittaa." Ja sitten me aiomme ruokkia sitä hakemistoon. Nyt, koska haluamme näyttää joitakin P asetettu 6 koodi että olimme täytäntöön, olen oikeastaan kopioitu hieman P asettaa 6 koodi oman kansioon, joka näkyy vasemmalla siellä. Sitä kutsutaan "SECTION8" isoilla kirjaimilla koska olen vain niin innoissani olla live-lähetyksenä Internetissä. Joten jos me suorittaa tämän, se olisi kaikki toimivat melko tehokkaasti. Siinä sanotaan, OK, meidän sivusto on nyt saatavilla osoitteessa IDE, pohjimmiltaan, joka on mitä käytit juuri sellaisena kuin se oli P asettaa 7-- P asetettu 6. Kaikki minun indeksit ovat yksi indeksi tänään. Joten voimme mennä, että osoitteen, jos muistat, vain klikkaamalla tätä pikku painiketta oikeassa yläkulmassa. Ja voit muistaa tämän koodin, joka tapahtui, kun meni hello.php. Ja mitä koodi on suunniteltu do on kun kirjoitit nimi here-- jos sanot Sam koska se on minun name-- ja minä sitten tervehtimään, kun menimme seuraavalle sivulle, että nimi piti näytetään. Olisi sanoa, "Hei, Sam" tai "Hei", millä nimellä sinua tehnyt sen vaikka menimme aivan uudelle sivun. Ja tämä on sellainen asia että PHP voi tehdä sinulle. PHP pystyy välittää tietoja kahden web-sivuja. Tämä on täysin eri sivulle. Näet otsikko on "hei" täällä. Oikeastaan, ne ovat sama otsikko, mutta minä luvata ne ovat eri web sivut jos tarkastelemme lähde. Ja voit siirtää tietoja, jotka ovat merkitään tähän tekstikenttään, lähetät sen seuraavalle sivu, joka on kutsuttu ylös, ja sitten, että tiedot on voitava siellä nykymuodossaan. Nyt emme ole vielä toteutettu tämä itse, mikä on mitä aiomme tehdä juuri nyt lajitella saada maku miten PHP toimii, mutta keskeinen ajatus on, että PHP-- voit tavallaan ajatella sitä kuin toiminto. Jotain, joka PHP kertoa teille ei se voi ottaa parametreja että syötät HTML-sivu käyttämällä PHP ja lomakkeet, ja se voi siirtää nämä parametreina seuraavalle sivulle, että se latautuu ylös. Tässä tapauksessa olemme lastaaminen tämä sivu "Sano hei" -painiketta. Mutta nyt olen itse Poistetaan jotakin siitä koodia vuonna hello.php joka ajetaan joka todella näyttää "Hei, maailma "tai" Hei, Sam "tai "Hei," mikä oli vain syöttää. Joten juuri nyt, olemme aio tehdä sitä, periaatteessa. Aiomme luoda että ja myös lisätä joitakin enemmän toimintoja, tehdä hieman enemmän sen kanssa, katso mitä PHP on todella pystyy. Joten ensimmäinen, Puhutaanpa tämä tiedosto, hello.php. Joten jos me zoomata pikku bit-- ja nyt olen tavallaan yrittää vierittää kaikki miten around-- siellä mennään. Näet sitä kutsutaan hello.php, mutta syntaksi se näyttää HTML-tiedoston. Tämä johtuu siitä, että todellinen PHP tähän tiedostoon on kaikki juuttunut näiden kysymysmerkki-sirkumfleksi lohkoja. Kaikki täällä pidetään PHP. Ja huomaat, että kun tein kommentin, näet tutun kaksi vinoviivaa. Ja jos te muistatte, vuonna HTML, jos kirjoitan kommentin, se näyttää jotain lähempänä tämä, joka on kommentti HTML. Siis todella kaiken välillä nämä kaksi kulmasulkeet on nyt PHP, joka näkyy se, että tämä pieni kommentti symboli on muuttunut kommentti. Joten aina kun kirjoittaa PHP, jopa jos ei ole HTML-koodi sen ulkopuolella, se on aina olemaan suljettu näissä kulmasulkeiden kysymysmerkkejä. Voit tavallaan ajatella it-- miten kaikki koodi, joka juoksi oman C ohjelmat oli suljettu int main, mitätön, kihara ahdin, pää kihara ahdin selvitys. Ja näet kihara henkselit PHP, liian, mutta tämä on tavallaan kuten pääasiallinen menetelmä PHP. Joten nyt, miten teemme mitään PHP? Nyt, PHP on ohjelmointi kieli, joka on hyvin C-like, mutta se toimii verkossa. Niin yksi asia, että sinun immediately-- yksi ensimmäisiä asioita todella teki C tulostit tavaraa ulos, eikö? Joten C teimme että kanssa printf toiminto. Annoimme se merkkijono, luultavasti uusi linja, ja sitten me lopetetaan se puolipisteellä. Niin että me aiomme tehdä, että vuonna PHP-- koska se ei ole aivan printf. Se on hieman eri syntaksia. Että me painamme asioita PHP on sanomme, "echo hei" tai "echo" tahansa sana. Ja että vaikutus on tehdä printf narulla, "hei." Ja se lisää uuden rivin siihen. Joten nyt tehdä sure-- Minä loitontaa taas vähän bit-- katsotaanpa varmista, että että koodi toimii koska voi hyvin olla vian koodin että meidän on puututtava. Joten palvelin on jo käynnissä. Jos siis siirry takaisin pohjaan, YUP, palvelin on edelleen käynnissä. Joten jos me vain hyödyntää tämän hieman oikealle here-- welcome-- meidän pitäisi get-- suuri. Meillä on vielä joutuvat tuttu "Tervehdi" vuoropuhelua, mutta kun kirjoitat "hei", näemme että teksti "hei" oli todellakin tulostaa, joka on juuri niin kuin odotimme koska kaiku PHP on aivan kuin printf selvitys. Joten takaisin koodia, miten P asetettu 6 teki jakelu koodin tarjotaan tehdä se niin, että PHP olisi lähtö asia, että te kirjoitit edellisessä ruudussa? Ja tavallaan tutkia miksi näin tapahtuu, olemme menossa mennä index.html, joka on alkuperäinen tiedosto, tiedosto näkyy tässä näytössä kanssa "Sano hei" -painiketta. Huomaat, että on olemassa kaikki klassiset asiat olemme tottuneet HTML tällaisen koska nämä asiat, nämä tagit suljettu vuonna kulmakiinnikkeet, kuten PHP mutta ilman kysymysmerkkejä, joka osoittaa erityinen asia HTML. Meillä on otsikko, joka on "hei." Ja huomaat, että kuten näimme, otsikko on "hei" molemmissa tapauksissa. Vaihdetaan tämä "lausu" juuri niin me voi erottaa itse missä olemme. Mutta meillä elin. Ja sitten mielenkiintoinen hieman, bittinen joka näkyy HTML, on tässä muodossa tekijä. Ja niin meillä muodossa. Ja tämä on avain. Näin pyrimme PHP. Toimintaparametri muoto mukaan hello.php on mitä aiomme lähettää arvot tässä muodossa. Täällä olemme ohimennen parametrit, niin sanoakseni. Huomaat toinen juttu täällä on, että menetelmä on "saada." On olemassa kaksi ensisijaista menetelmät, jotka olla PHP välittää tietoja välillä websites-- verkkosivuja, rather-- tässä tehtävässä. Ja nämä menetelmät ovat "saada" ja "post." On joitakin hienovaraisia eroja GET ja post että saamme into-- me tulee "päästä" osaksi, jos haluatte. Mutta kaikki aikomukset ja tarkoituksiin, saada ja post ovat vain tapoja, voit välittää parametreja hieman eri teloitukset. Nyt aiomme käyttää saada koska saat oli mitä käytettiin alunperin PHP tiedot P asetettu 6. Ja itse asiassa, jos me mennä ja katsoa ennen olemme muokannut mitään muuta, Aion sanoa hei to-- mikä on nimesi? Yleisö: Elliot. SAM LEVATICH: Voi hemmetti. En tiedä, miten kirjoitetaan. Voisitteko tavata sen minulle? Yleisö: E-L-L-I-O-T. SAM LEVATICH: I-O-T? Yleisö: Joo. SAM LEVATICH: Perfect. OK. Luulen tein osaa kirjoitetaan. Anteeksi tuosta. Mutta jos sanomme "Sano hei," se ei ole se ei tule näy ruudulla mutta koska me muutettu koodi hieman. Mutta jos emme "Say Hello" - OK, joten "hei" on täällä. Mutta jos otamme tarkemmin katso URL itse, näemme, että se päättyy kanssa hello.php? name = Elliot. Niin, tämä on tapa toimittamasta seuraava sivun parametrit, jotka olemme kulunut. Sanoimme name = Elliot. Ja se lopulta miten P asetettu 6 näytetty muuttuja että teimme vuonna lomakkeen kautta. Ja tämä on jotain, on ominaista GET-pyynnön. GET-pyynnön tekee parametrit tunnetaan verkkosivuston URL-osoitteen. Ja voit muistaa, liian, P asetettu 6, että olet piti kirjoittaa toiminto että käsitellään se että tämä Kyselymerkkijonon voisi olla olemassa jälkeen tiedosto. Ei voi olla kysymysmerkki seurasi mukaan periaatteessa minkä tahansa määrän merkkejä. Ja juuri mitä tapahtuu täällä. Ja syy sinun piti jäsentää että teidän täytäntöönpanossa server.c P asettaa 6 on niin, että voisitte kertoa PHP-koodin, joka name = Elliot. Sinun piti pystyä jäsentää että ulos URL niin että PHP-tiedosto kyseessä tiesi, mitä se oli tekemisissä. Joten toivottavasti tämä antaa motivaatiota server.c Nyt kun olemme liikkuu ulkopuolella C osaksi PHP. Joten todella keskittyä pääsyä asiat läpi GET-pyynnön nyt tässä tilanteessa. Aion tallentaa. Emme muuta mitään. Näyttää siltä, ​​meillä syöttökenttään. Olemme asettaa joitakin ominaisuuksia, kuin voimme tehdä HTML. Nämä ovat yksinkertaisia ​​asioita. Emme tarvitse näitä. Mutta meillä Automaattinen täydennys pois, joka pohjimmiltaan says-- tiedätte, kun kirjoitat asiat osaksi web, joskus se yrittää täyttää että sinulle. Joten se kiva juttu. Haluamme sammuttaa sen tähän tarkoitukseen. Se oli CS50 päätös. Voimme siis poistaa että jos halusimme. Automaattitarkennus vain tikkuja kursori muodossa heti alussa. Jälleen, ei liian tärkeä. Mutta name = "nimi" - se on vähän hankalaa, koska se nimi ja nimi. Mutta voisimme ovat muuttuneet tämä jotain muuta. Ja itse asiassa, se on mitä teemme nyt. Me sanomme "henkilö", joka on eräänlainen kuten nimi jos henkilö on määritelty nimensä. Joten sulkea tämän, uudelleen ylös sivuillamme koska meidän palvelin on edelleen käynnissä Apache 50, ja me sanomme, hei, tässä on Elliot uudelleen. Miksi ei? Hei. Ja jos me mennä tänne, näemme sitten sijasta name = Elliot, se sanoo henkilö = Elliot. Ja se on suoraa seurausta siitä, että me juuri muuttanut name = "henkilö." Joten panos osa HTML-lomakkeen, nimikenttä on tunniste parametri, joka on siirrellään. Se on kuin jos luot toiminto "Lisätä", joka kesti kaksi kokonaislukua ja sanoit int ja int b. Se olisi nimi, ja jos halusit toisessa muodossa, joka voimme tehdä vain kopioimalla ja liittäminen, niin meillä olisi nimi b. Joten nyt me kaksi parametrit , joita läpi päästä seuraavalle website-- seuraava sivun, hello.php. Ja voimme todella nähdä että uudelleen, jos haluamme. Tämä on helpoin tapa käsitellä Web koodin IDE, pohjimmiltaan. Käynnistät palvelimen, saat sen käynnissä, ja sen jälkeen joka kerta, kun tehdä joitakin muutoksia, vain lähellä että tiedosto vain on turvallista. Painamalla takaisin-painiketta on hieman hankala koska se saattaa ladata aikaisemmin versio, ole uusin yksi. Ja sitten vain napsauttaa painiketta uudelleen, pop oikea up-- OH, ja nyt on kaksi muotoja. Ja niin jos kirjoitamme yksi asia kuhunkin one-- "jason Hirshhorn," varten instance-- me tervehtimään. Me etsiä meidän parametrit. Näyttää siltä, ​​meillä, kuten odotettavissa, = Jason ja b = Hirshhorn, joka edustaa kaksi muuttujaa että teimme tämän toiminnon. Joten Nyt itse saada täytäntöönpanon että toiminnallisuus että me oli P asetettu 6. Joten nyt me vain kaikuvat hei. Ja se ei ole kovin hyödyllinen. Haluamme toistaa jokin muuttuja joka hyväksyttiin meille. Ja me tiedämme nimi tämän muuttujan. Meillä ja olemme b. Jotta voisimme valita echo jompikumpi. Mutta miten me käyttää sitä? No, on olemassa tiettyjä globaaleja muuttujia PHP. Ja aion kirjoittaa niitä kommentteja. Kaksi tärkeimmät ovat get ja post meidän kannalta juuri nyt. Nämä ovat paneelit tai, teknisesti, sanakirjat jossa meidän muuttujia olemme kulkee seuraavalle sivun elää. Ja me pian nähdä, miten käyttää niitä. Toinen lyhyt huomautus PHP ja jotkut erityispiirteet it-- C, julistaa muuttuja tai käyttää muuttujia, ensin oli ilmoitettava heille. Ja mitä sinun piti tehdä, kun ilmoitti ne oli sanoa int tai char b. Sinulla oli julistaa tyyppisiä nämä muuttujat ennen kuin heidät luonut. PHP-- sinun ei tarvitse tehdä mitään siitä. PHP ei pyydä tyyppi muuttuja. Ja että te luoda variable-- melko kuin sanomalla int, char, string-- joka on todella char *, kuten me know-- pikemmin kuin tehdä kaikki että, koska kaikki on samaa tyyppiä, typeless, voimme vain käyttää yhden merkin, joka on dollarin merkki. Ja näet se on jo popping up, pikku Automaattinen täydennys asioita. Ja se sanoo että _GET ja _POST On kaksi vaihtoehtoa, että minulla on käytettävissä minulle. Jotkut näistä muut asiat ovat muiden globaalien muuttujien PHP että aiot käyttää yli Kurssin P asetettu 7. Nyt aiomme keskittyä get ja post. Mutta tämä on hyödyllinen asia, että IDE tekee jossa kun olet kirjoittanut että dollarin merkki, se tulee aloittaa täyttämällä yleismuuttujat tai muuttujiin olet jo määritelty. Joten jos halusi määritellä muuttuja nimeltään "merkkijono" voit vain asettaa sen yhtä kuin "hei." Ja se on pohjimmiltaan niin yksinkertaista. Ja sitten voisimme tehdä jotain "echo $ string." IDE tulisi heittää joitakin virheitä, jos olen tekemässä mitään väärää, joten toivottavasti teen kaiken oikein. Mutta bugit aina ilmaantuu. Toinen hankala asia PHP on, että se ei ole koottu. Joten C ohjelmia, voit tehdä päivittäinen rutiini of-- pohjimmiltaan, tekisitte muokkauksia koodi, haluat tallentaa sen, ja sitten olisit tehdä se, jos merkki oli askel, joka kutsui kääntäjä, kalahtaa, poistaa tunnuksen, tämä teksti tiedosto, executable. PHP on C-kaltainen, mutta se on toteutettu lennossa selaimessasi. Joten ei ole keinoa tietää. Tee heittää ne avulias virheet, eikö? Se olisi kuin voit ei ilmoittanut tämän muuttujan ennen kuin yritit käyttää sitä. Teit kaiken tämän huono stuff-- segfault, segfault, kaikki tällaista hauskaa kertaa mukana tehdä. PHP on kaksiteräinen miekka koska et saa niitä virheitä, mutta myös sitä, että et tiedä todella mitä vikaa teidän ohjelma jos vain käyttää sitä ja se ei toimi. Mutta debuggeri Huomautan jotkut toivottavasti hyödyllisiä pieniä asioita syntaktisesti että voit korjata. Joten nyt jos menemme yli to-- sanoa, katsotaanpa sulje että. Avaa uudelleen. Ja olemme takaisin täällä. Joten meillä muuttuja ja vaihteleva b. Ja nämä eivät lopulta väliä. Soitamme heille h ja g ilman erityistä syytä. Ja me tervehtimään. Nyt näyttää siltä, ​​meidän string "Hei" on todellakin tulostus. Loimme muuttuja nimeltä "Merkkijono", aseta se vastaa "hei." Huomaa, että meillä ei tarvitse tehdä malloc tai tehdä merkin array. PHP, koska muuttujia ovat typeless, merkkijono on sama kuin hiiltyneen aineksen katsoen. Tämä voisi olla "hei." Tämä voi olla vain merkki k. Tämä voi olla numero 1. Ja se ei välitä. PHP ei välitä tyyppi muuttuja. Tai se hoito. Se välittää kun yrität ja tehdä asioita sen kanssa, mutta se ei hoitoa ilmoitus askel. Ja aivan kuten voit C, voit julistaa jouset pinoon näin vaikka sanomalla "pino" on hieman hieman mahdollinen harhaanjohtava kun puhumme PHP. Mutta meidän ei tarvitse huolehtia siitä. Joten saimme merkkijono "Hei" ja me kaiku merkkijono. Joten nyt olemme keskustelleet muuttujia. Joten nyt meidän täytyy puhua GET ja lähettää ja suorittaa lopullisen asia, joka on tarvitaan todella saada tämän takaisin ylös toimivuuteen P asetettu 6. Joten nyt olemme kaikuvat merkkijono, mutta me ei ole näitä muuttujien ja postitse. Ja koska käytämme menetelmä saada, se tuntuu luonnolliselta, että muuttuja olemme kiinnostuneita, sekä a ja b, tulee sijaitsemaan array tai sanakirja, teknisesti saada. Joten jos perustamme saada näin kanssa groups-- Painoin kirjoita ja se ei pidä it-- mutta tässä meillä on saada. Ja niin saavat jo olemassa. Joten voimme jo alkaa pääsy joitakin elementtejä päästä. Jos emme pysty, tämä syntaksi taulukot PHP on erittäin C-kaltainen. Meillä on kaksi hakasuluissa. Joten jos sanomme saada normaali array, voisimme käyttää nollas indeksi, ensimmäinen indeksi. PHP on nolla indeksi. Voisimme sanoa nolla, yksi, two-- tavaraa kuten tämä. Ja olen sanonut, että saat on teknisesti sanakirja. Mitä PHP tekee konepellin alle, joka on hieman mukavampaa kuin C, on se jo antaa sinulle sanakirja toiminnallisuus, joka on todella hash taulukoita, tai yrittää, muka. Tai, teknisesti se voisi olla yrittää samoin. Mutta PHP toteuttaa tiiviste, joka muodostaa tehokkaan sanakirja. Ja niin me tiedämme nimi meidän muuttuja, eikö? Se on läpäissyt hakumerkkijono PHP. Meillä = h ja b = g missä ja b ovat nimet muuttujia. Niin että voimme käyttää arvo, joka vastaa avaimen meidän sanakirja on vain sanomalla _GET_GET [""]. Joten nyt meillä on _GET [""]. Ja jos me vain korvata sisällä meidän kaiku, jos kaiku _GET_GET [""] - ja näemme, jos debuggeri heittää virheitä noin this-- me paitsi että ja sulje tätä. Avaa se. Joten me vain teemme oikea nyt, joten b ei pitäisi olla merkitystä. "Hänen" ja "hänen" - "hyräillä." "Hänen" ja "hum." Kuulostaa hyvältä. Ja se tulostaa "Hänen", joka on hullu. Mutta juuri siitä oli tapahtumassa P asetettu 6. Pohjimmiltaan, mitä P asetettu 6 oli doing-- echo hello, name-- jossa se oli muuttujan nimi ja se vain pyytää sinua kirjoittaa, että vähän tekstiä. Siellä oli myös joitakin lisäkoodi missä se sisältyi jos lausunnot, jonka voimme tehdä juuri nyt. Voimme sanoa, jos on olemassa, joka on toiminnallisuutta PHP, _GET Kanssa alaviiva, "nimi" - joka on pohjimmiltaan sanoi, "Jos nimi on täytetty", koska olisimme voineet juuri napsauttanut painiketta toimittamaan muodossa ilman kirjoittamalla mitään tuohon kenttään. Ja me kääri että meidän ystävällinen aaltosulkeita. Voimme olla muu selvitys. Ja siinä kaikki sisällä PHP kulma kiinnike, kysymysmerkki, kulma kiinnike, jos haluatte. Ja nyt näemme, jos tämä toimii. Jatkan odottaa sen debug ja paska pois minua, pohjimmiltaan, mutta se ei ole vielä. Ehkä se nyt koska puhuin. Jep. Se ei itse asiassa. Joten, mitään ei näy. Se johtuu jotain vikaa että kirjoitin PHP. Ja mainitsin virheenkorjaus on hankalaa, koska PHP, me ei kääntää sen etukäteen ja kääntäjä ei ollut kuin, tässä on missä virheet ovat. Mutta mitä voimme tehdä is-- ihmiset muistavat miten tarkastella eri verkko pyytää PHP-- tai että sivustot Lähetä? [? Malin?] Tekivät tämän luento kerran tai kahdesti. Muistatko missä mennään löytää eri velat ja 200 OKS, kaikki nämä koodit, jotka on lähetetty kautta HTTP verkkosivustoa sivun? Onko kukaan muistaa missä mennään tehdä niin? Yleisö: Page Source. SAM LEVATICH: Page lähde. Täsmälleen. Jos menet Page Source-- täydellinen. Joten Page Lähde vetää ylös tarkastaja. Ja olen käyttäen Safari. Monet teistä luultavasti käyttää Chrome tai Firefox. Mutta niin kauan kuin olet missä tahansa nykyaikaisessa browser-- ja rohkeasti seurata pitkin, jos haluat. Voit kirjoittaa tätä koodia tai katsokaa sisällä P asetettu 6 hakemisto joitakin samankaltaisia ​​juttuja. hello.php on mitä olemme parhaillaan jäljittelemällä. Niin on olemassa erilaisia ​​välilehtiä. Voimme tarkastella kaikki resurssit. Voimme nähdä lähdekoodia. Joten näyttää siltä kuin se ei ohittamaan elin lopussa. Se havaitsi virheen PHP ja se lopetti lastaus koko web-sivun. Meillä ei edes loppu tag HTML tai mitään. Ja jos katsomme verkoston, voimme nähdä, että olemme lähetetään pyynnöstä. Tämä on verkkotunnuksen. Tämä on osoite. Se on asiakirja. Käytämme get menetelmää. Ja se on punainen. Tai se oli punainen, kun ei valitsemalla se. Miten poistaa valinnan sen? No, se oli punainen. Saanen virkistää. Siellä se on. Nyt se on punainen. Joten se on punainen, mikä tarkoittaa se epäonnistui, mikä on huono. Joten tutkia, miksi se ei onnistu. Niin kaikki mitä Page lähde voi pohjimmiltaan kertoa on sinun juttusi ei toimi, josta voimme jo nähdä. Joten ihannetapauksessa ei olisi olla enemmän hyödyllinen väline. Ja joitakin selainlaajennukset joiden avulla voit debug PHP, mutta emme aio kirjoittavat ton PHP, joten se on luultavasti vain paras käydä läpi koodi huolellisesti ja vain varmista, että se ei tee mitään muuta. Joten onko muoto tämän jos ilmoitus on missä ongelma on. Haluan ladata että takaisin tänne. Hei hei. Joten siellä ongelma siellä. Joten oikean syntaksin PHP, PHP on menossa olla C-kuin että näet silmukat. Näet jos lausuntoja. Näet kaikki nämä ystävät että olet tutustunut Yli kurssin Tämän CS50 lukukauden. Mutta paras tapa selvittää, miten tehdä jotain PHP on googlettaa tai tarkastella joitakin esimerkkejä PHP koska tiedät toiminnallisuutta. Tiedät mitä voit tehdä ohjelmaa. Voit silmukka. Voit silmukka niin monta kertaa kuin haluat. Voit silmukka kaikissa lajittelee eri tavoin. Voit luoda toimintoja. Voit luoda toimintoja, soittaa muita toimintoja, toiminnot jotka kutsuvat itseään. Ja sinulla on nimet näitä käsitteitä. Sinulla rekursio, silmukoita, jos, muut kontrollivirroista. Ja niin Google on paras ystäväsi. Jopa sanoa, "PHP jos lausuma "ja siellä tulee olla tonnia virkaa vastauksia muita ihmisiä jotka olen saanut samankaltaisia ​​kysymyksiä teille, jotka ovat vasta aloittelemassa PHP ja ovat uteliaita syntaksin asia. Koska meillä on ylellisyyden olla mahdollisuus tarkastella koodi P asettaa 6, me todella vedä se ylös ja nähdä, että OK, tässä on jotain mielenkiintoista. Joten tämä on mitä se todellisuudessa näytti P asetettu 6. Joten jos käymme läpi tätä, voimme nähdä, että olemme sai useita näistä pienistä PHP-kuin kysymysmerkki bittiä. Ja ei ole aaltosulkeita. On kaksoispisteet. Ja on kihara olkaimet PHP, mutta tämä on muoto ja tapa tehdä PHP, joka toimii hyvin HTML koska kuten näet, olemme sulkeminen pois nämä PHP bits-- elses ja IFS ja kaikki that-- ja sitten olemme interspersing HTML niiden sisällä silti seuraava ohjausvuo esitetyt PHP. Joten olen juuri menossa lyhyen kävelymatkan kautta koska se on paljon samoja käsitteitä, teemme ennen. Meillä jos ei tyhjä, suluissa, _GET_GET ["nimi"]. Tämä on kaikki samat jutut. Käytämme _GET sanakirjaa PHP lähettää pyynnöstä muotoja, koska se on parametrit toiminta, ja menetelmä on saada. Ja sitten se loppuu siihen. Kaksoispiste on signifier vain tehdä tämän jos jos ilmoitus on tosi. Se on kuin kihara ahdin. Ja itse asiassa, se on kihara ahdin muilla kielillä, kuten Python, joka saatat kohdata, jos vain tehdä oman opinnäytetyön. Ja sitten tätä linjaa, hei. Sitten meillä tämä outo juttu. Muutakin suluissa. Ei ole HTTP there-- tai PHP, sorry. Mutta on yhtäläisyysmerkki. Ja sitten meillä on funktio, htmlspecialchars (_GEThtmlspecialchars (_GET ["nimi"]). Tämä on tavallaan kuin enemmän kehittyneempi versio kaiun. Kuten olimme echo keinona tulostaa asioita PHP. Tämä on toiminto, joka on määritellään PHP, joka käsitellään joitakin enemmän ikäviä hahmot ja tavu arvot että voisitte välittää sen. On aina turvallisinta käyttää tätä. Mutta kaiku tekee työtä hienosti jos emme ole tekemisissä mitään liian ilkeä. Ja niin tämä on sama vaikutus periaatteessa, tätä tavaraa välillä kyseessä tavaramerkit arvioidaan PHP. htmlspecialchars palauttaa mukava HTML painettu arvo _GET_GET ["nimi"], so mitä me kirjoitetaan muodossa. Ja sitten se tulee tervehtimään, pilkku tilaa, ja sitten se. Että koko asia välillä kulmasulkeet korvataan tahansa htmlspecialchars asettaa pois. Niin, että periaatteessa samanlaisia mitä teemme. Ja meillä on muu selvitys, joka on Hello World, jossa on järkeä. Joten nyt mennään takaisin meidän koodi ja nähdä exactly-- oh. Sanoin olemassa, joka ei ole asia, että halusimme tehdä. Halusimme sanoa ole tyhjä. Ja niin tämä pitäisi toimia hieman hieman parempi, ei tyhjiä _GET_GET ["nimi"]. Ja että kihara ahdin ottelut että kihara ahdin. Meillä meidän aaltosulkeita täällä. echo Hello _GET ["nimi"]. Katsotaanpa, jos tämä toimii hieman paremmin. Olemme edelleen käynnissä palvelimelle. Hei Jason. Hei Jason. Ja se toimi tällä kertaa. Ja niin se on todiste että voit todella käyttää kihara henkselit että voit tietävät ja rakkautta PHP HTML. PHP toimitetaan sinua PSET 6-- PSET 6-- on toinen tapa tekee saman asian. Joten nyt meillä on voima. Meillä on toiminnallisuus toteuttaa PHP-koodin että näimme PSET 6 itse, periaatteessa. Ennen jatkan, mitkä ovat joitakin kysymyksiä, sinulla on tässä vaiheessa? Kyllä [äänetön]. Yleisö: Joten version pset6, kun käynnistät sen, siellä on tilaa. Ja voin nähdä, missä tila on pilkun jälkeen. [Äänetön] alku alkusulkumerkki. Miten sisällyttää tilaa miten kirjoitit oman koodit? SPEAKER: Se on hyvä kysymys. Ja niin katsotaanpa sen selville. Niin, että on todella hyvä kysymys ja joka en pitänyt. Mutta tehdään se yhdessä. Joten ensinnäkin, mitä Mulla kanssa kaiku on, kun me vain kaiku Hei, se tuottaa hei. Jos me kaiku nyt tämä saada erilliselle linja, nyt tutkia, mitä tapahtuu. Joten me sitten tämä. Pidämme sanoen hei Jason. Joten jälleen, meillä ei ole tätä tilaa. Ja se on, koska PHP, kun olemme kaiku, ei väliä kuinka monta spaces-- Ehei, ei V-- ei väliä kuinka monta tilat panemme here-- jos me nyt ladata että uudelleen, hi Jason. Joo, katso, kaikki nämä tilat sai syönyt. Ja se on jotain, kaiku toiminto tekee. Joten huolehtia tähän tilaan, ja tämä on yksi syy miksi et käytä kaiku ja käytät htmlspecialchars sijaan. Olen utelias, mitä olisi tapahtuisi, jos me teimme tämän jossa suljettu tila merkkijono. En rehellisesti ole varma mitä tapahtuu, kun teen tämän. Joten se on yksi tapa. Se on yksi tapa huolehtia siitä. Jos kääri tilaa merkkijono, sitten tila on lähtö hienosti kaiku. Turvallisin tapa on tehdä htmlspecialchars. Se on aina turvallinen valinta. Mutta nyt meillä on tapa tehdä se kaiku tarvittaessa. Ja samalla tavalla, voimme kaiku uusia linjoja, kaikki lajitella tavaraa olet tuttu tekemässä PHP. Kukaan muu, mitä enää kysymyksiin, että muut ihmiset ovat tässä vaiheessa noin PHP? Jos ihmiset ilmaantui vähän myöhässä, Olen onnellinen jäädä jälkeen vähän ja puhua joistakin alussa. Ja se on myös kaikki livestreamed, ja arkistoidaan, joka on hullu. Joka tapauksessa, joten nyt tehkäämme joitakin kehittyneempiä tavaraa PHP. Ja yksi varhaisimmista asioita esiteltiin C oli silmukoita. Ja PHP on enemmän voimakas silmukka kutsutaan foreach silmukka. Ja näyttää siltä, ​​this-- kullekin tyhjä tyhjinä, aaltosulkeisiin, tehdä juttu. Joten tämä on periaatteessa lyhenne. Katso, silmukan kuin syntaktisia rakentaminen kehitettiin C ja kokoonpano kieli ja tuollaista. Kehitetty C, tarkasti, koska pika On paljon erilaisia ​​silmukoita että ihmiset näkisivät. Kuten silloin, kun kirjoitit silmukka, siellä oli usein alustusvaihe toteutetaan heti alussa, Tilanne, jossa silmukka olisi stop-- ja se ominaisuus se on vain vähään silmukka, tai että vaikka on täsmälleen vain että feature-- ja sitten incrementation askel lopussa. Ja niin sinun usein löytää itsesi koodausta kuten seuraavat. Aion poistaa joitakin tämän. Mutta jos olemme iteroimalla läpi merkkiä array, esimerkiksi, kuten olemme sai joukko merkkiä. Anteeksi tuoda takaisin C. Tiedän, luulit tehtiin. Mutta se on vain tarkoitukseen oppimisen PHP, lupaan. Joten jos sinulla char str pituuden 8, ja nyt sanoa se sanoo Hellooo joiden perään null. Suuri, joten se on meidän merkkijono. Ja sitten meillä oli silmukka. Olemme int i on yhtä suuri kuin 0. Ja haluamme poistua kun str i vastaa ei vastaa null, koska me poistua kun se vastaa null. Ja sitten me i ++ kussakin kohta silmukan. Doing jotain Str i. Joten peruskaava oli, meillä oli tämä array että olemme halusi käsitellä erillisinä elementteinä. Mutta mitä meidän oli tehtävä on jouduimme pohjimmiltaan luoda erillisen kokonaisluku muuttuja, joka laskee ylös joka kun menimme silmukan läpi. Ja sitten meidän olisi sitten soittaa strstr [i], kun mitä halusimme tehdä on vain mennä merkki merkki, eikö? Emme halua kasvattaa kokonaisluku ja sitten käyttää, että kokonaisluku pääsyn kunkin merkin erikseen. Me todella haluamme merkki kerrallaan. Ja niin kunkin älykkäästi laskee, että meille. Jos meillä on joukko, joka voimme julistaa PHP kuten just-- jos meillä on muuttuva nimeltään, kutsutaan sitä array. Ihmeitä ei kirjoittamista, se on kuten muutkin muuttuja. Se on vain joukko. Ja meillä on pieni [äänetön] kuten 1, 2, 3, vain eräänlainen alustettu array. Se on OK, se ei pidä minun foreach. Mutta jos emme foreach-- todella Olen kirjoittanut, että vähän väärin. On kaksi tapaa tehdä foreach silmukka. On vuonna syntaksin ja kuten syntaksin. Ja aiomme tehdä syntaksi ensimmäinen, ei niin. Se on minun vikani. Joten foreach num array, kaiku num. Ja PHP on huutaa minulle jostain syystä. Se löytää odottamaton in jotain, joka on hieman vaivata. Mutta me selvittää miksi se on hetki. Joten pidä siitä. Kokeillaan käyttää kuin. Se suosii koska syntaksi on näyttää. Tehdäänpä foreach array kuin num. Joten hieman selitystä mitä juuri tapahtui on kuin syntaksia saying-- hyvin ensin, Katsotaanpa, mitä tämä tulostaa. Joten avaamme IDE. Menemme täällä. Sanomme, Hei Jason. Ja se teki 123, jotka olivat sisältö array että loimme ylös. Joten sukellus tähän foreach silmukka, meillä on muuttuja nimeltä array joka on joukko on kolme numeroa. Ja sitten teemme foreach array kuten num, kaiku num. Ja se on enemmän intuitiivinen kuin varten lop. Sanomme, hoitoon kukin asioita array kuin num, Haluan annat minulle num. Ja juuri mitä se tekee. PHP on laskemista kun sanot foreach array, ja olet tekemisissä array, mitä olet menossa haluavat kerrata yli on merkkejä siitä array, on ints kyseisessä array, on elementtejä että jono. Ja se kerroit tallentaa ne muuttujat kuten num, ja sitten vain lähtö num heti pikemminkin kuin sanomalla, Olen muuttuja nimeltä I, ja sitten haluan tuotos strstr [i]. Ja niin että antaa meille mahdollisuuden tehdä hienoja asioita. Kuten pohjimmiltaan meillä ei ole luoda näistä muuttujista kuten minä ja tehdä kaikki tämä incrementation kamaa lopussa. PHP hoitaa kaikki sen puolestasi. Joten nyt puhutaanpa foreach kuin se koskee meidän _GET sanakirja. Niin me kommentoida tätä nopeasti. Joten meillä on _GET array. Meillä on tätä muuttujaa. Ja se sai joitakin juttuja siitä. Juuri nyt, meillä on vain yksi muuttuja siirrellään se, mikä on nimi. Mutta jos me paina Enter, nyt meillä voi olla kaksi muuttujaa. Meillä voi olla nimi ja ikä, esimerkiksi, jos haluamme saada ikä ja myös henkilön nimi, hauskasti tarpeeksi. Joten nyt _GET tulee olemaan sanakirjaa kaksi elementtiä, jossa kaksi keskeistä arvoa paria. Ja ensimmäinen key-- aion kirjoittaa tämä ylös aluksella liian. Meillä on sanakirja on _GET. Anteeksi, se on hieman vaikea nähdä. Mutta sisällä sanakirjastamme meillä nimi, joka tulee olemaan jotain että meille annetaan. Ja meillä on ikä, joka on myös olemaan jotain, että meille annetaan. Ja tämä on kokonaisuudessaan meidän sanakirja. Joten se sai kaksi elementtiä se. Ja niin koska foreach silmukat ovat älykkäitä, me Voisi ajatella, ja oikein Voisi ajatella, että foreach voi kerrata kautta sanakirja, painaminen arvoja nimen ja iän. Joten itse asiassa juuri tähän. Katsotaanpa rakentaa foreach silmukka. Ja aiomme tehdä _GET kuten. Ja aiomme tehdä seuraavan. Joten mitä tapahtuu, jos me kirjoitat vain sana, ja sitten sano kaiku sana. Olemme myös menossa kaiku uusi rivi vain tehdä hieman selkeämpi, mitä on meneillään. Katsotaanpa. Se ei anna minulle mitään virheitä. Ja suljemme tämän. Sivuillamme, aiot olla tekemässä paljon, että aikana pset7. Niinpä sanomme nimeni on Sam. Ikäni on 45. Ei ole. Mutta se tulostaa, odotetusti, Sam 45. Ja niin huomaat, että mitä foreach silmukka did-- täällä, mennään takaisin tuohon joten se on on board-- saamme _GET kuin sana. Ja ne neljä asiaa _GET. Mutta se vain tulostaa kaksi asiaa. foreach, on sen älykkyyttä itse, olettaa, että mitä me todella halusimme oli arvot, ei avaimet. Mutta on niin, että voisimme tulostaa ulos avaimet myös, jos halusimme. Jos halusimme myös tietää, mitä Näiden muuttujien kutsuttiin, siellä on niin, että me pääsy tähän myös. Ja tapa tavallaan tehdä sitä, joten voimme sanoa, antaa todella jakaa sen keskeinen arvo-pareja. Joten mitä tapahtuu nyt. Joten meillä on avain. Meillä on arvo. Meillä on toinen uusi linja luettavuutta. Ja katsotaan, mitä tapahtuu kun teemme tätä nyt. En tiedä kuinka vanha Jason on. Jasonin 15. Joten meillä on nimi Jason, 15-vuotiaana. Joten pystyimme käyttämään avain ja arvo paria tämän sanakirjan vain sanomalla keskeisinä pistettä arvoon. Ja se foreach syntaktinen sokeri bittinen, joka mahdollistaa voit käyttää asioita sanakirjassa. Joten toivottavasti tällaista korostaa voima foreach silmukka. Voit melko paljon heittää mitään, tuntuu iterable, kuin mitään, että on useita elementtejä, kuten array, kuten dictionary-- nämä kaksi ensisijainen asioita voit työskennellä sekä elämässä ja PSET 7. Joten voit heittää jutut sitä, ja se selvittää mitä haluat tehdä sen kanssa. Se tulee sanoa, OK, aion saada näitä asioita tietoja hyväksyttiin minulle. Ja se on jotain, että olet aio käyttää paljon vuonna PSET 7. Aion Quick Scroll alas vain nähdä missä olen tällä. Ihmiset on kysymyksiä tässä vaiheessa? Kysymyksiä ollenkaan? Kyllä? Yleisö: Joten avain ja arvo, voisit name it mitään muuta ja se silti toimii? SPEAKER: Oho. Vau, olen täysin poistanut koko linjan. Hienoa työtä. Niin,. Avain ja arvo on vain yleissopimus. Se on hyödyllistä. Saisit joitakin suunnittelu pistettä, ehkä jotkut tyylipisteet sen johdosta, koska se todella välittää aikomus. Mutta sanomme ja yarp. Yleisö: Sinun ei tarvitse muuttaa mitään HTML jotta ne vastaisivat että? SPEAKER: Ei lainkaan. Yleisö: Ja se vain tietää, että koska on yhtä suuri kuin suurempi than-- SPEAKER: Kyllä. YLEISÖ: --that indikaattori siitä, että that's-- SPEAKER: Kyllä. Se on foreach syntaksi, mutta kyllä. Yleisö: Ei ole tyyppejä. Mitä jos halusi ikä vain olla useita? Onko tapa tehdä se? SPEAKER: On olemassa tapoja tarkistaa, jos muuttujat oltava tietyt tyypit. Joten PHP pyytää hieman enemmän sinua, koska ei ole nimikkeet. Jollain tavalla se kysyy vähemmän. Jollain tavalla se vaatii enemmän. Koska jos sinulla on vain jotain muuttujaan, sinulla ei ole aavistustakaan millaista se on. Mutta jos olet fiksu muuttujista että annat tyypit ja varmista joka toimii vain return-- sinua haluavat toimintoja vain paluu yhden tyyppinen arvo niin että voit periaatteessa odottaa, että muuttuja saat takaisin funktiosta on tyypin että luulet se on, pohjimmiltaan. Mutta on olemassa joitakin menetelmiä jonka voit tarkistaa. En muista niitä päältä pääni. Odotan sitä muuttuu siniseksi. isint? isstr? On menetelmiä rakennettu PHP, joka voi tarkista tyyppi muuttujat sinulle. Mutta jos annat muuttujat fiksusti, sinun ei pitäisi täytyy tehdä, että liian paljon PSET 7. Mutta näitä menetelmiä olemassa. Ja se on jotain, on kieli itse. Ja en muista tarkkaa syntaksin. Voisimme jopa etsiä se. Mutta aika on valttia. on Onko kukaan muu on kysyttävää? Kyllä. Yleisö: Minulla on vain yksi. Joten puhuitte GET, mutta et maininnut POST-menetelmää. Olemmeko tulossa takaisin, että? SPEAKER: Kyllä, me on tulossa takaisin, että. Juuri mitä olin etsimässä minun puhelin, joka nyt nukahti, mutta löydät sen. Vain varmista me osuma kaikki PHP toteaa. Jep, ei ole virheenkorjaus versio. Kyllä, meillä on muutamia asioita, jotka haluamme tehdä nyt tässä vaiheessa. Joten puhumme POST, jonka mainitsitte, Ainoa ero välillä GET ja POST on että muistan kun me katsoimme Tämän URL-osoite ja näimme, OH, nimi vastaa ja ikä vastaa yarp oikeassa URL siellä meille. POST on hieman salamyhkäinen sen läpimenoa tietoja. Joten jos et halua käyttäjä tietää, esimerkiksi, voit ei halunnut käyttäjätunnus ja salasana henkilön Tällä hetkellä kirjautuneena näytetään URL, joka on kohtuullinen asia on halua URL, koska joku voi nähdä sen. Jos ne viittaavat joku sivulta eivät halua URL rapattu siellä, koska joka antaisi ihmiset kirjautua pelkästään liittämällä URL sijaan tosiasiallisesti täyttämällä lomakkeen. POST on hieman salamyhkäinen. Ja ainoat asiat, jotka meidän täytyy muuttaa ovat tätä menetelmää, muutos mistä saada lähettää. Ja sitten sisällä HTTP, sen sijaan pääsemistä array _GET, aiomme käyttää array _POST. Ja me huomaamme, että, jos avaamme tämä takaisin ylös, Jason heikkenee hitaasti iän myötä. nimi Jason, ikä 14. Samat jutut ponnahtaa ylös. Mutta menemme URL ja nämä muuttujat eivät ole siellä. Ja siten, että POST passes-- joten muista miten tarkastella lähde sivun. Menemme verkkoon. Me päivittää. Ja tämä on toinen asia, joka POST saat varoituksia. Olet ehkä nähnyt ruutuun teksti laatikko näin selaimessasi. Oletko varma että haluat lähettää lomakkeen uudelleen? POST on mitä on lähettää nämä muodot. Koska pohjimmiltaan jos lähetit luottokorttitietoja jollekulle, että ei aio näy URL. Se tulee olemaan POST pyynnön. Joten kun päivittää sivua, se resending että postitse pyynnöstä. Joten nyt me haluamme lähettää muodostavat uudelleen, koska se ei tule luoda mitään päällekkäisiä ostot. Ja me huomaamme, että täällä, menetelmä käytämme on POST. Ja se todellakin siirtää tavua. Se siirretään 401 heistä. Ohjelman melko pieni. Mutta missään muualla, että voimme nähdä arvot, joita johdetaan. Verkkosivut voivat itse nähdä, mutta me käyttäjät eivät voi nähdä, jos olet hakkeri. Jos olet hyvä hakkeri, voit katsoa. Jos tiedät perustiedot muoto HTML, arvot tekee ilmoittauduttava sivuilla. Voit nähdä. Arvot on siellä, he vain hieman vähemmän ilmeinen sinulle käyttää, periaatteessa. Onko meillä enää kysymyksiä GET, POST before-- mitä aiomme tehdä seuraavaksi on todella tarkastelemme joitakin koodi että annat vuonna PSET 7, puhua miten se käyttää joitakin näistä käsitteistä, ja puhua asioita, jotka aiot täytyy tehdä vähän sisään PSET 7. Kysyttävää ennen? Lisää kysymyksiä teillä? Suuri. Okei, katsotaanpa hieman klo PSET 7, epäilemättä mitä olet kaikki eniten innoissaan. Tarkoitan, tämä on jotain, David kulkee hieman. Mutta meillä on kolme hakemistoja top, sekä asetustiedosto. Se on tietokannat, josta käymme puhua noin viidessä minuutissa. Sisältää, sinun ei tarvitse katsomaan tämän hakemiston jos et halua, mutta on mukava tietää olemassa kaikenlaisia ​​auttajia. Auttajia on kuin lisätoiminnot. Ja sitten meillä on config, jossa esitetään joitakin juttuja ylös. Joitakin toimintoja, jotka CS50 on kirjoitettu, että ovat auttaja ja config. Ja jotkut PHP, joka jo poistuu tiedostoista tekee paljon enemmän lajitella kaksikärkisestä jalka työn puolestasi. Kuten jos menemme yleisölle login.php, joka on mitä näkyy oikea kun mennä PSET 7. Saa nähdä, että on olemassa tämä edellyttää lausunto. Ja että tavallaan kuin terävä kuuluu, hashtag ovat jos olet uudemman sukupolven. Mutta tämä pohjimmiltaan sanoo, että tarvitsen pääsy kaikkia toimintoja config.php. Ja olisit voinut vaatia kaikenlaisia ​​muita asioita. config todella vaatii auttajia. Joten jos tarvitset config, olet myös mukaan lukien tai edellyttävät auttajia samoin. Niin että saat käyttöösi kaikki viileä toiminnot että aiomme käyttää, asioita, kuten tehdä. Olen todella tulee helpottaa tämä hieman alaspäin. Joten toiminto sitten olemme aikoo kävellä läpi juuri ennen kuin siirrymme SQL hieman bitti on login.php toiminto, vain koska se käyttää joitakin aiheita että olemme juuri puhuneet PHP. Näet ensimmäinen asia on, jos $ _SERVER. Tämä on toinen globaali muuttuja että aiot olla tekemisissä. Se on kuin _GET ja _POST, mutta mitä palvelin sisältää tämä voi antaa sinulle tietää jos pyyntö menetelmä oli GET tai POST. Kuten aikaisemmin mitä teimme on vain meidän koodi että me kirjoitti, me vain muuttamalla sen olevan GET ja POST riippuen siitä, mitä HTML on. Mutta on sivuja, jotka voivat olla käsiksi molempia pyyntöjä. Ja saatat haluta tehdä eri asioita riippuen tyypistä pyynnön, aivan kuten kirjautuminen ei. Joten voit tarkistaa, että pyyntö menetelmä kautta pääsy avaimet, kautta avaimella ja saada arvo jotain sanakirjassa _SERVER. Niin se on toinen maailmanlaajuinen muuttuja kuten _GET ja _POST. Jos se GET, haluamme tehdä sisäänkirjautumislomake. Render on toiminto, joka pohjimmiltaan vain laittaa ylös vastaava HTML ja välittää sen joitakin parametreja. Tämä otsikko on parametri, joka on käytetään näyttämiseen, kumma kyllä, otsikko sivun kysymys, asia täällä, sanoa tai hei edellisessä esimerkissä. Nyt meillä on eri asia. Ja muuten jos se on POST, me tehdä joitakin muita juttuja. Käytämme että tyhjät menetelmää. Se ei ole olemassa, se on tyhjä. Ja näimme ennen, PHP on melkoisesti rakennettu menetelmissä että David will-- jos ovat menetelmiä, jotka ovat sinulle hyötyä, ne varoittaa sinua walk kautta että David antaa alussa kuvaus, ja myös Zamyla avuliaan bittiä. Hän on palannut kaikille. Voimme kaikki iloita. anteeksi on osuvasti nimetty toiminto että vain periaatteessa tulostaa jotkut virheilmoituksia, koska CS50 on hyvin kohtelias. Ja nyt tämä, tämä on hankala bittinen koska tämä on, jos olemme pohti tietokantaan. Nyt emme ole puhuneet tietokantoja. Ja aiomme seuraavassa viisi minuuttia tai niin, maksimi. Mutta tämä on toiminto että CS50 on kirjoittanut saada pöydän pohjimmiltaan tietokannasta että olemme kanssa sisään PSET 7. Olen todella huono minun nolla indeksointi tänään. Mutta kyllä, se on 7. Joten kyselyn se tulee palauttaa array, pohjimmiltaan on avaimen. Ja koska nämä asiat eivät ole kirjoittamalla, joten rivit on joukko paneelit. Sillä kun olet ajatellut pöytä, mitä aiomme tehdä on, kuten olet oppinut psets kuten peli 15, joka tapauksessa jossa piti käyttää kaksinkertainen array, olemme periaatteessa on joukko muita taulukot tekee pöytä. Ja sinulla rivejä ja sarakkeita. Ja sitten voit käyttää niitä kuin [0] [1], saat [0] [1]. Basic tavaraa niin. Joten mitä teemme täällä tätä toimintoa, pyydämme tietokanta jos käyttäjä se yrittää kirjautua, että on lähetetään POST-menetelmällä. Näemme olemme pääsemässä käyttäjätunnuksesi _POST. He lähettänyt, käyttäjä tai te, lähettää arvo kautta lomakkeella kautta POST koska se on käyttäjätunnus ja salasana kamaa. Tarkistamme käyttäjätunnus nähdä, on tämä taulukossa? Koska jos käyttäjä kirjautuu vuonna, niin hänen käyttäjätunnuksensa tulisi säilyttää taulukon käyttäjille että olemassa tällä sivustolla. Joten periaatteessa, jos käyttäjän on tietokannassa, kysely aikoo palata että rivi, joka on jono. Mutta hankala osa on, että jos vaikka kaksinkertainen joukko on vain yksi rivi, vaikka se on yksi rivi array-- kuten sinulla basically-- jos sinulla koko yhden ryhmän että pidättelee toinen joukko, olet todella tekemisissä yksi sarake. Mutta se on silti käsitelty kuten kaksinkertainen array. Ja tämä on, jos se voi joskus hankala, koska meillä riviä täällä. Meidän muuttuja on riviä. Ja sitten Luomme uusi muuttuja nimeltä rivi ja asettamalla se vastaa ensimmäinen rivi riviä. Ja huomaat, että kommentti sanoo, että se on ensimmäinen ja ainoa rivi. Joten tämä on hankala osa, jossa nyt tehtävät voi palata taulukot hyvin helposti. Ei ole mallocs. Et näe mallocs. Joten et näe seg vikoja. Mutta toiminnot ovat edelleen kulkevan noin taulukot ja tiedot ryhmissä. Ja sinun täytyy varoa mitä tarkalleen toiminnot palaa. Ja vaikka se on yksi sarake näin, kysely on vielä aio palata kaksinkertainen array. Joten pääsy että column-- tai olet voi ajatella kaikki tämä käännettyinä koska puhumme rivejä. Mutta pääsy että yksi rivi, et voi vain sanoa rivejä. Vaikka se on yksi rivi, sinun täytyy do rowsrows [0] tavallaan poistaa tämän ulompi bittinen array ja on vain sinun yksi rivi. Onko joitakin muita asioita. On toiminto nimeltään password_verify joka varmistaa salasana, jota oli lähetetty. Ja sitten me näemme toisen maailmanlaajuinen muuttuja täällä, _SESSION. Periaatteessa istunto id Näin voit seurata ja jos joku on kirjautunut sisään vai ei. Joten juuri nyt login.php, olemme kirjautumisen käyttäjä. Joten mitä haluamme tehdä, on haluamme sanoa istunto id on sama rivi ID, joka vain on järkevää, koska Kullakin rivillä on eri id määrä osana taulukon. Pääsemme SQL Toinen, joten jos jokin tämän tuntuu vähän kuin blah, niin kaikki ratkeaa. Mutta aiomme asettaa id yhtä oikea asia, käyttäjä kirjataan sisään. Anteeksi, jos jokin menee pieleen. Ja että on käyttäjätunnukset tarkoitukseen elämä professori Malan sanoisi. Joten se oli login.php. Ja paljon PHP kirjoitat vuonna PSET 7, he ovat hieman. Älä unohda chmod käyttöoikeudet. Tulee hieman siitä että alussa spec. Mutta PHP että olet kirjoittaminen tulee olemaan tekee juttuja se samanlainen. Tulette olemaan pääsy joitakin asioita, jotka annetaan sinulle maailmanlaajuinen muuttujat PHP, joka käsittelevät nykyisen kirjautunut käyttäjä, onko on ollut pyyntöjä lähetetään tähän sivu, eri tuollaista. Ja se on myös mahdollisesti iteroimalla läpi riviä tämä asia. Vuonna toinen toiminto, kysely ei palauta tämä kaksinkertainen joukko. Ja jos on enemmän kuin yksi riviä siinä, jos are-- kyllä, jos on enemmän kuin yksi rivejä sitä, niin se on pöytä. Ja kannattaa kerrata läpi rivit tämän matriisi foreach silmukka että me kuvattu. Joten jos et foreach kaksinkertainen array, mitä word-- täällä, Minä itse kirjoittaa sitä. Kirjoitan sen nopeasti tästä. Jos meillä on foreach rivien kuten rivi, mitä tyyppi peräkkäin? Ei kukaan tiedä? Sinä sait sen? Joten rivit on kaksinkertainen joukko. Joten mitä foreach menossa päätellä että haluamme tämän kaksinkertaisen array jos me iteroimalla yli? Voimme periaatteessa olettaa, että se tulee olemaan joko elementtejä, tai rivejä tai sarakkeita, periaatteessa. Ja niin rivit ja sarakkeet me voi kohdella sama asia. Periaatteessa mitä foreach silmukka on menossa tehdä on se tulee palauttaa rivien. rivi tulee olemaan tyyppiä rivi, katsoo rivejä on kaksinkertainen joukko. Joten jos annat foreach kaksinkertainen array, se on aio kerrata useammalla kuin yhdellä tasolla syvä. Joka on pohjimmiltaan sanoa, onko on kahdeksan solut tässä table-- 1,2, 3 4, 5, 6, 7, 8-- foreach silmukka ei ole mene läpi kunkin näiden solujen. Mitä foreach silmukka tekee oli se menee läpi tämän rivin, antaa sinulle tämän koko rivi. Ja sitten se menen läpi rivi. Joten se vain iteroi yksi taso syvä. Jos lisäät sisäkkäisiä foreach silmukka, niin voit voi hoitaa kukin rivi palannut rivejä, et foreach krs elementti, sanokaamme. Ja sitten voisi yhtyä elementti. Niin, että lyhyt pieni kertaus siitä, miten saatat käyttää foreach silmukoita yhteydessä kyselyn. Onko kysymyksiä PHP? Mitä tahansa ennen kuin siirtyä puhua SQL ja hauskaa tietokannan? Hyvä olo? Hyvä olo. Selvä. Siirrytään takaisin PowerPoint, joka luultavasti kaipaamaan. SQL, jee. Ihmiset, jotka ovat omassa osassa tyypillisesti tietävät, että alanimikkeiden lyhenteitä ovat aina vain ensimmäiset sanat Ajattelen, että ottelu, joka algorithm-- että lyhenne. Se ei ole algoritmia. Joten SQL on tietokanta. Se on kieli, joka toimii tietokantoihin. Ja kaikki tietokannat ovat on pöydät, ainakin sillä tavalla, että SQL edustaa heitä. Toinen tapa ajatella tietokantojen tietokannat ovat joukko avaimia ja arvoja pohjimmiltaan. Voit ajatella tietokannan sanakirja ja myös taulukko. Pohjimmiltaan se on tapa yhdistää eri tietoja muiden tietojen, usein läpi rivejä ja sarakkeita. Ja sillä tavalla se SQL toimii parhaiten. Joten tämä on yksi esimerkki taulukossa. Minulla on muutamia esimerkkejä ihmisiä minun osassa, joka Minulla ei ollut aikaa muuttaa. Mutta meillä asioita, kuten ID, nimi, supervalta, ja kotikaupunki. En tiedä missä kenenkään mistä minun osassa, joten olen juuri menossa olettaa kaikki ovat New York Kaupungin koska minulla on korkea tilastollinen todennäköisyys olla oikea. SQL ottaa automaattisesti huolta ID sarakkeen sinulle. Jos lisätä uuden rivin osaksi SQL-tietokannan, se kasvattaa että Tunnus ja vain pohjimmiltaan kiinni kuten viisi nimeä, suurvalta, kotikaupunki, kuka kiinni loppuun kyseisen taulukon. Joten ID on sarake sinun ei koskaan tarvitse huolehtia. Mutta, kuten tapauksessa on login.php, kun oli saada istunnon tunnus taulukosta ja vain käyttämällä tunnus, ID on tapa yksilöivät osa tietokantaan. Joten jos meillä oli kaksi Sams, molemmat joka opetti CS50, ja molemmat jotka olivat Milwaukee, ne olisi vielä erilliset tunnukset ja siten erillisiä yhteydessä taulukon. Joten tämä on mitä SQL käsittelee kanssa, kanssa loppupäätä. Nyt nämä ovat neljä komentoa että sinun täytyy työskennellä SQL. Ja heitin ne kaikki ylös yksi levy. Mutta aiomme käydä läpi ne kaikki yksitellen. Ensimmäinen käsky on UPDATE, joka tekee mitä voisi odottaa. Sano sinulla on tietoja taulukko, joka on vanhentunut. Kuten jos olet pitää kirjaa ihmisten nimet ja ikä, jos joku on ikä kasvaa, sitten olet menossa halua mennä ja päivittää vain kyseisen henkilön ikä. On esimerkki, joka toimii meidän ensimmäinen table-- älä ole huolissasi kirjallisesti kaikki nämä komennot samaan aikaan. Mutta jos sinulla päivitys alas, joka tulee olemaan hyvä tähän osaan, koska aiomme palata pöytään. Joten jos menemme takaisin pöytään, Sanotaan, mitä tapahtui oli siellä oli maanjäristys tai rajalinjan, joka jakaa suoraan kautta New Yorkissa. Ja halusimme päivittää kaikille joka asui New Yorkissa. He kaikki täytyi muuttaa Pennsylvania. Se ei ole kotikaupunki. Ne kaikki piti siirtyä New Haven. Siellä mennään. Joten kaikki New Yorkissa siirtyy New Haven. Ja niin se on jotain, joka on muokkaamalla kolme riviä tässä taulukossa. Mutta SQL, voit tehdä että vain yksi lausunto. Joten palaamme päivittää. Saanen nopeasti tyhjentää aluksella uudelleen. Kun puhumme päivitys, on olemassa muutamia osia syntaksin ovat keskeisiä. No, kaikki syntaksin on avain. Mutta tavaraa vihreä on vapaaehtoista. Valkoinen tarvitaan, kuten ennalta nimiä. Ja vaaleansininen ovat asioita että vaihtelevat pöydällä. Niin, että mitä tapahtuu kanssa värimaailma täällä, siellä. Joten jos haluamme päivittää vain ne rivit ihmiset jotka asuvat New Yorkissa, joten mitä tekisimme, jos me sanoi UPDATE? Joten pöytä on, jos laitamme nimi meidän pöytä. Sanotaan vain nimi meidän pöytä on pöytä yksi. Joten haluamme päivittää taulukon yksi. Ja haluamme set-- mitä haluamme asettaa? No haluamme sanoa, niin column-- PHP kohtelee rivejä yksilölliset tunnisteet. Ja sitten sarakkeet ovat eri aloilla niistä tietokannan. Joten ensimmäinen osa tietokannan on nimi Sam, suurvalta CS50, ja kotikaupungissaan Milwaukee. Joten jos me mainittu joukko, katsokaamme parametrit uudelleen asetetusta vie. Meillä on sarake vastaa arvoa. Joten haluamme sanoa joitakin column-- joka muistaa on field-- haluamme kenttä vastaa jotain uutta. Joten jos me vain sanoi päivitys taulukko 1, joukon nimi yhtäläinen Elliot. Hanki joitakin ihmisiä uusi osio tästä. Mutta jos me vain teimme päivitys taulukko 1 joukon nimi yhtä suuri Elliot, mitä olisi taulukko näyttää sen jälkeen? Ihmiset mitään käsitystä? Joo. Yleisö: Kaikki että rivi tulisi Elliot. SPEAKER: Kaikki, jotka peräkkäin? Yleisö: ensimmäisellä rivillä. SPEAKER: ensimmäisen rivin? Miksi ensimmäisen rivin? En tarkoita kiusata sinua. Yleisö: Ehkä kaikki koko taulukossa? SPEAKER: Kaikki Koko pöytä, kyllä. Ja juuri oikea because-- I oli vain auttaa sinua ulos vähän there-- koska me pois valinnainen WHERE-lause. Jos sinulla ei ole WHERE lauseke, mitä tämä komento tekee on se täytyy harjoitella jokaisen yhden rivin taulukossa. Kaikkien NAME tullut Elliott, pohjimmiltaan, joka Elliot on erittäin iloinen. Tai Yanni, toinen. Mutta jokainen nimi muuttuu. Joten miten käytämme WHERE clause-- ja tämä koskee kaikkia Wheres jotka ovat kussakin nämä eri asioita. Joten huomaat, että SET on sarake samanarvoisia. Ja niin tekee missä. Mutta nämä ovat erilaiset tyyppisiä lausuntoja. Joten sarake vastaa arvo SET on tehtävä. Kuten sanomme haluamme asettaa nimi yhtä Elliot. Mutta WHERE lausekkeita, nämä ovat tasa lausuntoja. Joten sanokaamme me vain halusimme muuttaa henkilön nimeä Elliot jos heidän nimensä oli Ryan, sanokaamme. Joten kun sanomme MISSÄ nimi vastaa Ryan, että voisi menestyksellisesti ainoa muutos name-- se olisi vain muuttaa nimeä kenttä riveihin jossa nimi kenttä on yhtä suuri kuin Ryan. Joten jos meillä oli useita henkilöitä nimeltään Ryan, kaikkien niiden nimet muuttuisi Elliot. Tämä on samanlainen kuin esimerkissä Ifin murtoviivan halkaisee New Yorkissa ja kaikkien on muuttaa New Haven, miten voimme tehdä sen yhden lausunnon on UPDATE taulu1 SET kotikaupunki = New Haven jossa kotikaupungissa vastaa New Yorkissa. Tämä on voima UPDATE selvitys. Voimme valita mitkä tahansa rivien kautta paikkansapitäviä noin kentät näissä riveihin. Emme voi sanoa UPDATE Taulukko1 asettaa name = Elliot WHERE krs = 1, paitsi että voimme jos sanomme ID = 1. Joten aiomme olla työskentelevät tasa aloilla, tasa sarakkeita. Mutta käyttäen ID-kentän on tapa valita yksittäisiä rivejä erityisesti, koska ID kenttä on ainutlaatuinen tunnisteen SQL-tietokannan. Niin kuin päivittää rivi yksi, ID on 1. Päivittäminen rivi kaksi, vain muuttaa tämä tunnistenumero. Mutta voima MISSÄ toteamus on, että me voivat päivittää asiat sen perusteella, mitä niiden nykyiset arvot tiettyjä asioita ovat. Kyllä Elliot? Yleisö: Ja entä jos haluat to-- uudelleen, tämä on toinen kysymys. Mutta ensimmäinen kysymys oli, jos tämä tapahtuu? Missä minä olen päivittää tämän? Onko tämä PHP? SPEAKER: Missä olet päivittänyt, kyllä. Aiomme puhua siitä, missä kaikki tämä tapahtuu eräänlainen kerran menemme läpi kaikki komennot. Mutta mitä tarvitset tietää nyt on pohjimmiltaan että SQL-tietokannan olemassa jotain on käsiksi kyselyn -toiminto, joka CS50 määritellään. Joten jos käytät hakutoiminto, voit käyttää tässä taulukossa. Joten sinun tulee lähettää nämä komentoja taulukon PHP tiedostoja kautta hakutoiminto. Voit myös leikkiä kanssa pöytä suoraan. Ja se on paras tapa testata tämänkaltaisissa komentoja. Ja käymme läpi kuinka tehdä sen vain hieman. Niin, että UPDATE komento. Ja loput komentoja tulevat olemaan eräänlainen samanlaisia, työskentelee samanlaisia ​​asioita. INSERT INTO on luultavasti eniten poikkeavat UPDATE. Aion lähteä että sinne varten vain vähän ja työtä täällä. Joten INSERT INTO, näet että taulukko on edelleen sama. Haluat INSERT INTO. Arvo, SQL on tapaus tunteettomia. Joten sinun ei tarvitse hyödyntämään näitä asioita. Sovitun käytännön sanat valkoinen aktivoidaan. Mutta olen myös värikoodatut niitä. Ainoa syy, että olet hyödyntää ne kun kirjoitat niitä on vain korostaa että ne ovat vakioita. Ja niin voit joko katsoa arvo tai se, että olen värillinen niitä eri tavalla. Joten meillä INSERT INTO, Tehdään Taulukko1 uudelleen. Tämä on kaikki yhdellä rivillä. Olen vain erottamalla sen eri lausunnot. Joten älä huoli siitä, että taulu1 teki sen päälle toinen rivi. Joten haluamme lisätä INTO Taulukko1 joitakin arvoja. Ja huomaat valinnainen bittinen, jota saamme toisessa. Joten meillä ARVOT. Joten sanoa haluamme lisätä Andi meidän pöytään, koska kaipaamme Andi. Andi on sairas. Joten lisätä Andi meidän pöytään. Muista, että tunnus päivittyy automaattisesti. Joten ainoa kentät me tarvitse pelätä ovat nimi, supervalta, ja kotikaupunki. Ja niin että teemme sen, katsot meidän syntaksi, on olemme juuri suluissa, pilkulla erotetut arvot, joista kukin on arvo. Joten jos halusimme lisätä Andi meidän pöytä, meidän täytyy tehdä, on oikea Andi. Mikä Andi supervalta, ihmiset Andi n osa? Hän pidä lento, tai kuten nopeus, tai jotain. Mitä meillä on jo siellä? Meillä on CS50, lento, nopeus, ja vahvuus. Yleisö: Aikamatka. SPEAKER: Aikamatka, hämmästyttävä. Joten meillä Andi, aika matkailu, ja hänen kotikaupungissaan. Se on todella hyvä kysymys. New York City, ellei joku tietää. Kaikki ovat New York on oppitunti ottaa pois tänään. Joten Tässä lausunnossa lisätä, koska viidennen rivin, kanssa suurvalta aikamatka ja kotikaupungissaan New Yorkissa. Mutta Vapaaehtoinen kenttä on pohjimmiltaan tapa määrittää mitkä sarakkeet haluat lisätä asioita. Siten, että teemme sen nyt, Andi, aika matkustaa, New York City, on menossa tarkkaa järjestystä meidän table-- nimi, supervalta, kotikaupunki. Ja jos halusi tehdä jotain muuta kuin että, kuten sano et tiennyt jonkun suurvalta, kuten miten En tiennyt Andi suurvalta alussa. Joten kaikki tiesin oli hänen nimi ja hänen kotikaupungissaan. Mitä voisin tehdä on voisin do-- Minä tyhjentää nopeasti. Haluan vain päivittää sarakkeita. Ja tämä on valinnainen sarake lista tulee pelata. Haluan vain päivittää nimi ja kotipaikka. Ja sitten sanon ARVOT. Teen Andi ja New Yorkissa. Jos olisin pois sarakeluettelon ja juuri tehnyt nämä kaksi asiaa, jossa olisi New York City ovat menneet? Joka pylväs olisi New York Kaupunki on sijoitettu? Ihmiset mitään käsitystä? Suurvalta, tarkalleen. Joten tämä vain mennä järjestyksessä. Ja kun se saavuttaa loppuun lista, se täytyy vain lopettaa täyttämällä asioita. Ja arvoja, että se tulee tartu kaikki sarakkeet vain on NULL. Joten koska me määritetty nimi ja kotipaikka, aiomme olla tunnus 5, nimi Andi, suurvalta NULL. Joten supervalta on alustamattoman arvo. Et välttämättä saa Sama Valgrind virheitä, jos yrität ja käyttää sitä. Kaikki on hienosti nollataan ulos, koska NULL on arvo SQL. Että on vakio. Ja sitten kotikaupungissaan on New Yorkissa. Niin, että INSERT INTO-komento. Ennen kuin siirrymme, siellä kaksi komentoja. Ihmiset on kysyttävää PÄIVITYS, noin INSERT INTO, noin SQL yleensä ennen kuin siirrymme kiinni meidän lopullinen bittiä? Ihmiset tuntuu hyvältä, hyvä. Rakasta sitä. Joten puhua VALINTA. Going oja PÄIVITYS tänne. Ja valitse tulee olemaan hyvin samanlainen. Tavoitteena SELECT, Selectin tarkoitus elämässä on antaa sinulle kasan sarakkeet jotka täyttävät tietyt edellytykset. Ja kun sanon täyttävät tietyin edellytyksin, mielesi pitää heti palata tuohon WHERE esille tulleet UPDATE. Ja tämä lauseke on juuri siellä VALINTA. Jos emme laita WHERE lauseke ja sanomme SELECT nimi, hometown-- kirjoitettu, että vähän wrong-- nimi, kotipaikka FROM Taulukko1. Jos me vain sanoa, että mitä SELECT aikoo antaa meille on se aio antaa meille double-- pöytä, melko. Kaksinkertainen array jos olemme ajatellut PHP aistii. Mutta se on vain aio antaa meille kaksinkertainen joukko kaksi columns-- nimi, ja kotikaupunki. Ja se ohittaa tunnus. Ja se ohittaa suurvalta. Ja se täytyy vain antaa meille joka yksi rivi kyseisen taulukon. Joten jos vain asetettu Andi, meillä on Andi. Ja me on alkuperäinen neljä. Jos he ovat päivitetty, että tulee heijastua, jne, jne. Joten tämä on, koska me ei käytä WHERE. Mutta voimme käyttää sitä täsmälleen Samoin käytimme sitä UPDATE. Jos me vain haluamme taulukon nimet ja supervoimia elävien ihmisten New Yorkissa, voimme toteuttaa selvitys kuten SELECT nimi, superpower-- Olen juuri menossa lähteä that-- alkaen taulu1 WHERE kotikaupunki = New York City. Joten tämä osoittaa, että voit saada täysin eri sarakkeita, ja sitten laittaa sarakkeita että et ole jopa saada takaisin WHERE. Emme edes halua kotikaupungissaan kaikille. Mutta haluamme nimi ja suurvalta ihmisiä jonka kotikaupunki on New Yorkissa. Niin, että meidän voi tehdä WHERE lauseke on voimme käsitellä sarakkeet että emme välttämättä halua takaisin. Samalla tavalla UPDATE, voimme käsitellä pylväineen että emme välttämättä haluat päivittää. Voimme päivittää kaupungin kaikille jonka nimi on Sam, esimerkiksi. Voimme päivittää kaupunki Jokaisella, jonka tunnus on 2. Joten päivittää kaupunki toisen rivin jossa meillä ei ole käsitellä välttämätön yleinen kysymys. Ja poistaa on, kuin haluat odottaa, Poista taulu1. Ja sitten meillä toisen WHERE. Voimme siis sanoa jossa id = 1. Poistetaan ensimmäinen rivi. Ja poistaa aina poistaa rivin, tai se poistaa joitakin rivien. Poista taulukko WHERE kotikaupunki = New York City poistaa kaikki New Yorkissa. Se jos oli äkillinen traaginen rutto ja juuri halusi poistaa kaikki taulukosta, joka asui tiettyyn kaupunkiin että osui vitsaus. Voi he levätä rauhassa. Nämä ovat neljä SQL komennot että sinun täytyy käyttää. Et ehkä tarvitse edes käyttää niitä kaikkia. Mutta nämä ovat neljä että CS50 odottaa sinua olla mukava menossa sekä tietokilpailu 1 ja myös pset7 ja pset8. On vain että taulukko uudelleen. Tässä yksi, Royn supervalta on päivitetty lasersäteitä, joka on esimerkki en käytä. En tiedä kumpi Roy parempana, mutta voimaa. Roy on suurvalta vahvuus. Katherine ei tee sitä tänään. Se on valitettavaa. Mutta hän on super nopeus. No se oli PHP. Ennen kuin puhumme MVC, ei kellään kysyttävää PHP? Nyt SQL, tai PHP jos yhtäkkiä on keksiä kysymys PHP? Suuri. Hyvä on, me kaikki asettaa sitten. Joten puhuminen hieman noin malli näkymä ohjaimet, mennään takaisin joitakin ja tavaraa pset7. Joten mikä malli näkymä ohjain is-- En ole menossa säästää minun muutokset kirjautua koska olen täysin teurasti sen. Mutta pohjimmiltaan meillä on kaksi erillinen asioita tapahtuu. Meillä on julkinen hakemisto joka sisältää koodi, joka tulee suorittaa ja verkkosivut, jotka on vieraillut. Ja meillä on myös tämä näkymät hakemistoon. Ja näkymät sisältää malleja. Tämä on mitä toiminto render-- näimme tehdä toimivat joukko PHP että CS50 on jo kirjoittanut teille, joka vie tiettyjä parametreja. Mitä että koodi tekee on se menee näkemyksiä, jotka ovat sarjaa kuin prewritten HTML-koodi, ja se lisäämällä arvot tiettyihin paikkoihin. Näin, kun mennä CS50 Finance, sama otsikko on jokaisella sivulla. Sama footer on jokaisella sivulla. Tämä johtuu siitä, että tapa jotka tekevät töitä on se tulee automaattisesti laastari että otsikko ja katsoja jonka voit löytää näkymiä. Emme oikeastaan ​​voi mennä otsikko, ja katso, se on HTML-tiedoston pää. Se on jotain stylesheets. Sinun ei tarvitse katsoa CSS sillä pset7 jos et halua. Mutta voit muokata niitä, jos haluat, tehdä sinun Finance näyttää hieman erilaiselta. Se on jotain PHP otsikko hieman nähdä jos on eri nimi se pitäisi laittaa tässä otsikossa. Mutta vain joitakin skriptejä, ja linkkejä ja muita asioita. Pää päättyy, elimistö alkaa, ja hups, meillä on tämä outo pieni pää vähän. Ja siellä div, kuten muodoton eräänlainen elementin että on ajatus keskellä. Ja sitten kun näemme footer, meillä on lopussa div. Meillä on pohja, joka on jossa alatunnisteen teksti on. End of div, loppuun ruumiin, loppuun HTML. Joten mitä tehdä on tekemässä tehdä on eräänlainen on paikata otsikon, eri PHP-tiedosto, että sisältää todellisen asiat voit katsella, kuten pöydän varastojen jos olet ostaa tai myydä varastoja. Ja sitten se tulee lisätä alatunnisteessa. Ja malli näkymä ohjain ajatus on, että me haluat erottaa miten asiat näyttävät koodista. On haluamme erottaa käyttöliittymä ja backend, jossa käyttöliittymä on kamaa, että käyttäjä näkee, mukava visuals-- HTML, CSS, tuollaista, kuvia, jne. Ja backend on PHP. Tämä on koodi, että kirjoitat. Tässä on koodi, joka on tekee varsinaista toimintaa. Tämä on kun olet lisäämässä Varastossa pöytään, kun olet ostamassa ja myynti, se backend. Ja voimme, kuten näit, mukaan lukien PHP suoraan HTML. Joten mitä olisimme voineet tehdä varten tämä tehtävä on juuri ollut HTML-tiedoston jokaiselle sivulle, kuten kirjautuminen. Ja sitten sillä sivulla, vain oli valtava lohkon PHP, mukaan lukien kaikki koodi, joka että sivu nimenomaan olisi. Ja sitten voisimme olla tehnyt, että salkun. Olisimme voineet tehdä kaikki ostot ja myymällä sisällä yksittäisiä sivuja. Mutta koska me tekee erillään jossa me kirjallisesti backend koodi, voimme helposti muuttaa asiat näyttävät ilman muuttuvat joka ikinen tiedosto. Teemme asioita, kuten juuri lisää uusi div pohjaan of-- Hei muutettu alatunnisteen. Voit vain tehdä tavaraa niin. Mutta myös, voit muuttaa koko visuaalinen ulkoasu vaikuttamatta mitä menossa backend. Ja voit vaihtaa koko backend ja edelleen on se näyttää aivan kuten ennenkin. Tämä Onko ajatus mallin View Controller. Ja se on todella määrätty paradigma joissakin ohjelmointikieliä saatat haluta käyttää lopullista hankkeisiin. Jos et iOS kehitys, heillä on näkemyksiä, joka on mitä näet iPhone, ja sitten backend samankaltaisina erillinen asia. Voit ajatella vähän. Siellä on paljon binäärejä vuonna tietojenkäsittelytiede, joka on hauska, koska kaikki on binary. En aio että. Se oli sanaleikki tahatonta. Kyllä, pun ei ole tarkoitettu. Mutta kuten .h tiedostoja ja .c tiedostot, siellä paljon erottaa asioita, joita me ei ehkä tarvitse. Joten voimme vain muokata h tiedostoja, tai joku voi vain nähdä .h tiedosto ja tietää juuri ne toiminnot, jotka ovat .c tiedoston ilman välttämättä tietämättä niiden täytäntöönpanoa. Tämä ajatus komponenttien erottamiseksi jotka ovat riippuvaisia ​​toisistaan mutta voi tavallaan yhteydessä toisiinsa eri kanavien kautta, kulkee muuttujia, vain ovat lausunnot, asiat kuten että, tämä periaate auttaa luomaan sovelluksia että voidaan helpommin muokannut useita henkilöitä, voidaan helpommin muuttaa tai muutettu ison mittakaavan, ja niitä on helpompi debug paljon tapoja. Todella nopea, minulla on muutamia vinkkejä pset7, joka Teen koko näytön niin sinun ei vain katsomalla the-- Vihje Vihje Tippee. Ei ole kovin monia vinkkejä. Mutta mainitsin PHP on vaikea debug. Kahden ja kolmen hengen tarkista se. Jos koodi on vain ole näy sivulla, se on luultavasti PHP virheen, anteeksi. Sinun ei tarvitse katsoa CSS jos et halua. Mutta kun olet valmis, se voi olla mukava pieni hauska asia vain mennä ja sotkea CSS parametrit. CSS ja HTML ovat esimerkki mallin View Controller tyyli asia myös, eikö? Voisit olla tyylitunnisteet sisällä HTML-elementtejä. Mutta jos sellainen ulkoistaminen niitä CSS, ne on helpompi muokata, ja pelata ympäriinsä, ja pitää hauskaa. Treat CS50 auttaja toimii mustat laatikot. Sinun ei tarvitse tietää mitä renderöinti on tekemässä, mutta luottaa siihen aina tehdä oikea asia riippuen siitä, mitä ohitat sen, asioita, kuten tämä. Ja haluan suositella katsomassa Daavidin esittely, läpi kaikki kamaa, ei vain todos, mutta et todellakaan voi hoitaa nämä mustat laatikot. Älä mene näihin toiminnot etsivät vikoja. Ja tervetuloa paluu meidän Overlord Zamyla. Suuri. Onko lopullinen kysymyksiä ennen me tavallaan pomppia päivä? Olenko vielä elää? Suuri. Hei Livestream ihmiset. Suuri. Onko enää kysymyksiä? Ei? Ja sitten Luulen, että olemme hyvä mennä tänään. Minä kiinni noin vähän jälkeenpäin jos ihmiset oli kysymyksiä he pelkäsivät kysyä virta. Mutta muuten, on hyvä päivä.