JASON Hirschhorna: Dobrodošli svatko u tjedan osam. Imamo uzbudljiv tjedan pred nama. Momci su zaronili u ovom posljednjih nekoliko predavanja na PHP, SQL, HTML, CSS, pa Četiri potpuno novi jezici koji su išli preuzeti ostatak ovaj tečaj. Također ćemo naučiti nekoliko drugima jezici prije kraja naravno a. No, u svakom slučaju, suvišno je reći, to je vrlo uzbudljivo vrijeme u CS50, sada ste savladali C, navodno, i kreće na programiranje za web stranice. Dakle, ovaj tjedan, mi ćemo ići na Vrtlog turneju kroz četiri jezika što sam spomenuo, HTML, CSS, PHP i SQL. I nadam se, da će ostaviti dosta Vrijeme na kraju odjeljka za razgovor o ovotjednom P setu i odgovor bilo kakva pitanja vam sve imaju. Svaki tjedan, isti popis izvora za vas, da vam pomoći s tjedan a Problem postaviti i ide preko materijala - ali ovaj tjedan posebno, za to Web-based problema setovi, postoji niz drugih izvora iz ima da ćete vjerojatno pronaći nevjerojatno korisna. Imam ih ovdje. Ja ću vam ovaj e-mail, nakon sekcije, i to također biti online. Ali posebice, postoji mnogo od velike resurse vani. Tu su i neke ne tako velika oni, pa budite oprezni od onih. No, na ovom slajdu, imam četiri dobra resursi, po jedan za svaku od jezici koji ćete se rade s ovom tjednu - jedan arkom za HTML, arkom za CSS. Ovo ovdje je PHP uporabu. Dakle, umjesto tipkanja čovjeka, a zatim PHP naredbe, ovo je mjesto gdje bi ići pogledati funkciju prototip i primjeri ali i neke savjete i Umjesto za korištenje PHP funkcije. Vi ćete koristiti ove stranice često, pa Ohrabrujem vas da postanu upoznati s njom. To može biti malo tehnički, ali također pruža tonu resursa i primjeri za sve funkcije i i drugi, kao i kako se koristiti matrice ili različite vrste varijabli. Ovaj site je vrlo korisno za PHP. I onda, za SQL, ako zaronio u ovo tjedan Problem set, znat ćete da smo koristeći bazu podataka. I mi pristup te baze podataka kroz relativno lijepo korisničko sučelje. Ili je to jedan od načina da se pristupna da je baza podataka. Korisničko sučelje je zove phpMyAdmin. Postoji SQL tab, koje ćemo pogledati kasnije danas. I vi možete upisati u svoje uzorke SQL upite, raditi stvari na svoje baze podataka a zatim pokrenuti one upite. A ako su točne, to će kažem, ovo je točno. Ako su netočni, to ću recimo, to je netočno. To je veliko mjesto da praksa SQL upita prije zapisivanja u vaš broj, kako bi bili sigurni da ima format točne. Na kraju, još jedna web stranica ovdje. To je web stranicu na kojoj možete idite i provjerite je li vaš HTML kod je valjana. Dakle, prije uključivanja svoje probleme postavili ovaj tjedan, pobrinite se sve Vaš HTML vrijedi. Prošli tjedan, što je trčanje Valgrind, da bi bili sigurni da nije imao curenje memorije. Ovaj tjedan vam je potrebno kako bi bili sigurni sve kôda vrijedi HTML5. Ako to ne vrijedi HTML5, ti si će dobiti bodove off. Dakle, budite sigurni - samo zato što radi ne znači da je u potpunosti vrijedi. Pokrenite svoj kod putem ove web stranice prije okreće u. Opet, ovdje je web stranica. Ako imate bilo kakvu informaciju za mene, imamo par više sekcija napustio, i ja uvijek želim učiniti ono što mogu da se Vam pružiti sve s najboljim dijelu iskustvo je to moguće. Pa neka mi ako postoji nešto što možete učiniti kako bi poboljšali ili ako postoje stvari koje vidite da sam mogao napraviti bolje. Hvala vam, AVI. Stavite ga na web stranici. To je bicikl sam imao kad sam je, recimo, četiri kod kuće. To je Nindža kornjača biciklizam, u slučaju da se ne može reći, zato što je malo mutno. Možete ga dobiti sada na ToysRUs za, mislim, oko 100 dolara. No značajka ovog bicikla koji želim da obratite pozornost na što su to upravo ovdje. To su trening kotači. Do sada, vi ste bili ručni kroz C. I bili smo toliko dugo vrijeme, dva mjeseca plus, proći kroz C. Za tih sljedećih nekoliko jezika, nećemo se potrošiti toliko vremena. U trening kotači dolaze off. I mi ćemo zaroniti u njih jezici brzo i kretanje kroz im brže, što se ne može reći da je Samo ćemo ostaviti plivanja vani bez način podrške sami ili shvatiti kako to jezici raditi. Samo sam pokazao vam popis resurse koji će vam pomoći. No, imajte na umu da je PHP je nevjerojatno sličan C. ćemo ići preko je danas i neke od razlika. No, za najveći dio, postoje za petlje. Postoje li uvjeti. Kada želite riješiti problem, ti si idući u koristiti Kombinacija tih. To je vrlo sličan. Logika treba biti vrlo sličan ono što ste učinili u prošlosti. Ono što je stvarno novo ovaj tjedan sintakse i kako se izraziti. A vi želite pisati za petlju, ali to možda izgledaju malo drugačije. Ili želite stvoriti niz, ali to možda izgledaju malo drugačije. Dakle, imajte na umu da, kreće prema naprijed, Logika je vrlo slično onome što što ste učinili u prošlosti. No, sada ćemo se sastati Mnogo novih sintakse. A mi se ne ide na vas kroz svi elementi sintakse. Dakle, to je stvarno na vama shvatiti, online ili putem dopire na Raspravljati ili me e-mailom ili u razgovoru s jedan drugoga, kako pisati stvari u PHP i kako napisati SQL upita i kako koristiti HTML i CSS. Ali samo da znaš, to ne znači da mi pokušavamo baciti vani opet plivati ​​s morskim psima. To je ono što će vjerojatno učiniti s Vaš konačni projekt, ako se odlučite drugi jezik, kao i IOS Cilj C, ili ako ste se odlučili za početak programiranje u budućnosti i zaroniti u drugim jezicima, kao što je Python ili Ruby. Često, logika je vrlo slična u svim tim jezicima, a sintaksa je ono što je drugačije. I to će biti do vas, kao programer, ići koristite internet dostupne resurse kako bi vas i slici kako izraziti ono što znaju izraziti u C, u drugačiji jezik. Dakle, ovo je dobra praksa, kako za svoje konačni projekt, a opet, za ono što će vjerojatno učiniti nakon što napustite CS50. Prije nego pređemo na, ne bilo tko imate pitanja o tome što Ja sam do sada učinio? Velika. Idemo dalje. Prvo ćemo ukratko razgovarati o chmod naredbe. To ćemo napraviti na početku vaših problema postaviti. Jedna od prvih uputa za vas, nakon što ste preuzeli Raspodjela broj, je promijeniti dopuštenja datoteka i direktorije koje primate. Može li netko usudio nagađati ili znate Zato je važno promijeniti dopuštenja određene datoteke i direktorije na vašem računalu? Avi - PUBLIKA: Onda nitko osim možete vidjeti što radite? JASON Hirschhorna: OK. Dakle, ako želimo da se stavi nešto na web, a vi ste postavili dozvole da samo vi možete vidjeti nešto, onda nitko drugi ne može Vidite što ste stvorili. Što još? Da. PUBLIKA: Spriječiti bilo tko drugi da ne žele vidjeti nešto, iz vidi nešto. JASON Hirschhorna: To je također točno. Tu je vjerojatno neki kod koji pišete, da ne želite da ljudi vide. Vjerojatno si u redu s ljudima koji vide Vaš HTML i vaš JavaScript. Ali vaš PHP, stražnji dio koda, puno Logika bi kodu, možda stvari koje se spremaju neke od vaših lozinki za svoju bazu podataka, ne znaš želim da ljudi vide da je vrsta informacija. Dakle, važno je da je, svaka datoteka i katalog mi stvaramo ima dozvolu odnosi se na da li ili ne želimo da ljudi vide one vrste datoteka i Katalozi i biti u mogućnosti pristupiti im i potencijalno čak ih promijeniti. Dakle, postoje tri vrste dozvola. Tu je dozvolu za čitanje, što znači možete pročitati datoteku ili popis na sadržaj telefonskog imenika. Tu je pismeno dopuštenje, koji znači možete promijeniti datoteku ili promjenu imenik, a zatim izvršiti dozvolu, što znači da možete izvršiti datoteku ili bolje rečeno, ti može premjestiti u imenik. Dakle CD nešto, ako imate Dopuštenje za njezino izvršenje, možete premjestiti u tom direktoriju. To je kratak primjer. Opet, da si prešao preko toga u problemu postaviti. Ali sam napraviti imenik s mkdir zapovjedništvom. Ja promijeniti dozvole. Ove dvije linije zapravo učiniti točno istu stvar. To je za ilustraciju da se sintaksa mijenjanja dozvola, da li vam je činiti + x ili 711, oni su isti. Mi gledamo prema dolje u ovom lijepom stolu. Vidimo da postoji korisnik dozvole prvi. To si ti, pojedinac, i vaš poslužitelj, potencijalno. A tu je i grupa i drugi. Razlike između onih dva su relativno trivijalno. Dakle, općenito, mi ćemo strpati oni zajedno. Ali u biti, ako imamo datoteku nazvao uključuje da želimo biti mogućnosti da sami uređivati ​​i da želimo drugima da budu u mogućnosti izvršiti, to je 711 dozvola. A vidimo da je dolje ovdje u ovoj tablici. Imamo čitati, pisati, i izvršiti. Za svakog od nas, želimo biti u mogućnosti to učiniti oni. Grupa i drugi, samo želimo ih biti u stanju izvršiti. Način na koji smo to prevesti u broju Dopuštenje je kroz binarno. Dakle, ako imamo tri jedinice, to je 1 u one stupcu, 1 u paru stupac, 1 su četveronoške stup. To je 7 tamo. A to je dozvola 1. Ova dozvola je 1. Dakle, 711, kada je ista kao i davanje sami čitati, pisati i izvršavati, a svi ostali izvršiti privilegije. Ova linija upravo ovdje, mi općenito će se čitati i pisati, kada smo stvoriti imenik. Dakle, ova linija ovdje samo dodaje izvršavanje privilegije svima. Dakle, to bi bilo slično, u dodatak na ono što imamo, dodavanjem 1, 1, 1 svima. Dok je to, to je nepotrebno dodati čitati i pisati. Ali ako ćete koristiti brojeve, ne možete samo dodati nešto. Vi prebrisati sve što dopuštenje bili postoji i provesti ih s novim Broj dajete. To je prilično brzo. Da li itko ima bilo kakvih pitanja oko mijenjanja dozvola? OK. Ako imam PHP datoteku, što dozvole ne želim to imati? To je u Problem set spec.. Tako možete pogledati na spec. i zatim pročitao mi odgovor. PUBLIKA: Želite korisnika na imaju dozvole za čitanje i pisanje. I želite da svi drugi nemaju ništa. JASON Hirschhorna: A što brojeva je to? PUBLIKA: 600. JASON Hirschhorna: 600. Dakle chmod 600 - kad god ispisati PHP datoteke, chmod ga do 600. OK. Imam katalog. Netko osim Jeff, Imam fascikl. Što dozvole ne želim dati tu mapu - također u problemu postaviti spec, odmah ispod ovog odgovora ili prethodni odgovor? Također potencijalno na slajdu - Marcus. PUBLIKA: Za mape, to je 711. JASON Hirschhorna: 711 - tako mape, želite dati 711. Želite li biti u mogućnosti čitati tu mapu, mijenjati direktorije, preseliti u ta mapa. A vi želite da svi drugi biti u mogućnosti za navigaciju unutar te mape, ali Nije nužno mijenjati njegov sadržaj. A što je s ne-PHP podnijeti, kažu, JavaScript datoteku? Što dozvole želimo dati tu vrstu datoteke? PUBLIKA: 644. JASON Hirschhorna: 644 - zašto želimo to dati 644? PUBLIKA: Za neka drugi ljudi to čitaju. A ti čitati ni pisati ga. JASON Hirschhorna: Pa dobro, svatko drugi ne može pročitati da je JavaScript podnijeti. A možete promijeniti da, osim kako bi se mogli pročitati. Tako je jedan od najčešćih bugova ljudi ima s ovim problemom set i njihova konačni projekt, ako je web-based finalu Projekt je, oni će niste postavili ispravne dozvole. I oni neće biti u mogućnosti vidjeti svoje web stranice. Ili određeni dio svoje web stranice. Zato pazite da postavite dozvole ispravno. Nemojte samo pretpostavljati da će to učiniti za vas automatski. OK. To je mala stvar da smo proveli dobar iznos od vrijeme na tako mogli smo ga uloviti. Idemo dalje u HTML. I opet, za te sljedeće četiri teme, ćemo proći kroz njih relativno brzo. Dakle, slobodno me zaustaviti na bilo vrijeme, ako imate bilo kakvih pitanja, da li su oni vezani uz ono što sam pokriti ili nešto od predavanja ili čak i iz set problema. Prestanite me kad god je potrebno. Kada bi se na kraju, samo ćemo početak ide preko problema setu. Tako HTML je kratica za HyperText Markup Language. To nije programski jezik. Sve je to ipak podesili sadržaj a također pružaju neke metapodataka. Tako na primjer, vjerojatno, mnogi od ste koristili Facebook prije. I vi možete uključiti linkove u, ili ste Možete staviti link kao svoj status. A onda, što ćete primjetiti taj link Uvijek ima lijepu sliku na njega i neki tekst. Općenito, to je neki meta za web-stranicu. I to je Facebook specifičnih metapodataka. A onda, kad je Facebook je čitao da stranica i umetanje tu vezu, ona traži specifične metapodataka, pa zna što za sliku za prikaz, što Naslov prikazati, a što sažetak teksta za prikaz. Tako možemo uključiti metapodataka s Naša web stranica pomoću HTML. I to također nam pomaže strukturu sadržaj, općenito, što želimo ići gdje. Sve u HTML element. A elementi upravo ovdje - ovo CS50, tekst je element. I to ima neke oznake. To ovaj ima oznaku. I mi smo primijetiti da je na na početku i onda udarac, pa zatvaranja oznaku na kraju. Ponekad, ne postoji otvoreni tag i bliski tag. Postoji samo jedna stvar. Vidjet ćemo primjer da na sljedeći slajd. Dakle, ne morate otvoreno i bliski tag. No, za to, mi smo to omotava CS50 element sidro oznaku. A u biti, ove oznake reći Preglednik što učiniti s Osobiti element. Pa opet, CS50 je tekst ćemo vidjeti. I to će biti tip sidra. Sidro suštini koristi zbog povezanosti s nečim. Konkretno, kao što možete Već reći, ovo je link na CS50 početnu stranicu. Sljedeći dio oznaku - ili općenito, dio oznake su atribute. I vidimo ovdje, da tag ima jednu atributa, ovaj href atribut. I oni mijenjati određenu oznaku. U stvari, ako idete na jedan od web stranice ili reference koje sam ti dao prije ili potražiti oznaku online, ćete primijetiti postoje tona potencijalni atributi. To je vjerojatno jedan od najčešćih. To mi govori da stvaranje link na određene web stranice. I pripisuje uglavnom dati, Ako se ne daju isključivo, u ključ-vrijednost parova. Dakle, ovdje je ključno, href. A vrijednost je ovo ovdje. I to će dobro doći kasnije, kada smo počeli koristiti neke knjižnice Pomozite nam koda u JavaScriptu ili pisati HTML sadržaja. Često se događa da se - baš kao i mi će učiniti niza nosač 0 i da će nam dati neku vrijednost. U budućnosti, mi ćemo biti događaj puno stvari kao nešto bracket href. I to će nam dati vrijednost title, ili ako želimo ažurirati href tipku i zatim mu pojedinačne vrijednosti. Dakle, baš kao i sa polja gdje smo imali Ključ 0 ili tipku 1 ili 2 Tipka ili čak s hash tablicu, dobro, sa svojim hash tablice kao i, vjerojatno je - da bio polje, pa ključ 0, 1 ključ, ključ 2. Taj indeks postoji, možemo sjetiti da je kao ključ. A vrijednost je ono što je tamo pohranjena. Sve ove atribute su ključ-vrijednost parova. I to će biti važno za mijenjanje ih ili ih ažuriranje ili umetanja kasnije. Konačno, vidjeli ste tu strukturu i prije, ali ovo je najosnovnije Struktura HTML stranici. Na vrhu smo vam reći da To je zapravo HTML. I onda imamo otvorenu HTML tag i bliski HTML tag. Dakle, sve što je unutar ovo je HTML. Mi vidimo glavu i tijelo. Glava dokumenta obično uključuje što? Svejedno pretpostavljene za ono što stavili u glavu? PUBLIKA: Ti si stavio naslov i stil. JASON Hirschhorna: naslov. To je bio veliki pogodak. Možda sam ti dojavio da. Koje su neke druge stvari? Spomenuli smo da je jedan od njih Možda ide u glavu. PUBLIKA: On je rekao, stilovi. JASON Hirschhorna: Stilovi - Dakle, ako želite povezati u JavaScriptu ili čak i CSS, što pričaš o tome kada govorimo o stilovima. Još jedna datoteka, želite povezati u izvan datoteku, koja će vjerojatno idući u glavi. Što još? Spomenuli smo nekoliko slajdova Prije jedna od stvari koje HTML može učiniti za vas. To može pružiti - počinje sa M - PUBLIKA: Metadata. JASON Hirschhorna: Metadata - tako puno od meta će ići u glavu, jer to ne znači da će morati biti dio tijela kodu. To je u pravilu - tijelo sadržaja, što je netko vidi. I tako sam samo dao daleko odgovor na moje sljedeće pitanje. No u tijelu općenito sadržaj koji će se prikazati na web stranici. Kao što ćemo vidjeti, komplicirani web stranice imaju tendenciju da se smjenjuju ili promijenite ono što oni stavili u glavu i tijelo. No, općenito, glava sadrži stvari da korisnik ne ide vidjeti na zaslonu. On povezuje na drugim datotekama i pruža metapodataka. Budući da, tijelo sadrži sve korisnik će se vidjeti. Znate li što to znači p tag? PUBLIKA: Stavak? PUBLIKA: Print. Ivanković: Ne znači ispis. PUBLIKA: Znači li to stav? JASON Hirschhorna: Stav - pa to je stav. A to p tag, mogao sam samo upisali ovo na zaslonu, a zatim uključene prijelom retka na kraju. Zna li itko kako se uključiti prijelom retka? PUBLIKA: pr - JASON Hirschhorna: pr - PUBLIKA: Slash pr? JASON Hirschhorna: pr slash se zalaže za stanku linije. Ali stavci imaju specifične oblikovanja. I mi ćemo doći do oblikovanja u Drugo, kada govorimo o CSS. No, sve u tim p tagova će imati neki zadani oblikovanje povezane s njim, vjerojatno neki razmak između različita stavci. I to će biti jedan od načina da se razlikovati blokovi koda. Sve ostale oznake - ono što su druge oznake koje ste vidjeli? JASON Hirschhorna: H1 kroz H6. H1 kroz H6, a što je to? Ivanković: Bit označavaju koliko je velika i bold slova su. JASON Hirschhorna: Točno, to stoji za napadača. I tako header1 je veliki udarac. Vjerojatno će, po defaultu, biti hrabar, velika slova, vjerojatno usmjeren na screen, pa sve do H6, koja je manja slova, manje naglasio je. Naravno, možete, u vama su CSS datoteku ili negdje u kodu - koja, opet, mi ćemo doći do toga sekunde - promijeniti ono zadano ponašanje od H1 oznaka. No, imajte na umu da je Chrome, Safari, Firefox, Internet Explorer svi imaju Zadana traži puno Ove standardne oznake. Možete, opet, uvijek promijeniti kako izgledaju. Sve ostale oznake koje svatko je vidio? Da - PUBLIKA: div stranica. JASON Hirschhorna: div tag - div tag nema nikakve ugrađeni u formatu, po sebi, koji se koristi za blokiranje off različite vrste koda. Sve ostale oznake? Da. PUBLIKA: Li - JASON Hirschhorna: Li - ono je li za? PUBLIKA: Popis. PUBLIKA: Popis JASON Hirschhorna: li se za zadanih brojeva. Postoje dvije vrste popisa. Koje su dvije vrste? PUBLIKA: od A do Ž i neuređen. JASON Hirschhorna: od A do Ž i neuređen - tako stoji ul za neuređen liste. To je, ako želite metak ukazati, popis metaka. Popis naredio je numerirani popis. I tako ćete napraviti otvorenu ul. oznaku, a zatim tona elemenata popisa, a zatim zatvoriti ul. oznaku. i da će stvoriti Popis bez rednih brojeva. Idemo vidjeti neke primjere HTML-u malo. No, prije toga, želim doći do CSS. I CSS je kratica za kaskadno Stil listova. A to je vrlo usko povezana u HTML, ali malo drugačije. Ovo vam pomaže oblikovati sve sadržaje da je HTML strukture. Tako je u CSS, mi općenito ne žele stil svaki zaglavlje ili svaka Slika jednog ili svaki jedna stavka. Želimo stil neke elemente ili možda određeni element. I način na koji smo stil specifičan element je kako bi ga ID. Dakle, ovo je atribut. Ima ključ i vrijednost. ID je ključ. Logo je vrijednost. Podigao sam logo nasumično. A ako vam nešto iskaznicu, Općenito, da se treba dati samo na jednom elementu. A onda je, u svom stilu list, možete stil koji pojedini element, međutim želite da izgleda. Ako želite stil niz elementi, možda je određeni razred zaglavlja, samo su neki od zaglavlja. Možda je to glavom i slike i stavka koju svi žele biti usmjeren. Zatim možete dati onim skupinama elemenata sve klase. I vi možete dati klasa specifične stilove. Dakle ID i klase su dva načina za razbiti svoj kod, tako da možete pomoći biti točnije ono što stil. Postoje tri načina za stil. Prvi je, s ovaj stil atribut. Dakle vidite, ključ stil je stil. Vrijednost stil je zapravo još jedan ključni Popis vrijednost. U ovom slučaju, pokupila sam jedan ključ, text-align. I rekao sam, centar. Možda se pitate na to točka, kako sam znao o text-align. Što to uopće učiniti? To je veliko pitanje pitati, a ćemo doći u sekundi. Dakle, to je jedan od načina kako stil nešto, samo da je to stil atribut. Još jedan način da se stil nešto je - to je Akshar spomenuto ranije. Možete koristiti stilske oznake i staviti da u zaglavlje HTML dokumenta. Tako da u osnovi govoriš, sadržaja unutar ovdje je neki stil sadržaj. A format za to je stvar koju žele stil, a zatim, unutar vitičastim zagradama, ključ vrijednost par atribute koje želite dati da određeni tip elementa. Na kraju, a to je Najčešće korišteni način. I to je način na koji smo učinite to u p setu 7. To je vanjski style sheet. Dakle imate. CSS datoteku. A unutar nje, vidite puno stvari koje izgledaju ovako, ime od neke vrste elementa ili osobne iskaznice ili klase, a zatim, unutar kovrčava aparatić, popis ključnih parova vrijednosti. Naravno, ako ste stvorili vanjski file, ti ćeš treba ga uključiti - oštri su, da bi biti C analogija - u HTML datoteke. Dakle, morate uključiti ovo koda u HTML datoteke. Ovaj se naziv datoteke i pod pretpostavkom da je u istom direktoriju. OK. To je bilo dosta. I mi smo sada ide disati i gledati u nekom stvarnom, live web stranice i istražiti to više. No, prije nego što smo to učiniti, ne bilo tko Za sva pitanja? Dakle, ako želite to učiniti zajedno s mene, možemo ići na aparatu. I sam izabrao početnu stranicu CS50. To možete učiniti sa bilo koje web stranice. No, zašto ne bismo početi s CS50 homepage? Idemo osvježiti. Zapravo sam visoko preporučiti to radite To, zajedno sa mnom, jer ono što smo će učiniti sada će biti nevjerojatno zgodan za vas, ne samo u P-Set 7, ali u P-Set 8, kao dobro. Da. PUBLIKA: Da li postoji način da se to komentare u HTML-u, bez korištenja PHP? JASON Hirschhorna: Da, možete dati svoje komentare u HTML-u. Publika: Što je sintaksa? PUBLIKA: Uskličnik crtica crtica. Ivanković: U redu. JASON Hirschhorna: Da. Da je sintaksa. Možete komentirati u HTML-u. Možete komentirati u PHP-u. Kao što ćete vidjeti, komentirati u HTML-u će se Još uvijek se pojavi, kada pogledamo HTML izvorni kod određenom mjestu. Dakle, ovo cs50.net. Ako desni klik na najmoderniji preglednici na najvećim razmacima, što pogledati Izvor stranica. Tako ćemo učiniti da se na CS50. I gle čuda, mi vidi divovski stvar. CS50 zapravo izgleda prilično lijepo. Puno web-mjesta neće Pogledajte ovo lijepo. Ako idete na Googleovu naslovnicu i otvoriti. To neće izgledati ovaj lijepo. Ali primijetite da su, na vrhu - to je vrsta malih. Učinimo to veći. OK. Na gornjem, DOCTYPE HTML, to je poznato. Onda ćemo vidjeti otvorenu HTML oznake i Glava, upravo ovdje, svi tih meta tagova. A možete vidjeti ovu NN, ne ići na to sada. Ali ja sam gotovo pozitivna na koji oni bi Facebook. To je zapravo Facebook. Mislim da se zalaže za otvorenu graf. Tako zapamtite, bio sam spomenuti postoji Faceboook specifičnih metapodataka možete dati na stranici. To je ono što je upravo ovdje. Dakle, kada se povezati ovu stranicu na Facebooku, image to će pokazati je ovo slika ovdje. A što se zapravo vidi da je Facebook, jer je Facebook slika. No, u svakom slučaju, mi smo dobivanje na stranu. Dakle, imamo neke metapodatke ovdje. Vidimo naslov CS50. I opet, naslov je ono što se događa ovdje u kartici preglednika. Vidimo to je povezivanje u, upravo ovdje, Vanjski JavaScript sliku. Nismo razgovarali o tome JavaScript mnogo, ali sljedeći tjedan - i, naravno, ako je radite web-based zadataka, što će se pomoću JavaScript. To je, kako se povezati u vanjskim JavaScript datoteke. Vidimo ovdje, napokon, CSS stil listova, koji dokumentira njih stilovi ovog zakona. Neka je zapravo otvoriti da se i Pogledajmo jako brzo. To izgleda ludo. Nema šanse da bi se mogli pročitati. Na taj način možete zapravo iako, ako se uzme pogled, možete vidjeti da je vrsta postoje - tamo idemo. To izgleda kao nešto što smo vidjeli prije, boja pozadine, postavljanje ga jednak nekom crveno-zeleno-plavo vrijednosti. Ova stvar vrsta ne bi trebalo činiti da strano, iako, kada je predstavljena kao što je to, što se može malo neodoljiv. Nećemo gledati na ovaj CSS datoteke ili troše puno vremena na nju, jer je to je, opet, jako teško pročitati. Vratimo se na to HTML stranica za CS50. I neka je pomicanje prema dolje na tijelo. A unutar vidimo ovaj div tag. Vidimo zaglavlje ovdje. Vidimo sidro oznaku. I taj element popis dao specifične klase. A vidimo da je klasa ponoviti iznova i iznova. Tu ste Curtis. Tu je komentar u HTML5. I kao što ste primijetili, još uvijek možemo vidjeti da, ali to ne prikazuju. To je zapravo jako zanimljiva. Izgleda da ovaj popis rezultatima ustanove element je komentirao out. Ako idemo na ovu stranicu, opet, to još uvijek pojavljuje tamo, tako zanimljivo. Oh, to je zato, jer ove sljedeći redak. Što još možemo vidjeti od interesa? Ostatak je to više zbunjuje, u bave ovom desnoj polovici web stranice, što je malo malo složeniji. Dakle, to je ono što neki HTML će izgledati. Za mene ipak, to je malo neodoljiv, i to ne mi pomoći da se mnogo. Međutim, postoji nešto što se ne, u stvari, pomažu mi puno. I to je ono što sam koristiti kad god sam Pokušavam shvatiti kako nešto izgleda onako se to dogodi, ili kako mogu I napraviti promjene na moje web stranice. I to je alat razvijen koji je ugrađen u Chrome. Dakle, ako idete u ove tri bara u pravu ovdje i silaze alatima kliknite na Razvojni alati, mali prozor će se pojaviti na dnu stranice. I posebno, krom, jer je prekrasno, formatiranje ovaj prozor i uzeti HTML i da izgleda puno ljepše za vas. Dakle, sada je zapravo neki sklopivi HTML da možete istražiti pregledati elementi stranice. Ako želimo gledati na tijelu, to zapravo ističe. Kada dođete na dio HTML, dolje u ovom prozoru, to će istaknuti dio to govori o tome u velikom prozoru. Pa neka mi opet pokušati puhati ovo malo. OK. Tako ćemo otvoriti tijelo. I ja sam se pomicati tijekom ovog lijevom div. I primijetite da je isticanje ova lijeva polovica zaslona. Tako ćemo kliknite na to i proširiti to. Unutar toga, to izgleda kao postoje dvije divs. Tu je ovo prva div. Ne vidim da je istaknut. Ne znam, ali to izgleda ovako Drugi, napustio unutarnja, je sadržaj Na lijevoj strani ekrana. Zatim tu je ova stvar zove header. To izgleda kao da je isticanje CS50 dio. Ako otvorimo da se, vidimo da je ništa više od zaglavlju 1. To je dao ID, a to je dao tekst CS50. Pa opet, gledajući ga kroz to konzole ili pomoću razvojne alate okno na dnu zaslona čini istražujući ovu web stranicu, nadamo se, puno manje zastrašujuće i puno dostupniji. Ona također omogućuje nam da razumijemo da Ova web stranica, iako izgleda vrlo lijepa i lijepo, nije sve što je mnogo više nego što ćeš biti radi na problem Set 7. I to je potpuno u roku Vaša sposobnost stvaranja. Ako želimo - Druga super stvar o korištenju tih alata je, ako desni klik na naslov, možete urediti HTML. Dakle, nazovimo ga Jason. A sad ćete primijetiti da su se promijenile HTML na ovoj stranici. Naravno, ja se nisam promijenio to trajno. Ako sam osvježiti svoj preglednik, onda bi vratiti na izvornu HTML. No ponekad želim ispravljanje moj broj, i ne želim gledati samo svoje gedit prozor i pokušati razumjeti što se događa. Želim vidjeti što će se dogoditi uživo. Dakle, ja ću urediti kod ovako i dobiti je način na koji ja to želim gledati. A onda ću napraviti promjene u mom kodu. I smatram da je to puno lakše kada možete učiniti ono trenutačno, kao što je to. Recimo, opet, želimo napraviti još jedan šanse, jer smo upoznavanje s HTML i CSS upravo sada. Ja mogu urediti HTML upravo sada. A ja ću postaviti link. Zato ću promijeniti CS50 dom stranica, tako da će se povezati s - recimo - moj home page. Što je ime, ako netko sjeća, ili ono što je atribut želim dati za sidro kartici kad želim to povezati negdje drugdje? PUBLIKA: href? JASON Hirschhorna: href - Pa sad, vidjet ćete da postoje je podvlačenje pod Jasona. To je zato Chrome, po defaultu, daje sidra podvlačenje. Vjerojatno ste vidjeli da je prije kada sam otišao na web stranici. Stvari koje su veze podcrtane iu plavoj boji. Zadani stil za link je općenito naglašavaju i staviti ga u plavo. Ako mi se ne sviđa da se, Ja mogu to promijeniti. A mi ćemo to promijeniti u sekundi. Ali sada, također primijetiti da je, ako sam lebdjeti preko toga, u donjem lijevom kutu screen, točno iznad riječi elemenata je link koji sam dao. Dakle, ako sam kliknite na to - i što možemo desni klik na to, otvoriti novu karticu. To zapravo nije moja stranica. To je samo moje ime. Postoji li ići. Sada smo ga pretvoriti u vezu. Istražimo neke CSS, kao dobro. Lijepa stvar - i ja ću čine ovaj malo manji - oko ova konzola je, da je lud CSS list smo vidjeli prije, to je zapravo bilo teško analizirati, sada je lijepo položio za nas na lijevoj strani ove oknu. Tako možemo gledati. A ako ćemo proširiti ovu karticu stilova, Možete vidjeti sve od različitih stilova koji su povezani sa, u ovom slučaju, ovaj je element, to Link elementa. Ako radimo karticu spoj stilova, koji Samo nam pokazuje, a ne gdje se sve dolazi iz, ali uglavnom sve ove stilova koji posluju na ovaj element koji upravo sada. I recimo, želimo kako bi ga promijeniti nešto. Dakle, ovo je sve stilove koji su djeluju na ovom elementu. Recimo da želite to promijeniti, jer smo Želim vidjeti kako nešto izgleda. A mi smo samo igranje oko upravo sada. Ili želimo isprobati nešto, prije nego se pisanja u šiframa, a pritom to i što ga živimo. Možemo ići na kartici stilova. I u prvoj kutiji se kaže, element.style. I ovdje, možete umetnuti, možete dodati nešto. Dakle, želim - idemo na moj link i postaviti boju pozadine. I to je zapravo to autofills za vas, Svi mogući svojstva. Boja pozadine, a ja želim da bi to plavo. Blus nije riječ. Plava je riječ. Jeste li vidjeli da dolaze? Oh, je li to zato što je u href? OK. Dakle, ja ne vidim nikakve promjene ovdje. A to je zato što, ako smo označili veza, primijetit ćete da je veza se zapravo ne kontrolira svojstva ovog određeni element. To je zapravo, ako ćemo otvoriti link, ovo zaglavlje ovdje da je kontrole kako to izgleda. Dakle, ako želim napraviti pozadinu blue, ja zapravo morati mijenjati boja pozadine na header elementa. A sada vidimo da pozadina plava. Pa opet, to se brzo moglo biti idući kroz ovaj materijal prilično brzo. No, to je u biti ono što ti si idući u biti događaj. Nije na problematična Set 7, ali svakako kad ste kodiranje na webu. OK. Želim napraviti pozadinsku plava. Iako je u ovom slučaju, plava izgleda prilično ružno. Ja mogu ići ovdje, poigrati. Vidim da se to mijenja u plavu ne radi o a. Ja se zapravo promijeniti zaglavlje Element uključiti plava pozadini. A onda, ako je onda sam se vratiti u svoj CSS file, kako sam zapravo postavili ovo Pozadina biti plava i bi se ova promjena štap? Jer, ako smo primijetiti da sam osvježiti stranica, sve promjene koje sam napravio su nestali. Tako sam shvatio, OK, my pozadina plava. Moram ići u tu header1 elementa i promijeniti boju pozadine u plavo. Kako zapravo čine tu promjenu? Pa, podsjetiti da je, ako ćemo ići unutar odavde, ovaj header, naslov ima iskaznicu. I to je naslov. I tako je u našoj CSS datoteke, možemo reći, u redu, poduzeti ništa s ID naslov i daj ga ovaj dodatne nekretnine. Kako ćemo nešto s referentnim ID naslova, sve ideje, ili bilo tko Znam kako ćemo referenca ID-ovi u našoj CSS datoteke? Mljeveno meso, to je točno. I što je dobio nagovještaj da su upravo ovdje. Dakle, negdje u tom CSS datoteke, tu je ova linija koda - # # Napustio lijevi unutarnji # # header naslov. I to je dajući joj Donja margina, definiranje marže dnu ove Osobiti element. Pa, ako sam htjela da se to promijeni, Ja bih ići u tom CSS datoteke. A ja ni mogao naći ovaj dio CSS datoteke. Ili bih mogao napisati svoje. Mogao sam napraviti hash naslov kovrčavu braće i onda pozadina debelog plava boja zarez i blizu da je kovrčava brace. I to će se promijeniti pozadinu boja ovog elementa u plavo. Razlog zašto su vam toliko ovdje da, to je potrebno u ovom slučaju, jer naslov je jedinstveni ID. No, ono što možete učiniti je gnijezdo stvari. Dakle, ovo je rekao, u redu, idite na lijevo. To je vrlo mala. Ispričavam se zbog toga. No, ići na stvar s ID lijevo. Unutar toga, tražiti Stvar s ID napustio unutarnji. Unutar tog izgled, tražiti Stvar s ID napadača. Unutar toga, tražiti stvar ID naslov i promijeniti ID naslov. Dakle, to je samo način gniježđenja stvari. Neki ljudi vole gnijezdo je, jer to čini malo jasnije. Vidjet ćete ovdje također, zar ne ovdje, nema ljestve. Samo je H1. To je zato što H1 je dao naziv generički krpa. A tu su i neki CSS svojstva povezana sa svakog H1. Dakle, ako sam našao još jedan H1 na ovoj stranici, Također bih vidjeti da je ovaj stil bio primjenjuju se na to kao dobro. Ako sam želio primijeniti stil u klasi, kako mogu referenca klase ili govorimo o klasi u CSS datoteke? PUBLIKA: Dot. JASON Hirschhorna: to je s točkom. Tako ćemo se vratiti na ovu stranicu prije. Ako sam napraviti hash ID. To se mijenja stil od stvari s ID. Ili mi je, ako sam napraviti hash logotip, to pronalaženje stvar s ID logo i dajući mu određeni CSS stil. Ako sam nešto napraviti. Vrh, koji je pronalaženje sve u klasi i vrha mijenja svoje stilove. Ako ja jednostavno ne H1, koji pronalazi svaki jednokrevetne H1 i daje sve što stil želim ga dati. Ako mi je činiti H1 prostor i onda. Vrh. To će ići pronaći sve H1S a zatim sve one s klasi vrhu i onda samo promijeniti te stilove sve što želim je dati. I opet, mogli smo napisali neke to sami. Ali mi ne bi tako daleko stečen. Mnogo bolje, čini se da zapravo ide na pravi live web stranice i vidjeti kako to rade i pogled na sve fantastične stvari Moći ćete učiniti. Pogledajmo još jednu web stranicu prije nego što smo ići dalje. A to je onaj koji vjerojatno ćete upoznati s. To je CS50 financija. Pa opet, što zapravo može otići i promatrati taj CSS datoteku na vašem računalo, jer ste preuzeli ovaj CSS datoteku, ako ste preuzeli Problem postaviti. Možemo ići na Tools i Razvojni alati. I vidimo mnogo jednostavniji HTML izgled. Imamo krov, srednji i donji. A opet, nešto što bi trebalo biti poznaje, jer ste gledali kroz distribucijsku koda za postaviti ovotjedni problem. Na vrhu je, po kodu, jedna slika naziva. I da je izvor slike. Recimo ja sam završio sve što Htjela sam za problematične Set 7. I to je ispravno, ali Želim promijeniti kako to izgleda. I želim promijeniti pozadinu na vrhu stranice u, primjerice, plava. Ako se mi, ja bih došao u ovdje i shvatiti, u redu što ne želim mijenjati. Da vidimo, div id vrh, da izgleda kao vrha stranice. Dakle, idemo tamo. Idemo pokušati promijeniti boja pozadine. Idemo napraviti Alice plava, jer to je ljepši jedan. A vi ćete primijetiti da - vjerojatno se ne može vidjeti. No, tu je svijetlo plava, uz CS50 logom. Idemo ga promijeniti, umjesto da se crveni. A vi ćete primijetiti sada sam samo promijenila boja pozadine u crveno. Dakle, sada bih ići u moj CSS datoteke i tip # top kovrčave zagr ovdje. Možete vidjeti kod pravo Ovdje, kovrčava brace. A onda, ja bih dodati pozadinu boje, crvena. A onda, tu bi biti kovrčava brace. Dakle to je kako bih istražiti i eksperimentirati s oblikovanjem na CS50 Finance stranica. Ja to mogu učiniti ovdje i testiranje je na svom pregledniku. I onda, mogao sam otići u moj stvarni broj i napraviti promjene koje će zapravo ide uživo i da su ljudi zapravo vidjeti, ako su došli do moja posebna stranica. OK. To je bilo dosta. Ispričavam se što sam prolazio kroz to tako brzo. Da li itko ima bilo kakvih pitanja uopće o HTML ili CSS? PUBLIKA: Možete li samo ići preko kako povezani što je postao Jason, opet? JASON Hirschhorna: Što misliš povezani? PUBLIKA: Vi ste naveli link na drugi web stranice, koristeći sidro. JASON Hirschhorna: Pa pitaš, samo općenito, kako se čini vezu? Publika: Da. JASON Hirschhorna: OK. Šifra za izradu link - Ivanković: Ne, kao što je u HTML. JASON Hirschhorna: Ovdje dolje, misliš? Dakle, ako želim uključiti link negdje, recimo, ovo je HTML na mom stranica ovdje. To je HTML. Možda je otvoren u datoteku, index.html. Idem u. Imajmo ove autorskih Ivan Harvard link na nešto. Tako ćemo urediti sve to kao HTML. Sve što trebate učiniti je uključiti a, pa zagrada bliski nosač na na početku, a onda nosač slash u neposrednoj blizini zagrada na kraju. Dakle, sada sam uključena sidro oznaku. A zapravo, ako kliknete iz ovoga, to će se sada formatirati ga urediti kao HTML. I kažu, želimo to povezati. Ti bi smo href atribut. A mi kažemo - I sada, kao što ste primijetili, autorsko John Harvard je plava. I kad sam pomicanje na da, to je sada veza. Dakle, možete napisati da je kod. Možete okružuju prilično mnogo bilo što Želite u sidro oznaku i pretvoriti ga u link. Ivanković: U redu. Uspio sam. JASON Hirschhorna: A ako ja ne želim je - naravno, ponekad ljudi imaju tendenciju razmišljati te stvari koje jednostavno izgledaju plava generički i podvukao se ne najljepši način da se link. Dakle, ako sam došao ovamo, vidjet ćete da su, negdje u CSS datoteke, postoji napisao ovo, a zatim Dva vitičastim zagradama. Dakle, recimo da, za veze, ja ne želim im da postanu plave, a ja Želite boju linkom za biti ovako lijepo magenta. Dajmo mu boju. Idemo pokupiti magenta. Sada, svi linkovi na mojoj stranici ima postala ova lijepa boja magenta. Neki ljudi ne vole boje uopće. Neki ljudi ne vole naglašava. Ti biraš. Uz linkove, možete oblikovati kako su izgleda nakon što ste ih posjetili. Kao što ćete primijetiti na puno stranica, linkovi okrenuti ljubičasta na što ih posjetiti. Možete promijeniti tu boju kao dobro. Da. Ivanković: Pa vi to promijeniti za svaki pojedini link. Ali, ako ste upravo htjeli učiniti taj link Sam, hoćeš li učiniti u ID dno ili nešto? JASON Hirschhorna: Tako veliko pitanje. Kao što ste primjetili ovdje, sam promijenio neke dio CSS koji se odnosi na sve što je A. Ako sam želio samo učiniti da link na dnu, ja će ići na moj CSS datoteke, a vjerojatno učiniti baš kao što si rekao, mljeveno meso donji prostor. I to će mi dati sve kao u dnu. Ili sam mogao, pak, da je to jedinstveni ID i onda samo napraviti hash vezu. I to bi mi omogućilo za promjenu ovo. Međutim, samo doling ID-hoćeš-nećeš je općenito loša praksa, jer oni trebao biti jedinstven. I još imate one, što može dobiti malo zbunjujuće. Da. PUBLIKA: Možete li dati ista ID na više vlasnika? JASON Hirschhorna: tehnički, da. Ništa vas neće zaustaviti, ali ti Ne bi li trebali dati klasu. OK, bilo koja druga pitanja o HTML ili CSS? OK. Neka nas premjestiti na PHP. Oh, da. Publika: Što je to o njima web stranice to znači da se možemo urediti ih prije nego što smo osvježili. No, nakon što smo osvježili se vraća Natrag na početnu HTML? JASON Hirschhorna: Veliko pitanje - pa kad smo učita to web stranica, to je HTML. I to je JavaScript. Njegova PHP se izvršava kako bi nam bilo što vrstu web stranice koju vidimo. I to je stvorio neke HTML, neki JavaScript, a neki CSS. I to je sada dostupan prema našem računalu. I kopija tih datoteka se sprema lokalno na našem računalu, za sada. Tako možemo urediti taj lokalnu kopiju. No, naravno, nećemo uređivanje poslužitelja kopija. A kad smo osvježili stranicu, dobili smo još jedan server kopiju. I tako vidimo stvari natrag kao što su bili. Ako smo bili u mogućnosti, odavde, urediti Službena web stranica, mi bismo imati puno problema. Publika: Da, tako možemo pročitati i napisati tu kopiju. JASON Hirschhorna: Točno. Mi smo samo stvaranje lokalne promjene ovdje, ali opet, vrlo korisna za istraživanje, često. Kad pišem moj konačni projekt, za Primjer, želim vidjeti kako su neki Web napravili nešto što izgleda način što su učinili. Ja ću otići i koristiti ovu ploču prema dolje Ovdje, pogledati što CSS dali su to ili ono što boje su pokupili ili kako oni ga je dobio tako da se, kada je lebdio preko nečega, popis sišao u lijepoj kaskadno. To je sjajan način da provjerite što drugi web stranice učiniti i posuditi od njih. Idemo na PHP. PHP je kratica za, u rekurzivni smislu, PHP Hypertext procesor. I PHP, što će učiniti je izvršavanje koda strani poslužitelja. Dakle, mi nikada ne ćemo vidjeti PHP kod. Međutim, to ne igra lijepo s HTML i često stvara Puno HTML koda. Ali, kao što ćete biti upoznati s problemom Postavite 7, vaš PHP kod će se izvršiti, generirati neke HTML, i to je ono što Korisnik će završiti gledajući. PHP je nevjerojatno sličan C. Međutim, postoji nekoliko razlike, i te razlike su važno imati na umu. Jedna od razlika je da varijable u PHP slabo su upisali. Da li itko ima osjećaj što to znači? Ivanković: Nema potrebe da ga baci sebe. Kao i bez potrebe da se pišu u tekstu. JASON Hirschhorna: Ne bih koristiti Riječ cast, ali da, nema potrebe da se proglasi tipa za određenu varijablu. Kako umjesto ćemo proglasiti varijabla? PUBLIKA: Koristite znak dolara. JASON Hirschhorna: Koristite znak dolara. Dakle $ x je promjenjiva. $ 1 promjenjiva. $ String je promjenjiva. Oni varijable $ x mogla biti cijeli broj. Zatim, to bi mogao biti niz. Zatim, to bi mogao biti znak. To uopće nije važno. Isto tako, super stvar o PHP je, recimo, $ x je niz jedan. A $ y je lik jedan. Možete dodati $ xi $ y, i to ću vam dati 2, ono što biste očekivali. Dakle, postoje poslovi u PHP-u. Zato što je labavo upisali varijabli, Neki uključeno ukalupljivanje je učinio za vas i neke operacije. To možete učiniti poslovanje na stvari različitih vrsta. Dok je prije, često se na pogrešku u C govoreći, ovo nije tip koji je trebao ići tamo. Samo stvari ovog tipa može ići ovdje. Vi ne ide da se taj tip pogreške, općenito, u PHP-u. Dakle, to je jedna velika razlika - kako se nositi s varijablama. Druga velika razlika je u tome što PHP kod se interpretira. Wheres, C kod je sastaviti. Što to znači? Pa, za C koda si pobjegao to kroz prevodilac. Vi generira binarnu datoteku. I što je vodio tu binarnu datoteku. Uzeli ste brigu o svim pogreškama prije što generira binarnu datoteku. Naravno, tu bi moglo biti segmentacije mane, kada je vodio binarnu datoteku. No, to nije kao što je zaboravio uključiti definicija printf ili nisi koristiti varijablu i samo stvorio je razoran varijablu. Ili niste definirali Funkcija prototip. Sve se to dogodilo prije nego što sastaviti. To vam je dao sve od pogreške ili loše stvari koje se mislili bi se moglo dogoditi. A onda, imali ste svoju 0 ​​i 1 sliku koju je vodio. PHP kod ne radi tako. Ideš napisati PHP kod. Zatim, ti ćeš spremite ga, valjda. I barem u P-set 7, idete osvježiti vaš web preglednik, a ti ćeš vidjeti što se dogodilo. Ideš vidjeti izlaz tog PHP koda. Također možete vidjeti, na vrhu Vaše stranice, pogreška. Budući da ste imali neke pogreška u vašem PHP. Još uvijek mogli vidjeti ostatak web stranica dobro izgleda. No, jedan dio je u krivu, a tu je pogreška u tom mjestu. A to je zato što je taj dio Vaš PHP kod ne radi. Doista, kada se izvrši, kada vam ići na nešto slično by.php. To će proći kroz vaše PHP datoteku redak po redak i izvršiti ga onda i samo onda. To se ne događa da ga sastaviti ispred Vrijeme ili sastaviti jednu kopiju, a zatim dati da je sastavio kopiju svima. Svaki put, to će proći redak po redak i izvršiti ga. Dakle, neke linije mogli raditi i Izlaz nešto točna. I druge linije mogle biti slomljena i umjesto output error. Dakle, kada je ispravljanje pogrešaka s PHP, mi smo s obzirom ti par korisnih stvari Kako bismo vam pomogli ispravljanje, kao i Funkcija dump. No, općenito, idete vidjeti te pogreške. I to kako ćete se znate li nešto krivo. Ali ti si samo će vidjeti pogrešku Nakon što zapravo izvođenja koda. Drugi važan aspekt PHP i izrada web stranica je ideja get u odnosu na radno mjesto. Može li netko objasniti što je razlika između dobiti i post su? Nitko - Da. PUBLIKA: Zar nije jedan od njih neka korisnik vidjeti podatke, a jedna od njih ne želi? JASON Hirschhorna: Velika. Da, imate li što dodati? Ivanković: I tanka post je super-globalna varijabla. JASON Hirschhorna: Dakle, obje ove varijable se daje za vas. Ovo su samo varijable. I znate da su varijable, jer ovdje sam koristite znak dolara. To su varijable dane vama PHP. A kad ste se kretali između web stranicama, Želite li spremiti neke informacije. Vjerojatno želite uštedjeti, ako korisnik nije prijavljen To nije spremljen u GET i POST. To je spremljena u nešto drugo, različita varijabla. Zna li tko što je varijabla koja se sprema u, ili što varijabla koristite u P-Set 7, kako bi bili sigurni da je korisnik prijavljen? $ _SESSION, Da je to točno, Vjerojatno važno biti upoznat sa imena tih stvari često koristiti. Dakle, koristite varijable sesije za spremanje Informacije iz stranice u stranicu. To je super promjenjiva. Ona postoji na svakoj stranici, možda kao Globalna varijabla, ako želim razmišljati o tome kao što je to. Postoji nekoliko drugih varijabli koji vam omogućuju prijenos podataka iz stranice u stranicu. Konkretno, oni mi ćemo se usredotočiti na su GET i POST varijablama. U PHP oni izgledaju $ _GET I $ _POST. A razlika, što je Marcus naglasio se, između njih dvojice je da, Informacije u $ _GET je prikazuje se u URL. Dakle, ako ćemo gledati ovdje dolje, vidimo veze na YouTube. Mi vidjeti ovaj upitnik. Vidimo V =, a zatim neku vrijednost. Povratak na ovoj ideji ključne vrijednosti Par, v je ključ. I ovdje je vrijednost. Dakle, ako smo ići na ovu stranicu ili kodiranje na ovoj stranici, imali bismo varijabla zove $ _GET. Ako bismo išli na $ _GET otvorena zagrada "v" u neposrednoj blizini zagrada, vrlo sličan niz zapis, ovo je suradnik niza jer mi ne koristimo indekse. Su pomoću žice kao tipke. No, vrlo slična ideja. Ako bismo išli smo, će dobiti tu vrijednost. Na ovoj stranici, da ćemo biti u mogućnosti koristiti ovu vrijednost. Ako smo zapravo izgledaju, neka je ići na stranici YouTube. Što Video bismo trebali gledati? To je jedan, ljudi Hobbit navijača? Publika: Da. JASON Hirschhorna: Pa ja sam kopiranja njihov URL udio i zalijepiti u novom prozoru. A sad, ako pogledate ovdje, vi ćete primijetiti da, još jednom - Ja ću kopirati i zalijepiti u gedit, tako da možemo vidjeti što veći. Primijetit ćete da ima ovaj upitnik. Upitnik označava da sve nakon toga će biti spremiti u GET varijablu. To onda ima v, to je prvi put Ključ i to prva vrijednost. Ampersand je posebna. Ampersand je rekao, u redu, mi završio prvu vrijednost. Sada se kreće na drugu Ključna vrijednost par. Ovdje, ključ se zove značajka a vrijednost je youtu.be. Dakle, ako sam bio kodiranje ovu stranicu i netko otišao na ovaj URL i ja imala Možda watch.php. I ja sam se to kodiranja. A mogao sam koristiti $ _GET varijable. I ja bih imati v, i Ja bih imati značajku. A ako sam koristiti protiv ključ, ja bi dobili tu vrijednost. A i da jesam $ _GET bracket "lice" u neposrednoj blizini zagrada, ja bih se tu vrijednost. Opet, to ne mora nužno odnose se na - Očito, YouTube ključeve i vrijednosti i dobiti informacije se ne odnosi na Naš problem Postavi 7. No, postoje određene stvari koje smo proći kroz doći u naš problem Set 7. I sigurno, kad idete na web-stranicu ili su kodiranja svoje stranice, $ _GET Će doći u ruci kada vaš kodiranje. Ono što je jedan od razloga za korištenje $ _GET onda, ako se ne daje privatnost? Vidite sve ove informacije koja se prenosi. To sve se prikazuje se korisniku. No, ono što je jedan od razloga da je možda želite uštedjeti nešto u $ _GET, kao za razliku od $ _POST? Zašto bi želite učiniti? U redu. Pitao sam u kvizu 1. Što je pro od $ _GET? Što je jedan pro? Da - Ivanković: To je lakše dijeliti informacije. JASON Hirschhorna: Mislim to je super. To je lakše dijeliti informacije. Lakše je oznaku. Možete označiti sada, YouTube.com / gledati? V = nešto i otići na taj određeni video. Ako YouTube uvijek činio POST zahtjeva za različitim stranicama, svaki YouTube URL bi YouTube.com. Niste mogli bookmark jedan video. Jer ako kažeš podijelio tu vezu s nekim drugim, oni to ne čine automatski dobiti svoj post varijablu. Oni su samo uzimajući ovaj link, a link je isti za sve. Tako da je jedna pro. To vam omogućuje da bookmark to informacije ili podijeliti ovu informaciju ili bi ga malo više user-friendly. Naravno, nema privatnosti, tako da imamo i ovaj post varijablu. I nakon informacije nisu prikazuje se u URL. To nije u potpunosti privatne. Ali, to je neznatno više privatnih. I tako ćete vidjeti ovaj URL ovdje dolje, cs50.net. Bilo ili ne ste ulogirani u web stranice, to će imati isti URL, cs50.net. Očito, nešto je drugačiji, ako prijavljeni ste na web stranici. Imate, jedan, vjerojatno unesete PIN. I to je potvrdila da s poslužitelja. I to je vjerojatno štedi neke druge informacije. Ali URL ne mijenja uopće. I tako je to slučaj, kada je nešto što je poslana poštom. URL ne mijenja. Ovaj post informacije nisu prikazuje se u URL. Ali neka država nije promijenilo, a možda postoji neki podaci spremljeni u POST varijabla. Oprostite. Prije nego što sam ići u SQL, bilo pitanja o PHP, posebice, Pitanja o stvarima koje ne idu preko da ste pronašli ili bilo sintakse ili logika pitanja o PHP-u? OK. Konačni jezik koji će biti interakciji s ovom tjednu je Strukturirani jezik upita, SQL, izgovara nastavak često. To omogućuje interakciju s baza podataka u formalan način. A ona igra vrlo lijepo s PHP. Kao što ćete vidjeti u problem Set 7, mi smo vam dati funkciju nazvanu upita. I to traje SQL string i izvršava da upita na bazi podataka. U posljednjih godina, što nije bilo dao ovu funkciju. Vi morali koristiti PHP funkcije da bi upita na bazu podataka i provjeriti za pogreške i onda dobiti rezultate. A zapravo, to i nije tako teško, jer opet, to igra jako lijepo s PHP. I PHP vam daje puno funkcija komunicirati s SQL baze podataka. Tako često, dva oni idu zajedno. Naravno, da bi mogao komunicirati s SQL baza podataka s bilo Niz drugih jezika. No, PHP je jedan veliki odabrati. Baza podataka - mi ćemo ići preko to brzo, jer to je krilatica ćemo početi koristiti često - je skup više stolova. Dakle, možemo razmišljati o tome kao Excel datoteke. File Excel ima više kartica na dnu ekrana. Svaka kartica ćemo sada nazvati tablicu, gdje Tablica je skup redaka. I ono što je red? Pa, red je da se ista stvar u Excel datoteci. To samo ima određene vrijednosti za svaki dano polje ili svaki dati stupac. To je kao ulazak u tablici. On je student, koji ima osobnu vrijednost, a specifične ID, a posebno ime i specifičan kuća. Dakle, baza podataka je skup tablica. I sami su stolovi Broj redaka ili zapisa. Tu se također, u svakom stol, određene stavke. I to određuje ono što svaki zapis je će imati, polja ponekad naziva Kolone, ali općenito se nazivaju polja. U ovom vrlo jednostavnom tablicom, imam tri Polja, ID polje, username polje, a polje mljeveno meso. I ja imam tri reda. Upravo sada, oni su prazna. Oni vjerojatno ne bi bila prazna ako je ovo bio moj pravi baze. Dakle, ako ste koristili Excel, slična ideja to što radite u Excelu, ipak, očito, sada ćemo moći učiniti mnogo moćnije stvari na Informacije koje se pohranjuju u našoj bazi podataka. Vi ćete biti stvaranje sami jedan baza podataka za problem Set 7. No, vi ćete biti stvaranje više tablice unutar baze podataka. Vi ćete biti stvaranje baze podataka ili stol za korisnike. Vi ćete se i stvaranjem tablice za Vjerojatno burzovnih transakcija, da bi Staza od njih, jer vam je potrebno da se implementirati značajku povijesti. Obje te tablice će imati različitim područjima. Na primjer, u polju korisnika, što Vjerojatno žele svoje korisničko ime i ID i hash njihove lozinke. U tablici dionice koje prati Povijest ili stol za povijest, što vjerojatno ne treba korisničko ime i mljeveno meso i ID. Vjerojatno treba samo jedan od onih Vrijednosti koje su jedinstvene, na udruživanje to s određenom korisniku. Ali onda, želite pohraniti drugima stvari kao što su, što je vrijeme je transakcije. Što je dionica kupio ili prodao? Koliko dionice fonda je kupio ili prodao? Ono što je cijena po kojoj dionica je kupio ili prodao? Pa opet, ti ćeš biti u interakciji s bazama podataka koje je će imati više tablica. Svaka tablica će imati svoj vlastiti skup polja. Međutim, postoji vjerojatno će biti slična Polje na svakom stolu, da ih se odnosi na jedan od drugoga. Obično, to je ID polje. Jer, ako svaki korisnik ima jedinstveni ID i povezati taj ID sa svakim transakcije koje korisnik napravi ili Sve to korisnikove povijesti. I imate korisnički ID. Možete dobiti informacije iz obje tablice. Možete dobiti svoje korisničko ime, a vi mogu dobiti sve njihove transakcije. Sva pitanja o bazama podataka, ili specifična pitanja? Zapravo, neka se drži toga. Mi ćemo biti tamo u dvije strane. Dakle, postoje četiri operacije na baze podataka koje će se koristiti u Problem Postavite 7 i vjerojatno nikad se koriste. Prva stvar koju želite učiniti je umetnuti Novi rekord u tablicu ili novi redak u tablicu. To je generički funkcija, Generički oblik, te SQL upita. Umetnuti u tablice, bez obzira na stupaca želite umetnuti, a zatim vrijednosti koje idete da želite staviti u tim kolonama ili polja. Ako imate više stolova baza ili više baza podataka, vi Možda ćete morati odrediti baze podataka i stol koji želite staviti stvari na svoje. No, vrlo jednostavno, ako želite umetnuti u nešto, što reći, evo Polja želim umetnuti u. I ovdje su vrijednosti. U nekim stolovima, također, i to korisnika stol je dobar primjer. Vjerojatno u ovom korisničkom stol i Vjerojatno je u svoje korisnika stolu u P-set 7, tu nije riječ samo username vrijednost. Tu nije samo novčana vrijednost, ili polje, a ne. Tu je i ID polje. Neću umetnuti taj ID polje. To će nam dati ja automatski, kada je Novi rekord je umetnuta. Tako postoji neko polje koje možete podesiti da se automatski. Možda želite da svakom korisniku 10,000 dolara gotovine off šišmiša. Dakle, ja ne trebate umetnuti broj gotovini ovdje. Sve što trebate umetnuti je korisničko ime. A onda, polje novčani će biti pre-naseljena i ID polje će biti pre-naseljena. Tako često, nismo umetanja nešto što se u svakom polju, jer one druge stavke su pre-naseljena. Jer to je kako smo postaviti taj stol. Druga stvar koju ćeš želite učiniti je izbrisati zapis. Brisanje nešto je vrlo jednostavan. Dajete stol na kojem želite izbrisati nešto iz. A što reći, OK, želim izbrisati zapis koji ima ime Mila. Ili želim izbrisati sve zapise koji imaju korisničko ime Mila ili da su transakcije iz korisničkog ID broj 2. Bilo kakva pitanja na njih dvije vrste upita? PUBLIKA: [nečujan]. JASON Hirschhorna: Da. Tako da ću koristiti red i zapis naizmjenično i neki sa stupom i polju. No, jedan red je jedan rekord. Jedan stup je jedno polje, idući natrag za stol. OK. Sljedeća stvar koju ste vjerojatno će učiniti je dobiti neki podatke iz tablice. To je Odaberite upita. I opet, ono stol ja sam odabirom iz? A što stupac želim za odabir, ili vrijednost onoga što želim za odabir i iz kojeg red? Dakle Select je malo specifičan. Ja kažem, u redu, želim ovaj stol. A onda želim stupca korisničko ime i Ja ga želim iz reda s ID 2. To je jedan način da to učinite Select. Ili mogu reći, dajte mi svaki jedan username. Ili mogu reći, dajte mi cijeli red od ovog stola, gdje je korisničko ime je 1. Dakle, postoji nekoliko različitih načina na Ne odaberete upite, ovisno o tome koliko informacija želite, Uvijek možete samo odabrati sve iz tog specifičnog stola i onda petlje kroz nju, beru se ono što želite. No, imajte na umu, ako odaberete puno stvari iz tablice, a vi imaju stvarno veliki stol, koji će potrajati nekog vremena, pa najbolje da samo odaberete stvari koje idete završiti korištenjem. Isto tako, s Select a uz sve to drugi SQL naredbe, kao i sam dajući vam golom kosti verziju. Ali kažem, ja sam odabirom korisnike i želim ih ispisati po abecedi, Mogao sam izabrati sve korisnike, a zatim vrsta ih po abecednom redu u mom kodu. Ili postoji način pisati odaberite upita, koji odabire stvari u abecedni moda, temelji off određene kolumne, bilo rastući ili silaznom. Dakle, imajte na umu da, puno toga što ste želite učiniti, vjerojatno se može obaviti u upita kroz dodatne atributa. Dakle, nemojte gledati ove upite online ili ostale stvari koje možete učiniti s njima upita ih širiti. Konačno, posljednja stvar koju želite učiniti ne ubacite nešto ili brisanje nešto, nego ažurirati nešto. I to je učinio s ažuriranjem upita, a opet, ono stol. A što promijeniti ne želim napraviti? I na koji redak ili zapis ne Želim da se to promijenilo? Sva pitanja o SQL? OK. Dakle, imamo oko 15 minuta. I ovo je zadnji slide imam. I nadamo se, ovaj zadnji slajd Dobar Segue u problem postaviti, jer razumijevanje gdje želimo umetanje evidencije, brisati ih, odaberite ih, te ih ažurirati će nam pomoći razumjeti veći logiku i protoka problematičnih Set 7. Tako da znam sve odgovore na ta pitanja. Neću ti reći sve odgovore. No, ako netko drugi bi htjeli predstaviti pitanje na grupi ili odgovor na jedno od tih pitanja, možemo koristiti kao skakanje off točka za razgovarajte o problemu setu. Ili, ako netko ima više općenito Pitanje off problema skupa, osjećam slobodno pitajte to kao dobro. I možemo početi tamo. Imajte na umu da bude tiho je ranjavanje svima. Da. Ivanković: Pa je jedini način da prođe varijable i iz različitih web stranice, ili najviše odgovara način, korištenjem POST ili GET? JASON Hirschhorna: Pa da, to je najpovoljniji način za reći - kada netko ispunjava obrazac - dobiti informacije o drugom webu stranica, pomoću GET ili POST. Zbog okviru što smo pomoću u ovaj problem skupa, primijetit ćete da, puno puta smo donijeti novu stranicu. Ili ćemo mi pružiti još jednu datoteku, ne nužno drugu stranicu. Tako ćemo proći u varijablu. A onda, što čini HTML stranica, korištenjem Informacije iz tog varijablu. To nije tehnički prolazu informacija između različitih web stranica. To prolazi informacije između različitih datoteka. I tako bismo mogli koristiti bilo varijabla za to. Ali da, ako smo htjeli da prođe Informacije iz određene stranice na još jedna stranica, GET i POST bi biti način za to. Bilo koja druga pitanja u vezi Problem postaviti? OK. Idemo kroz, dakle, specifičan dio problema postaviti. Ti si idući u morati, u jednom trenutku, prikazati nečiji portfelj na zaslon. Što mislim kad kažem portfelja, u kontekstu ovog problema postaviti? Ivanković: To je kao da su dionice ima kako, brojne dionice oni oružje, cijena, a koliko Novac su ostavile. JASON Hirschhorna: To zvuči odlično. Dakle, želim prikazati sve dionice vlasnici su za svaku dionicu tvrtke dionice i vjerojatno koliko je to vrijedno, a potom odvojeno promjenjiva, koliko novca oni posjeduju. Tako kažu želim opisati to. Počnimo govori o tome kako sam mogao ići radi o tome, ono što stolovi sam Trebat će morati biti u mogućnosti to učiniti. Da - Ivanković: Pa korisnik, a onda, valjda možete napraviti stol pod nazivom Dionice ili nešto slično, što bi se koliko su ikada kupili. JASON Hirschhorna: OK. Zato ću morati stol pod nazivom Korisnici koji prati username, vjerojatno, vjerojatno neki ID, Vjerojatno lozinkom pojedinca. Ono što je nešto drugo što vam je Samo je rekao da je povezan? Netko osim Michaela, što je nešto drugo što je povezano s svaki korisnik, jedinstven za njih? PUBLIKA: ID. JASON Hirschhorna: ID - ono što je još jedna stvar koja smo Vjerojatno će htjeti prikazati na ovoj stranici? PUBLIKA: Njihovo ime. JASON Hirschhorna: Njihovo ime - ono što je Još jedna stvar vezana za to Poseban je problem postaviti? PUBLIKA: Što dionice oni posjeduju - JASON Hirschhorna: Tu će biti puno ono što dionice koje posjedujete. Što je jedna specifična vrijednost ipak, da će oni imati povezane s njima? Kako će oni kupiti i prodati svoje dionice? PUBLIKA: Gotovina. JASON Hirschhorna: Oni će imati gotovinu. Dakle, svaki korisnik će imati jedna vrijednost za novac. I to će biti jedinstven za svakog korisnika. Tako je u korisnikovom stolu, čini smisla staviti u gotovini. Moglo bi se, naravno, stvoriti još jedan tablica koja ima korisničkih brojeva i njihovih vrijednost novca. Ali, to nema smisla. To ima smisla samo staviti sve to u jednoj tablici. Tako ćemo imati stol s tim informacijama. A onda, što je za drugi stol ćemo imati? Rekli ste, stol dionica. Što smo stavljanjem u Tablica Dionice? Svatko, ideje - PUBLIKA: tvrtka. JASON Hirschhorna: Idemo staviti u ime Tvrtka, pa AAPL za Apple. Da. PUBLIKA: Koliko dionica i koliko vrijediš. JASON Hirschhorna: Koliko dionica, koliko vrijediš - što je nešto drugo mi treba u toj tablici? PUBLIKA: korisničko ime za indeks je. JASON Hirschhorna: User ID. Dakle, u toj tablici, mi ćemo Vjerojatno imate - Recimo, ako je to netko tko je vlasnik Tri dionice, tri reda, svaka s da korisnik ID ili da se pojedini korisničko ID, ali drugačije naziv tvrtke, različit broj dionica, vjerojatno, i različita cijena vrijednost za svaki od tih dionica. Opet, ono što želim reći da sada nije nužno provođenje, jer ste shvatili da su neki više učinkovitih načina kako to provesti. No, to je dobro mjesto za početak. OK. Dakle, to su dvije tablice koje imamo. Sada želimo prikazati ovu stranicu. Ono što je prva vrsta upita mi bi trebao napraviti. Na svakoj stranici, pretpostavlja se da je korisnik prijavljeni, imamo svoje korisničko ime. Dakle, što je prva vrsta Query moramo napraviti? Da. PUBLIKA: svojim korisničkim imenom. JASON Hirschhorna: Imamo svoje korisničko ime, kad smo kod počinju na počevši od naše stranice. Dakle, što je prva vrsta upita mi potrebno da bi, s obzirom na korisnikov ID? Išli smo preko četiri vrste. Postoji samo četiri moguća odgovora. Ivanković: To je odabir zapisa. JASON Hirschhorna: Odaberi - želimo odabrati iz korisničkog stol dobiti, recimo, njihov iznos novca. I možemo ispisati iznos novca na vrhu zaslona. OK. Koja je sljedeća vrsta Query želimo učiniti? Mi imamo neke druge stvari moramo prikazati. Oni koji se spremaju u drugoj tablici. Pa kako ćemo to? PUBLIKA: Možete odabrati za njih. JASON Hirschhorna: Odaberite - opet, postoje samo četiri opcije. Odaberite vjerojatno zvuči kao i onu pravu. Dakle, moramo napraviti još jedan upit izdvajanja, ponovno koristiti taj korisnički ID. I sada, želimo se vratiti ne samo jedan red, bu sve retke koji odgovaraju našim kriteriji, gdje korisnik ID jednako 1. A onda možemo otići i pustiti petlju samo ispisati sve one na zaslonu, Možda isprintati tvrtku od svaki od onih koji na zaslonu. Velika, to zvuči kao da je prikazivanje portfelja, ne puno više složeniji od toga. OK, onda korisnik odluči da su dosta novca preostao. I oni žele kupiti neke više dionice dionica. Recimo, oni već posjedujete Ova tvrtka je dionica previše. Dakle, oni idu na vašem buy stranici. Oni ulaz ime tvrtke. Što je upita, nakon unosa Naziv tvrtke, to trebate izvršavati sljedeće? Da. PUBLIKA: Update. JASON Hirschhorna: Update - i što Tablica želite ažurirati? PUBLIKA: Njihov stol, temelji na njihov JMBG? JASON Hirschhorna: Pa ažurirati Ne korisnikova stol - pa ažurirati tablicu dionice, gdje ID korisnika ne samo da odgovara, ali Naziv dionica također odgovara. Vi ćete dobiti neke vrijednosti. I onda, da ćete želite uzeti tu vrijednost i dodati međutim mnoge dionice su Želite kupiti od njega. Dakle, vi ne želite da se slijepo prebrisati tu vrijednost. No, što se, u stvari, uzeti taj početni Cijenimo i samo ga ažurirati. Možete raditi kao plus jednako, nego samo jednakima. Ono je nešto ipak - ako smo razmišljam o tome, a mi želimo da bude kao robustan moguće - da radimo prije nego što smo pokrenuti taj ažuriranja upita? Oni žele kupiti pet godina Apple. Svaka dionica Applea je 200 dolara. PUBLIKA: Trebamo provjeriti novac na prvom mjestu. JASON Hirschhorna: Trebamo prvo provjerite novac. Trebali bismo bili sigurni da imati dovoljno novca. Kakav upit možemo izvršiti na bi bili sigurni da imate dovoljno novca? Ivanković: Još Select. JASON Hirschhorna: Odaberi - smo odabrali na temelju njihovih korisnika ID, dobiti svoju vrijednost novca. Da li neki brzi matematiku. A ako to prođe skupiti, imaju dovoljno gotovine. Tada možemo pokrenuti našu nadopunu. Ili možda, ako ne, onda ćemo proći. Mi im dati upozorenje. OK. Kažu da nemaju tvrtku. Oni kupuju novu tvrtku. Oni kupuju Microsoft. Kakav upite ne želimo učiniti, ako žele kupiti Microsoft? A oni ne posjeduju nikakvu Microsoft. Ne Manu, bilo tko drugi, bilo tko osim Marcusa? Carlos - PUBLIKA: Odaberite, kako bi bili sigurni imaju dovoljno novca. JASON Hirschhorna: Zvuči dobro. Ivanković: I onda ste umetnuli Na [nečujan]. JASON Hirschhorna: Točno, mi smo će se želite umetnuti u tablicu dionica. I mi ćemo se želite umetnuti. Možemo ubaciti svoje korisničko ime, ime tvrtke, i koliko dionica žele kupiti. Koje su neke druge operacije koje su stranice ili funkcionalnost koju ste će morati provoditi u P-set 7, da bismo trebali ići preko? Publika: Zapravo, nekako sam se pitanje o ovom jednom. Prije prikaz portfelja, trebala što provjerava Yahoo web stranice na Provjerite je li cijene dionica nisu promijenili? JASON Hirschhorna: To zvuči kao dobra ideja. Dakle, ono što je Marcus govori je, OK, dionica Cijene se stalno mijenjaju. U dionice koje posjeduju stol, naš stol pod nazivom Dionice, mogli smo spasiti Cijene dionica su ga kupili u. No, to se ne čini da je robustan, jer je cijena dionice je stalno će se to promijeniti. Dakle, u stvari, vjerojatno ne treba spremiti cijenu dionica. No, svaki put kad pokažu svoje portfelja, osvježite ili ažurirati Cijena dionice. A ako imate - i imate već. Znam da ste svi gledali u Problem postavlja natrag već. Vi ste shvatili da smo pismeni neki kod za vas koji će vam omogućiti doći na cijenu dionica, dao je ime tvrtke. Pa da, to je vjerojatno zvuči malo robusniji. No, taj stol ne mora nužno spremiti cijenu dionica. OK. Koje su neke druge funkcionalnosti vi potrebno provesti ovaj tjedan da možemo razgovarati o tome? Želim govoriti o njima. Što želiš razgovarati o tome? To je vjerojatno u ovom spec.. Ja bih samo dođite do dna od spec. i pitati me prvu riječ vidiš da nema smisla. Jedna druga funkcionalnost - pričajmo o jednom. Počet ćemo tamo. PUBLIKA: Snimanje povijesti. JASON Hirschhorna: Snimanje Povijest, veliki. Tako da ćeš morati pratiti o povijesti transakcija. Dakle, želite pratiti svaki Vrijeme kupuju ili prodaju dionica. Kupio sam dionice. Mi samo rekao, to vjerojatno ima smisla uključiti Select, kako bi dobili njihove iznos gotovine i navratite. Vjerojatno je pametno onda uključiti umetanje ili ažuriranje, ovisno o da li ili ne oni posjeduju taj stock. Ako želimo da pratimo Povijest, kako možemo to učiniti? Znači li to da idu u tablici dionice? Ivanković: Ne. JASON Hirschhorna: Ne vjerojatno ide u drugu tablicu. Budući da ste kupiti 10 Dionice Applea. Tada ćete kupiti još 10 dionica. Želite vuču posebnu evidenciju. To su dvije odvojene transakcije. Dakle, imamo još jedan stol, stol povijest. Pa opet, mi kupiti. Mi izvršiti odabir, a zatim Insert ili Update. Što nam je činiti dalje? Što je sljedeći upit ćemo izvršiti kad kupujete nešto? Mi želimo da pratimo povijest. Da. PUBLIKA: Vi želite pratiti propalih transakcija previše. JASON Hirschhorna: Pa, prije nego što smo kažu kakvu vrstu posla, ono što želimo - Koja vrsta upita, Carlos, bi omogućuju nam da pratimo stvari u cjelini? Imate četiri pogodaka. Koji ti misliš? PUBLIKA: Ažuriranje. JASON Hirschhorna: Ne ažurirati. Koji je vaš drugi pogodak? PUBLIKA: Odabir. JASON Hirschhorna: Ako želite zadržati Staza na nešto, vjerojatno želite zapisati negdje ili ga spremiti za kasnije. Dakle, ako ne ažuriraju, a zatim - PUBLIKA: Umetnite ga. JASON Hirschhorna: Insert, tamo idemo. Da, tako da odaberete količinu novčani su, zvuči odlično. Oni nemaju dovoljno novca. Taj posao ne ide na posao. No, ne trebate pratiti transakcija, ako to ne radi. Ili možete, ako želite dati im teško vrijeme. Ali vi ne morate. Zatim, umetanja ili ažuriranja u njihove dionice stolu. I sada, imate svoj drugi stol. Imate svoju povijest stol ili kako god to želite nazvati. I u toj tablici, idete umetnuti novi redak. To je vjerojatno će se imate korisnički ID. To je vjerojatno će imati naziv zaliha. To je vjerojatno će imati put da su to učinili. I u ovom slučaju, vi ćete vjerojatno želite umetnuti cijenu. Jer za povijest, ne znaš zanima me što je sadašnja cijena. Vi briga što je cijena kada oni kupili ili prodali nešto. Dakle, to zvuči kao, provesti kupnju cijelosti uključuje nekoliko različitih SQL upita, ali iskreno, ne toliko code u ukupnom poretku. OK. I da brine o povijesti. Recimo, želimo prikazati našu povijest. Razgovarali smo o prikazivanju naš portfelj. Kako bi smo prikazati našu povijest? PUBLIKA: Vjerojatno kronološki. JASON Hirschhorna: Vjerojatno kronološki - ono upita misliš da bih koristiti? PUBLIKA: odaberite. JASON Hirschhorna: odaberite - odaberite možda sve retke iz tog stola koji odgovara korisnički ID, a zatim prikazati ih kronološki, Zvuči dobro. Trebamo li pisati kod za sortirati kroz taj popis? Ivanković: Ne, zato što je rekao nam je uzlazno i spuštanje stvar. JASON Hirschhorna: stvar? Publika: Da. JASON Hirschhorna: Da. OK, ne pretvoriti u kod mene, da ručno razvrstava kroz vaše upite, da ih sortirati. Taj broj je već dao. Možete napisati upit izdvajanja koji razvrstava stvari. Sortirati ih unaprijed i a zatim ih ispisati. To čini puno više smisla raditi ga na taj način, nego na drugi način. Da. Ivanković: Ne trebamo sortirati ih prije toga? Znači li to da vas znači svojevrsni ih u bazu podataka? JASON Hirschhorna: Odaberi upit ih vraća na vas sortirani. Tako to, a ne samo ih ima vratiti k vama u slučajnim redoslijedom i onda ih sortirati sebe. Da. PUBLIKA: Da li postoji način da ga zadrži razvrstani u samoj bazi podataka, tako da se nemate za sortiranje to svaki put kada - PUBLIKA: Možete li ga umetnite sortirani? JASON Hirschhorna: Pitanje - Kao da je važno da su stvari razvrstani u bazi podataka? Ivanković: Ne. JASON Hirschhorna: Pa, oni su razvrstani. Oni su razvrstani kronološki. Ali pretpostavimo da su se stvari sortiraju kronološki, od vrha do dna. Imamo Google obrazac. Kad god netko reagira na našoj Google formirati, to samo dobiva staviti u dno tog stola. Je li bitno da su stvari razvrstani kronološki ne? Ivanković: Ako to nije kronološki, Nemate li to riješiti svaki put uzmete informacije out. No, ako je već riješeno, zar ne Ne morate učiniti da dodatni Funkcija poziva? JASON Hirschhorna: Pa to je zapravo dobra stvar. Za nas kao programera, možda smeta. I mi možda želite pronaći bazu podataka da ne sortirati stvari kronološki. Ili postaviti našu bazu podataka, tako da se drži stvari sortirani korisničkog imena. Dakle, na taj način, recimo, imamo 1.000 ID korisnika. Ili Facebook, imamo milijune od korisničkih imena. Ne želimo da naš stol da samo biti slučajna ili naša baza podataka biti slučajan. Bilo bi lijepo kad bi svi ID korisnika su razvrstani. Pa onda bismo mogli pokrenuti binarnih pretraživanja na našem stolu, a onda samo naći specifičan komad. Tako da, ovisno o tome - ako mogu razvijati, smo možda želite pronaći bazu podataka koji je zadržao stvari poredani u različite način, tako da se ove upite bi se manje vremena. A mi nismo morali proći kroz naše Ukupna baza podataka u svakom retku dao stol. No, na razini na kojoj radimo na, mi ne morate brinuti o održavanju stvari riješeno. Možemo pretpostaviti da je vrijeme koje je potrebno da upita za pokretanje će biti zanemariva, obzirom na to što imamo posla. Ali da, super ideja - kao što smo razmjeru, to bi moglo imati smisla za dizajn naše baza podataka u malo drugačiji način. Jedna konačna dizajn baze podataka što želim napomenuti kako je dobro, jer će se se ocjenjuju, ili je postigao dosta, na Dizajn baze podataka. Razgovarali smo o tome. Novac je jedinstven za svakog korisnika. Dakle, imaš tablicu pozvao gotovinu da ima svoje korisničko ime i njihovu količinu gotovina, a zatim stol pod nazivom Korisnici koji ima svoje korisnika ID i njihovo ime. Te tablice map na svaku drugi jedan-na-jedan. To vjerojatno ima smisla za da budu jedan stol. Dakle, pretpostavimo da imate korisnik tablica koja prati korisnička imena i novca. Sada imate tablicu koja ima dionice pojedinac posjeduje. I pojedinac može posjedovati više od jedne dionice. Dakle, to ne mapirati na međusobno jedan-na-jedan. To nema smisla da imaju jednu diva tablica koja ima 30 zapise koji sve ponoviti korisničko ime, da svi ponovite lozinku, da sve ponoviti nekoliko gotovini. No, svaka od njih ima možda drugačiji zaliha Naziv ili drugačija cijena dionica. To nema smisla imati da mnoge velike evidencije. Budite pametni o tome kada ste stvorili njih baze podataka, tako da se ne radi nešto glupo kao što je to, ponavljajući puno nepotrebnih informacija. OK. Imamo dvije minute. Ljudi izvan smo uzbuđeni da se pridruže mi ili vjerojatno, vjerojatno, pokretanje vlastite klase. Da li itko ima bilo kakvih pitanja prije nego što smo završiti? OK, to je doista kovitlac kroz sve. Ispričavam se da to mora biti tako brzo i da mi ne može biti kao hands-on ovaj tjedan kako bih ja volio bi bili. Ali, ako imate bilo kakvih pitanja u vezi ništa mi priđe ili nešto taj problem postaviti - Uz pretpostavku da ste ga pročitali i staviti u dobre vjere truda - slobodno me e-mail ili kontaktirajte me. Ja sam više nego sretni da rade kroz vaš broj s vama ili odgovoriti na bilo pitanja koja imate. Imajte na umu da, ovaj tjedan, puno Vaše vrijeme će biti utrošeno učenje Nova sintakse i pokušava razumjeti Kako napisati SQL upita ili PHP funkcije ili se bave MVC okvir. Puno vremena ovaj tjedan vjerojatno neće se pokušava shvatiti luda logika da smo molili da učinite. Puno toga smo upravo otišao je relativno jednostavan. Dakle, to ne znači čekati do posljednje minute. No, to ne znači prilagoditi kako ćete učiniti vaš raditi u skladu s tim, kako bi bili sigurni ti si razumijevanje i učenje sintaksu. Pa ti nisi, sve odjednom, znajući točno ono što želite učiniti, , ali bez ideje kako točno to napisati. OK, ja ću vas vidjeti sljedeći tjedan.