[Powered by Google Translate] [Viikko 8, jatkuu]
[David J. Malan] [Harvardin yliopisto]
[Tämä on CS50.] [CS50.TV]
>> Tämä on CS50, joten tämä on loppuun Viikko 8 täältä.
Meillä tietysti oli hieman hurrikaanin aiemmin tällä viikolla,
joten nyt se on oikeastaan ​​vain sinä ja minä tässä salissa,
mutta tänään jatkamme keskustelua PHP
ja noin Web-ohjelmointi yleisesti ja otamme myös käyttöön ajatus
tietokantojen, erityisesti yksi nimeltään MySQL, joka on varsin suosittu näinä päivinä,
suurelta osin, koska sen skaalautuvuutta sekä koska sen on vapaan ja avoimen lähdekoodin.
>> Mutta ensin katsoa mihin jäimme viime kerralla.
Muistutan, että olimme katsot useita Frosh IMt esimerkkejä,
ja tämä oli vastenmielinen muoto, että olen päätynyt noin 15 + vuotta sitten
saadakseen opiskelijoita kampuksella rekisteri fuksi sisäiset urheilu
ei itse tarvitse vaeltaa enää poikki pihan Wigglesworth
liukumaan fyysistä paperille alla jotkut Proctor oven.
Sen sijaan muutimme kaiken verkossa, mutta tehdä, että meidän piti käyttää
Muutaman tekniikoita, joten yksi, tarvitsimme HTML, Hypertext Markup Language,
mikä taas on tämän kuvauskieli, jolla voit tehdä web-sivuja rakenteellisesti.
>> Käyttämällä hieman CSS näinä päivinä, css,
jolloin käytämme stylizations Web-sivun käyttämällä hieman erilaista syntaksia,
taas HTML oli kyse sen rakenne.
Meidän on myös otettava käyttöön Web-ohjelmointikielellä.
Tässä tapauksessa käytämme PHP ja PHP tulee antamaan meille
dynaamisesti tuotoksen sisältöä sekä tehdä ohjelmallinen asioita, kuten
lähettää sähköposteja, kuten oli laita huomautuksen lähdimme viime viikolla.
>> Muistuttaa, että koodi oli 2 osassa.
Yksi, meillä oli froshims3.php,
ja tämä oli pääosin markup kanssa HTML-muodossa sen sisällä,
pikkuisen CSS tänne tyyliattribuutteja
niin että lomake sinänsä olisi keskittynyt sivulla, mutta pidemmälle
meillä oli joitakin edustavia muodossa tuloa, tekstikenttä, valintaruutu,
Joissakin radio painikkeet, valitse valikko ja lähetä-painiketta.
Ja tällä lomakkeella, jätimme tiedosto oli ilmeisesti nimeltään register3.php,
joka itse näytti vähän jotain tällaista.
Nyt useimmat koodin register3.php, muistaa, oli kyse sähköpostilla.
Se teki hieman validoinnin muodossa toimitettiin varmista
että alat todella että odotettiin.
Sitten kutsui joitakin PHP toimintoja käyttämällä hieman uutta syntaksia,
vaikka se lainattu C.
>> Tämä nuoli operaattori sallii meidän käyttää jotain kutsutaan olio-ohjelmointi.
Emme aio mennä, että yksityiskohtaisesti täällä, mutta tiedämme nyt
se on tapa, jolla liittyviä toimintoja esineitä,
jotka ovat erityinen rakenne, kuten näimme C.
Mutta nyt, vain ottaa uskon, että tämä on oikea syntaksi käyttää
kun käytetään kirjastoa, kuten tämä phpmailer kirjasto.
Ja sitten loppuun tämän tiedoston olimme dynaamisesti sähköpostia
että pelaaja lähetti minun jharvard@cs50.net tili
minun jharvard@cs50.net tilin,
ja me ilmoitti käyttäjä vastaavasti, että ne oli rekisteröity tätä urheilua.
Se on melko paljon, mitä Frosh infrastruktuurin sivusto teki vuosia sitten
kun toteutetaan sitä, myönnetään eri kielellä,
mutta se näyttää ehkä voima, että olet
Nyt voit ilmaista itseäsi ei vain ohjelmallisesti
alhaisella tasolla kielellä, kuten C, mutta paljon korkeammalle tasolle
Näiden hyvin reaalimaailman sovelluksia, kuten sähköpostin todella ratkaista
joitakin reaalimaailman ongelmia.
>> Nyt tietenkin, vaikka käytän tätä script luoda joitakin
sähköpostit dynaamisesti jharvard@cs50.net, joka on todellakin tili
että minulla on pääsy, älä varsin varovainen lähettää
mail vain tilejä, jotka ovat todella oman,
ettei asiat saavat sinut hieman kuumaa vettä elämässä.
Tämän sanoi, katsotaanpa nyt siirtymistä ratkaisemaan toinen ongelma kokonaan,
että säilyttää toteaa.
Nyt, mitä tämä oikeastaan ​​tarkoittaa?
HTTP, tämä Hypertext Transfer Protocol,
on todella kansalaisuudeton protokollaa, ja mitä tämä tarkoittaa, että
kun vetää jotain Google.com ja sitten enteriä
yleensä selaimessasi on jonkinlainen kehruu kuvake sitten
tuloksia joissakin sivun latautui,
ja sitten se pieni kuvake pysähtyy spinning, ja että todellakin ehdottaa
että HTTP on suorittanut jonkinlaisen yhteyden palvelimeen ja se on siinä.
HTTP on tilaton siinä mielessä, että se ei yllä
jatkuva yhteys palvelimeen samalla tavalla Skype ei
tai Gchat tekee, koska HTTP
oletus on, että kun olet hakenut sivun siinäpä se.
>> Nyt, todellisuudessa näinä päivinä sivustot, kuten Facebook ja Google Maps
ja Twitter ja vastaavat siellä on paljon enemmän dynamiikkaa, jossa
senkin jälkeen kuvake pysähtyy kehruu voit itse saada lisää päivityksiä
palvelimelta, enemmän tweets, enemmän tilapäivitykset Facebookissa ja vastaavat.
Mutta sekin on käyttää tekniikkaa, me puhumme vuonna viikon tai kaksi
tunnetaan Ajax käyttäen kieltä nimeltä JavaScript.Lisää
mutta lopussa päivä, HTTP on edelleen kansalaisuudeton.
Ja vielä jos haluat jotenkin muistaa asioita käyttäjän
vaikka he ovat irti palvelimen
PHP ei varaa sinulle keino tämän
sillä, kuten näimme viime kerralla, PHP on useita Superglobaalit,
ja superglobal on jälleen erityisen globaali muuttuja
joka on antanut sinulle web-palvelimen ja PHP itse.
>> Sinun ei tarvitse tehdä mitään laittaa arvot siinä,
ja joukossa Superglobaalit olemme nähneet tähän mennessä on saada ja lähettää,
mikä on kun lomakekenttiä laitetaan automaattisesti puolestasi,
sekä pari muuta, jotka emme ole nähneet vielä.
Sisältä $ _SERVER joitakin erityisiä liittyviä muuttujia palvelimen itse.
Mikä IP-osoitteen, mitä protokollaa, HTTP tai HTTPS käytit,
Mitä pyynnöstä menetelmä käytit ja vastaavat, joten on mielenkiintoista,
mehukas tietoja palvelimen, ja itse asiassa, käyttäjälle myös siellä.
On $ _cookie, mikä on kun nämä asiat nimeltään evästeet tallennetaan.
Emme viettää aikaa evästeet itse tänään,
mutta tiedämme nyt, että eväste on vain pieni pala tietoa
että web-palvelin voi kasvi selaimella
ja puolestaan ​​sen RAM tai tietokoneen kiintolevylle
tallentaa tietoa käyttäjän, esimerkiksi niiden käyttäjätunnus
niin että he eivät tarvitse kirjoittaa sitä joka kerta he kirjaudu sisään tai joissakin
yksilöllinen numero tai tunniste, että käyttäjä
joten sinun ei tarvitse kiusata niitä samanlaisia ​​kysymyksiä
mieltymykset tulevaisuudessa, mutta useimmat kiinnostuksen
nyt on $ _SESSION.
>> Tämä superglobal, joka, kuten muut, luovutetaan sinulle automaattisesti PHP
Kun olet kirjoittamassa PHP-pohjaisia ​​web-sivustoja
voit tallentaa mitä haluat, jouset, kokonaislukuja,
kelluva pistettä, arvot, taulukot, esineet,
oikeastaan ​​mitään, että haluat, ja sen avulla voit tallentaa sen niin
että vaikka käyttäjä vierailee sinua nyt ja sitten
tulee takaisin hetken kuluttua tai 5 minuutin päässä nyt, koska
he ottavat aikaa ennen kuin klikkaat muu linkki
PHP varmistaa, että mitä laitat että istunto superglobal
minuutti tai 5 minuuttia sitten edelleen siellä kun käyttäjä palaa.
Ja alla huppu tämän superglobal toteutetaan tavalla
nuo asiat kutsuttuja evästeitä, mutta nyt se on vain abstraktio
jolloin se on tavallaan ohjelmallisen vastaavan ostoskorin.
Mitä ikinä, ohjelmoija, laita se
superglobal assosiatiivisia array on siellä joitakin useita minuutteja myöhemmin
kunnes poistat sen tai kunnes käyttäjä sulkee hänen selain kokonaan.
>> Katsotaanpa katsomaan esimerkki siitä, miten tämä asia on todella käytetään.
Vuonna counter.php joukossa Nykypäivän paloja koodi
meillä on seuraava rivi.
Alussa tämä tiedosto meillä joukko sininen huomautuksia, jotka mielenkiinnoton nyt.
Mutta linja 13 meillä on uusi linja,
session_start, ja että itse ei mitä se sanoo.
Se alkaa istuntoja.
Sen avulla voit käyttää, että iso superglobal $ _SESSION, ja se on niin yksinkertaista.
Nyt, jos me siirrymme katsomaan linja 16, yritetään selvittää, mitä tällä sivulla aikoo tehdä.
Jos (isset ($ _SESSION ["laskuri"]) sitten mennä eteenpäin
ja myymälä laskurin muuttujan, pieniä laskuri,
$ _SESSION ["Laskuri"].
Tämä näyttää julistaa paikallinen muuttuja nimeltä laskuri
jonka sisällä se asettaa kopion mitä on sisällä superglobal
kutsutaan istunnon paikka "laskuri".
Else, ilmeisesti, tämä pieni paikallinen muuttuja laskuri, alustetaan 0.
>> Mutta sitten muutama rivi myöhemmin 26 ilmoituksessa, että istunto on kopio laskuri,
sen avaimen, on uusi arvo sidota mikä on sen käypä arvo plus 1.
Lyhyesti sanottuna tämä tiedosto näyttää päivittäminen
laskuri, joka tallennetaan sisällä istunnon superglobal
inkrementoimalla se 1, mutta se ensin säilyttää kopion edellisestä arvosta
tallentamalla se paikallinen muuttuja nimeltä $ laskuri,
ja sitten tänne katsotaanpa mitä jää.
On käynyt ilmi, se on aika paljon vain HTML.
Alareunassa tämän sivun näemme linja 37, että olen käynyt tämän sivuston
laskuri useita kertoja, joten siellä pari mielenkiintoisia ominaisuuksia täällä.
Yksi, tämä on selvästi vaihteleva, mutta se ei riitä vain laittaa
$ Laskuri body HTML takia tietysti
jos se on vain siellä joukossa HTML PHP tulee olettaa, että vain HTML.
Voit kirjaimellisesti haluavat $ laskuri tulostetaan ruudulle.
>> Vaan pudottamalla osaksi PHP tilaan
Tämän pala syntaksin voimme dynaamisesti lisätä arvoa täällä
hyvin samankaltainen hengessä mitä teimme viime kerralla
lisäämällä arvot jousille.
Itse asiassa tämä on vain lyhennetty merkintätapa sanoa jotain tällaista kirjaimellisesti,
print ($ counter) tai edes jotain printf (% s, laskuri),
tai jopa, kuten ehkä nähneet verkossa tai oppikirjoissa,
siellä funktio PHP nimeltään kaiku
joka tekee saman asian, ja kaikki nämä ovat vain enää kelalla tapoja
sanoa <? =.
Tässä yhdessä tapauksessa sinun ei tarvitse laittaa
sana PHP jälkeen kysymysmerkin.
Tämä on lyhennetty merkintätapa, jälleen, mitä juuri näimme hetki sitten
joka kaikuu jotain arvoa.
>> Katsotaan, mitä lopputulos tämä oikeastaan ​​on.
Antakaa minun mennä yli meidän counter.php tiedostoon,
ja näemme, että David juuri tehnyt virheen leikkii koodin sinne.
Mennään korjata mitä hän mokasi,
ja virhe näyttää olevan siellä, poissa, linjalla 37.
Mukaan Tämän sivun alkuun olen käynyt tämän sivuston 0 kertaa.
No, mennään eteenpäin nyt, ja yläosassa selaimen klikkaa
lataa ikoni, ja osoitan lataa,
ja nyt olen vieraillut sivuilla 1 kerran, 2, 3, 4, 5, 6, 7, 8.
Ja todellakin, jos katsomme tämän sivun lähdekoodia varsinainen lähdekoodi on muuttumassa,
ja huomaa täydellinen puuttuminen PHP, ja se johtuu
PHP on arvioitu ja tulkittu palvelimen puolella,
ja niin se tarkoittaa, että lähtö PHP script on mitä lopulta lähetetty selaimelle,
joka tässä tapauksessa on joidenkin raaka HTML ja joidenkin raaka tekstiä.
Mitä täällä tapahtuu?
>> No, suhteellisen muutaman rivin koodia voin tallentaa
jatkuvasti aikana useita sekunteja, tai jos olemme odottaneet tarpeeksi kauan,
minuuttia, jopa muutaman tunnin, noin arvoon tavalla, joka tekee HTTP
näytä tilallinen ikään kuin olemme säilytetään
Tämän yhteyden palvelimeen, ja se on vain muistaa, mitä sanoin sen viimeisen kerran,
mutta todellisuudessa siellä koko joukko monimutkaisuus meneillään alla huppu
johon evästeet on mahdollistaa PHP antaa minulle tämän illuusion
Tämän ostoskorin kaltainen ominaisuus.
Nyt triviaali esimerkki, jossa me vain tallennetaan kokonaisluku,
mutta että ominaisuus tulee takaisin on erittäin arvokas
kun alamme puhua monimutkaisempia projekteja,
joukossa Harjoitus 7.
Tämä on viimeinen ongelma asettaa CS50.
Tiedän, se on niin surullista, mutta mitä löydät on, että me aiomme tehdä
tämä osa lukukauden mukaan tosiasiallisesti siirtymässä
alkaen osana C varmasti yhteydessä PHP
mutta kun käytät joitakin aivan sama perustekijät
olemme puhuneet jo jonkin aikaa.
>> Tavoitteena kanssa PSET 7 on toteuttaa CS50 Finance,
mikä on oma versio Yahoo Finance tai Google Finance
tai jopa Etrade.com jolloin sinulla on kyky
etsiä osakekursseja Annetun symboleja, mutta vielä enemmän
sinulla on mahdollisuus "ostaa" ja "myymään" varastoja
että käydään eri pörsseissä, koska sillä tällä kotisivulla
täällä ehdottaa, mikä on todella missä määrin olemme alkaneet
Harjoitus sinulle, olet kirjautunut lomake, joka kysyy käyttäjätunnusta ja salasanaa.
Se on submit nappia, mutta sen jälkeen, kun me lopulta nähdä,
ei ole mitään todella tapahtuu alla huppu vielä, koska se
jää sinua toteuttamaan mahdollisuus rekisteröidä uusia käyttäjiä,
kyky ostaa varastot, myydä varastoja,
todella etsiä tämänhetkisiä osakekursseja.
>> Ja todellakin, tämä on niin reaalimaailmassa kuin mahdollista, koska teimme
kuuluu vähän koodia, jonka avulla voit yhdellä toiminto
kyselyn Yahoo Finance, mikä ihanan asettaa saataville tietojen vapaa
ja etsii osakkeiden hintojen pohjalta varastosta symboli tai ticker symboli,
ja saat takaisin nykyinen osakekurssi päivän.
Tiedot näet tosiasiassa tässä nimenomaisessa PSET tulee
suunnilleen yhtä reaalimaailman kuin se voi saada niin, että olet todella vuorovaikutuksessa
reaalimaailman varastoja, reaalimaailman hinnat,
ja näemme, miten paljon rahaa voit tehdä kenties
seuraavan useita päiviä pelaa omalla ongelman asetettu.
>> Mutta katsotaanpa ensin vaiheessa miten suunnitella jotain, joka on varmasti monimutkaisempi
kuin counter.php, joka on monimutkaisempi kuin mitä tahansa Frosh infrastruktuurin esimerkkejä tähän mennessä
ja yritetään ottaa muutaman paradigmoja täällä, että voimme
sekä PSET 7 ja ehkä oman opinnäytetyön jos teet jotain web-pohjainen
pitää koodin hyvin järjestetty, pitää itse sane-
ja ottaa askeleen kohti yhteistyötä, olipa CS50 n opinnäytetyö
tai sen jälkeen, jos jatkat ohjelmoida jotain tulevaisuudessa.
On tämä yleinen malli paradigman
tietotekniikassa ja ohjelmistokehitykseen yleisemmin
tunnetaan MVC, model view controller,
ja tämä on typerä lyhenne, joka kuvaa erittäin mukava ajatus,
joka on erillään eri osa ohjelmaa,
erityisesti eriytettyä logiikkaa tai liiketoiminnan logiikkaa sivusto
joten jotain, johon asioita, kuten
soittamalla toiminnot ja kyselyitä tietokantoihin ja niiden kaltaiset
tapahdu keskuudessa HTML
vaan erillisinä tiedostoina, ja todellakin, siellä on tämä yksi tiedosto
tyypillisesti, että olet kutsuttu ohjain
että on todella aivot takana toimintaa, ja näemme esimerkin
Tämän vain hetken.
>> On malli, joka ohjelmoi koodia
joka ei puhu tietokantoja, jotka puhuu Yahoo Finance ja vastaavat,
ja sitten on V MVC, näkemyksiä,
kaikki jutut, joka liittyy estetiikkaa, tiedostot, jotka todella sisältävät
HTML, ehkä teidän CSS ja vastaavat.
Ajatuksena tässä, koska tämä kuva esittää, on, että ohjain
on tiedosto, niin me pian nähdä ja saat erityisen nähdä PSET 7,
että maailma puhuu kautta web-selaimissa.
Se on tiedosto, joka saa vieraili julkiseen internetiin,
mutta ohjain puhuu mahdollisesti malliin,
, joka on yksi tai useampi muita tiedostoja, jotka sisältävät koodia liittyvät tiedot,
koodi tietokantoihin liittyvät ja vastaavat, ja sitten se puhuu
ohjain yksi tai useampi muita tiedostoja kutsutaan views,
jotka ovat estetiikka sivun, malleja lajittelee,
, joka saattaa kestää joitakin tietoja tulona, ​​mutta loppujen lopuksi
ainoa logiikka sisällä näkymä olisi renderöinti tietojen,
iteroimalla yli silmukka ja todella sylkee joitakin
HTML-pohjainen esitys sen tai edes jotain PDF.
>> Mitä kivaa MVC on, että voit olla eri mieltä
perustuvat tyyppinen laite, joka perustuu tyypin tiedostomuoto todella
haluat näyttää käyttäjälle.
Katsotaanpa katsomaan muutamia asteittain monimutkaisempi ja hyvin suunniteltu esimerkkejä
aloittamalla ensin versioon 0 tänne.
Anna minun mennä eteenpäin ja avata meidän MVC hakemistossa tänään
tiedosto nimeltään index.php hakemistossa 0.
Huomaa että tämä on erittäin yksinkertainen ja erittäin underwhelming sivusto
se on tavallaan version 0 kotisivullaan CS50,
ja huomaa kuinka meillä linkin luennot, meillä on yhteys Lukusuunnitelma,
ja jos minä seurata linkkiä Luennot ilmoitus että URL
ylös tulee vaihtaa lectures.php.
Jos minä sitten seuraa linkkiä viikko 1 ilmoitus että URL muutokset week1.php.
Näyttää olevan melko yksinkertainen hierarkkisen tässä.
>> Otetaanpa vilkaista alla huppu, miten tämä on vahvistetut,
ja todellakin, jos katson index.php se on melko yksinkertainen.
Itse vaikka kutsuin tämän PHP tiedosto ei ole mitään todellista ohjelmakoodia.
On kommentin, että olen kirjoittanut täällä PHP vain niin käyttäjä ei lopulta nähdä se.
Tietenkin, kuten ennenkin, kaikki, mikä on välillä PHP tageja
saa tulkita, vaikka se kommentti ja tulkita kommentin
tarkoittaa vain heittää sen pois lopussa päivä ja ei oikeastaan
lähettää sen selaimen, joten kaikki täällä on vain estetiikkaa.
Jos minä avata samalla lectures.php tämäkin on vain kova koodattu tiedosto.
Se tapahtuu kutsua jotain. Php,
mutta se on todella vain. html, ja week1.php, week2.php
Samoin ovat vain markup, niin siellä nippu puutteista tämä malli.
Yksi, se on valtava määrä copy / paste.
Vaikka ainoa asia, joka muuttuu näistä tiedostoista on Järjestämätön lista,
li tunnisteet, olen kuitenkin doc tyyppi, HTML, pää,
otsikko, close body, close HTML ja enemmän
jokaisessa yksi tiedosto, mikä tarkoittaa sitä, että jos en koskaan halua uudistaa
Tämän sivun tai restylize sillä minun täytyy mennä ja muuttaa
kaikki nämä tiedostot manuaalisesti tai joidenkin massiivinen etsiä ja korvata.
>> Otetaanpa askel kohti älykkäämpiä, pidempi ajattelu malli versiossa 1 täältä
jolloin kohti luettu minulle, että olemme mukana niin, että voit pelata yhdessä
Näiden verkkaisemmin kotona huomaa, että meillä on täällä
yhteenveto tiedostojen version 1 tämän sivuston,
ja näyttää siltä, ​​että olen ottanut sen itselleni tekijä ulos
joitakin yhteisiä koodia, header.php ja footer.php.
No, katsotaanpa katsomaan mitä sisällä ensimmäiseen näistä.
Header.php näyttää tutulta,
mutta huomaa jos se saa katkaista?
Heti linja 19, niin se on kaikki, mitä oli yhteinen
tiedostoista index.php, lectures.php,
week1 ja week2.php edellisen esimerkin.
Mitä tein oli kopioida ja leikata kaiken, mikä oli yhteinen kaikille ne tiedostot,
laita se erilliseen otsikkotiedoston, ja vastaavasti vuonna footer.php
minä soveltaa samaa periaatetta, jonka ainoa mielenkiintoinen linjat
vuonna footer.php ovat nämä kaksi, sulje rungon ja sulje HTML.
>> Mutta mitä tämä tarkoittaa nyt, että uusi versio
tehty index.php huomaa kuinka paljon yksinkertaisempaa se voi saada.
Myönnettäköön, hieman arvoituksellisesti näköinen, hieman vähemmän intuitiivinen
noudattaa ylhäältä alas, mutta minun Jumalani, kaikki tämä irtisanominen on nyt poissa.
Vaadimme käyttämällä PHP funktio kirjaimellisesti kutsuttu edellyttävät ylös,
joka on hyvin mieleen, muistaa, C: n # include mekanismi.
Tarvitsemme header.php yläreunassa.
Tarvitsemme footer.php alareunassa, ja ainoa asia, joka on erilainen
tai erityisiä tästä tiedostosta on sisältöä, joka on tarkoitus olla ainutlaatuinen sen.
Jos minä sitten mennä vaikkapa lectures.php, sama periaate pätee.
Jälleen jotkut kommentit ylös, mutta sitten vaativat ylä, vaatia alatunniste,
ja välillä se on vain sisältöä, joka on todella muuttunut.
Ja jos me tutkineet viikoilla 1 ja 2 näkisimme
, että samaa periaatetta on sovellettu siellä.
No, emme ole aivan valmis siellä.
>> Katsotaanpa katsomaan versio 2, joka on samanlainen rakenne,
mutta huomaa nyt olen esitteli jotain muuta.
Yhdenmukaisesti 10 Olen esitteli helpers.php,
joka ilmeisesti sisältää auttaja-toimintoja.
Auttaja-funktio on yleensä suhteellisen lyhyt funktio
että kirjoitat auttaa sinua ulos eri paikoissa,
ja katsotaan mitä sisällä helpers.php.
Tässä tapauksessa se näyttää on 2 toimintoja.
Muistamme toinen päivä meidän kuutio esimerkiksi
Voit määrittää omia funktioita PHP, ja mitä olen tehnyt nyt olen
funktioita kutsutaan tehdä alatunniste ja tehdä header-
ensimmäinen, jossa otetaan parametri kutsutaan data,
jonka oletusarvo on tyhjä joukko, kuten on ehdotettu siellä,
ja voimme todellakin kirjoittaa tämän vielä ytimekkäästi uusin versio PHP
sanomalla auki hakasulku, suljettu hakasulje.
Tämä tarkoittaa, että tyhjä joukko koko 0 mutta kuitenkin joukko.
>> Tämä uute toiminto on hieman erikoinen, että
Mitä se on se ottaa sen väitteen assosiatiivisia array
että on 0 tai useampi avain arvo-pareja, ja jos sinulla on avain foo
ja arvo baarin uutteen toiminto
luo tilanteen, jotka nyt linjan 11,
sinulla on paikallinen muuttuja nimeltä $ foo, jonka arvo on baari.
Ja jos sinulla on ollut enemmän avaimia ja arvoja tietomatriisin,
Samoin he uuttaa paikallisen laajuuden
tai nimiavaruuden jotta footer.php ja
Sama ajatus täällä, jotta header.php
saada nämä muuttujat.
Itse haluan avata uudelleen header.php
ja kiinnittää huomiota nyt, miltä se näyttää tässä versiossa.
>> Sen sijaan kova koodaus CS50 kuten otsikko jokaisen sivun
huomaa dynaamisuutta, on mahdollista nyt.
Rivillä 5 Olen kaikuvat otsikko muuttuja,
mutta ensin olen ohimennen, että otsikko muuttujan funktion nimeltä htmlspecialchars.
Tyhmä nimi toimintoa, kunhan se on, mutta se todella tekee mitä se sanoo.
Se varmistaa, että kaikki erikoismerkit
on merkkijono, joka on kulkenut vuonna asianmukaisesti pakeni HTML.
Tämä on oikeastaan ​​tapa välttää jotain kutsutaan cross site scripting hyökkäyksen
jolloin joku voi ilkeästi tai vahingossa
pistää omia HTML sivustoosi
liittämällä osaksi jossain muodossa, esimerkiksi
jotain, mitä ei aivan odottanut, varsinkin JavaScript-koodia,
koska me puhumme vuonna viikon tai kahden kuluttua.
>> Tämä nyt header.php, se on näkymä
siinä mielessä, että sen avulla voit katsella esteettisesti sisältö joidenkin tietojen joukko.
Mutta tarkemmin, se on malli.
Tämä on eräänlainen suunnitelma nyt, mitä me haluamme jokaisen sivun yläpalkista näyttää,
mutta siellä on joitakin dynaamisuutta että haluamme nimikkeen dynaamisesti lisättävä
perustuvat otsikko muuttuja
että uutettiin kun soitimme, taas
render otsikon toiminto.
Nyt, jos me katsoimme render footer, siellä oikeastaan ​​ole paljon käyttöä, että juuri nyt
koska footer.php ole mitään dynamiikkaa mitään.
Siellä voisi olla, mutta tällä hetkellä se on kova koodattu luettelo 2 tunnisteita,
mutta sama ajatus pätee, joten oikeastaan ​​viittaa miksi
ei tuhlaamme aikaa ottaa render otsikko ja renderöinti alatunnisteen funktio?
Anna minun mennä vaan nyt tulee versio 3,
ja versio 3 auttajia päätin yksinkertaistaa sitä entisestään.
>> Saanen olla yksi render toimintoa.
Anna minulle se ottaa toisen väitteen, tällä kertaa nimeltään mallin,
joka on tarkoitus olla nimi mallin,
ja sitten minä liität ylimielisesti. php kyseisen muuttujan arvon,
ja sitten, jos se on olemassa foo.php, bar.php tai header.php ja footer.php,
Sitten aion mennä eteenpäin ja poimia muuttuvat tiedot
ja sitten vaatia, että polku.
Toisin sanoen, käyttää tätä nyt, jos en avaa index.php
huomaa, että en soita render otsikkoa enää.
Minä vain soittaa render, mutta välitän vuonna noteerattu arvo header
tehdä selväksi mikä malli Olen itse haluat ladata.
>> Sitten tänne huomaa, mitä olen tekemässä.
Olen ohimennen dynaamisesti avain otsikko,
arvo CS50, ja tämäkin, kuten näimme aikaisemmin,
voitaisiin tehdä pelkistettyjä uusin versio PHP
missä voin vaihtaa array funktio hakasulkeilla,
joka Ehdotan vieläkin luettavissa ja varmasti
hieman helpompi kirjoittaa.
Ja tietenkin, kanssa render alatunniste puhelun alareunassa,
emme välitä ohimennen Toisen väitteen ollenkaan, ei assosiatiivisia array,
koska ei ole mitään dynaamista sisällä että alatunnisteen.
Se on vain muutamia lähellä tageja HTML.
Hyvä, viemme askeleet todella puhdistaa asioita täällä,
mutta haluan avata 2 lopullinen esimerkkejä.
Tämä yksi, numero 4, huomaa, että olen tehnyt tietoisen päätöksen nyt
parannella edellisen esimerkin viimein käyttäen joitakin hierarkiaa minun tiedostoja.
>> Huomaa, että tässä yhteenvedossa, tässä lukea minua, olen otettu käyttöön
sisältää hakemiston ja malleja hakemisto
jonka sisältö tulee olemaan asioita, joita en halua sisällyttää
ja malleja, jotka haluan tehdä, vastaavasti.
Tämä on todella minulle on peräaukon ja yrittää pitää asiat siistinä,
pitää liittyviä tiedostoja yhteen, mutta lopputulos
on, että meillä on nyt hieman siistimpi setup, mutta meidän on muistettava nyt
in, esimerkiksi index.php
kun vaadimme tiedosto helpers.php
meidän on nyt vaatia sitä kautta myös / helpers.php
sijaan vain sanomalla helpers.php koska nyt se on oikeastaan ​​osa hakemistoon.
Nyt, sivuun, näet näissä esimerkeissä ja toiset
toimintoja, kuten edellyttävät, vaativat kerran.
On oikeastaan ​​funktio itse kehotti kuuluvat, ja niillä kaikilla on hieman erilainen käyttäytyminen.
Täällä Sanon edellyttävät kerran tehdä super selväksi, että haluan vain ne
auttajia mukaan projektiini kerran.
Mutta jos olen varovainen, ja jos olen itse ajatellut läpi minun logiikka oikein
Sen pitäisi riittää myös vain sanoa vaatia ylös
niin kauan kuin minä ei vahingossa edellytä, että samaan tiedostoon muualla.
Itse asiassa tämä on hieman tehokkaampi tapa tehdä asioita sitten käyttämällä
edellyttävät kerran, niin minä leikata se alas vain vaatia.
>> Otetaan yksi askel eteenpäin.
Tämä viimeinen esimerkki nyt versiossa 5, on jopa puhtaampaa kansiohierarkiassa.
Huomaa mitä olen tehnyt tässä kohden lukea minua tässä lopullisessa versiossa
Nyt minulla on HTML-hakemiston, joka minulla on ollut koko tämän ajan,
mutta sisällä on nyt vain index.php, lectures.php,
week1.php ja week2.php.
Sisältää hakemiston asuu rinnalla HTML hakemiston,
joten samalla tasolla kuin sisarus, niin sanoakseni.
Joten ei kansioon.
Avain takeaway tässä olen esitteli hieman enemmän rakennetta,
mutta keskeinen piirre on nyt, että vain tiedostot
että on oltava Webissä julkisesti osoitteellinen
by URL julkiseen internetiin on minun HTML hakemistoon.
>> Samaan aikaan, muita tiedostoja, helpers.php, footer.php,
header.php, jotka ovat todennäköisesti ehkä herkempiä,
Ehkä auttajia todella on joitakin käyttäjänimiä ja salasanoja tai jonkin henkisen
omaisuutta kaivoksen, toimii en todellakaan halua maailman näkevän, vaikka vahingossa.
On hyvä pitää poissa yleisön HTML hakemistossa
tiedostoja, jotka eivät tarvitse itse olla julkisia.
Kaikki mitä sinun tarvitsee tehdä tässä tapauksessa, kun tarkastellaan esimerkiksi
HTML hakemiston index.php tiedosto,
huomaa meidän täytyy vain olla hieman varovainen, kun vaaditaan
tai vaatia kerran tätä tiedostoa.
Minun täytyy ensin tehdä .. Siirry emohakemisto,
sitten tehdä / includes / helpers.php
sukeltaa takaisin alas saada tiedosto välitän.
>> Kaikki kysymykset sitten MVC
tai tämä suhteellisen yksinkertainen inkarnaatio sen?
Ja haluan tehdä selväksi, että olemme keskittyneet melko vähän
V täällä, näkemyksiä ja factoring pois näistä malleja.
Olemme oikeastaan ​​erottaa M C vielä.
Itse asiassa ei todellakaan ole M täällä, ja jopa C,
ohjain, ei oikeastaan ​​tee kovinkaan paljon, mutta saat paljon enemmän
tuntee molemmat näistä 2 kirjeitä MVC,
tai pikemminkin, saat paljon tutumpi C
in MVC ongelmakäyttäjien joukko 7, joten siellä on enemmän sitä horisontissa.
Kysymyksiä?
Ei oikeastaan ​​ole ketään.
>> Okei, nyt siirrymme toiseen ja viimeinen aihe tänään.
Se on käyttöönottoa tietokantaan.
Tähän saakka meillä on ollut muutamia tapoja tallentamista varten.
Olemme käytetyt muuttujat.
Takaisin meidän C tiedoston, I / O-keskustelu aloimme käyttää tekstitiedostoja
ja käyttää tiedostoja, kuten fprintf, ja sitten me edes aloitettu
puhuu CSV-tiedostoja hieman, pilkulla erotetut arvot,
niin kaikki nämä pystyimme saada tiedot tallennetaan
joko ei-pysyvästi tai jatkuvasti.
Mutta vaikka CSVs eivät todellakaan edistä hakemisen
ja lisäämällä ja poistamalla.
Se on oikeastaan ​​vain tyhmä tekstitiedosto pilkuilla eroteltuina
rivi rivi rivi riviltä, ​​joten jos haluat
etsi tiedosto parasta mitä voi tehdä on todella lineaarinen haku.
Sinun täytyy aloittaa yläosassa tiedoston, lue koko juttu,
ja etsiä joitakin arvon kiinnostusta.
Jos haluat lisätä siihen sinun täytyy tehdä sama asia,
iteroimalla sen yli ja lisäämällä tietyssä paikassa,
ja itse asiassa, sinun täytyy tehdä kaikki etsivät logiikan itse.
>> Et voi tehdä viisas kaavoja on CSV-tiedosto, ellet itse kirjoittaa koodia.
Et voi tehdä suodatuksen CSV-tiedoston
ellet itse kirjoittaa koodia.
Eikö olisi mukavaa, jos joku muu laittaa kaikki vaivaa
todella tehdä hakuja helppoa ja lisäys helppoa
ja poistaminen ja päivittäminen ja niin edelleen?
Juuri tietokanta.
SQL Structured Query Language, on vielä toinen kieli
että otamme käyttöön tänään, mutta tämäkin on melko helposti,
ja mitä me oikeastaan ​​teemme on vain vetäistä irti joitakin oleellisimmista
ominaisuudet niin, että PSET 7, ja jos teet jotain web-pohjainen,
oma opinnäytetyö, sinulla on kyky ilmaista itseäsi
tiedonsiirron kyselyitä.
Sinulla on kyky tallentaa vähän tai paljon tietoa
paljon jäsennellymmin, joka loppujen lopuksi
helpottaa elämääsi, koska SQL voit ilmaista itseäsi
paljon tarkemmin, paljon enemmän suunnitelmallisesti, jotta
saada takaisin joitakin osajoukko tietoja suuremman corpus tietoja.
>> Voit ajatella tietokannan, tässä tapauksessa, SQL-tietokanta, todella Excel
tai numeroita sellaiselta se laskentataulukko,
tai ehkä useita laskentataulukoita ja taulukkolaskenta, tietenkin,
on rivejä ja sarakkeita, ja se johtuu
SQL tietokannat ovat relaatio, relaatio siinä mielessä
että ne tallentavat tietoja kannalta näistä taulukoista,
rivejä ja sarakkeita.
Ne ovat korkeammat tehokas kuin jotain taulukkolaskenta,
ja laskentataulukon on tarkoitus käyttää ihmisen.
Tietokanta on tarkoitus käyttää ohjelmoija
kirjoittaa koodia vastaan, joten inkarnaatio tietokannan
tulee olemaan joko komentorivin.
>> Yksi suosituimmista relaatiotietokantojen siellä on, jälleen, MySQL,
joka on ihanan ilmainen, erittäin suorituskykyisiä, ja tämä on mitä
Facebook käytetty hyvin varhain, ja jossain määrin vielä tänään
tallentaa paljon sen tiedon ja näemme hetken
että käyttämällä suhteellisen yksinkertaisia ​​komentoja
Voimme valita tietoja, lisätä tietoja, päivittää tietoja,
poistaa tiedot ja vastaavat, mutta onneksi siellä on enemmän käyttäjäystävällinen käyttöliittymä
kuin kirjoittamalla klo mustavalkoinen nopea täällä.
Käytämme varten PSET 7 ja sen jälkeen ilmainen työkalu nimeltään phpMyAdmin.
Nimi on sattumaa.
Työkalu sattuu toteutetaan PHP-
mutta se on pohjimmiltaan merkityksetön.
Mitä hyötyä siitä phpMyAdmin on se, että web-pohjainen apuohjelma.
Olemme esiasennettu se laite sinulle,
ja se voi luoda taulukoita tietokantaan,
Voit lisätä tietoja, poistaa tietoja, ja yleensä katso
tietosi melko käyttäjäystävällinen ympäristö.
Käyttäjät eivät aio käyttää phpMyAdmin.
>> Tämä on oikeastaan ​​vain hallinnollinen tai kehittäjän työkalu
joiden nähdä ja penkoa tietoja ja selvittää, miten jäsentää sitä,
paljon kuin sinä itse voi käyttää Excel tai numerot,
mutta se tulee olemaan hyvä tapa visualisoida mitä tapahtuu alla huppu
jotta voit keskittyä mielenkiintoinen ongelmanratkaisuun, eikä niinkään
on mystistä komentoja.
Katsotaanpa katsomaan esimerkki tietojen saatetaan tallentaa tabularly
in relaatiotietokantaan.
Tässä yksi esimerkki.
Nyt valitettavasti phpMyAdmin virheellisesti puolella heittää aivan liian monta sanaa
ja grafiikkaa sinulle, mutta jos hioa juuri
ID-sarake, käyttäjän nimi pylvääseen ja hash sarakkeessa
Tämä on tehokas taulukkolaskenta, mutta se sattuu olemaan pätkä
taulukon laitteen sisäpuolella
käyttämällä tiedosto voimme tarjota sinulle ongelmien joukko 7.
>> Erityisesti annamme sinulle tiedoston, joka edustaa
käyttäjän pöytä, joten laskentataulukko sisältää käyttäjien kanssa 3 saraketta,
joista yksi on yksilöllinen tunnus, alkaen 1 ja sitä kasvatetaan sen jälkeen.
Toisessa sarakkeessa on käyttäjätunnus, ja ne teistä, jotka tekivät Hacker,
Hacker painos PSET 2, ehkä tunnista joitakin näistä käyttäjätunnuksia ainakin.
Oikealla puolella ovat salasanoja, mutta he eivät kirjaimellisesti salasanoja.
He hash sen, niin se kääntyy pois
että varastointi salasanoja tietokannassa on todella huono idea.
Olette kaikki lukeneet jossain vaiheessa joitakin verkkosivuilla
tai jonkin yhtiön tietokantaan on vaarantunut, ja sitten on
vaihtaa salasanan, sinun täytyy saada palautuksia asiat
koska jotkut pahis todella murtautui tilisi seurauksena.
>> Tallentaminen salasanoja tekstimuodossa, salaamattomana tietokantaan
on täysin typerä, ja silti se on suuresti huvittavaa
sitten lukea joitakin hyvin tunnettuja yrityksiä
joskus lehdissä, joiden tietokannat ovat vaarassa,
ja että osa ei ole hauskaa, mutta se, että tietokannat sisältävät salaamaton
salasanat on naurettavaa, koska kirjaimellisesti yhdellä rivillä koodia
voit suojautua kyseisen uhan, ja sitähän me olemme tehneet täällä.
Jopa meidän fake pikku CS50 Rahoitus versio
olemme salaa salasanat vain hyvä toimenpide, ja se, että
kaikki nämä salasanat alkavat $ 1 $ on vain yleissopimus.
Se vain tarkoittaa, että ne ovat salattuja tai oikeastaan ​​hajauttamat,
joka on kuin yksisuuntainen salaus-toiminto
jolloin et pysty peruuttamaan sen vaikutuksia jotain kutsutaan MD5.
>> Se, että 50 on sen jälkeen se tarkoittaa, että suola-arvo
50 käytettiin hajautusta kaikki nämä salasanat yhtä lukuun ottamatta.
Mine, tietenkin, kuten voitte nähdä siellä, HA,
käytti erilaista suolaa, joten ne teistä, jotka todella hieman lauennut ylös
ehkä Hacker 2, joka olisi ollut seurausta meidän on käyttänyt
eri hash kuin muut, koska salasana on todella sama
kuten jotkut muut käyttäjän sinne.
Itse asiassa, jos olet odottanut kaikki nämä viikkoina selvittää
mitä nämä salasanat olivat täällä olivat salasanoja kyseenalaistettiin
crack in Hacker painos Harjoitus 2, joten yhtään liian hankalaa.
Itse asiassa, Malan n oli sama kuin jharvard,
mutta jos palaamme he näyttivät erilaisilta.
>> Keskity jharvard Crimson koska ne suolataan eri.
Algoritmi on häirityn siten, että
hash-arvo, salattu arvo näyttää hieman erilaiselta
koska tulot olivat hieman erilaisia, mutta salasana alla huppu
oli vielä lopulta karmiininpunainen.
Nyt, kuka välittää tästä?
No, me tarjoamme sinulle näytteen käyttäjien näyte käyttäjätunnukset
ja hash niiden salasanoja niin että sinulla todellakin on jokin
asiakkaiden CS50 Finance kun ensin vauhtiin koodin kanssa.
Sinun täytyy toteuttaa enemmän taulukoita sisällä MySQL, sisällä tietokannasta.
Sinun täytyy luoda taulukoita, tehokkaammin, mutta päätimme antaa teille tämän yhden
joilla pääset alkuun, ja näet, että ongelma asetettu spesifikaatio
opastaa prosessin tuoda tämän taulukon
ja myös selittää, mitä jotkut ominaisuudet ovat,
ja voit myös nähdä, että voimme tarjota sinulle koodin
käsitellä hajautus tai salaus näitä salasanoja
joten sinun ei tarvitse huolehtia liikaa siitä, mitä MD5 tai kuten on oikeastaan ​​kyse.
>> Joten, SQL, Structured Query Language.
Tämä on yksinkertaisesti kieli aiomme alkaa käyttää vuonna PSET 7
ja ehkä pidemmälle pyytää tietoja jonkin tietokannasta.
Tiedot, jälleen, varastoida tabularly näissä relaatio taulukoita, sarakkeita ja rivejä,
mutta käyttäen joitakin suhteellisen yksinkertainen syntaksi kuten poistaa,
lisätä, päivittää ja valitse voimme tehdä juuri näin.
Voimme poistaa tietokannasta, lisätä,
päivittää tietoja, sekä valita, että on, hakea tietoja tietokannasta.
Miten edetä tässä?
Anna minun mennä eteenpäin laitteeseen.
Saanen vetää http://localhost,
joka taas on paikallinen laite itse.
Tuo sen oletuslempinimesi.
Ja anna minun mennä / phpmyadmin.
Tämä sattuu olemaan erityinen URL että laite on valmiiksi ymmärtää
että heti kysyy minulta käyttäjätunnusta ja salasanaa.
>> Kuten tavallista, aion kirjoittaa jharvard ja karmiininpunainen,
mutta ymmärtää, että on järjestelmänvalvojan tili tietokoneessa.
Se on vain sattumaa, että siellä on myös jharvard rekisteröity CS50 Finance.
Jharvard, crimson, enter antaa minulle käyttöliittymän näimme
Hangon hetki sitten, ja se on hieman ylivoimainen aluksi,
mutta varma, et koskaan tarvitse napsauttaa useimpien linkkien tätä työkalua.
Sinun päätyä käyttämään pienessä jotka ovat super hyödyllisenä
ensimmäinen on tietokantojen täällä.
Jos menen ylös tietokantoihin, huomaa että olen pyydetään luomaan tietokantaan.
Tämä on kuin luoda uusi Excel-tiedosto, tehokkaasti.
Aion mennä eteenpäin ja soittaa tämän luennon, ja olen juuri menossa sivuuttaa kenttään siellä lajittelu.
Se liittyy tietojen esittämisessä siihen,
ja aion valitse luoda, ja nyt huomaa kuin minä päästää luovat
vasemmalla puolella, jossa se sanoo ei tietokannat
Minun pitäisi pian nähdä luento tietokantaan.
>> Jos minä nyt napsauttamalla vasemmalla puolella, luento-tietokanta,
Huomatkaa välilehdet muuttua hieman.
Minulla rakenne, SQL, vienti, tuonti ja joitakin muita asioita.
Rakenne on melko tyhjä.
Ei taulukot löytyy tietokannasta, koska tässä sanotaan,
joten katsotaanpa luodaan taulukko, ja mennään eteenpäin ja luoda taulukon
kuten opiskelijat, ja kuinka monta saraketta haluamme?
Pidetään tämä yksinkertainen, ja katsotaanpa ennätys jokaiselle opiskelijalle
ID-numero, nimi ja sähköpostiosoite.
>> Pidämme asiat yksinkertaisina kaltainen, joten 3 palstaa, mene.
Lomake näet täällä on nyt hieman sekava ja ylivoimainen,
mutta meidän täytyy vain mennä läpi rivi riviltä, ​​joten todella nopeasti Annetaan
ensimmäinen sarake tämän tietokannan nimen ID: n yksilöllinen tunniste.
Se on kokonaisluku. Voin oikeastaan ​​sivuuttaa pituus ja arvoja.
INT tulee olemaan 32 bittiä mitä kirjoitat sinne, joten katsotaanpa jätä se tyhjäksi.
Oletusarvo, voisin tehdä null, määritelty.
Aion jättää se rauhaan. Älkäämme murehtia oletusarvot.
Mennään siirry tänne oikealle, määritteet.
Tämä on mielenkiintoista.
Mennään eteenpäin ja hieman mielivaltaisesti sanoa, että tunnusten on oltava unsigned.
Älkäämme tuhlaa negatiivisia lukuja.
>> Mennään 0-4000000000, antaa tai ottaa,
ja sitten mennään koske mitään näistä kentistä vain vielä siellä,
mutta sitten haluan kirjoittaa nimi tänne,
ja sitten toinen oli sähköpostin, joten saalis on sähköpostiosoite
ja nimi, ilmeisesti ole kokonaislukuja, joten katsotaanpa muuttaa toiseen kenttään.
On käynyt ilmi varchar, pituus vaihteleva char,
on kuin merkkijonon SQL-tietokannan
mutta vaihteleva pituus, ja sinun todella täytyy kertoa se etukäteen
Pisin jono, joten aion hieman mielivaltaisesti
Sovitun tyypin 255 merkkiä.
Voisin aivan sanoa 32. Voisin sanoa 1000.
Olet tavallaan tarpeesta päättää itse perustuu omaan väestötiedot mikä on
pisin opiskelijan nimi ja mennä siihen tai hieman suurempi,
mutta mitä mukavaa noin varchar se ei aio tuhlata
255 tavua jokaisen opiskelijan nimen.
Jos se on DAVID se aio käyttää koko 255 tavua,
mutta se yläraja, joten minä menen 255 vain yleissopimuksen,
mutta voisimme keskustella siitä olla joidenkin alempaan arvoon, ja sähköpostiosoite
vain olla johdonmukaisia ​​255, mutta jälleen, voisimme olla samaa keskustelua.
Mutta aion tehdä yhden asian tänne oikealla puolella.
>> Mitä voimakas noin tietokanta on, että se voi tehdä paljon raskainta
tai monimutkaista työtä sinulle.
Erityisesti en todellakaan välitä mitä minun opiskelijan tunnukset ovat.
Se on vain tarkoitus olla yksilöllinen tunniste tietokantaan
joten minulla on 32-bittinen lyhyt esitys, että opiskelija
niin että olen jotenkin yksilöi niistä
ettei vain 2 Davids, esimerkiksi luokassa.
Itse aion tarkistaa tämän AI ruutuun, automaattinen lisäys,
niin että tietokanta, MySQL, keksii
mitä jokainen viety uusi opiskelijan tunnus tulee olemaan.
En edes tarvitse välitä että minun koodi,
ja olen myös menossa valita jotain alle hakemistovalikon.
Indeksi avattavasta täällä on ensisijainen, ainutlaatuinen,
indeksi ja koko tekstin.
Voit ehkä arvata mitä pari nämä asiat ovat,
mutta se osoittautuu relaatiotietokantojen
sinä ohjelmoija tai tietokannan ylläpitäjä saada ennaltaehkäisevästi
antaa vihjeitä tietokantaan, mitä kenttiä
taulukossa on hieman erikoinen.
>> Esimerkiksi tässä tapauksessa aion sanoa, että ID
tulee olemaan ensisijainen indeksi, joka tunnetaan myös perusavain.
Mitä tämä tarkoittaa määritelmä on, että ID vastedes
tulee tunnistaa oppilaat tässä taulukossa.
Ei opiskelija on sama ID koska olen määräämästä tämän rajoitteen tai tämän indeksin.
Lisäksi, mitä tämä aikoo tehdä minulle se aikoo kertoa
MySQL että tunnus on erityinen.
Välitän erityisen noin tunnus, niin mene eteenpäin ja tehdä your fancy tietorakenne taika,
rakentaa jonkinlainen puu.
Tyypillisesti se on jotain kutsutaan B-puu, jota ei tarkastella viikkoa sitten
mutta se on toinen sellainen tietorakenne hengeltään samanlaisia ​​binääripuita
ja yrittää että me katsoimme, mutta se tulee sanoa
Tietokannan tällä alalla on niin tärkeää, että olen luultavasti
haluavat pystyä etsimään sitä, mennä eteenpäin ja rakentaa joitakin fancy
tietorakenne muistissa nopeuttaa hakuja, niin että ihannetapauksessa
he vakioajan tai ainakin niin lähellä, että mahdollisimman
niin, että se ei hajauttaa osaksi lineaarista hakua, joka ei tule olemaan
Korkeimman suorittaa lähestymistapaa.
Sitä vastoin, sähköpostiosoite voinut olla perusavain.
>> Teoriassa jokainen sähköpostiosoite on ainutlaatuinen, ellei jaat osittain huomioon,
mutta se ei yleensä ole hyvä käyttää jotain merkkijono
kuten perusavain koska jos sen tarkoituksena elämässä on tunnistaa
rivit voit taulukossa ei ole mitään syytä käyttää 255 tavua maksimaalisesti
yksilöimään joku jos voit saada pois vain 4 tavua
tai 32-bittinen int.
Yleensä perusavain tulisi olla lyhyt ja ytimekäs
ja mieluiten jotain kokonaisluku tai iso int, joka sattuu olemaan 64 bittiä.
Mutta sähköpostiosoitteen tulee olla ainutlaatuinen, ja yksi ominaisuuksista tietokannan liian
on valvoa ainutlaatuisuus minulle.
Valitsemalla ainutlaatuinen täällä ensi sähköpostiin, vaikka sähköpostia itse
on näytöltä pois, sanon tietokantaan
älä luota minuun.
Älä anna minun lisätä tietokantaan
sama sähköpostiosoite kahdesti, vaikka olen idiootti ja en
erittäin hyvä minun jossittelua ja muu jossittelua ja todellinen PHP-koodin
ja minä vahingossa anna käyttäjälle rekisteröidyttävä olemassa sähköpostiosoitetta
tietokanta on jälleen taso puolustuksen oikeellisuudesta
varmistaa, että päällekkäisiä sähköpostiosoite ei päädy taulukossa.
>> Nyt sitä vastoin, sillä nimi luultavasti halua tehdä tätä ainutlaatuista
koska silloin ei voi koskaan olla 2 Davids tai 2 Mike Smiths, esimerkiksi
tietokantaan, niin että yksi meidän täytyy vain lähteä yksin.
Aion mennä eteenpäin ja sitten tallenna oikeassa alakulmassa,
ja kaikki näyttää hyvältä, mutta huomaa täällä
Tämä on osa että nyt meillä ei viettää liian paljon aikaa
koska syntaksi on hieman monimutkainen, ja meidän ei tarvitse luoda taulukoita
kovin usein, mutta SQL itsessään on kieli,
syntaksi on täällä, että olen korostanut.
Mitä phpMyAdmin todella on se luo web-pohjainen käyttöliittymä sinulle
jolla voit säästää aikaa ja ei tarvitse käsin kirjoittaa ulos
melko pitkä SQL-kyselyn tuollaista.
>> Toisin sanoen, jos halusi luoda manuaalisesti tähän taulukkoon,
joko että mustavalkoisia nopeasti tai jopa phpMyAdmin
käyttämällä tätä muiden välilehden tämä SQL-välilehti, jossa voit kirjoittaa mitä tahansa SQL-kyselyjä
haluat, rehellisesti, tämä olisi ottanut minua hetken
todella muistaa koko syntaksia, ja silloinkin olisin ehkä
tehnyt joitakin kirjoitusvirheitä, joten tämä työkalu on hyödyllinen tuollaista, ja se on myös opettavaista.
Voit aloittaa päätellä mikä syntaksi on
vain mukava värikoodeja että phpMyAdmin on lisätä
meidän visuaalisen mukavuuden.
Mutta nyt tehdään tämä sen sijaan.
Anna minun mennä Lisää-välilehden yläosassa, ja anna minun mennä eteenpäin ja lisätä esimerkiksi
ID Sanotaan, oikeastaan ​​en välitä.
Se tulee automaattisesti lisäys. Aion antaa tietokantaan käsitellä tätä.
Mutta aion David, ja minun email olisi malan@harvard.edu.
>> Mennään eteenpäin täällä ja laittaa Mike Smith ja toiseen.
Annan itselleni sukunimi kuin hyvin,
ja me on hänen olla smith@example.com,
ja sitten minne menen seuraavaksi?
No, näyttää siltä, ​​go on-painiketta napsauttamalla, ja voila.
Huomaa yläreunassa 2 krs asetettu.
Tämä on todellinen SQL-kyselyn.
Se phpMyAdmin työkalu teloitettiin minua,
mutta lopputulos, ilmoitusta, jos nyt mennä selaa välilehti
on nähdä 2 krs tässä taulukossa, hyvin mieleen esteettisesti
Taulukon näimme aikaisemmin käyttäjämme PSET 7,
joista yksi on David Malan, joista yksi on nyt Mike Smith.
Mutta vain olla selkeä, minun ei tarvitse käyttää phpMyAdmin,
ja todellakin, olet menossa pian kirjallisesti koodi PSET 7
että automatisoi lisäämällä rivejä, poistamalla rivejä, päivittää riviä ja vastaavat,
joten anna minun vaan mennä SQL välilehti täällä
ja kirjoita SELECT * FROM opiskelijoiden jossa
email = "malan@harvard.edu."
>> Toisin sanoen kai nyt olet
Joissakin HTML-muodossa, ja käyttäjä kirjoittaa niiden sähköpostiosoitetta muun aloilla,
ja tavoitteena on nyt PHP takana loppuun koodi
todella etsiä että käyttäjän muut yksityiskohdat.
Mikä on koko nimesi? Mikä on ID-numero?
Voisit kirjoittaa SQL-kyselyä näin valitsemalla * opiskelijoilta
jossa sähköposti = "malan@harvard.edu."
Ja jos minä sitten Siirry, huomaa että minä, ja todellakin en, saada takaisin vain yksi rivi.
Mike on jätetty pois tähän tulosjoukkoon, kuin kokoelma rivien
yleensä kutsutaan, koska hän ei ole samaa sähköpostiosoitetta kuin minä.
>> Nyt, jälleen täällä PSET 7 tulet käyttämään phpMyAdmin hallinnollisena välineenä
ja pedagoginen väline oppia tiesi
ympäri maailmaa SQL, mutta loppujen lopuksi
aiot olla kirjallisesti nämä kyselyt sisällä varsinaisen PHP-koodin,
ja niin pysy kuulolla vuonna Zamyla n walkthrough erityisesti
jos saat kierros jakelu koodi tähän ongelmaan sarja
missä me olemme antaneet sinulle paitsi estetiikkaa varten kirjautumissivulle
ja mukava seksikäs logo, joka sanoo CS50 Finance, mutta olemme myös antaneet teille
joukko toimintoja, jotka tekevät elämästä hieman helpompaa.
Olemme myös kirjoittanut osan PSET sinulle,
login osan siitä erityisesti, antaa sinulle tunteen edustavan suunnittelu
joka todella käyttää ohjaimen, esimerkiksi index.php,
login.php ja vastaavat, ja sitten näet PSET on myös malleja hakemistossa
että on kaikki näkemykset, kaikki estetiikkaa.
Ja niin yleistä työnkulkua PSET 7 tulee olemaan, että
käyttäjät vierailla ohjaimen URL selaimessa.
Tämä ohjain sisältää PHP-koodia, joka kirjoitit, ja sisällä PHP-koodin
saattaa olla joitakin rivejä SQL pesi välillä lainausmerkkien
ja välitetään toiminnon kirjoitimme kutsutaan kysely
jotka auttavat sinua puhumaan tietokantaan ilman jotain
hallinnollinen työkalu kuin phpMyAdmin.
>> Pystyt kirjoittamaan SQL PHP-koodin
ja saada takaisin PHP joukko tulosjoukko,
rivien tosiasiallisesti vastaavat tätä kyselyä.
Ja samoin te voi tehdä lisää tai poistaa
tai päivityksiä tai vastaava, syntaksia, joka on melko samanlainen,
ja näet joidenkin verkossa viittauksia, jakelusta koodi
ja PSET pakata itse, miten edetä näin.
Toteuta lopulta olemme oikeastaan ​​vain esimakua SQL
ja MySQL, mutta voima se todella on, että se vapauttaa sinut
keskittyä ongelmiin haluat ratkaista, käyttötapaukset haluat toteuttaa
ilman huolta aivan yhtä paljon, ainakin alkuvaiheessa,
siitä, missä ja miten tallentaa ja etsiä tietokannasta,
ja tämä on aivan kirjaimellisesti missä Facebook itse sai alkunsa
MySQL ja käyttämällä enemmän MySQL palvelimet ja lisää MySQL palvelimet
ennen pitkää kunnes ne oli sitten todella alkaa miettiä kovaa miten
tietojen tallentamiseen, miten tallentaa asioita entistä tehokkaammin,
joten vaikka me itsestään selvänä sitä, että indeksit ja ainutlaatuinen rajoitukset
ja niin edelleen vain toimi siellä hyvin mielenkiintoinen keskustelu
että tämä kaikki lopulta johtaa, niin ymmärtää, että olemme vain esimakua
mitä voisi lopulta sinulle tai projekteja tullut melko vähän iso tiedot.
>> Tämän sanoi, katsotaanpa lopettaa täällä, ja näemme ensi viikolla.
[CS50.TV]