1 00:00:00,000 --> 00:00:08,802 2 00:00:08,802 --> 00:00:11,140 >> JASON Hirschhorn: Välkommen alla till vecka åtta. 3 00:00:11,140 --> 00:00:13,420 Vi har en spännande vecka framför oss. 4 00:00:13,420 --> 00:00:21,390 Ni har duva under den gångna par föreläsningar till PHP, SQL, HTML, CSS, så 5 00:00:21,390 --> 00:00:27,270 fyra helt nya språk som kommer att ta upp resten kursen. 6 00:00:27,270 --> 00:00:30,750 Vi får också lära dig ett par andra språk före kursens slut. 7 00:00:30,750 --> 00:00:35,200 Men hur som helst, naturligtvis, är detta en mycket spännande tid i CS50, nu du 8 00:00:35,200 --> 00:00:41,200 behärskar C, skenbart, och är går vidare till programmering för webbplatser. 9 00:00:41,200 --> 00:00:45,320 >> Så den här veckan kommer vi att gå på en virvlande tur genom de fyra 10 00:00:45,320 --> 00:00:50,200 språk jag nyss nämnde, HTML, CSS, PHP och SQL. 11 00:00:50,200 --> 00:00:53,340 Och förhoppningsvis kommer vi att lämna gott om tid i slutet av avsnittet för att prata 12 00:00:53,340 --> 00:00:58,800 om denna veckas P set och svar alla frågor du alla har. 13 00:00:58,800 --> 00:01:03,500 >> Varje vecka, samma lista över resurser för dig, för att hjälpa dig med veckans 14 00:01:03,500 --> 00:01:05,780 problembild och gå över materialet - 15 00:01:05,780 --> 00:01:09,440 men denna vecka i synnerhet för dessa webbaserade problemet uppsättningar finns det en 16 00:01:09,440 --> 00:01:12,350 mängd andra resurser ut där som du kommer sannolikt 17 00:01:12,350 --> 00:01:13,500 hitta otroligt hjälpsamma. 18 00:01:13,500 --> 00:01:14,670 Jag har dem här. 19 00:01:14,670 --> 00:01:17,570 Jag kommer att skicka dig detta efter avsnitt, och detta också vara online. 20 00:01:17,570 --> 00:01:21,700 >> Men framför allt finns det gott stora resurser ute. 21 00:01:21,700 --> 00:01:24,380 Det finns också några inte så stor dem, så var försiktig med dem. 22 00:01:24,380 --> 00:01:28,210 Men på denna bild, jag har fyra bra källor, en för var och en av 23 00:01:28,210 --> 00:01:30,600 språk som du kommer att arbeta med denna vecka - 24 00:01:30,600 --> 00:01:35,090 en referensmall för HTML, ett referensblad för CSS. 25 00:01:35,090 --> 00:01:38,320 Denna rätt här är PHP manualen. 26 00:01:38,320 --> 00:01:42,110 >> Så istället för att skriva man och sedan en PHP kommando, det är här du skulle 27 00:01:42,110 --> 00:01:46,980 går att slå upp funktionsprototyp och exempel och även en del tips och 28 00:01:46,980 --> 00:01:48,770 tricks för att använda PHP funktioner. 29 00:01:48,770 --> 00:01:51,590 Du kommer att använda denna webbplats ofta, så jag uppmuntrar dig att bli 30 00:01:51,590 --> 00:01:52,280 bekant med den. 31 00:01:52,280 --> 00:01:55,860 Det kan vara lite tekniskt, men det ger också en ton av resurser och 32 00:01:55,860 --> 00:02:00,440 exempel för alla funktioner och även andra, som hur man använder arrayer eller 33 00:02:00,440 --> 00:02:01,500 olika typer av variabler. 34 00:02:01,500 --> 00:02:03,480 Denna webbplats är till stor hjälp för PHP. 35 00:02:03,480 --> 00:02:07,160 >> Och sedan, för SQL, om du dök in här veckans problem set, vet du 36 00:02:07,160 --> 00:02:09,160 att vi använder en databas. 37 00:02:09,160 --> 00:02:13,340 Och vi komma åt databasen via en relativt trevligt användargränssnitt. 38 00:02:13,340 --> 00:02:15,760 Eller det är ett sätt att komma åt den databasen. 39 00:02:15,760 --> 00:02:19,670 Användargränssnittet är kallas phpMyAdmin. 40 00:02:19,670 --> 00:02:23,400 Det finns en flik SQL, som vi ska titta på senare i dag. 41 00:02:23,400 --> 00:02:28,230 >> Och du kan skriva in sina prov SQL frågor, att göra saker i din databas 42 00:02:28,230 --> 00:02:29,780 och sedan köra dessa frågor. 43 00:02:29,780 --> 00:02:31,850 Och om de är korrekta, det ska säga, den här är korrekta. 44 00:02:31,850 --> 00:02:33,480 Om de är felaktiga, det ska säga, det är fel. 45 00:02:33,480 --> 00:02:37,260 Det är ett bra ställe att öva din SQL-frågor innan du skriver in dem i 46 00:02:37,260 --> 00:02:39,990 din kod, se till att du ha formatet korrekt. 47 00:02:39,990 --> 00:02:42,080 >> Slutligen, en annan webbplats på här. 48 00:02:42,080 --> 00:02:45,390 Detta är den webbplats där du kan gå och kontrollera att din 49 00:02:45,390 --> 00:02:47,520 HTML-kod är giltig. 50 00:02:47,520 --> 00:02:51,250 Så innan du slår dina problem inställd denna vecka, se till att alla 51 00:02:51,250 --> 00:02:52,690 HTML är giltig. 52 00:02:52,690 --> 00:02:55,840 >> Förra veckan hade du kör valgrind, till se till att du inte hade några minnesläckor. 53 00:02:55,840 --> 00:02:59,050 Denna vecka, måste du se till att alla om din kod är giltig HTML5. 54 00:02:59,050 --> 00:03:02,140 Om det inte är giltigt HTML5, du kommer att få poäng från. 55 00:03:02,140 --> 00:03:03,110 >> Så se till att - 56 00:03:03,110 --> 00:03:05,700 bara för att det fungerar inte menar att det är helt giltiga. 57 00:03:05,700 --> 00:03:09,770 Kör din kod via denna webbplats innan du slår i. 58 00:03:09,770 --> 00:03:10,810 Återigen, här är hemsidan. 59 00:03:10,810 --> 00:03:15,150 >> Om du har synpunkter på mig, vi har några fler avsnitt kvar, 60 00:03:15,150 --> 00:03:18,100 och jag vill alltid göra vad jag kan för att ge er alla med den bästa delen 61 00:03:18,100 --> 00:03:19,460 upplever möjligt. 62 00:03:19,460 --> 00:03:22,115 Så låt mig veta om det är något jag kan göra för att förbättra eller om det finns 63 00:03:22,115 --> 00:03:24,730 saker du ser att jag kunde göra bättre. 64 00:03:24,730 --> 00:03:25,710 Tack, Avi. 65 00:03:25,710 --> 00:03:27,610 Sätt den på webbplatsen. 66 00:03:27,610 --> 00:03:31,870 >> Detta var cykeln jag hade när jag var, låt oss säga, fyra hemma. 67 00:03:31,870 --> 00:03:34,500 Det är en Teenage Mutant Ninja Turtle cykling, om du inte kan berätta, 68 00:03:34,500 --> 00:03:35,345 eftersom det är lite suddiga. 69 00:03:35,345 --> 00:03:38,900 Du kan få det nu på ToysRus för, tror jag, ungefär $ 100. 70 00:03:38,900 --> 00:03:42,690 >> Men det inslag i denna cykel som jag vill ha dig att vara uppmärksam på är dessa 71 00:03:42,690 --> 00:03:43,480 här. 72 00:03:43,480 --> 00:03:44,980 Dessa är stödhjul. 73 00:03:44,980 --> 00:03:50,230 Fram tills nu, har du varit hand genom C. Och vi har tagit lång 74 00:03:50,230 --> 00:03:53,610 tid, två månader plus, att gå igenom C. 75 00:03:53,610 --> 00:03:55,440 >> För dessa närmaste språk, Vi kommer inte att 76 00:03:55,440 --> 00:03:56,600 spendera så mycket tid. 77 00:03:56,600 --> 00:03:58,350 De stödhjul är på väg bort. 78 00:03:58,350 --> 00:04:01,360 Och vi kommer att dyka in i dessa språk snabbt och gå igenom 79 00:04:01,360 --> 00:04:04,720 dem snabbt, vilket är inte att säga att Vi kommer bara att lämna dig simma 80 00:04:04,720 --> 00:04:07,590 ute med något sätt att stödja själv eller räkna ut hur dessa 81 00:04:07,590 --> 00:04:08,270 språk fungera. 82 00:04:08,270 --> 00:04:10,750 Jag bara visade dig en lista över resurser för att hjälpa dig. 83 00:04:10,750 --> 00:04:14,560 >> Men tänk på att PHP är otroligt liknar C. Vi kommer att gå över 84 00:04:14,560 --> 00:04:15,970 det idag och några av skillnaderna. 85 00:04:15,970 --> 00:04:17,990 Men för det mesta, det finns för slingor. 86 00:04:17,990 --> 00:04:18,750 Det finns om förhållandena. 87 00:04:18,750 --> 00:04:20,680 >> När du vill lösa ett problem, du kommer att använda en 88 00:04:20,680 --> 00:04:22,029 kombination av dessa. 89 00:04:22,029 --> 00:04:22,920 Det är väldigt likt. 90 00:04:22,920 --> 00:04:26,040 Logiken bör vara mycket lik vad du har gjort tidigare. 91 00:04:26,040 --> 00:04:29,810 Vad är egentligen nytt denna vecka är det syntax och hur du uttrycker dig. 92 00:04:29,810 --> 00:04:32,850 Och du vill skriva en for-loop, men det kanske ser lite annorlunda. 93 00:04:32,850 --> 00:04:35,910 Eller du vill skapa en array, men det kanske ser lite annorlunda. 94 00:04:35,910 --> 00:04:39,920 >> Så kom ihåg att gå framåt, logiken är mycket lik den som 95 00:04:39,920 --> 00:04:41,020 du har gjort tidigare. 96 00:04:41,020 --> 00:04:44,030 Men du nu kommer att stöta en hel del ny syntax. 97 00:04:44,030 --> 00:04:47,600 Och vi kommer inte att gå igenom alla delar av syntaxen. 98 00:04:47,600 --> 00:04:53,020 Så det är verkligen upp till dig att lista ut, på nätet eller genom att nå ut på 99 00:04:53,020 --> 00:04:58,770 Diskutera eller maila mig eller prata med varandra, hur man skriver saker i 100 00:04:58,770 --> 00:05:02,580 PHP och hur man skriver SQL-frågor och hur man använder HTML och CSS. 101 00:05:02,580 --> 00:05:06,160 >> Men bara så du vet, det är inte det vi försöker kasta dig ut där 102 00:05:06,160 --> 00:05:07,630 igen för att simma hajarna. 103 00:05:07,630 --> 00:05:10,600 Detta är vad du förmodligen kommer att göra med ditt slutprojekt, om du väljer en 104 00:05:10,600 --> 00:05:15,150 annat språk, som IOS och Mål C, eller om du väljer att starta 105 00:05:15,150 --> 00:05:17,580 programmering i framtiden och dyka in i andra språk, 106 00:05:17,580 --> 00:05:19,210 som Python eller Ruby. 107 00:05:19,210 --> 00:05:23,380 >> Ofta är logiken mycket liknande över alla dessa språk, och 108 00:05:23,380 --> 00:05:24,560 Syntaxen är det som är annorlunda. 109 00:05:24,560 --> 00:05:27,560 Och det kommer att vara upp till dig, som programmerare, för att gå använda webben 110 00:05:27,560 --> 00:05:30,790 resurser tillgängliga för dig och figur ut hur man uttrycker det du vet hur 111 00:05:30,790 --> 00:05:33,200 att uttrycka i C, i ett annat språk. 112 00:05:33,200 --> 00:05:36,410 Så det här är en bra metod, både för din slutprojekt, och igen, för 113 00:05:36,410 --> 00:05:40,150 vad kommer du förmodligen att göra när du lämnar CS50. 114 00:05:40,150 --> 00:05:42,550 >> Innan vi går vidare, inte vem som helst har några frågor om vad 115 00:05:42,550 --> 00:05:43,800 Jag har gjort så här långt? 116 00:05:43,800 --> 00:05:52,450 117 00:05:52,450 --> 00:05:53,120 Bra. 118 00:05:53,120 --> 00:05:53,910 Låt oss gå vidare. 119 00:05:53,910 --> 00:05:59,090 >> Först ska vi prata en kort stund om kommandot chmod. 120 00:05:59,090 --> 00:06:02,420 Detta kommer vi att göra i början av dina problem inställd. 121 00:06:02,420 --> 00:06:05,050 En av de allra första instruktioner för dig, när du ladda ner 122 00:06:05,050 --> 00:06:09,280 fördelning kod, är att ändra behörigheter för filer och 123 00:06:09,280 --> 00:06:11,350 kataloger du tar emot. 124 00:06:11,350 --> 00:06:16,430 >> Kan någon gissa eller veta varför det är viktigt att ändra 125 00:06:16,430 --> 00:06:20,012 behörigheterna för vissa filer och kataloger på din dator? 126 00:06:20,012 --> 00:06:20,956 Avi - 127 00:06:20,956 --> 00:06:24,796 >> PUBLIK: Då ingen utom för du kan se vad du gör? 128 00:06:24,796 --> 00:06:25,470 >> JASON Hirschhorn: OK. 129 00:06:25,470 --> 00:06:28,330 Så om vi vill sätta något på webben och du har behörigheter satt att 130 00:06:28,330 --> 00:06:30,960 bara du kan se någonting, då ingen annan kan 131 00:06:30,960 --> 00:06:32,530 se vad du har skapat. 132 00:06:32,530 --> 00:06:33,380 Vad mer? 133 00:06:33,380 --> 00:06:34,320 Yeah. 134 00:06:34,320 --> 00:06:37,360 >> PUBLIK: Förhindra någon annan som du vill inte se något, från 135 00:06:37,360 --> 00:06:37,870 ser något. 136 00:06:37,870 --> 00:06:38,820 >> JASON Hirschhorn: Det är sant också. 137 00:06:38,820 --> 00:06:40,730 Det är nog en del kod som du skriver, att du inte 138 00:06:40,730 --> 00:06:42,690 vill att folk ska se. 139 00:06:42,690 --> 00:06:46,190 Du är förmodligen OK med folk ser HTML och JavaScript. 140 00:06:46,190 --> 00:06:50,360 Men din PHP, en back end-kod, en hel del logiken i din kod, kanske det 141 00:06:50,360 --> 00:06:53,200 saker som lagrar en del av dina lösenord för din databas, gör du inte 142 00:06:53,200 --> 00:06:55,880 vill att folk ska se att typen av information. 143 00:06:55,880 --> 00:06:59,420 >> Så det är viktigt att varje fil och katalog skapar vi har behörigheter 144 00:06:59,420 --> 00:07:03,660 som gäller huruvida vi vill människor att se dessa typer av filer och 145 00:07:03,660 --> 00:07:08,030 kataloger och kunna komma åt dem och eventuellt även ändra dem. 146 00:07:08,030 --> 00:07:09,920 >> Så det finns tre typer av behörigheter. 147 00:07:09,920 --> 00:07:14,980 Det finns en läsrättigheter, vilket innebär Du kan läsa en fil eller en lista på 148 00:07:14,980 --> 00:07:16,490 innehållet i katalogen. 149 00:07:16,490 --> 00:07:20,820 Där är skrivrättigheter, vilket innebär att du kan ändra en fil eller förändring 150 00:07:20,820 --> 00:07:24,910 en katalog och sedan exekvera tillstånd, vilket innebär att du kan 151 00:07:24,910 --> 00:07:31,060 exekvera en fil eller snarare, du kan flytta in i en katalog. 152 00:07:31,060 --> 00:07:34,470 Så CD någonting, om du har behörighet att köra den, kan du flytta 153 00:07:34,470 --> 00:07:37,300 in i den katalogen. 154 00:07:37,300 --> 00:07:38,510 >> Detta är ett kort exempel. 155 00:07:38,510 --> 00:07:40,700 Återigen, har du gått över denna i problemet inställd. 156 00:07:40,700 --> 00:07:44,630 Men jag skapar en katalog med kommandot mkdir. 157 00:07:44,630 --> 00:07:46,320 Jag ändra behörigheterna. 158 00:07:46,320 --> 00:07:48,505 Dessa två rader gör faktiskt exakt samma sak. 159 00:07:48,505 --> 00:07:52,580 Det är för att illustrera att syntaxen för ändra behörigheter, oavsett om du gör 160 00:07:52,580 --> 00:07:55,600 den a + x eller 711, som är desamma. 161 00:07:55,600 --> 00:07:57,550 >> Vi ser ner på denna trevliga bord. 162 00:07:57,550 --> 00:07:59,960 Vi ser att det finns användare behörigheterna först. 163 00:07:59,960 --> 00:08:03,280 Det är du, den enskilde, och servern, potentiellt. 164 00:08:03,280 --> 00:08:05,070 Och så finns det grupp och andra. 165 00:08:05,070 --> 00:08:09,350 Skillnaderna mellan de två relativt triviala. 166 00:08:09,350 --> 00:08:11,170 Så generellt, vi klumpa dem tillsammans. 167 00:08:11,170 --> 00:08:14,380 >> Men i grunden, om vi har en fil heter ingår att vi vill vara 168 00:08:14,380 --> 00:08:18,760 kunna redigera oss själva och att vi vill andra för att kunna utföra, 169 00:08:18,760 --> 00:08:20,560 det tillstånd 711. 170 00:08:20,560 --> 00:08:22,390 Och vi ser att ned här i denna tabell. 171 00:08:22,390 --> 00:08:24,730 Vi har en läsa, skriva och köra. 172 00:08:24,730 --> 00:08:26,790 För var och en av oss, vill vi kunna göra dem. 173 00:08:26,790 --> 00:08:30,160 Group och andra, vi bara vill dem för att kunna köra. 174 00:08:30,160 --> 00:08:33,860 >> Vårt sätt att översätta det i ett antal 175 00:08:33,860 --> 00:08:36,870 tillstånd är genom binär. 176 00:08:36,870 --> 00:08:41,780 Så om vi har tre sådana, är en 1 som i sådana kolumnen, en 1 i tvåor 177 00:08:41,780 --> 00:08:43,049 kolumn, en en de fyra kolumnen. 178 00:08:43,049 --> 00:08:45,180 Det är 7 rätt där. 179 00:08:45,180 --> 00:08:47,450 Och detta tillstånd är 1. 180 00:08:47,450 --> 00:08:48,390 Detta tillstånd är 1. 181 00:08:48,390 --> 00:08:54,200 Så 711 då är det samma som att ge själva läsa, skriva och köra, 182 00:08:54,200 --> 00:08:56,660 och alla andra kör privilegier. 183 00:08:56,660 --> 00:08:59,180 >> Denna linje här, vi generellt kommer att ha läsa och skriva när vi 184 00:08:59,180 --> 00:09:00,250 skapa en katalog. 185 00:09:00,250 --> 00:09:04,650 Så här linjen här lägger bara köra privilegier till alla. 186 00:09:04,650 --> 00:09:07,450 Så det skulle vara besläktad med, i Utöver det vi har, 187 00:09:07,450 --> 00:09:09,930 tillsätta en, en, en för alla. 188 00:09:09,930 --> 00:09:13,880 >> Detta är det onödigt att lägga läsa och skriva. 189 00:09:13,880 --> 00:09:16,130 Men om du ska använda siffrorna, du kan inte bara lägga till något. 190 00:09:16,130 --> 00:09:19,070 Du skriver över allt vad tillstånd var där och genomföra dem med den nya 191 00:09:19,070 --> 00:09:20,920 nummer som du ger. 192 00:09:20,920 --> 00:09:21,930 Det var ganska snabbt. 193 00:09:21,930 --> 00:09:24,115 Är det någon som har några frågor om hur du ändrar behörigheter? 194 00:09:24,115 --> 00:09:28,460 195 00:09:28,460 --> 00:09:28,950 >> OK. 196 00:09:28,950 --> 00:09:32,480 Om jag har en PHP-fil, vilka behörigheter vill jag att den ska ha? 197 00:09:32,480 --> 00:09:36,638 198 00:09:36,638 --> 00:09:38,780 Detta är i problemet set spec. 199 00:09:38,780 --> 00:09:41,590 Så du kan titta på spec och sedan läsa mig svaret. 200 00:09:41,590 --> 00:09:45,820 201 00:09:45,820 --> 00:09:48,605 >> PUBLIK: Du vill att användaren ska har läst-skrivrättigheter. 202 00:09:48,605 --> 00:09:51,080 Och du vill att alla annat för att ha någonting. 203 00:09:51,080 --> 00:09:53,060 >> JASON Hirschhorn: Och vad nummer är det? 204 00:09:53,060 --> 00:09:53,480 >> PUBLIK: 600. 205 00:09:53,480 --> 00:09:54,840 >> JASON Hirschhorn: 600. 206 00:09:54,840 --> 00:09:59,550 Så chmod 600 - när du skriver ut en PHP-fil, chmod det till 600. 207 00:09:59,550 --> 00:10:00,370 OK. 208 00:10:00,370 --> 00:10:01,890 Jag har en katalog. 209 00:10:01,890 --> 00:10:04,870 Någon förutom Jeff, Jag har en mapp. 210 00:10:04,870 --> 00:10:08,060 Vilka behörigheter behöver jag vill att ge till den mappen - 211 00:10:08,060 --> 00:10:11,620 även i problembild spec, precis nedanför detta svar eller 212 00:10:11,620 --> 00:10:14,840 föregående svar? 213 00:10:14,840 --> 00:10:16,160 Också eventuellt på bilden - 214 00:10:16,160 --> 00:10:16,450 Marcus. 215 00:10:16,450 --> 00:10:17,230 >> PUBLIK: För 216 00:10:17,230 --> 00:10:18,180 mapp, är det 711. 217 00:10:18,180 --> 00:10:19,590 JASON Hirschhorn: 711 - 218 00:10:19,590 --> 00:10:21,230 så en mapp, du vill ge 711. 219 00:10:21,230 --> 00:10:25,280 Du vill kunna läsa den mappen, byta kataloger, flytta in 220 00:10:25,280 --> 00:10:25,785 den mappen. 221 00:10:25,785 --> 00:10:28,865 Och du vill att alla andra ska kunna att navigera i den mappen, men 222 00:10:28,865 --> 00:10:30,790 inte nödvändigtvis ändra innehållet. 223 00:10:30,790 --> 00:10:33,720 Vad sägs om en icke-PHP-fil, säga, en JavaScript-fil? 224 00:10:33,720 --> 00:10:36,090 Vilka behörigheter vill vi ha för att ge den typen av fil? 225 00:10:36,090 --> 00:10:37,020 >> PUBLIK: 644. 226 00:10:37,020 --> 00:10:38,030 >> JASON Hirschhorn: 644 - 227 00:10:38,030 --> 00:10:40,010 varför vi vill ge det 644? 228 00:10:40,010 --> 00:10:42,880 >> PUBLIK: Att låta andra människor läsa den. 229 00:10:42,880 --> 00:10:44,840 Och du läsa eller skriva det. 230 00:10:44,840 --> 00:10:48,540 >> JASON Hirschhorn: Så rätt, alla annars kan läsa att JavaScript-fil. 231 00:10:48,540 --> 00:10:51,420 Och du kan ändra på det, förutom för att kunna läsa den. 232 00:10:51,420 --> 00:10:54,970 Så en av de vanligaste buggar folk har med detta problem set och deras 233 00:10:54,970 --> 00:10:58,880 slutprojekt, om det är en webbaserad final Projektet är, kommer de inte ha satt 234 00:10:58,880 --> 00:11:00,170 rätt behörighet. 235 00:11:00,170 --> 00:11:03,180 Och de kommer inte att kunna att se deras hemsida. 236 00:11:03,180 --> 00:11:04,840 Eller en viss del av sin hemsida. 237 00:11:04,840 --> 00:11:06,930 >> Så se till att du ställer in behörigheter korrekt. 238 00:11:06,930 --> 00:11:10,730 Inte bara anta att det kommer gör det automatiskt åt dig. 239 00:11:10,730 --> 00:11:11,500 >> OK. 240 00:11:11,500 --> 00:11:15,100 Det var en liten sak som vi tillbringade en bra tid på, så 241 00:11:15,100 --> 00:11:16,190 vi kunde spika den. 242 00:11:16,190 --> 00:11:18,000 Låt oss gå vidare till HTML. 243 00:11:18,000 --> 00:11:20,430 >> Och återigen, för dessa kommande fyra trådar, vi kommer att gå igenom dem 244 00:11:20,430 --> 00:11:21,600 relativt snabbt. 245 00:11:21,600 --> 00:11:24,980 Så är du välkommen att stoppa mig på något tid, om du har några frågor, 246 00:11:24,980 --> 00:11:27,900 oavsett om de är relaterade till vad jag täcker eller något från föreläsning eller 247 00:11:27,900 --> 00:11:29,440 även från problemet inställd. 248 00:11:29,440 --> 00:11:31,690 Stoppa mig när du behöver. 249 00:11:31,690 --> 00:11:34,370 När vi kommer till slutet, vi ska bara börja gå över problemet set. 250 00:11:34,370 --> 00:11:38,100 >> Så HTML står för Hypertext Markup Language. 251 00:11:38,100 --> 00:11:41,360 Det är inte ett programmeringsspråk. 252 00:11:41,360 --> 00:11:45,800 Allt det gör är att strukturen ditt innehåll och även ge viss metadata. 253 00:11:45,800 --> 00:11:52,340 Så till exempel, förmodligen många av du har använt Facebook tidigare. 254 00:11:52,340 --> 00:11:56,810 Och du kan inkludera länkar i, eller du kan sätta en länk som din status. 255 00:11:56,810 --> 00:11:59,070 >> Och då kommer du att märka att länken alltid har en fin bild 256 00:11:59,070 --> 00:12:00,450 till den och lite text. 257 00:12:00,450 --> 00:12:03,040 I allmänhet, är att vissa metadata för en webbsida. 258 00:12:03,040 --> 00:12:05,250 Och det är Facebook-specifika metadata. 259 00:12:05,250 --> 00:12:07,780 Och då, när Facebook läser att sidan och sätta in den länken, det 260 00:12:07,780 --> 00:12:10,780 ser för den specifika metadata, så det vet vad bilden ska visas, vad 261 00:12:10,780 --> 00:12:13,820 titel för att visa, och vad abstrakt text för att visa. 262 00:12:13,820 --> 00:12:17,760 >> Så vi kan inkludera metadata med vår hemsida med hjälp av HTML. 263 00:12:17,760 --> 00:12:21,190 Och det hjälper också oss struktur innehållet, i allmänhet, vad 264 00:12:21,190 --> 00:12:25,400 Vi vill gå där. 265 00:12:25,400 --> 00:12:28,240 >> Allt i HTML är ett element. 266 00:12:28,240 --> 00:12:30,690 Och element just här - 267 00:12:30,690 --> 00:12:33,410 denna CS50, är ​​text elementet. 268 00:12:33,410 --> 00:12:35,140 Och det har några taggar. 269 00:12:35,140 --> 00:12:36,690 Det har denna ett tag. 270 00:12:36,690 --> 00:12:41,730 Och vi märker att det finns en a på början och sedan ett snedstreck a, så 271 00:12:41,730 --> 00:12:43,960 stängning av en tagg i slutet. 272 00:12:43,960 --> 00:12:46,800 Ibland finns det inte en öppen tag och ett nära tagg. 273 00:12:46,800 --> 00:12:49,040 Det är bara en sak. 274 00:12:49,040 --> 00:12:50,640 >> Vi får se ett exempel på det på nästa bild. 275 00:12:50,640 --> 00:12:52,640 Så du inte behöver en öppen och en nära tagg. 276 00:12:52,640 --> 00:12:59,570 Men för detta är vi innesluter detta CS50 element i en ankartaggen. 277 00:12:59,570 --> 00:13:03,270 Och i grunden, dessa taggar berätta webbläsaren vad man ska göra med 278 00:13:03,270 --> 00:13:04,700 vilket grundämne. 279 00:13:04,700 --> 00:13:07,380 >> Så återigen, är CS50 texten vi kommer att se. 280 00:13:07,380 --> 00:13:10,060 Och det kommer att bli en typ av ankare. 281 00:13:10,060 --> 00:13:13,920 Anchor är i huvudsak används för länkar till något. 282 00:13:13,920 --> 00:13:16,000 I synnerhet som du kan redan säga, är detta en 283 00:13:16,000 --> 00:13:18,950 länka till CS50 hemsida. 284 00:13:18,950 --> 00:13:23,160 >> Nästa del av etiketten eller - allmänt en del av taggar är 285 00:13:23,160 --> 00:13:24,290 attribut. 286 00:13:24,290 --> 00:13:27,080 Och vi ser här, att den en tagg har en 287 00:13:27,080 --> 00:13:29,680 attribut, detta href-attribut. 288 00:13:29,680 --> 00:13:32,000 Och de ändra en viss tagg. 289 00:13:32,000 --> 00:13:36,100 Faktum är att om du går till en av de webbplatser eller de referenser som jag gav dig 290 00:13:36,100 --> 00:13:39,480 före eller leta upp ett tag på nätet, du kommer att märka att det finns massor av 291 00:13:39,480 --> 00:13:41,010 potentiella attribut. 292 00:13:41,010 --> 00:13:42,310 >> Detta är förmodligen en av de vanligaste. 293 00:13:42,310 --> 00:13:46,090 Detta säger mig att skapa en länka till den specifika webbplatsen. 294 00:13:46,090 --> 00:13:50,260 Och attribut i allmänhet är givna, om inte uteslutande ges, 295 00:13:50,260 --> 00:13:52,350 i nyckel-värde-par. 296 00:13:52,350 --> 00:13:55,380 >> Så här är nyckeln, href. 297 00:13:55,380 --> 00:13:57,320 Och värdet är det just här. 298 00:13:57,320 --> 00:14:01,960 Och det kommer att komma väl till pass senare, när vi börjar använda vissa bibliotek till 299 00:14:01,960 --> 00:14:07,280 hjälpa oss kod i JavaScript eller skriva HTML-innehåll. 300 00:14:07,280 --> 00:14:11,120 Vi är ofta att vara - precis som vi skulle göra array fäste 0 och att 301 00:14:11,120 --> 00:14:12,340 skulle ge oss något värde. 302 00:14:12,340 --> 00:14:17,190 >> I framtiden kommer vi att göra en hel del saker som något fäste href. 303 00:14:17,190 --> 00:14:21,180 Och det ger oss värdet av href, eller om vi vill uppdatera href 304 00:14:21,180 --> 00:14:23,980 tangenten och sedan ge den ett särskilt värde. 305 00:14:23,980 --> 00:14:28,915 Så precis som med matriser där vi hade knapp 0 eller knapp 1 eller knapp 2 eller till och med en 306 00:14:28,915 --> 00:14:33,480 hash bord, ja, med dina hashtabeller också, hade du antagligen - det 307 00:14:33,480 --> 00:14:35,790 var en matris, så knapp 0, knapp 1, knapp 2. 308 00:14:35,790 --> 00:14:38,480 >> Det index där, vi kan tänker på det som en nyckel. 309 00:14:38,480 --> 00:14:40,180 Och värdet är vad lagrades där. 310 00:14:40,180 --> 00:14:42,760 Alla dessa attribut är nyckel-värde-par. 311 00:14:42,760 --> 00:14:47,370 Och det kommer att vara viktigt för att ändra dem eller uppdatera dem eller 312 00:14:47,370 --> 00:14:51,020 föra in dem senare. 313 00:14:51,020 --> 00:14:53,990 >> Slutligen, har du sett denna struktur innan, men detta är den mest grundläggande 314 00:14:53,990 --> 00:14:55,350 strukturen i HTML-sidan. 315 00:14:55,350 --> 00:14:58,700 På toppen, vi berätta att detta är i själva verket HTML. 316 00:14:58,700 --> 00:15:01,910 Och så har vi ett öppet HTML tagg och en nära HTML-tagg. 317 00:15:01,910 --> 00:15:04,940 Så allt inuti detta är HTML. 318 00:15:04,940 --> 00:15:08,960 >> Vi ser huvudet och kroppen. 319 00:15:08,960 --> 00:15:12,350 Chefen för dokumentet allmänhet innehåller vad? 320 00:15:12,350 --> 00:15:16,980 321 00:15:16,980 --> 00:15:20,995 Några gissningar på vad du sätta på huvudet? 322 00:15:20,995 --> 00:15:23,060 >> PUBLIK: Du sätter titeln och stil. 323 00:15:23,060 --> 00:15:23,790 >> JASON Hirschhorn: Titel. 324 00:15:23,790 --> 00:15:26,110 Det var en bra gissning. 325 00:15:26,110 --> 00:15:27,200 Jag kan ha tippat av dig till. 326 00:15:27,200 --> 00:15:28,150 Vilka är några andra saker? 327 00:15:28,150 --> 00:15:30,351 Vi nämnde en av dem som kan gå i huvudet. 328 00:15:30,351 --> 00:15:33,057 329 00:15:33,057 --> 00:15:35,225 >> PUBLIK: Han sade, stilar. 330 00:15:35,225 --> 00:15:36,240 >> JASON Hirschhorn: Stilar - 331 00:15:36,240 --> 00:15:41,050 så om du vill länka in ett JavaScript eller till och med en CSS, som du pratar 332 00:15:41,050 --> 00:15:42,610 om när du pratar om stilar. 333 00:15:42,610 --> 00:15:45,670 En annan fil, vill du koppla in en utanför fil, kommer det antagligen 334 00:15:45,670 --> 00:15:46,920 i huvudet. 335 00:15:46,920 --> 00:15:48,660 336 00:15:48,660 --> 00:15:51,070 >> Vad mer? 337 00:15:51,070 --> 00:15:52,960 Vi nämnde ett par slides sedan en av de saker som 338 00:15:52,960 --> 00:15:54,510 HTML kan göra för dig. 339 00:15:54,510 --> 00:15:58,180 340 00:15:58,180 --> 00:16:01,240 Det kan ge - 341 00:16:01,240 --> 00:16:02,874 börjar med ett M - 342 00:16:02,874 --> 00:16:03,820 >> PUBLIK: Metadata. 343 00:16:03,820 --> 00:16:06,170 >> JASON Hirschhorn: Metadata - så mycket av metadata kommer att gå i huvudet, 344 00:16:06,170 --> 00:16:08,990 eftersom det kommer inte nödvändigtvis att vara en del av kroppen av din kod. 345 00:16:08,990 --> 00:16:11,820 Det är i allmänhet - kroppen är det innehåll, vad någon ser. 346 00:16:11,820 --> 00:16:14,210 Och så jag bara gav bort svaret till min nästa fråga. 347 00:16:14,210 --> 00:16:17,770 Men i kroppen är i allmänhet innehållet som kommer att visas 348 00:16:17,770 --> 00:16:19,750 på webbsidan. 349 00:16:19,750 --> 00:16:26,120 >> Som vi kommer att se, komplicerade webbsidor tenderar att blandas eller byta upp vad 350 00:16:26,120 --> 00:16:27,170 de sätter i huvudet och kroppen. 351 00:16:27,170 --> 00:16:30,360 Men i allmänhet, innehåller huvudet saker att användaren inte kommer att 352 00:16:30,360 --> 00:16:31,290 ser på skärmen. 353 00:16:31,290 --> 00:16:34,150 Den länkar i andra filer och tillhandahåller metadata. 354 00:16:34,150 --> 00:16:37,690 Mot innehåller kroppen allt användaren kommer att se. 355 00:16:37,690 --> 00:16:39,270 Någon aning om vad den här p-taggen betyder? 356 00:16:39,270 --> 00:16:41,660 >> PUBLIK: Punkt? 357 00:16:41,660 --> 00:16:42,780 >> PUBLIK: Skriv ut. 358 00:16:42,780 --> 00:16:44,120 >> PUBLIK: Det betyder inte att skriva ut. 359 00:16:44,120 --> 00:16:45,380 >> PUBLIK: Betyder det stycke? 360 00:16:45,380 --> 00:16:47,620 >> JASON Hirschhorn: Punkt - så detta är en punkt. 361 00:16:47,620 --> 00:16:50,920 Och detta p tag, jag kunde ha just skrev detta på skärmen och sedan 362 00:16:50,920 --> 00:16:52,630 inkluderade en radbrytning vid slutet av det. 363 00:16:52,630 --> 00:16:54,380 Någon som vet hur man ska inkludera en radbrytning? 364 00:16:54,380 --> 00:16:55,240 >> PUBLIK: pr - 365 00:16:55,240 --> 00:16:55,700 >> JASON Hirschhorn: pr - 366 00:16:55,700 --> 00:16:57,080 >> PUBLIK: Slash pr? 367 00:16:57,080 --> 00:17:00,120 >> JASON Hirschhorn: pr snedstreck står för radbrytning. 368 00:17:00,120 --> 00:17:03,270 Men stycken har specifika formatering. 369 00:17:03,270 --> 00:17:06,060 Och vi kommer till formatering i ett andra, när vi talar om CSS. 370 00:17:06,060 --> 00:17:09,900 Men allt inuti dessa p-taggar kommer att ha en viss standardformatering 371 00:17:09,900 --> 00:17:13,210 i samband med det, förmodligen någon avstånd mellan olika 372 00:17:13,210 --> 00:17:15,069 stycken. 373 00:17:15,069 --> 00:17:19,410 Och det ska vara ett sätt att differentiera block av kod. 374 00:17:19,410 --> 00:17:20,980 >> Alla andra taggar - 375 00:17:20,980 --> 00:17:24,584 vad är andra taggar som du har sett? 376 00:17:24,584 --> 00:17:26,609 >> JASON Hirschhorn: h1 genom h6. 377 00:17:26,609 --> 00:17:28,460 h1 genom h6, och vad är det? 378 00:17:28,460 --> 00:17:31,560 >> PUBLIK: Det kommer att beteckna hur stor och djärva bokstäverna är. 379 00:17:31,560 --> 00:17:32,650 >> JASON Hirschhorn: Höger, det står för headern. 380 00:17:32,650 --> 00:17:34,960 Och så header1 är en stor rubrik. 381 00:17:34,960 --> 00:17:40,840 Det kommer nog, som standard, vara djärv, en stor teckenstorlek, centrerad förmodligen på 382 00:17:40,840 --> 00:17:44,030 skärmen, hela vägen ner till h6, vilket är en mindre teckenstorlek, mindre 383 00:17:44,030 --> 00:17:44,780 betonas. 384 00:17:44,780 --> 00:17:50,290 Naturligtvis kan du, i du är CSS-fil eller någonstans i koden - vilket, 385 00:17:50,290 --> 00:17:53,830 igen, kommer vi till det på en sekund - ändra det standardbeteende 386 00:17:53,830 --> 00:17:55,780 av en H1-tagg är. 387 00:17:55,780 --> 00:18:01,040 >> Men tänk på att Chrome, Safari, Firefox, Internet Explorer har alla 388 00:18:01,040 --> 00:18:04,030 default ser för en massa dessa standard taggar. 389 00:18:04,030 --> 00:18:07,110 Du kan, återigen, alltid ändra hur de ser ut. 390 00:18:07,110 --> 00:18:09,955 Alla andra taggar som alla har sett? 391 00:18:09,955 --> 00:18:10,350 Ja - 392 00:18:10,350 --> 00:18:11,530 >> PUBLIK: En div webbplats. 393 00:18:11,530 --> 00:18:15,830 >> JASON Hirschhorn: En div-taggen - div-taggen inte har någon inbyggd format per 394 00:18:15,830 --> 00:18:21,850 SE, som används för att blockera olika typer av kod. 395 00:18:21,850 --> 00:18:22,980 Alla andra taggar? 396 00:18:22,980 --> 00:18:23,390 Ja. 397 00:18:23,390 --> 00:18:24,333 >> PUBLIK: li - 398 00:18:24,333 --> 00:18:24,850 >> JASON Hirschhorn: li - 399 00:18:24,850 --> 00:18:25,580 vad är li för? 400 00:18:25,580 --> 00:18:26,210 >> PUBLIK: List. 401 00:18:26,210 --> 00:18:26,930 >> PUBLIK: Lista 402 00:18:26,930 --> 00:18:29,510 >> JASON Hirschhorn: li är för listelement. 403 00:18:29,510 --> 00:18:30,720 Det finns två typer av listor. 404 00:18:30,720 --> 00:18:31,970 Vilka är de två typerna? 405 00:18:31,970 --> 00:18:34,165 406 00:18:34,165 --> 00:18:35,806 >> PUBLIK: Beställt och oordnade. 407 00:18:35,806 --> 00:18:37,780 >> JASON Hirschhorn: Ordnad och oordnade - så ul montrar 408 00:18:37,780 --> 00:18:38,560 för oordnad lista. 409 00:18:38,560 --> 00:18:41,120 Det är om du vill ha en kula pekar, en lista med kulor. 410 00:18:41,120 --> 00:18:43,180 En ordnad lista är en numrerad lista. 411 00:18:43,180 --> 00:18:47,930 Och så att du kommer att göra en öppen ul-tagg och sedan massor av listelement och sedan 412 00:18:47,930 --> 00:18:50,450 stänga ul taggen. och att viljan skapa en icke ordnad lista. 413 00:18:50,450 --> 00:18:52,380 >> Vi kommer att se några exempel av HTML i lite. 414 00:18:52,380 --> 00:18:55,800 Men innan dess vill jag komma till CSS. 415 00:18:55,800 --> 00:18:58,530 Och CSS står för Cascading Style Sheets. 416 00:18:58,530 --> 00:19:03,010 Och detta är mycket nära släkt till HTML men något annorlunda. 417 00:19:03,010 --> 00:19:06,920 Detta hjälper dig att formatera allt innehåll att HTML-strukturer. 418 00:19:06,920 --> 00:19:14,940 >> Så i CSS, vi i allmänhet inte vill formatera varje header eller varje 419 00:19:14,940 --> 00:19:17,250 enda bild eller varje enda stycke. 420 00:19:17,250 --> 00:19:21,210 Vi vill att styla vissa delar eller kanske en särskild del. 421 00:19:21,210 --> 00:19:25,250 Och hur vi utformar en specifik elementet är att ge det ett ID. 422 00:19:25,250 --> 00:19:26,070 >> Så detta är ett attribut. 423 00:19:26,070 --> 00:19:27,960 Den har en nyckel och ett värde. 424 00:19:27,960 --> 00:19:29,130 ID är nyckeln. 425 00:19:29,130 --> 00:19:30,220 Logo är värdet. 426 00:19:30,220 --> 00:19:32,410 Jag plockade logotyp slumpmässigt. 427 00:19:32,410 --> 00:19:36,780 Och om du ger något ett ID, Allmänt sett bör det endast ges 428 00:19:36,780 --> 00:19:38,800 till ett element. 429 00:19:38,800 --> 00:19:42,340 >> Och sedan, i din stilmall, kan du stil just det elementet, men 430 00:19:42,340 --> 00:19:44,090 du vill att det ska se ut. 431 00:19:44,090 --> 00:19:49,560 Om du vill styla ett antal element, kanske är det en viss klass 432 00:19:49,560 --> 00:19:51,310 av rubriker, bara några av dina rubriker. 433 00:19:51,310 --> 00:19:56,780 Kanske är det en rubrik och en bild och ett stycke ni alla vill vara centrerad. 434 00:19:56,780 --> 00:20:00,700 Sedan kan du ge dessa grupper element allt en klass. 435 00:20:00,700 --> 00:20:04,300 Och du kan ge klassen specifika stilar. 436 00:20:04,300 --> 00:20:08,860 Så ett ID och en klass finns två sätt att bryta upp din kod, så att du kan hjälpa till att 437 00:20:08,860 --> 00:20:11,990 mer specifik i vad du stil. 438 00:20:11,990 --> 00:20:13,830 >> Det finns tre olika sätt att styla. 439 00:20:13,830 --> 00:20:17,530 Den första är, med denna stilattribut. 440 00:20:17,530 --> 00:20:21,200 Så ni ser, är stilen nyckeln stil. 441 00:20:21,200 --> 00:20:24,370 Stilen värdet är faktiskt en annan viktig värdelista. 442 00:20:24,370 --> 00:20:26,570 >> I det här fallet valde jag en nyckel, text-align. 443 00:20:26,570 --> 00:20:27,730 Och jag sa, centrum. 444 00:20:27,730 --> 00:20:30,280 Du kanske frågar dig själv på detta punkt, hur jag känner 445 00:20:30,280 --> 00:20:31,230 text-align. 446 00:20:31,230 --> 00:20:32,280 Vad betyder det ens? 447 00:20:32,280 --> 00:20:35,350 Det är en bra fråga att ställa, och vi kommer att komma dit i en sekund. 448 00:20:35,350 --> 00:20:39,740 Så det är ett sätt att styla något, bara ge den stilattribut. 449 00:20:39,740 --> 00:20:43,490 >> Ett annat sätt att styla något är - detta är Akshar nämnts tidigare. 450 00:20:43,490 --> 00:20:49,660 Du kan använda stil taggar och sätta det i huvudet på HTML-dokumentet. 451 00:20:49,660 --> 00:20:52,220 Så du i princip säger, innehållet inne här 452 00:20:52,220 --> 00:20:53,870 är en del innehåll stil. 453 00:20:53,870 --> 00:20:59,520 Och formatet för det är det du vill styla och sedan, insida 454 00:20:59,520 --> 00:21:03,460 klamrar, nyckelvärdet par attribut som du vill ge till 455 00:21:03,460 --> 00:21:05,920 just den typ av element. 456 00:21:05,920 --> 00:21:07,370 >> Slutligen, och detta är den Det vanligaste sättet. 457 00:21:07,370 --> 00:21:10,320 Och det är så vi göra det i p set 7. 458 00:21:10,320 --> 00:21:12,370 Det är en extern formatmall. 459 00:21:12,370 --> 00:21:14,370 Så du har en. Css-fil. 460 00:21:14,370 --> 00:21:18,050 Och inne i det, ser du en hel del saker som ser ut så här, namnet 461 00:21:18,050 --> 00:21:22,730 av någon typ av element eller ett ID-eller en klass och sedan, inne i lockigt 462 00:21:22,730 --> 00:21:28,040 hängslen, en lista med nyckelpar värde. 463 00:21:28,040 --> 00:21:30,065 >> Självklart, om du skapar en extern fil, kommer du att 464 00:21:30,065 --> 00:21:31,310 måste inkludera det - 465 00:21:31,310 --> 00:21:34,860 skarp inkluderar, som skulle vara C analogi - 466 00:21:34,860 --> 00:21:36,250 i HTML-filen. 467 00:21:36,250 --> 00:21:39,820 Så du måste ta med detta kod i din HTML-fil. 468 00:21:39,820 --> 00:21:46,080 Detta är namnet på filen och antar att det är i samma katalog. 469 00:21:46,080 --> 00:21:47,100 >> OK. 470 00:21:47,100 --> 00:21:48,200 Det var en hel del. 471 00:21:48,200 --> 00:21:52,440 Och vi kommer nu att andas och titta på några riktiga, levande webbplats och 472 00:21:52,440 --> 00:21:53,720 utforska den mer. 473 00:21:53,720 --> 00:21:55,470 Men innan vi gör det, gör någon några frågor? 474 00:21:55,470 --> 00:22:00,830 475 00:22:00,830 --> 00:22:04,970 >> Så om du vill göra detta tillsammans med mig, kan vi gå till apparaten. 476 00:22:04,970 --> 00:22:08,950 Och jag valde CS50 hemsidan. 477 00:22:08,950 --> 00:22:10,020 Du kan göra detta med någon hemsida. 478 00:22:10,020 --> 00:22:13,070 Men varför inte börja med den CS50 hemsida? 479 00:22:13,070 --> 00:22:14,650 >> Låt oss friska upp. 480 00:22:14,650 --> 00:22:18,030 Jag verkligen rekommenderar starkt att du gör detta tillsammans med mig, eftersom det vi 481 00:22:18,030 --> 00:22:22,720 ska göra nu kommer att bli otroligt praktiskt för dig, inte bara i 482 00:22:22,720 --> 00:22:24,450 P-Set 7, men i P-Set 8 också. 483 00:22:24,450 --> 00:22:24,810 Yeah. 484 00:22:24,810 --> 00:22:29,560 >> PUBLIK: Finns det något sätt att göra kommentarer i HTML, utan att använda PHP? 485 00:22:29,560 --> 00:22:31,130 >> JASON Hirschhorn: Ja, kan du göra kommentarer i HTML. 486 00:22:31,130 --> 00:22:32,690 >> PUBLIK: Vad är syntax? 487 00:22:32,690 --> 00:22:34,340 >> PUBLIK: Utropstecken streck streck. 488 00:22:34,340 --> 00:22:36,125 >> PUBLIK: OK. 489 00:22:36,125 --> 00:22:37,100 >> JASON Hirschhorn: Ja. 490 00:22:37,100 --> 00:22:38,350 Det är syntaxen. 491 00:22:38,350 --> 00:22:40,630 492 00:22:40,630 --> 00:22:41,900 Du kan göra kommentarer i HTML. 493 00:22:41,900 --> 00:22:43,310 Du kan lämna synpunkter i PHP. 494 00:22:43,310 --> 00:22:46,590 >> Som du ser, kommentera i HTML kommer fortfarande dyker upp, när vi tittar på 495 00:22:46,590 --> 00:22:49,960 HTML-källkoden för en viss webbplats. 496 00:22:49,960 --> 00:22:51,610 Så här cs50.net. 497 00:22:51,610 --> 00:22:57,360 Om du högerklickar på de flesta moderna webbläsare på de flesta någon sida, du visa 498 00:22:57,360 --> 00:22:58,820 sidan källan. 499 00:22:58,820 --> 00:23:01,480 Så låt oss göra det på CS50. 500 00:23:01,480 --> 00:23:05,060 >> Och hör och häpna, vi se en gigantisk sak. 501 00:23:05,060 --> 00:23:07,420 CS50 faktiskt ser ganska trevligt. 502 00:23:07,420 --> 00:23:08,920 Många webbplatser kommer inte ser detta trevligt. 503 00:23:08,920 --> 00:23:10,540 Om du går till Googles startsida och öppna upp det. 504 00:23:10,540 --> 00:23:11,960 Det kommer inte att se så här bra. 505 00:23:11,960 --> 00:23:13,830 >> Men du märker det, i toppen - 506 00:23:13,830 --> 00:23:16,650 Detta är typ av små. 507 00:23:16,650 --> 00:23:17,900 Låt oss göra detta större. 508 00:23:17,900 --> 00:23:22,660 509 00:23:22,660 --> 00:23:23,570 OK. 510 00:23:23,570 --> 00:23:26,660 Upptill DOCTYPE HTML, det är bekant. 511 00:23:26,660 --> 00:23:30,650 Sedan ser vi den öppna HTML-taggen och huvudet, just här, alla 512 00:23:30,650 --> 00:23:34,350 av dessa metataggar. 513 00:23:34,350 --> 00:23:38,000 Och du kan se den här og, inte kommer att gå in på det nu. 514 00:23:38,000 --> 00:23:42,110 Men jag är nästan säker på att de skulle vara Facebook. 515 00:23:42,110 --> 00:23:42,900 >> Det är faktiskt Facebook. 516 00:23:42,900 --> 00:23:44,870 Jag tror att det står för öppen graf. 517 00:23:44,870 --> 00:23:48,930 Så kom ihåg, jag nämner det finns Facebook grupp-specifika metadata kan du 518 00:23:48,930 --> 00:23:49,800 ge till en sida. 519 00:23:49,800 --> 00:23:51,150 Det är det som är rätt här. 520 00:23:51,150 --> 00:23:54,580 >> Så när du länka denna sida på Facebook, bilden det kommer att visa 521 00:23:54,580 --> 00:23:56,630 är denna bild här. 522 00:23:56,630 --> 00:23:58,310 Och du faktiskt se att det är Facebook, eftersom det är 523 00:23:58,310 --> 00:23:59,470 Facebook-bild. 524 00:23:59,470 --> 00:24:00,880 >> Men hur som helst, vi får undan. 525 00:24:00,880 --> 00:24:03,220 Så vi har en del metadatataggar här. 526 00:24:03,220 --> 00:24:05,570 Vi ser CS50 titel. 527 00:24:05,570 --> 00:24:09,830 Och återigen, är titeln vad som går här uppe i fliken webbläsaren. 528 00:24:09,830 --> 00:24:14,770 Vi ser detta är att koppla in, just här, en extern JavaScript-fil. 529 00:24:14,770 --> 00:24:17,640 >> Vi har inte pratat om JavaScript mycket, men nästa vecka - och särskilt om 530 00:24:17,640 --> 00:24:20,350 du gör en webbaserad problem set, du kommer att använda JavaScript. 531 00:24:20,350 --> 00:24:23,540 Detta är hur du länkar in externa JavaScript-filer. 532 00:24:23,540 --> 00:24:31,970 Vi ser här, slutligen, CSS formatmall, dokumenterar att dessa 533 00:24:31,970 --> 00:24:32,830 stilar av denna kod. 534 00:24:32,830 --> 00:24:37,190 >> Låt oss faktiskt öppna upp det och titta riktigt snabbt. 535 00:24:37,190 --> 00:24:38,440 Det ser galet. 536 00:24:38,440 --> 00:24:40,840 537 00:24:40,840 --> 00:24:42,790 Det finns inget sätt jag skulle vara kunna läsa igenom. 538 00:24:42,790 --> 00:24:46,930 Så kan du faktiskt ändå, om du tar en blick, kan du slags se att 539 00:24:46,930 --> 00:24:48,650 finns det - 540 00:24:48,650 --> 00:24:49,790 där går vi. 541 00:24:49,790 --> 00:24:53,440 >> Det ser ut som något vi har sett innan, bakgrundsfärg, ställer det 542 00:24:53,440 --> 00:24:55,550 lika lite röd-grön-blå värde. 543 00:24:55,550 --> 00:24:59,070 Här grejer slags inte ska verka som utländskt, även om, när den presenteras 544 00:24:59,070 --> 00:25:00,850 som denna, kan det vara lite överväldigande. 545 00:25:00,850 --> 00:25:03,340 Vi kommer inte att titta på den här CSS-fil eller tillbringar mycket tid på det, eftersom 546 00:25:03,340 --> 00:25:06,030 Det är återigen ganska svårt att läsa. 547 00:25:06,030 --> 00:25:09,090 >> Låt oss gå tillbaka till det här HTML-sida för CS50. 548 00:25:09,090 --> 00:25:10,930 Och låt oss bläddra ner till kroppen. 549 00:25:10,930 --> 00:25:14,730 Och inne ser vi detta div-taggen. 550 00:25:14,730 --> 00:25:18,370 Vi ser en rubrik här. 551 00:25:18,370 --> 00:25:21,060 Vi ser ankartaggen. 552 00:25:21,060 --> 00:25:26,050 >> Och denna listelement är får en särskild klass. 553 00:25:26,050 --> 00:25:28,370 Och vi ser att klassen upprepas om och om igen. 554 00:25:28,370 --> 00:25:29,730 Där du är Curtis. 555 00:25:29,730 --> 00:25:32,730 Det är den kommentaren i HTML5. 556 00:25:32,730 --> 00:25:36,280 >> Och som du märker, kan vi fortfarande se det, men det är inte dyker upp. 557 00:25:36,280 --> 00:25:37,960 Det är faktiskt riktigt intressant. 558 00:25:37,960 --> 00:25:40,760 Det ser ut som den här listan gör mål elementet kommen ut. 559 00:25:40,760 --> 00:25:45,110 Om vi ​​går till den här sidan, återigen, det är fortfarande visas där, så intressant. 560 00:25:45,110 --> 00:25:47,830 >> Åh, det är därför, på grund av denna nästa rad. 561 00:25:47,830 --> 00:25:50,680 562 00:25:50,680 --> 00:25:52,735 Vad behöver vi ser av intresse? 563 00:25:52,735 --> 00:25:56,640 564 00:25:56,640 --> 00:26:00,180 Resten av det här är mer förvirrande, i behandlar denna högra halvan av 565 00:26:00,180 --> 00:26:03,280 hemsida, vilket är en liten lite mer komplex. 566 00:26:03,280 --> 00:26:08,890 >> Så det här är vad några HTML kommer att se ut. 567 00:26:08,890 --> 00:26:10,990 För mig är dock det lite överväldigande, och detta inte 568 00:26:10,990 --> 00:26:12,350 hjälp mig så mycket. 569 00:26:12,350 --> 00:26:16,560 Men det är något som gör faktiskt hjälpa mig mycket. 570 00:26:16,560 --> 00:26:20,490 >> Och det är vad jag använder när jag är försöka lista ut hur något 571 00:26:20,490 --> 00:26:24,270 ser ut som den gör, eller hur kan Jag ändrar min hemsida. 572 00:26:24,270 --> 00:26:29,280 Och det är en utvecklare verktyg som är inbyggd i Chrome. 573 00:26:29,280 --> 00:26:33,960 Så om du går till dessa tre barer rätt här och gå ner till verktyg klicka på 574 00:26:33,960 --> 00:26:40,120 Developer Tools, ett litet fönster kommer dyka upp vid botten av sidan. 575 00:26:40,120 --> 00:26:46,910 Och framför allt, Chrome, eftersom det är underbart, kommer att formatera detta fönster och 576 00:26:46,910 --> 00:26:49,580 ta HTML och att det ser mycket trevligare för dig. 577 00:26:49,580 --> 00:26:54,860 Så nu är det faktiskt en del hopfällbar HTML som du kan utforska för att inspektera 578 00:26:54,860 --> 00:26:56,620 de delar av sidan. 579 00:26:56,620 --> 00:26:59,400 >> Om vi ​​vill titta på kroppen, det faktiskt belyser. 580 00:26:59,400 --> 00:27:03,240 När du bläddrar över en del av HTML, ner i det här fönstret, kommer det 581 00:27:03,240 --> 00:27:06,530 markera den del det pratar omkring i det stora fönstret. 582 00:27:06,530 --> 00:27:10,800 Så låt mig återigen försöka blåsa upp detta lite. 583 00:27:10,800 --> 00:27:12,170 OK. 584 00:27:12,170 --> 00:27:13,550 >> Så låt oss öppna kroppen. 585 00:27:13,550 --> 00:27:17,280 Och jag rulla över det vänstra div. 586 00:27:17,280 --> 00:27:21,420 Och du märker att det är att lyfta fram denna vänstra halvan av skärmen. 587 00:27:21,420 --> 00:27:25,710 Så låt oss klicka på det och expandera det. 588 00:27:25,710 --> 00:27:27,280 >> Inne i det, ser det ut som det finns två divs. 589 00:27:27,280 --> 00:27:29,790 Det är det här första div. 590 00:27:29,790 --> 00:27:30,760 Jag ser inte att markeras. 591 00:27:30,760 --> 00:27:35,900 Jag vet inte, men det ser ut så här andra en vänster inre är innehållet 592 00:27:35,900 --> 00:27:37,700 på den vänstra sidan av skärmen. 593 00:27:37,700 --> 00:27:39,360 >> Sedan finns det något som heter rubrik. 594 00:27:39,360 --> 00:27:41,890 Det ser ut som det är att lyfta fram den CS50 delen. 595 00:27:41,890 --> 00:27:46,600 Om vi ​​öppnar upp det, ser vi att det är inget mer än rubrik 1. 596 00:27:46,600 --> 00:27:51,140 Det har gett ett ID, och det är givet texten CS50. 597 00:27:51,140 --> 00:27:57,240 >> Så återigen, titta på det genom denna konsolen eller med hjälp av utvecklingsverktyg 598 00:27:57,240 --> 00:28:00,710 rutan längst ned på de märken skärm utforska denna hemsida, förhoppningsvis, en 599 00:28:00,710 --> 00:28:02,990 mycket mindre skrämmande och en mycket mer tillgänglig. 600 00:28:02,990 --> 00:28:06,360 Det tillåter oss också att förstå att denna webbplats, om det ser väldigt 601 00:28:06,360 --> 00:28:09,210 söt och trevlig, är inte så mycket mer än vad du kommer att bli 602 00:28:09,210 --> 00:28:10,430 gör på Problem Set 7. 603 00:28:10,430 --> 00:28:13,080 Och detta är helt i din förmåga att skapa. 604 00:28:13,080 --> 00:28:14,110 >> Om vi ​​vill - 605 00:28:14,110 --> 00:28:18,270 den andra häftiga med att använda dessa verktygen är, om du högerklicka på 606 00:28:18,270 --> 00:28:22,270 titel, kan du redigera HTML. 607 00:28:22,270 --> 00:28:25,660 Så låt oss kalla det Jason. 608 00:28:25,660 --> 00:28:28,990 Och nu kommer du att märka jag har ändrat HTML på den här sidan. 609 00:28:28,990 --> 00:28:31,020 >> Naturligtvis har jag inte förändrats det permanent. 610 00:28:31,020 --> 00:28:34,570 Om jag uppdatera min webbläsare, då det skulle gå tillbaka till den ursprungliga HTML. 611 00:28:34,570 --> 00:28:38,860 Men ibland vill jag felsöka min kod, och jag vill inte se ut precis har min 612 00:28:38,860 --> 00:28:41,370 gedit-fönstret och försöka förstå vad som händer. 613 00:28:41,370 --> 00:28:42,705 >> Jag vill se vad som händer live. 614 00:28:42,705 --> 00:28:45,880 Så jag ska redigera koden så här och få det på det sätt jag vill att det ska se ut. 615 00:28:45,880 --> 00:28:47,960 Och sedan ska jag göra förändringar i min kod. 616 00:28:47,960 --> 00:28:50,010 >> Och jag tycker att det är mycket enklare när du kan göra det 617 00:28:50,010 --> 00:28:52,400 ögonblickligen, så där. 618 00:28:52,400 --> 00:28:58,410 Säg, igen, vi vill göra en annan slump, eftersom vi utforskar med 619 00:28:58,410 --> 00:29:00,340 HTML och CSS just nu. 620 00:29:00,340 --> 00:29:02,600 Jag kan redigera HTML just nu. 621 00:29:02,600 --> 00:29:06,680 Och jag kommer att inkludera en länk. 622 00:29:06,680 --> 00:29:10,650 >> Så jag ska byta CS50 hem sida, så det kommer att länka till - 623 00:29:10,650 --> 00:29:12,060 låt oss säga - min hemsida. 624 00:29:12,060 --> 00:29:16,700 Vad är namnet, om någon minns, eller vad är det attribut jag vill ge 625 00:29:16,700 --> 00:29:18,850 till en flik ankare när jag vill det att knyta någon annanstans? 626 00:29:18,850 --> 00:29:19,562 >> PUBLIK: href? 627 00:29:19,562 --> 00:29:20,812 >> JASON Hirschhorn: href - 628 00:29:20,812 --> 00:29:32,520 629 00:29:32,520 --> 00:29:35,750 Så nu kommer du att se att det är en understrykning i Jason. 630 00:29:35,750 --> 00:29:40,170 Det beror på Chrome som standard ger ankare en understrykning. 631 00:29:40,170 --> 00:29:41,990 Du har säkert sett det förut När du har gått till en webbsida. 632 00:29:41,990 --> 00:29:44,200 Saker som är länkar är strukna och blå. 633 00:29:44,200 --> 00:29:47,300 Standard stil för en länk är att generellt understryka 634 00:29:47,300 --> 00:29:48,830 och lägga den i blått. 635 00:29:48,830 --> 00:29:50,050 >> Om jag inte gillar det, Jag kan ändra på det. 636 00:29:50,050 --> 00:29:51,220 Och vi kommer att ändra det på en sekund. 637 00:29:51,220 --> 00:29:54,660 Men nu, även att märka att om jag svävar över detta, i det nedre vänstra hörnet av 638 00:29:54,660 --> 00:29:58,580 skärmen, precis ovanför ordelementen är den länk som jag gav det. 639 00:29:58,580 --> 00:30:03,080 >> Så om jag klickar på det här - och vi kan högerklicka på det, öppnar en ny flik. 640 00:30:03,080 --> 00:30:04,520 Detta är egentligen inte min startsida. 641 00:30:04,520 --> 00:30:06,700 Det är bara mitt namn. 642 00:30:06,700 --> 00:30:07,210 Varsågod. 643 00:30:07,210 --> 00:30:10,440 Nu har vi förvandla det till en länk. 644 00:30:10,440 --> 00:30:13,220 >> Låt oss undersöka några CSS också. 645 00:30:13,220 --> 00:30:15,680 Den vackra sak - och jag ska gör det lite mindre - cirka 646 00:30:15,680 --> 00:30:19,480 denna konsol är att galna CSS blad vi såg tidigare, var det verkligen 647 00:30:19,480 --> 00:30:24,130 svårt att tolka, är nu vackert lagt ut för oss på vänster sida 648 00:30:24,130 --> 00:30:25,270 i den här rutan. 649 00:30:25,270 --> 00:30:27,230 Så vi kan se ut. 650 00:30:27,230 --> 00:30:33,690 Och om vi utöka denna flik stilar, vi kan se alla de olika stilar 651 00:30:33,690 --> 00:30:37,940 som är förknippade med, i det här fallet, detta speciella element, detta 652 00:30:37,940 --> 00:30:39,700 länkelement. 653 00:30:39,700 --> 00:30:44,240 >> Om vi ​​gör fliken sammansatta stilar, att bara visar oss, inte där allt 654 00:30:44,240 --> 00:30:47,450 kommer ifrån, men i stort sett alla dessa stilar som är verksamma på 655 00:30:47,450 --> 00:30:51,220 denna faktor just nu. 656 00:30:51,220 --> 00:30:55,050 Och låt oss säga, vi vill att ändra det lite. 657 00:30:55,050 --> 00:30:58,870 658 00:30:58,870 --> 00:31:02,740 Så detta är alla stilar som verksamma på just denna faktor. 659 00:31:02,740 --> 00:31:04,800 Säg att vi vill ändra det, därför att vi vill se hur något ser ut. 660 00:31:04,800 --> 00:31:06,050 Och vi bara spelar runt just nu. 661 00:31:06,050 --> 00:31:08,720 Eller vi vill testa något, innan skriva det i kod och trycka 662 00:31:08,720 --> 00:31:10,150 den och göra den levande. 663 00:31:10,150 --> 00:31:11,780 >> Vi kan gå till fliken stilar. 664 00:31:11,780 --> 00:31:14,270 Och i den första rutan är säger, element.style. 665 00:31:14,270 --> 00:31:17,020 Och här kan du infoga, du kan lägga till något. 666 00:31:17,020 --> 00:31:18,550 >> Så jag vill - 667 00:31:18,550 --> 00:31:22,360 Låt oss gå till min länk och ange bakgrundsfärgen. 668 00:31:22,360 --> 00:31:25,830 Och det faktiskt AutoFills det åt dig, alla möjliga egenskaper. 669 00:31:25,830 --> 00:31:29,360 Bakgrundsfärg, och jag vill att göra det blå. 670 00:31:29,360 --> 00:31:31,520 Blus är inte ett ord. 671 00:31:31,520 --> 00:31:32,400 Blue är ett ord. 672 00:31:32,400 --> 00:31:34,490 >> Har jag ser det kommer upp? 673 00:31:34,490 --> 00:31:35,800 Åh, är det för att det är i href? 674 00:31:35,800 --> 00:31:36,550 OK. 675 00:31:36,550 --> 00:31:40,220 Så jag kan inte se någon förändring här. 676 00:31:40,220 --> 00:31:45,100 Och det beror på om vi lyfta fram länk, kommer du att märka att länken 677 00:31:45,100 --> 00:31:48,430 faktiskt inte styra egenskaper för denna del. 678 00:31:48,430 --> 00:31:52,430 Det är faktiskt, om vi öppna länken, denna rubrik just här det är 679 00:31:52,430 --> 00:31:53,590 kontrollerar hur det ser ut. 680 00:31:53,590 --> 00:31:56,380 >> Så om jag vill göra bakgrunden blå, jag har faktiskt ändra 681 00:31:56,380 --> 00:31:59,640 bakgrundsfärg på samlingsrörselementet. 682 00:31:59,640 --> 00:32:02,700 Och nu ser vi att Bakgrunden är blå. 683 00:32:02,700 --> 00:32:06,770 >> Så återigen, detta snabbt kan gå genom detta material ganska snabbt. 684 00:32:06,770 --> 00:32:08,580 Men det är i huvudsak vad du kommer att göra. 685 00:32:08,580 --> 00:32:10,860 Det är inte på Problem Set 7, men säkert när du är 686 00:32:10,860 --> 00:32:12,080 kodning på webben. 687 00:32:12,080 --> 00:32:12,360 >> OK. 688 00:32:12,360 --> 00:32:13,780 Jag vill göra bakgrunden blå. 689 00:32:13,780 --> 00:32:16,180 Även om, i detta fall, blått ser ganska ful. 690 00:32:16,180 --> 00:32:17,740 Jag kan gå in här, leka. 691 00:32:17,740 --> 00:32:20,515 Jag ser att ändra det till blått fungerar inte på en. 692 00:32:20,515 --> 00:32:26,710 Jag måste faktiskt ändra rubriken element för att inkludera den blå 693 00:32:26,710 --> 00:32:28,200 bakgrund. 694 00:32:28,200 --> 00:32:34,450 >> Och sedan, om det sedan går jag tillbaka till min CSS fil, hur gör jag faktiskt ställa detta 695 00:32:34,450 --> 00:32:37,520 bakgrund att vara blå och göra denna förändring pinne? 696 00:32:37,520 --> 00:32:44,840 För om vi märker om jag uppdatera sida, är alla de förändringar jag gjort borta. 697 00:32:44,840 --> 00:32:47,220 Så jag insåg, OK, min Bakgrunden är blå. 698 00:32:47,220 --> 00:32:51,260 >> Jag behöver gå in i den header1 inslag och ändra bakgrundsfärg till blå. 699 00:32:51,260 --> 00:32:52,710 Hur gör jag faktiskt göra den förändringen? 700 00:32:52,710 --> 00:32:57,040 Tja, minns att, om vi går in härifrån, denna rubrik, det 701 00:32:57,040 --> 00:32:59,280 titel har ett ID. 702 00:32:59,280 --> 00:33:00,890 Och det är titeln. 703 00:33:00,890 --> 00:33:09,010 >> Och så i vår CSS-fil, kan vi säga, OK, ta något med ID förbehåll och 704 00:33:09,010 --> 00:33:11,330 ger den här extra egenskap. 705 00:33:11,330 --> 00:33:18,010 Hur kan vi referera något med ID av titel, några idéer, eller vem som helst 706 00:33:18,010 --> 00:33:24,406 vet hur vi refererar ID i vår CSS-fil? 707 00:33:24,406 --> 00:33:26,290 >> En hash, det är precis rätt. 708 00:33:26,290 --> 00:33:28,710 Och du fick en antydan till det här. 709 00:33:28,710 --> 00:33:32,810 Så någonstans i denna CSS-fil, Det är det här kodraden - 710 00:33:32,810 --> 00:33:34,150 # Vänster # vänsterinner # header # titel. 711 00:33:34,150 --> 00:33:36,810 712 00:33:36,810 --> 00:33:40,590 Och det ger den marginal botten, definiera marginalen bottnen av denna 713 00:33:40,590 --> 00:33:42,220 visst element. 714 00:33:42,220 --> 00:33:46,580 >> Tja, om jag ville ändra på det, Jag skulle gå in i den här CSS-fil. 715 00:33:46,580 --> 00:33:49,510 Och jag kunde antingen hitta denna del av CSS-fil. 716 00:33:49,510 --> 00:33:50,300 Eller jag kunde skriva min egen. 717 00:33:50,300 --> 00:33:54,670 >> Jag kunde göra hash titel klammer och då bakgrundsfärg kolon blå 718 00:33:54,670 --> 00:33:57,250 semikolon och nära att klammer. 719 00:33:57,250 --> 00:34:02,790 Och det skulle ändra bakgrunden färgen på detta element till blått. 720 00:34:02,790 --> 00:34:06,690 Anledningen till att de ger dig så många här är det, det är nödvändigt i det här fallet, 721 00:34:06,690 --> 00:34:08,690 eftersom titeln är ett unikt ID. 722 00:34:08,690 --> 00:34:11,190 >> Men vad du kan göra är att kapsla saker. 723 00:34:11,190 --> 00:34:14,760 Så här säger, OK, gå till vänster. 724 00:34:14,760 --> 00:34:15,350 Det är mycket liten. 725 00:34:15,350 --> 00:34:16,150 Jag ber om ursäkt för det. 726 00:34:16,150 --> 00:34:17,750 >> Men gå till tinget med ID vänster. 727 00:34:17,750 --> 00:34:20,420 Inne i det, leta efter sak med ID vänster inre. 728 00:34:20,420 --> 00:34:22,630 Inne i den där blicken, leta efter saken med ID header. 729 00:34:22,630 --> 00:34:27,560 Inne i det, leta efter saken ID-titel och ändra ID-titel. 730 00:34:27,560 --> 00:34:29,120 Så det här är bara ett sätt häckande saker. 731 00:34:29,120 --> 00:34:32,719 Vissa människor gillar boet det, eftersom det gör det lite tydligare. 732 00:34:32,719 --> 00:34:37,980 >> Du ser här nere också, höger här, det finns ingen hash. 733 00:34:37,980 --> 00:34:39,449 Det är bara h1. 734 00:34:39,449 --> 00:34:44,060 Det beror på h1 ges namnet på en generisk etikett. 735 00:34:44,060 --> 00:34:48,080 Och det finns några CSS-egenskaper samband med varje enskild h1. 736 00:34:48,080 --> 00:34:51,889 Så om jag hittade en annan h1 på denna sida, Jag vill också se att den här stilen var 737 00:34:51,889 --> 00:34:54,280 tillämpas på det också. 738 00:34:54,280 --> 00:34:59,290 >> Om jag ville använda en stil till en klass, hur gör jag refererar till en klass eller 739 00:34:59,290 --> 00:35:02,469 tala om en klass i en CSS-fil? 740 00:35:02,469 --> 00:35:03,315 >> PUBLIK: Dot. 741 00:35:03,315 --> 00:35:05,340 >> JASON Hirschhorn: Det är med en prick. 742 00:35:05,340 --> 00:35:08,630 Så låt oss gå tillbaka till den här sidan innan. 743 00:35:08,630 --> 00:35:11,160 Om jag gör hash-ID. 744 00:35:11,160 --> 00:35:14,760 Det är att ändra stil av saken med ID. 745 00:35:14,760 --> 00:35:21,390 Eller förlåt, om jag gör hash logotyp, det är finna saken med ID för logotyp 746 00:35:21,390 --> 00:35:24,010 och ge det en viss CSS-stil. 747 00:35:24,010 --> 00:35:28,280 >> Om jag gör något. Toppen, det är att hitta allt med den klass av topp-och 748 00:35:28,280 --> 00:35:30,190 ändra sina stilar. 749 00:35:30,190 --> 00:35:35,950 Om jag helt enkelt h1, finner varje som enstaka h1 och ger den allt 750 00:35:35,950 --> 00:35:37,940 stil jag vill ge det. 751 00:35:37,940 --> 00:35:43,260 Om jag gör h1 utrymme och då. Toppen. 752 00:35:43,260 --> 00:35:47,670 Det kommer att gå att hitta alla H1S och sedan alla de med den klass av toppen och 753 00:35:47,670 --> 00:35:51,690 då endast ändra dessa stilar till vad jag vill ge det. 754 00:35:51,690 --> 00:35:54,600 >> Och återigen, kunde vi ha skrivit en del av detta på egen hand. 755 00:35:54,600 --> 00:35:55,790 Men vi skulle inte ha kommit så långt. 756 00:35:55,790 --> 00:35:59,180 Mycket bättre, verkar det faktiskt gå på en verkligt levande webbplats och se hur 757 00:35:59,180 --> 00:36:02,800 de gör det och titta på alla de fantastiska saker du får göra. 758 00:36:02,800 --> 00:36:06,570 >> Låt oss titta på ytterligare en webbplats innan vi går vidare. 759 00:36:06,570 --> 00:36:10,150 Och det här är en som du kommer förmodligen bli bekant med. 760 00:36:10,150 --> 00:36:12,310 Detta är CS50 Finance. 761 00:36:12,310 --> 00:36:16,120 Så återigen, kan du faktiskt gå in och följa denna CSS-fil på din 762 00:36:16,120 --> 00:36:19,390 dator, eftersom du har laddat ner den här CSS-fil, om du laddat ner 763 00:36:19,390 --> 00:36:20,270 problem set. 764 00:36:20,270 --> 00:36:26,850 >> Vi kan gå till Verktyg och Utvecklarverktyg. 765 00:36:26,850 --> 00:36:30,280 Och vi ser en mycket enklare HTML-layout. 766 00:36:30,280 --> 00:36:32,020 Vi har toppen, mitten och botten. 767 00:36:32,020 --> 00:36:34,490 Och återigen, något du bör vara förtrogen med, eftersom du har tittat 768 00:36:34,490 --> 00:36:37,680 genom distributionskoden för denna veckas problem set. 769 00:36:37,680 --> 00:36:43,360 >> Upptill är, per koden, en enda bild heter. 770 00:36:43,360 --> 00:36:47,170 Och det är källan av bilden. 771 00:36:47,170 --> 00:36:52,170 Säga att jag är klar med allt vad Jag ville för Problem Set 7. 772 00:36:52,170 --> 00:36:55,500 Och den fungerar på rätt sätt, men Jag vill ändra hur det ser ut. 773 00:36:55,500 --> 00:36:58,900 Och jag vill ändra bakgrunden av den övre delen av sidan som, 774 00:36:58,900 --> 00:37:01,000 t.ex. blå. 775 00:37:01,000 --> 00:37:04,860 Om det var jag, skulle jag komma in här och räkna ut, OK vad 776 00:37:04,860 --> 00:37:05,890 vill jag byta. 777 00:37:05,890 --> 00:37:08,700 >> Låt oss se, div ID-topp, som ser ut som toppen på sidan. 778 00:37:08,700 --> 00:37:09,910 Så låt oss gå dit. 779 00:37:09,910 --> 00:37:13,940 Låt oss prova att byta bakgrundsfärg. 780 00:37:13,940 --> 00:37:16,360 Låt oss gå göra Alice blått, eftersom det är en trevligare. 781 00:37:16,360 --> 00:37:18,010 >> Och du kommer att märka det - 782 00:37:18,010 --> 00:37:19,190 du antagligen inte kan se det. 783 00:37:19,190 --> 00:37:23,430 Men det finns en ljusblå, tillsammans med CS50-logotypen. 784 00:37:23,430 --> 00:37:25,810 Låt oss ändra det i stället för rött. 785 00:37:25,810 --> 00:37:28,790 Och du kommer att märka nu bytte jag bara bakgrundsfärgen till rött. 786 00:37:28,790 --> 00:37:37,050 >> Så nu vill jag gå in i min CSS-fil och typ # topp lockigt paren här. 787 00:37:37,050 --> 00:37:42,170 Du kan se koden rätt Här klammer. 788 00:37:42,170 --> 00:37:44,530 Och då skulle jag lägga till bakgrunds färg, röd. 789 00:37:44,530 --> 00:37:47,500 Och sedan, det skulle vara en klammer. 790 00:37:47,500 --> 00:37:52,230 Så det är hur jag skulle utforska och experimentera med formatering på CS50 791 00:37:52,230 --> 00:37:53,070 Finans webbplats. 792 00:37:53,070 --> 00:37:55,060 >> Jag skulle kunna göra det här och testa ut det på min webbläsare. 793 00:37:55,060 --> 00:37:58,130 Och då kunde jag gå in i min faktiska koden och göra de förändringar som kommer 794 00:37:58,130 --> 00:38:01,940 faktiskt gå live och att människor faktiskt se, om de skulle komma till 795 00:38:01,940 --> 00:38:04,280 min viss plats. 796 00:38:04,280 --> 00:38:05,390 >> OK. 797 00:38:05,390 --> 00:38:06,850 Det var en hel del. 798 00:38:06,850 --> 00:38:09,380 Jag ber om ursäkt för att gå igenom det så snabbt. 799 00:38:09,380 --> 00:38:12,560 Är det någon som har några frågor alls om HTML eller CSS? 800 00:38:12,560 --> 00:38:15,830 801 00:38:15,830 --> 00:38:24,728 >> PUBLIK: Kan du bara gå över hur man kopplade vad blev Jason, igen? 802 00:38:24,728 --> 00:38:26,180 >> JASON Hirschhorn: Vad menar du länkade? 803 00:38:26,180 --> 00:38:29,765 >> PUBLIK: Du angav en länk till en annan hemsida, med användning av ankaret. 804 00:38:29,765 --> 00:38:32,980 >> JASON Hirschhorn: Så du frågar, bara allmänt, hur du gör en länk? 805 00:38:32,980 --> 00:38:33,560 >> PUBLIK: Ja. 806 00:38:33,560 --> 00:38:34,150 >> JASON Hirschhorn: OK. 807 00:38:34,150 --> 00:38:35,575 Koden för att göra en länk - 808 00:38:35,575 --> 00:38:38,180 809 00:38:38,180 --> 00:38:40,590 >> PUBLIK: Nej, som i HTML. 810 00:38:40,590 --> 00:38:43,140 >> JASON Hirschhorn: Här nere, menar du? 811 00:38:43,140 --> 00:38:46,960 Så om jag vill ha med en länk någonstans, säg, är detta HTML på min 812 00:38:46,960 --> 00:38:50,210 sidan här. 813 00:38:50,210 --> 00:38:51,010 Detta är HTML. 814 00:38:51,010 --> 00:38:53,720 Kanske är det öppet i en fil, index.html. 815 00:38:53,720 --> 00:38:56,100 Jag går i. 816 00:38:56,100 --> 00:38:58,990 >> Låt oss ha denna upphovsrätts John Harvard länk till något. 817 00:38:58,990 --> 00:39:02,230 Så vi ska redigera allt detta som HTML. 818 00:39:02,230 --> 00:39:08,480 Allt du behöver göra är inkludera a, så bracket en nära fäste på 819 00:39:08,480 --> 00:39:12,700 början, och sedan fäste snedstreck en nära fästet i slutet. 820 00:39:12,700 --> 00:39:13,930 >> Så nu har jag inkluderat en ankartaggen. 821 00:39:13,930 --> 00:39:15,475 Och faktiskt, om du klickar av detta, kommer det nu 822 00:39:15,475 --> 00:39:22,110 formatera det redigera som HTML. 823 00:39:22,110 --> 00:39:24,020 Och säga, vi vill länka den. 824 00:39:24,020 --> 00:39:25,760 Vi skulle du attributet href. 825 00:39:25,760 --> 00:39:27,010 Och vi säger - 826 00:39:27,010 --> 00:39:42,600 827 00:39:42,600 --> 00:39:47,600 >> Och nu, som ni märker, upphovsrätt John Harvard är blå. 828 00:39:47,600 --> 00:39:50,870 Och när jag rulla över det, det är nu en länk. 829 00:39:50,870 --> 00:39:53,140 Så du kan skriva koden. 830 00:39:53,140 --> 00:39:57,030 Du kan omge stort sett allt du vill ha i en ankartaggen och vrid den 831 00:39:57,030 --> 00:39:57,700 till en länk. 832 00:39:57,700 --> 00:39:58,246 >> PUBLIK: OK. 833 00:39:58,246 --> 00:39:58,520 Uppfattat. 834 00:39:58,520 --> 00:40:01,300 >> JASON Hirschhorn: Och om jag inte vill ha det - naturligtvis, ibland människor tenderar 835 00:40:01,300 --> 00:40:04,090 att tro dessa saker som bara ser blå allmänt och understrukna är 836 00:40:04,090 --> 00:40:05,860 inte den vackraste sättet att göra en länk. 837 00:40:05,860 --> 00:40:11,380 Så om jag kommer hit, ser du att, någonstans i en CSS-fil, det finns 838 00:40:11,380 --> 00:40:14,500 skrivit denna a och sedan två klammerparenteser. 839 00:40:14,500 --> 00:40:20,700 Så låt oss säga att, för länkar, det gör jag inte vill att de ska bli blå, snarare jag 840 00:40:20,700 --> 00:40:23,645 vill att färgen på en länk till vara denna trevliga magenta. 841 00:40:23,645 --> 00:40:28,320 842 00:40:28,320 --> 00:40:30,640 >> Låt oss ge den färg. 843 00:40:30,640 --> 00:40:34,060 844 00:40:34,060 --> 00:40:35,110 Låt oss plocka magenta. 845 00:40:35,110 --> 00:40:38,440 Nu, alla länkar på min sida har blir det fin färg av magenta. 846 00:40:38,440 --> 00:40:40,170 Vissa människor tycker inte om färgerna alls. 847 00:40:40,170 --> 00:40:41,340 Vissa människor tycker inte om understrykningar. 848 00:40:41,340 --> 00:40:42,510 Du får välja. 849 00:40:42,510 --> 00:40:44,990 >> Med länkar kan du styla hur de ser när du har besökt dem. 850 00:40:44,990 --> 00:40:47,820 Som du kommer att märka på en massa sidor, länkar sväng lila på du besöker dem. 851 00:40:47,820 --> 00:40:49,190 Du kan ändra den färgen också. 852 00:40:49,190 --> 00:40:49,450 Yeah. 853 00:40:49,450 --> 00:40:51,790 >> PUBLIK: Så du ändra det för varje enskild länk. 854 00:40:51,790 --> 00:40:56,310 Men om du bara ville göra den länken själv, skulle du göra just i ID 855 00:40:56,310 --> 00:40:58,720 botten eller något? 856 00:40:58,720 --> 00:41:01,070 >> JASON Hirschhorn: Så stor fråga. 857 00:41:01,070 --> 00:41:05,090 Som du märkt här, ändrade jag lite del av CSS som gäller för 858 00:41:05,090 --> 00:41:11,530 allt som är ett A. Om jag ville bara göra den länken längst ner, jag 859 00:41:11,530 --> 00:41:14,500 skulle gå till min CSS-fil och förmodligen gör precis som du sa, hash 860 00:41:14,500 --> 00:41:16,040 botten utrymme a. 861 00:41:16,040 --> 00:41:18,400 Och det skulle ge mig allt Som i botten. 862 00:41:18,400 --> 00:41:30,720 >> Eller jag kunde, alternativt ge det en unikt ID och sedan bara göra hash länk. 863 00:41:30,720 --> 00:41:32,050 Och som skulle tillåta mig att byta ut denna. 864 00:41:32,050 --> 00:41:36,170 Men bara dela ut ID mot sin vilja är i allmänhet en dålig 865 00:41:36,170 --> 00:41:37,730 praktiken, eftersom de bör vara unik. 866 00:41:37,730 --> 00:41:40,940 Och ju mer du har dem, det kan bli lite förvirrande. 867 00:41:40,940 --> 00:41:41,270 Yeah. 868 00:41:41,270 --> 00:41:43,725 >> PUBLIK: Kan du ge samma ID för att flera ägare? 869 00:41:43,725 --> 00:41:45,820 >> JASON Hirschhorn: Tekniskt sett ja. 870 00:41:45,820 --> 00:41:50,700 Ingenting kommer att stoppa dig, men du borde inte du borde ge det en klass. 871 00:41:50,700 --> 00:41:55,330 872 00:41:55,330 --> 00:41:57,655 OK, några andra frågor om HTML eller CSS? 873 00:41:57,655 --> 00:42:05,660 874 00:42:05,660 --> 00:42:06,310 >> OK. 875 00:42:06,310 --> 00:42:09,950 Låt oss gå vidare till PHP. 876 00:42:09,950 --> 00:42:10,575 Oh, ja. 877 00:42:10,575 --> 00:42:13,800 >> PUBLIK: Vad är det med dessa webbplatser som gör att vi kan redigera 878 00:42:13,800 --> 00:42:15,440 dem innan vi uppdatera. 879 00:42:15,440 --> 00:42:18,270 Men när vi uppdaterar den återgår tillbaka till den ursprungliga HTML? 880 00:42:18,270 --> 00:42:19,900 >> JASON Hirschhorn: Bra fråga - 881 00:42:19,900 --> 00:42:24,810 så när vi har laddat detta webbsida, det är HTML. 882 00:42:24,810 --> 00:42:25,900 Och det är JavaScript. 883 00:42:25,900 --> 00:42:29,060 Dess PHP utförs för att ge oss vad typ av webbplats som vi ser. 884 00:42:29,060 --> 00:42:33,130 Och det har skapat en del HTML, vissa JavaScript, och en del CSS. 885 00:42:33,130 --> 00:42:35,990 Och det är nu tillgänglig med vår dator. 886 00:42:35,990 --> 00:42:40,700 >> Och en kopia av dessa filer sparas lokalt på vår dator, 887 00:42:40,700 --> 00:42:41,910 för tillfället. 888 00:42:41,910 --> 00:42:44,030 Så vi kan redigera den lokala kopian. 889 00:42:44,030 --> 00:42:46,530 Men naturligtvis är vi inte redigerar servern kopia. 890 00:42:46,530 --> 00:42:49,420 >> Och när vi uppdatera sidan, Vi får en annan server kopia. 891 00:42:49,420 --> 00:42:51,250 Och så ser vi saker tillbaka som de var. 892 00:42:51,250 --> 00:42:55,200 Om vi ​​kunde, härifrån, för att redigera officiella hemsida, skulle vi ha mycket 893 00:42:55,200 --> 00:42:55,800 problem. 894 00:42:55,800 --> 00:42:58,670 >> PUBLIK: Ja, så att vi kan läsa och skriver att kopian. 895 00:42:58,670 --> 00:43:00,140 >> JASON Hirschhorn: Höger. 896 00:43:00,140 --> 00:43:04,380 Vi ska bara göra lokala förändringar här, men återigen, mycket hjälpsamma för att utforska, 897 00:43:04,380 --> 00:43:05,690 ofta nog. 898 00:43:05,690 --> 00:43:08,900 När jag skriver mitt slutprojekt, för Exempelvis vill jag se hur vissa 899 00:43:08,900 --> 00:43:11,270 webbplats gjort något look det sätt de gjorde. 900 00:43:11,270 --> 00:43:17,350 Jag kommer att gå in och använda den här panelen ner här, för att titta på vad CSS de gav till 901 00:43:17,350 --> 00:43:20,890 den eller vilken färg de valde eller hur de fick det så att när man svävade 902 00:43:20,890 --> 00:43:24,180 över något, kom ner listan i en fin forsande mode. 903 00:43:24,180 --> 00:43:27,220 Det är ett bra sätt att kontrollera vad andra webbplatser gör och låna av dem. 904 00:43:27,220 --> 00:43:30,590 905 00:43:30,590 --> 00:43:33,690 >> Låt oss gå vidare till PHP. 906 00:43:33,690 --> 00:43:38,560 PHP står för, i en rekursiv bemärkelse, PHP Hypertext Processor. 907 00:43:38,560 --> 00:43:42,060 Och PHP, vad det kommer att göra är exekvera kod serversidan. 908 00:43:42,060 --> 00:43:44,490 Så vi kommer aldrig att se PHP-kod. 909 00:43:44,490 --> 00:43:47,210 >> Men det spelar fint med HTML och ofta genererar 910 00:43:47,210 --> 00:43:48,210 en hel del av HTML-kod. 911 00:43:48,210 --> 00:43:52,570 Men som du kommer att bli bekant med problem Set 7, kommer din PHP-kod exekvera, 912 00:43:52,570 --> 00:43:56,200 generera en del HTML, och det är vad användaren kommer att sluta se. 913 00:43:56,200 --> 00:44:00,510 >> PHP är otroligt lik C. Det finns dock ett par 914 00:44:00,510 --> 00:44:04,400 skillnader, och dessa skillnader är viktigt att notera. 915 00:44:04,400 --> 00:44:09,420 En skillnad är att variabler i PHP är löst skrivit. 916 00:44:09,420 --> 00:44:11,275 Är det någon som har en känsla av vad det betyder? 917 00:44:11,275 --> 00:44:14,245 >> PUBLIK: Inget behov av att kasta det själv. 918 00:44:14,245 --> 00:44:16,400 Som ingen anledning att skriva in text. 919 00:44:16,400 --> 00:44:19,070 >> JASON Hirschhorn: Jag skulle inte använda Ordet rösterna, men ja, inget behov av att deklarera 920 00:44:19,070 --> 00:44:20,930 en typ för en viss variabel. 921 00:44:20,930 --> 00:44:22,300 Så istället ska vi deklarera en variabel? 922 00:44:22,300 --> 00:44:23,860 >> PUBLIK: Använd ett dollartecken. 923 00:44:23,860 --> 00:44:25,270 >> JASON Hirschhorn: Använd ett dollartecken. 924 00:44:25,270 --> 00:44:27,540 Så $ x är en variabel. 925 00:44:27,540 --> 00:44:29,580 1 $ är en variabel. 926 00:44:29,580 --> 00:44:31,910 $ String är en variabel. 927 00:44:31,910 --> 00:44:36,280 >> De variabler, $ x kunde vara ett heltal. 928 00:44:36,280 --> 00:44:38,010 Då skulle det kunna vara en sträng. 929 00:44:38,010 --> 00:44:39,420 Då skulle det kunna vara ett tecken. 930 00:44:39,420 --> 00:44:40,790 Det spelar egentligen ingen roll. 931 00:44:40,790 --> 00:44:46,360 >> Också, det häftiga med PHP är, säg, är $ x strängen ett. 932 00:44:46,360 --> 00:44:48,920 Och $ y är tecknet en. 933 00:44:48,920 --> 00:44:54,370 Du kan lägga till $ x och $ y, och det ska ge dig 2, vad du förväntar dig. 934 00:44:54,370 --> 00:44:56,160 Så det finns verksamhet i PHP. 935 00:44:56,160 --> 00:45:00,810 Eftersom det är löst skrivit variabler, några implicita gjutning är gjort för dig 936 00:45:00,810 --> 00:45:02,330 och vissa operationer. 937 00:45:02,330 --> 00:45:04,240 >> Du kan göra operationer på saker av olika typer. 938 00:45:04,240 --> 00:45:08,740 Beaktande innan, du ofta får ett felmeddelande i C säger, är det inte den typen 939 00:45:08,740 --> 00:45:09,610 som är tänkt att gå här. 940 00:45:09,610 --> 00:45:11,510 Bara saker av detta slag kan gå här. 941 00:45:11,510 --> 00:45:14,900 Du kommer inte att få den typen av misstag, i allmänhet, i PHP. 942 00:45:14,900 --> 00:45:17,420 Så det är en stor skillnad - hur vi handskas med variabler. 943 00:45:17,420 --> 00:45:20,850 >> Den andra stora skillnaden är att PHP-kod tolkas. 944 00:45:20,850 --> 00:45:23,110 Wheres, är C-kod kompileras. 945 00:45:23,110 --> 00:45:23,910 Vad menar du? 946 00:45:23,910 --> 00:45:26,700 >> Tja, för C-kod som du körde det genom en kompilator. 947 00:45:26,700 --> 00:45:29,010 Du genererade en binär fil. 948 00:45:29,010 --> 00:45:30,770 Och du körde den binär fil. 949 00:45:30,770 --> 00:45:35,500 Du tog hand om alla fel innan du skapade den binära filen. 950 00:45:35,500 --> 00:45:37,810 >> Naturligtvis kan det förekommit segmentering fel, när du körde 951 00:45:37,810 --> 00:45:39,020 binär fil. 952 00:45:39,020 --> 00:45:45,780 Men det är inte som du glömde att inkludera definitionen av printf eller 953 00:45:45,780 --> 00:45:48,735 du inte använder en variabel och bara skapade en slösaktig variabel. 954 00:45:48,735 --> 00:45:51,830 Eller du inte definiera en funktionsprototyp. 955 00:45:51,830 --> 00:45:53,590 >> Allt som hände innan du sammanställt. 956 00:45:53,590 --> 00:45:56,830 Det gav dig alla de fel eller dåligt saker som det trodde skulle hända. 957 00:45:56,830 --> 00:45:59,900 Och då, hade du din 0 och 1 fil som du körde. 958 00:45:59,900 --> 00:46:01,690 PHP-kod fungerar inte så. 959 00:46:01,690 --> 00:46:03,750 >> Du kommer att skriva din PHP-kod. 960 00:46:03,750 --> 00:46:05,820 Då kommer du att spara den, förmodligen. 961 00:46:05,820 --> 00:46:09,160 Och åtminstone i P-Set 7, du kommer att uppdatera din webbläsare, och 962 00:46:09,160 --> 00:46:11,110 du kommer att se vad som hände. 963 00:46:11,110 --> 00:46:14,110 Du ska se produktionen av att PHP-kod. 964 00:46:14,110 --> 00:46:17,450 >> Du kan också se, på toppen på din sida, ett fel. 965 00:46:17,450 --> 00:46:19,960 Därför att du hade några fel i din PHP. 966 00:46:19,960 --> 00:46:22,390 Du kan fortfarande se resten av webbsidan ser bra. 967 00:46:22,390 --> 00:46:25,130 Men en del är fel, och det finns ett fel på den platsen. 968 00:46:25,130 --> 00:46:28,320 Och det beror på att en del av din PHP-kod fungerar inte. 969 00:46:28,320 --> 00:46:31,680 >> Det är när du kör, när du gå till något som by.php. 970 00:46:31,680 --> 00:46:34,950 Det kommer att gå igenom din PHP filen rad för rad och utföra det 971 00:46:34,950 --> 00:46:36,210 då och endast då. 972 00:46:36,210 --> 00:46:39,890 Det kommer inte att kompilera det i förväg tid eller sammanställa ett exemplar och sedan ge 973 00:46:39,890 --> 00:46:41,570 som sammanställt kopia till alla. 974 00:46:41,570 --> 00:46:43,830 Varje gång, det kommer att gå igenom rad för rad och köra den. 975 00:46:43,830 --> 00:46:46,620 >> Så några rader skulle kunna fungera och output något rätt. 976 00:46:46,620 --> 00:46:49,500 Och andra linjer kan brytas och presentera ett felmeddelande i stället. 977 00:46:49,500 --> 00:46:52,650 Så när felsökning med PHP, har vi gett dig ett par hjälp saker 978 00:46:52,650 --> 00:46:54,580 att hjälpa dig att felsöka, liksom tömningsfunktion. 979 00:46:54,580 --> 00:46:56,900 >> Men generellt, du kommer att se dessa fel. 980 00:46:56,900 --> 00:46:58,340 Och det är hur du ska vet att du gjorde något fel. 981 00:46:58,340 --> 00:47:00,740 Men du kommer bara att se felet när du faktiskt köra koden. 982 00:47:00,740 --> 00:47:03,420 983 00:47:03,420 --> 00:47:08,880 >> En annan viktig aspekt av PHP och webbutveckling är tanken att få 984 00:47:08,880 --> 00:47:09,920 kontra inlägget. 985 00:47:09,920 --> 00:47:13,250 Kan någon förklara vad skillnaden mellan får och inlägg är? 986 00:47:13,250 --> 00:47:17,530 987 00:47:17,530 --> 00:47:18,780 Ingen - 988 00:47:18,780 --> 00:47:21,710 989 00:47:21,710 --> 00:47:21,970 Ja. 990 00:47:21,970 --> 00:47:24,495 >> PUBLIK: Har inte en av dem så att användaren kan se informationen, 991 00:47:24,495 --> 00:47:26,080 och en av dem inte gör det? 992 00:47:26,080 --> 00:47:27,310 >> JASON Hirschhorn: Great. 993 00:47:27,310 --> 00:47:28,400 Ja, har du något att tillägga? 994 00:47:28,400 --> 00:47:32,622 >> PUBLIK: Jag tunn inlägget är en super global variabel. 995 00:47:32,622 --> 00:47:34,740 >> JASON Hirschhorn: Så båda dessa variabler ges till dig. 996 00:47:34,740 --> 00:47:35,630 Dessa är bara variabler. 997 00:47:35,630 --> 00:47:37,740 Och du vet att de är variabler, eftersom just här jag 998 00:47:37,740 --> 00:47:38,780 använda dollartecken. 999 00:47:38,780 --> 00:47:41,950 >> Dessa variabler ges till dig av PHP. 1000 00:47:41,950 --> 00:47:45,990 Och när du flyttar mellan webbsidor, du vill spara lite information. 1001 00:47:45,990 --> 00:47:47,960 Du vill förmodligen att spara om användaren är inloggad i. 1002 00:47:47,960 --> 00:47:49,270 Det är inte sparas i GET och POST. 1003 00:47:49,270 --> 00:47:51,390 Som är sparat i något annat, en annan variabel. 1004 00:47:51,390 --> 00:47:55,170 >> Någon som vet vad variabel som är sparad i, eller vilken variabel du använder i 1005 00:47:55,170 --> 00:47:57,728 P-Set 7, för att se till att användaren är inloggad? 1006 00:47:57,728 --> 00:48:00,360 1007 00:48:00,360 --> 00:48:03,690 $ _SESSION, Det är precis rätt, nog viktigt att känna till 1008 00:48:03,690 --> 00:48:06,060 namnen på dessa saker du använder ofta. 1009 00:48:06,060 --> 00:48:10,070 >> Så du använder sessionsvariabel för att spara Information från sida till sida. 1010 00:48:10,070 --> 00:48:11,075 Det är en super variabel. 1011 00:48:11,075 --> 00:48:15,250 Det finns på varje sida, kanske som en global variabel, om du vill tänka 1012 00:48:15,250 --> 00:48:16,900 om det så. 1013 00:48:16,900 --> 00:48:19,260 >> Det finns ett par andra variabler som gör att du kan överföra information 1014 00:48:19,260 --> 00:48:20,710 från sida till sida. 1015 00:48:20,710 --> 00:48:24,260 I synnerhet de som vi kommer att fokusera på är GET och POST-variabler. 1016 00:48:24,260 --> 00:48:29,330 I PHP de ser ut $ _GET Och $ _POST. 1017 00:48:29,330 --> 00:48:33,610 Och skillnaden, pekade som Marcus ut, mellan två av dem är det, 1018 00:48:33,610 --> 00:48:37,670 informationen i $ _GET är visas i webbadressen. 1019 00:48:37,670 --> 00:48:41,380 >> Så om vi ser här nere, Vi ser en YouTube-länk. 1020 00:48:41,380 --> 00:48:43,760 Vi ser detta frågetecken. 1021 00:48:43,760 --> 00:48:47,730 Vi ser v = och lite värde. 1022 00:48:47,730 --> 00:48:53,460 Tillbaka till den här idén om nyckelvärde par, är det v nyckeln. 1023 00:48:53,460 --> 00:48:56,970 Och här är det värde. 1024 00:48:56,970 --> 00:49:01,030 >> Så om vi skulle gå till den här sidan, eller kodning på den här sidan, skulle vi ha en 1025 00:49:01,030 --> 00:49:04,000 variabel som heter $ _GET. 1026 00:49:04,000 --> 00:49:11,030 Om vi ​​gick till $ _GET öppna fäste "v" nära fästet, mycket lik array 1027 00:49:11,030 --> 00:49:15,000 notation, är detta ett intresseföretag array eftersom vi inte använder index. 1028 00:49:15,000 --> 00:49:16,710 Använde strängar som nycklar. 1029 00:49:16,710 --> 00:49:17,940 Men mycket liknande idé. 1030 00:49:17,940 --> 00:49:20,520 Om vi ​​gick vi skulle få detta värde. 1031 00:49:20,520 --> 00:49:23,276 >> På den här sidan, skulle vi kunna att använda detta värde. 1032 00:49:23,276 --> 00:49:32,200 Om vi ​​faktiskt ser, låt oss gå till en YouTube-sida. 1033 00:49:32,200 --> 00:49:35,140 Vilken video ska vi titta på? 1034 00:49:35,140 --> 00:49:37,350 Detta är människor Hobbit fans? 1035 00:49:37,350 --> 00:49:40,731 >> PUBLIK: Ja. 1036 00:49:40,731 --> 00:49:44,750 >> JASON Hirschhorn: Så jag kopierar deras andel webbadress och 1037 00:49:44,750 --> 00:49:46,000 klistra in den i ett nytt fönster. 1038 00:49:46,000 --> 00:49:48,550 1039 00:49:48,550 --> 00:50:00,470 Och nu, om man tittar upp här, kommer du märka det, ännu en gång - 1040 00:50:00,470 --> 00:50:03,170 Jag kommer att kopiera och klistra in detta i gedit, så att vi kan se det större. 1041 00:50:03,170 --> 00:50:16,530 1042 00:50:16,530 --> 00:50:19,720 Du kommer att märka att den har detta frågetecken. 1043 00:50:19,720 --> 00:50:22,150 Frågetecknet anger att allt efter detta kommer att bli 1044 00:50:22,150 --> 00:50:23,530 sparas i get variabel. 1045 00:50:23,530 --> 00:50:29,130 >> Den har sedan v, det är den första nyckeln och detta första värde. 1046 00:50:29,130 --> 00:50:30,710 Ampersand är speciell. 1047 00:50:30,710 --> 00:50:34,340 Ampersand säger, OK, vi avslutade det första värdet. 1048 00:50:34,340 --> 00:50:37,170 Nu går vi vidare till ett annat nyckelvärde paret. 1049 00:50:37,170 --> 00:50:41,135 Här är nyckeln kallas funktionen, och värdet är youtu.be. 1050 00:50:41,135 --> 00:50:44,010 1051 00:50:44,010 --> 00:50:50,710 >> Så om jag var en kodning denna sida och någon gick till denna URL och jag hade 1052 00:50:50,710 --> 00:50:53,190 kanske watch.php. 1053 00:50:53,190 --> 00:50:54,150 Och jag var kodning detta. 1054 00:50:54,150 --> 00:50:57,060 Och jag skulle kunna använda $ _GET variabel. 1055 00:50:57,060 --> 00:51:02,740 Och jag skulle ha en volym, och Jag skulle ha en funktion. 1056 00:51:02,740 --> 00:51:07,080 >> Och om jag använder v-knappen, jag skulle få detta värde. 1057 00:51:07,080 --> 00:51:14,145 Och om jag gjorde $ _GET fäste "funktion" nära fästet, skulle jag få detta värde. 1058 00:51:14,145 --> 00:51:17,530 Återigen, det gör det inte nödvändigtvis tillämpas på - 1059 00:51:17,530 --> 00:51:21,460 självklart, YouTube-nycklar och värden och få information som inte gäller 1060 00:51:21,460 --> 00:51:22,700 vår Problem Set 7. 1061 00:51:22,700 --> 00:51:28,450 Men det finns vissa saker som vi passera via GET i vår Problem Set 7. 1062 00:51:28,450 --> 00:51:33,120 Och visst, när du går till en webbsida eller kodning din egen sida, det 1063 00:51:33,120 --> 00:51:36,440 $ _GET Kommer att komma väl till pass när din kodning. 1064 00:51:36,440 --> 00:51:41,030 >> Vad är en anledning att använda $ _GET sedan, om det ger något privatliv? 1065 00:51:41,030 --> 00:51:43,170 Ser du all denna information som är som överförs. 1066 00:51:43,170 --> 00:51:44,170 Det är allt visas för användaren. 1067 00:51:44,170 --> 00:51:49,060 Men vad är en anledning till att du kanske vill spara något i $ _GET, som 1068 00:51:49,060 --> 00:51:50,310 motsats till $ _POST? 1069 00:51:50,310 --> 00:51:52,650 1070 00:51:52,650 --> 00:51:53,900 Varför skulle du vilja göra det? 1071 00:51:53,900 --> 00:51:58,065 1072 00:51:58,065 --> 00:51:58,540 >> Okej. 1073 00:51:58,540 --> 00:52:00,310 Jag frågade dig i Quiz 1. 1074 00:52:00,310 --> 00:52:02,210 Vad är pro på $ _GET? 1075 00:52:02,210 --> 00:52:04,250 Vad är en pro? 1076 00:52:04,250 --> 00:52:04,700 Ja - 1077 00:52:04,700 --> 00:52:06,180 >> PUBLIK: Det är lättare att dela information. 1078 00:52:06,180 --> 00:52:07,040 >> JASON Hirschhorn: Jag tror det är bra. 1079 00:52:07,040 --> 00:52:07,870 Det är lättare att dela information. 1080 00:52:07,870 --> 00:52:09,360 Det är lättare att bokmärka. 1081 00:52:09,360 --> 00:52:15,260 >> Du kan spara bokmärken nu, YouTube.com / watch v = något? Och gå 1082 00:52:15,260 --> 00:52:16,900 till den specifika video. 1083 00:52:16,900 --> 00:52:22,020 Om YouTube gjorde alltid POST-begäran till olika sidor, varje YouTube URL 1084 00:52:22,020 --> 00:52:22,985 skulle vara YouTube.com. 1085 00:52:22,985 --> 00:52:25,750 Du kan inte bokmärka en enda video. 1086 00:52:25,750 --> 00:52:28,160 För om du säger delat den länken med någon annan, det gör de inte 1087 00:52:28,160 --> 00:52:30,160 automatiskt få ditt inlägg variabel. 1088 00:52:30,160 --> 00:52:33,570 De bara få den här länken, och länk är samma för alla. 1089 00:52:33,570 --> 00:52:35,180 >> Så det är ett proffs. 1090 00:52:35,180 --> 00:52:38,850 Det gör att du till bokmärken denna information eller dela denna information 1091 00:52:38,850 --> 00:52:40,840 eller göra det lite mer användarvänliga. 1092 00:52:40,840 --> 00:52:43,890 Naturligtvis finns det ingen sekretess, så vi har det här inlägget variabel. 1093 00:52:43,890 --> 00:52:47,570 Och efter information inte visas i webbadressen. 1094 00:52:47,570 --> 00:52:49,200 >> Det är inte helt privat. 1095 00:52:49,200 --> 00:52:51,710 Men det är marginellt mer privat. 1096 00:52:51,710 --> 00:52:55,030 Och så ser du den här webbadressen här nere, cs50.net. 1097 00:52:55,030 --> 00:52:59,200 Oavsett om du är inloggad på hemsida, det kommer att ha samma 1098 00:52:59,200 --> 00:53:02,600 URL, cs50.net. 1099 00:53:02,600 --> 00:53:05,940 >> Uppenbarligen är något annorlunda, om du har loggat in på webbplatsen. 1100 00:53:05,940 --> 00:53:08,690 Du har, en, troligtvis ingång din PIN-kod. 1101 00:53:08,690 --> 00:53:10,600 Och det har bekräftats att med servern. 1102 00:53:10,600 --> 00:53:12,650 Och det är nog rädda någon annan information. 1103 00:53:12,650 --> 00:53:14,810 Men webbadressen inte ändras alls. 1104 00:53:14,810 --> 00:53:17,080 >> Och så är fallet, då något skickas med POST. 1105 00:53:17,080 --> 00:53:18,800 Webbadressen ändras inte. 1106 00:53:18,800 --> 00:53:21,100 Denna POST information inte visas i webbadressen. 1107 00:53:21,100 --> 00:53:26,150 Men några tillstånd har förändrats, och kanske det finns en del information som sparats i 1108 00:53:26,150 --> 00:53:27,400 POST variabel. 1109 00:53:27,400 --> 00:53:30,460 1110 00:53:30,460 --> 00:53:36,880 >> Ursäkta. innan jag går in i SQL, något frågor om PHP, i synnerhet, 1111 00:53:36,880 --> 00:53:41,850 frågor om saker som vi inte gå över att du har hittat eller någon syntax eller 1112 00:53:41,850 --> 00:53:43,855 logiska frågor om PHP? 1113 00:53:43,855 --> 00:53:49,300 1114 00:53:49,300 --> 00:53:50,050 OK. 1115 00:53:50,050 --> 00:53:54,400 >> Den slutliga språk kommer du att interagera med den här veckan är det 1116 00:53:54,400 --> 00:53:58,920 Structured Query Language, SQL, uttalad uppföljare ofta. 1117 00:53:58,920 --> 00:54:01,740 Det gör att du kan interagera med databas på ett formaliserat sätt. 1118 00:54:01,740 --> 00:54:04,390 Och det spelar väldigt fint med PHP. 1119 00:54:04,390 --> 00:54:09,950 >> Som du ser i Problem Set 7, vi har gett dig en funktion som heter fråga. 1120 00:54:09,950 --> 00:54:14,990 Och det tar en SQL-sträng och exekverar att fråga på databasen. 1121 00:54:14,990 --> 00:54:17,470 Under år tidigare, var inte du ges denna funktion. 1122 00:54:17,470 --> 00:54:22,250 Du var tvungen att använda PHP funktioner för att göra frågan om databasen och kontroll 1123 00:54:22,250 --> 00:54:24,230 för fel och sedan få resultatet. 1124 00:54:24,230 --> 00:54:26,120 >> Och faktiskt, det är inte så svårt, eftersom igen, spelar det 1125 00:54:26,120 --> 00:54:27,080 mycket fint med PHP. 1126 00:54:27,080 --> 00:54:31,240 Och PHP ger dig en hel del funktioner att interagera med en SQL-databas. 1127 00:54:31,240 --> 00:54:34,810 Så ofta, två av dessa går ihop. 1128 00:54:34,810 --> 00:54:37,090 Naturligtvis kan du interagera med SQL-databas med alla 1129 00:54:37,090 --> 00:54:38,400 antal andra språk. 1130 00:54:38,400 --> 00:54:41,420 Men PHP är en stor en att välja. 1131 00:54:41,420 --> 00:54:42,290 >> En databas - 1132 00:54:42,290 --> 00:54:46,030 Vi ska gå igenom det här snabbt, eftersom detta är ett modeord vi ska 1133 00:54:46,030 --> 00:54:48,030 börja använda ofta - 1134 00:54:48,030 --> 00:54:50,140 är en samling av tabeller. 1135 00:54:50,140 --> 00:54:53,960 Så vi kan tänka på det som en Excel-fil. 1136 00:54:53,960 --> 00:54:57,260 En Excel-fil har flera flikar på undersidan av skärmen. 1137 00:54:57,260 --> 00:55:03,090 Varje flik vi nu kallar en tabell, där en tabell som är en samling av rader. 1138 00:55:03,090 --> 00:55:04,060 >> Och vad är en rad? 1139 00:55:04,060 --> 00:55:06,890 Tja, är en rad som samma sak i Excel-filen. 1140 00:55:06,890 --> 00:55:10,380 Det har bara vissa värden för varje visst område eller varje given kolumn. 1141 00:55:10,380 --> 00:55:12,010 Det är som en post i tabellen. 1142 00:55:12,010 --> 00:55:16,570 Det är en student, som har ett ID, en specifika ID, och ett specifikt namn och ett 1143 00:55:16,570 --> 00:55:17,910 specifikt hus. 1144 00:55:17,910 --> 00:55:19,790 >> Så en databas är en samling av tabeller. 1145 00:55:19,790 --> 00:55:22,685 Och tabeller själva är en antal rader eller poster. 1146 00:55:22,685 --> 00:55:25,470 1147 00:55:25,470 --> 00:55:28,280 Det finns också, i varje bord, vissa områden. 1148 00:55:28,280 --> 00:55:32,130 Och som anger vad varje post är kommer att ha, områden som ibland kallas 1149 00:55:32,130 --> 00:55:33,890 kolumner men generellt kallas fält. 1150 00:55:33,890 --> 00:55:38,270 >> I denna mycket enkla bord, jag har tre fält, ett ID-fält, ett användarnamn 1151 00:55:38,270 --> 00:55:39,780 fält, och ett hash-fält. 1152 00:55:39,780 --> 00:55:41,300 Och jag har tre rader. 1153 00:55:41,300 --> 00:55:42,100 Just nu, de är tomma. 1154 00:55:42,100 --> 00:55:44,850 De skulle nog inte vara tomt Om detta var min riktiga databas. 1155 00:55:44,850 --> 00:55:50,530 >> Så om du har använt Excel, liknande idé vad du gör i Excel, men, 1156 00:55:50,530 --> 00:55:54,300 självklart, nu ska vi kunna göra mycket mer kraftfulla saker på 1157 00:55:54,300 --> 00:55:56,430 information som är lagrad i vår databas. 1158 00:55:56,430 --> 00:56:00,270 Du kommer att skapa dig själv en databas för Problem Set 7. 1159 00:56:00,270 --> 00:56:02,820 Men du kommer att skapa flera tabeller i databasen. 1160 00:56:02,820 --> 00:56:06,950 >> Du kommer att skapa en databas eller ett bord för användarna. 1161 00:56:06,950 --> 00:56:12,830 Du ska också skapa en tabell för förmodligen lagertransaktioner, för att hålla 1162 00:56:12,830 --> 00:56:15,580 reda på dem, eftersom du måste genomföra en historia funktion. 1163 00:56:15,580 --> 00:56:18,370 Båda dessa tabeller kommer att ha olika områden. 1164 00:56:18,370 --> 00:56:22,190 Till exempel, i ett användarfält, du antagligen vill att deras användarnamn och ett 1165 00:56:22,190 --> 00:56:24,220 ID och en hash av sitt lösenord. 1166 00:56:24,220 --> 00:56:28,450 >> I Lager tabell som håller reda på historia eller historiktabellen, du 1167 00:56:28,450 --> 00:56:31,620 förmodligen inte behöver användarnamnet och hash-och ID. 1168 00:56:31,620 --> 00:56:34,460 Du kanske bara behöver en av dem värden som är unika, att associera 1169 00:56:34,460 --> 00:56:35,830 den med en given användare. 1170 00:56:35,830 --> 00:56:38,100 >> Men då, du vill lagra andra saker som, vilken tid 1171 00:56:38,100 --> 00:56:40,630 var transaktionen gjordes. 1172 00:56:40,630 --> 00:56:42,380 Vilka lager köptes eller såldes? 1173 00:56:42,380 --> 00:56:44,150 Hur många aktier i lager köptes eller såldes? 1174 00:56:44,150 --> 00:56:48,360 Vad var det pris till vilket den lager köptes eller såldes? 1175 00:56:48,360 --> 00:56:50,180 >> Så återigen, du kommer att interagera med databaser som finns 1176 00:56:50,180 --> 00:56:51,350 kommer att ha flera tabeller. 1177 00:56:51,350 --> 00:56:54,340 Varje bord kommer att ha sin egen uppsättning av fält. 1178 00:56:54,340 --> 00:56:58,430 Det kommer dock sannolikt att vara en liknande fält i varje tabell, som 1179 00:56:58,430 --> 00:57:00,130 relaterar dem till varandra. 1180 00:57:00,130 --> 00:57:02,660 Vanligtvis är detta ett ID-fält. 1181 00:57:02,660 --> 00:57:07,000 >> För om varje användare har ett unikt ID- och du associerar detta ID med varje 1182 00:57:07,000 --> 00:57:09,365 transaktion som användaren gör eller allt detta användarens historia. 1183 00:57:09,365 --> 00:57:12,760 1184 00:57:12,760 --> 00:57:13,830 Och du har användarens ID. 1185 00:57:13,830 --> 00:57:15,365 Du kan få information från någon av tabellerna. 1186 00:57:15,365 --> 00:57:19,770 Du kan få sitt användarnamn, och du kan få alla sina transaktioner. 1187 00:57:19,770 --> 00:57:24,410 >> Eventuella frågor om databaser, eller specifika frågor? 1188 00:57:24,410 --> 00:57:25,240 Faktiskt, låt oss hålla det. 1189 00:57:25,240 --> 00:57:27,410 Vi är där om två sidor. 1190 00:57:27,410 --> 00:57:31,210 >> Så det finns fyra operationer på databaser som du kommer att använda i 1191 00:57:31,210 --> 00:57:34,790 Problem Set 7 och sannolikt någonsin att använda. 1192 00:57:34,790 --> 00:57:38,040 Det första du vill göra är att infoga en ny post i en tabell eller en 1193 00:57:38,040 --> 00:57:39,960 ny rad i en tabell. 1194 00:57:39,960 --> 00:57:46,070 Detta är den generiska funktion, generisk form av att SQL-fråga. 1195 00:57:46,070 --> 00:57:52,240 >> INSERT INTO tabellen, oavsett kolumner du vill infoga och sedan 1196 00:57:52,240 --> 00:57:58,740 de värden som du kommer att vilja tas i dessa kolumner eller fält. 1197 00:57:58,740 --> 00:58:03,980 Om du har flera tabeller i en databas eller flera databaser, du 1198 00:58:03,980 --> 00:58:06,630 kan också behöva ange databasen och den tabell som du vill 1199 00:58:06,630 --> 00:58:07,980 för att sätta saker i. 1200 00:58:07,980 --> 00:58:11,390 Men mycket enkel, om du vill infoga till något, säger du, här är det 1201 00:58:11,390 --> 00:58:12,890 fält jag vill infoga i. 1202 00:58:12,890 --> 00:58:14,740 Och här är de värdena. 1203 00:58:14,740 --> 00:58:18,840 >> I vissa tabeller, också, och denna användares Tabellen är ett bra exempel. 1204 00:58:18,840 --> 00:58:21,940 Förmodligen i den här användar bord och förmodligen i din användares bord i P-Set 1205 00:58:21,940 --> 00:58:24,200 7, det finns inte bara ett användarnamn värde. 1206 00:58:24,200 --> 00:58:27,100 Det är inte bara ett kontantvärde, eller fält, snarare. 1207 00:58:27,100 --> 00:58:29,140 Det finns också ett ID-fält. 1208 00:58:29,140 --> 00:58:31,110 >> Jag tänker inte sätta in det ID-fältet. 1209 00:58:31,110 --> 00:58:34,020 Det kommer att ges till ut automatiskt, när en 1210 00:58:34,020 --> 00:58:35,810 nytt rekord sätts in. 1211 00:58:35,810 --> 00:58:37,820 Så det finns vissa fält som du kan ställa in att ske automatiskt. 1212 00:58:37,820 --> 00:58:41,740 >> Kanske vill du ge varje användare $ 10,000 i kontanter utanför bat. 1213 00:58:41,740 --> 00:58:43,470 Så jag behöver inte sätta in ett antal kontanter här. 1214 00:58:43,470 --> 00:58:45,860 Allt jag behöver för att sätta in är användarnamnet. 1215 00:58:45,860 --> 00:58:49,230 Och då kommer kontantfältet vara förifylld, och ID-fältet kommer 1216 00:58:49,230 --> 00:58:50,590 vara ifyllda. 1217 00:58:50,590 --> 00:58:53,640 >> Så ofta, är vi inte sätta in något i varje område, eftersom 1218 00:58:53,640 --> 00:58:55,400 de andra fälten är ifyllda. 1219 00:58:55,400 --> 00:58:58,320 Därför att det är hur vi ställa in bordet. 1220 00:58:58,320 --> 00:59:01,280 >> Det andra du ska till vill göra är att ta bort en post. 1221 00:59:01,280 --> 00:59:02,900 Radering något är mycket enkel. 1222 00:59:02,900 --> 00:59:05,660 Du ger den tabell där du vill att ta bort något från. 1223 00:59:05,660 --> 00:59:11,202 Och du säger, OK, jag vill ta bort den post som har ett användarnamn i Milo. 1224 00:59:11,202 --> 00:59:16,180 Eller jag vill ta bort alla poster som har ett användarnamn på Milo eller det var en 1225 00:59:16,180 --> 00:59:18,700 transaktion från användar-ID nummer 2. 1226 00:59:18,700 --> 00:59:21,950 1227 00:59:21,950 --> 00:59:24,809 Eventuella frågor om dessa två typer av frågor? 1228 00:59:24,809 --> 00:59:26,059 >> PUBLIK: [OHÖRBAR]. 1229 00:59:26,059 --> 00:59:28,721 1230 00:59:28,721 --> 00:59:30,770 >> JASON Hirschhorn: Ja. 1231 00:59:30,770 --> 00:59:33,530 Så jag ska använda raden och spela utbytbart och några 1232 00:59:33,530 --> 00:59:35,400 med kolumn och fält. 1233 00:59:35,400 --> 00:59:37,650 Men en rad är en post. 1234 00:59:37,650 --> 00:59:40,080 En kolumn är ett fält, går tillbaka till denna tabell. 1235 00:59:40,080 --> 00:59:44,210 1236 00:59:44,210 --> 00:59:45,420 >> OK. 1237 00:59:45,420 --> 00:59:47,310 Nästa sak du förmodligen kommer att göra är att få lite 1238 00:59:47,310 --> 00:59:48,400 information från tabellen. 1239 00:59:48,400 --> 00:59:50,090 Det är en urvalsfråga. 1240 00:59:50,090 --> 00:59:52,330 Och återigen, vilken tabell jag välja från? 1241 00:59:52,330 --> 00:59:58,370 Och vilken kolumn vill jag välja, eller vilket värde vill jag markera och 1242 00:59:58,370 --> 00:59:59,530 från vilken rad? 1243 00:59:59,530 --> 01:00:01,120 >> Så Select är lite specifik. 1244 01:00:01,120 --> 01:00:03,620 Jag säger, OK, jag vill ha den här tabellen. 1245 01:00:03,620 --> 01:00:09,350 Och då jag vill att kolumnen användarnamn och Jag vill ha det från raden med ID 2. 1246 01:00:09,350 --> 01:00:11,030 Det är ett sätt att göra en Select. 1247 01:00:11,030 --> 01:00:14,180 >> Eller jag kan säga, ge mig varje enda användarnamn. 1248 01:00:14,180 --> 01:00:18,200 Eller jag kan säga, ge mig en hel ro från denna tabell, där 1249 01:00:18,200 --> 01:00:19,460 användarnamnet är 1. 1250 01:00:19,460 --> 01:00:22,300 Så det finns ett par olika sätt att göra urvalsfrågor, beroende på hur 1251 01:00:22,300 --> 01:00:24,130 mycket information du vill ha, 1252 01:00:24,130 --> 01:00:29,410 >> Du kan alltid bara välja allt från det specifika bordet och sedan slinga 1253 01:00:29,410 --> 01:00:31,320 genom den, plocka ut de saker du vill. 1254 01:00:31,320 --> 01:00:33,940 Men kom ihåg, om du väljer en massa saker från ett bord och du 1255 01:00:33,940 --> 01:00:37,400 har ett riktigt stort bord, kommer att ta en tid, så bäst att bara välja 1256 01:00:37,400 --> 01:00:40,000 saker som du kommer att sluta använda. 1257 01:00:40,000 --> 01:00:43,580 >> Dessutom, med Select och med alla dessa andra SQL-kommandon också, jag är 1258 01:00:43,580 --> 01:00:45,760 vilket ger dig den hake version. 1259 01:00:45,760 --> 01:00:51,600 Men att säga, jag väljer användare och jag vill för att skriva ut dem i bokstavsordning, 1260 01:00:51,600 --> 01:00:56,710 Jag kunde välja alla användare och sedan sortera dem i alfabetisk ordning i min kod. 1261 01:00:56,710 --> 01:01:01,990 >> Eller finns det ett sätt att skriva select fråga, väljer att saker och ting i ett 1262 01:01:01,990 --> 01:01:06,580 alfabetisk mode, baserad bort av en särskild kolumn, antingen stigande eller 1263 01:01:06,580 --> 01:01:07,490 Fallande. 1264 01:01:07,490 --> 01:01:11,660 Så kom ihåg att mycket av det du vill göra kan troligen göras i 1265 01:01:11,660 --> 01:01:15,070 frågan genom ett ytterligare attribut. 1266 01:01:15,070 --> 01:01:19,120 Så ser upp dessa frågor på nätet eller andra saker du kan göra med dessa 1267 01:01:19,120 --> 01:01:21,410 frågor för att utöka dem. 1268 01:01:21,410 --> 01:01:25,020 >> Slutligen, det sista du vill göra är inte in något eller ta bort 1269 01:01:25,020 --> 01:01:26,700 något, utan snarare uppdatera något. 1270 01:01:26,700 --> 01:01:30,380 Och det är gjort med uppdateringen query, och igen, vilket bord. 1271 01:01:30,380 --> 01:01:32,530 Och vilken förändring vill jag göra? 1272 01:01:32,530 --> 01:01:35,915 Och till vilken rad eller spela göra Jag vill göra den förändringen? 1273 01:01:35,915 --> 01:01:38,720 1274 01:01:38,720 --> 01:01:40,300 Har du frågor om SQL? 1275 01:01:40,300 --> 01:01:47,070 1276 01:01:47,070 --> 01:01:47,310 >> OK. 1277 01:01:47,310 --> 01:01:49,080 Så vi har ungefär 15 minuter. 1278 01:01:49,080 --> 01:01:51,460 Och det här är den sista bilden jag har. 1279 01:01:51,460 --> 01:01:55,380 Och förhoppningsvis är detta sista bilden en bra segue in i problembild, 1280 01:01:55,380 --> 01:01:58,820 eftersom att förstå vart vi vill infoga poster, ta bort dem väljer du 1281 01:01:58,820 --> 01:02:03,420 dem, och uppdatera dem kommer att hjälpa oss förstå den större logik och flöde 1282 01:02:03,420 --> 01:02:05,570 av Problem Set 7. 1283 01:02:05,570 --> 01:02:08,330 >> Så jag vet att alla svar på dessa frågor. 1284 01:02:08,330 --> 01:02:10,570 Jag tänker inte berätta för dig alla svaren. 1285 01:02:10,570 --> 01:02:15,530 Men om någon annan vill presentera en fråga till gruppen eller 1286 01:02:15,530 --> 01:02:18,700 svaret på en av dessa frågor, kan vi använda det som en hoppa av punkt till 1287 01:02:18,700 --> 01:02:20,311 prata om problemet set. 1288 01:02:20,311 --> 01:02:24,159 1289 01:02:24,159 --> 01:02:27,260 Eller om någon har en mer allmän fråga av problemet set, känner 1290 01:02:27,260 --> 01:02:28,210 fri att fråga det också. 1291 01:02:28,210 --> 01:02:29,460 Och vi kan börja där. 1292 01:02:29,460 --> 01:02:32,840 1293 01:02:32,840 --> 01:02:35,973 Tänk på att du är tyst skadar alla. 1294 01:02:35,973 --> 01:02:36,376 Yeah. 1295 01:02:36,376 --> 01:02:39,540 >> PUBLIK: Så är det enda sättet att klara variabler till och från annan webbsida 1296 01:02:39,540 --> 01:02:44,532 sidor eller den mest praktiska sätt, med hjälp av POST eller GET? 1297 01:02:44,532 --> 01:02:52,380 >> JASON Hirschhorn: Så ja, det är det mest bekväma sättet att säga - när 1298 01:02:52,380 --> 01:02:53,970 någon fyller i ett formulär - 1299 01:02:53,970 --> 01:02:57,540 få information på en annan webbsida sida, med hjälp av GET-eller POST. 1300 01:02:57,540 --> 01:03:00,400 1301 01:03:00,400 --> 01:03:04,320 På grund av den ram vi använder i detta problem set, kommer du att märka 1302 01:03:04,320 --> 01:03:08,630 det, många gånger, vi återge en annan sida. 1303 01:03:08,630 --> 01:03:12,420 Vi Eller vi gör en annan fil, inte nödvändigtvis en annan sida. 1304 01:03:12,420 --> 01:03:14,050 >> Så passerar vi i en variabel. 1305 01:03:14,050 --> 01:03:16,400 Och sedan, gör det en HTML-sida, med hjälp av 1306 01:03:16,400 --> 01:03:18,220 information från den variabeln. 1307 01:03:18,220 --> 01:03:20,790 Det är inte tekniskt går information mellan 1308 01:03:20,790 --> 01:03:21,910 olika webbsidor. 1309 01:03:21,910 --> 01:03:24,600 Det passerar informationen mellan olika filer. 1310 01:03:24,600 --> 01:03:26,710 >> Och så att vi kan använda alla variabel för att göra det. 1311 01:03:26,710 --> 01:03:33,230 Men ja, om vi ville passera information från en viss sida i 1312 01:03:33,230 --> 01:03:36,850 en annan sida, GET och POST skulle vara ett sätt att göra det. 1313 01:03:36,850 --> 01:03:43,060 1314 01:03:43,060 --> 01:03:45,765 Alla andra frågor om problemet inställd? 1315 01:03:45,765 --> 01:03:49,490 1316 01:03:49,490 --> 01:03:50,150 >> OK. 1317 01:03:50,150 --> 01:03:53,660 Låt oss gå igenom, då, en specifik del av problemet inställd. 1318 01:03:53,660 --> 01:04:00,260 Du kommer att behöva, vid ett tillfälle, visa någons portfölj på 1319 01:04:00,260 --> 01:04:01,710 skärmen. 1320 01:04:01,710 --> 01:04:06,454 Vad menar jag när jag säger portfölj, i samband med detta problem inställd? 1321 01:04:06,454 --> 01:04:11,350 >> PUBLIK: Det är som de lager som de har hur många aktier de äger, 1322 01:04:11,350 --> 01:04:13,760 priset, och hur mycket pengar de har kvar. 1323 01:04:13,760 --> 01:04:15,235 >> JASON Hirschhorn: Det låter bra. 1324 01:04:15,235 --> 01:04:19,640 Så jag vill visa alla bestånd de äger för varje aktie företags 1325 01:04:19,640 --> 01:04:23,770 aktier och förmodligen hur mycket som är värd, och sedan en separat variabel, 1326 01:04:23,770 --> 01:04:25,960 hur mycket pengar de äger. 1327 01:04:25,960 --> 01:04:27,150 Så säger jag vill beskriva det. 1328 01:04:27,150 --> 01:04:29,660 Låt oss börja prata om hur jag kunde gå om att göra det, vilka tabeller jag 1329 01:04:29,660 --> 01:04:31,210 kommer att behöva att behöva att kunna göra det. 1330 01:04:31,210 --> 01:04:34,070 1331 01:04:34,070 --> 01:04:34,460 Ja - 1332 01:04:34,460 --> 01:04:37,970 >> PUBLIK: Well-användare, och då, antar jag du kan göra en tabell som heter 1333 01:04:37,970 --> 01:04:41,920 Aktier eller något liknande, som skulle vara hur många de har köpt. 1334 01:04:41,920 --> 01:04:42,660 >> JASON Hirschhorn: OK. 1335 01:04:42,660 --> 01:04:46,530 Så jag kommer att behöva en tabell som heter Användare, som håller reda på de 1336 01:04:46,530 --> 01:04:50,640 användarnamn, förmodligen, förmodligen några ID, förmodligen en individs lösenord. 1337 01:04:50,640 --> 01:04:52,850 Vad är något annat som du just sagt att associeras? 1338 01:04:52,850 --> 01:04:55,510 Någon förutom Mikael, vad är något annat som är förknippade med 1339 01:04:55,510 --> 01:04:58,270 varje användare, unikt för dem? 1340 01:04:58,270 --> 01:05:00,050 >> PUBLIK: ID. 1341 01:05:00,050 --> 01:05:01,170 >> JASON Hirschhorn: ID - 1342 01:05:01,170 --> 01:05:03,540 vad är en annan sak som vi är antagligen kommer att vilja 1343 01:05:03,540 --> 01:05:05,685 visas på den här sidan? 1344 01:05:05,685 --> 01:05:06,990 >> PUBLIK: Deras namn. 1345 01:05:06,990 --> 01:05:10,550 >> JASON Hirschhorn: Deras namn - vad är en annan sak i samband med detta 1346 01:05:10,550 --> 01:05:11,420 särskilt problem set? 1347 01:05:11,420 --> 01:05:14,110 >> PUBLIK: Vilka aktier de äger - 1348 01:05:14,110 --> 01:05:16,650 >> JASON Hirschhorn: Det kommer att bli en hel del vad bestånden de äger. 1349 01:05:16,650 --> 01:05:19,670 Vad är en det specifika värdet dock, att de kommer att ha 1350 01:05:19,670 --> 01:05:22,640 förknippas med dem? 1351 01:05:22,640 --> 01:05:25,709 Hur kommer de att köpa och sälja sina aktier? 1352 01:05:25,709 --> 01:05:26,595 >> PUBLIK: Cash. 1353 01:05:26,595 --> 01:05:28,100 >> JASON Hirschhorn: De är kommer att ha kontanter. 1354 01:05:28,100 --> 01:05:31,020 Så varje användare kommer att ha ett värde för kontanter. 1355 01:05:31,020 --> 01:05:32,360 Och det kommer att bli unik för varje användare. 1356 01:05:32,360 --> 01:05:35,040 Så i användarens tabellen, gör det vettigt att sätta in kontanter. 1357 01:05:35,040 --> 01:05:39,100 >> Du kan naturligtvis skapa en annan tabell som har användarnamn och deras 1358 01:05:39,100 --> 01:05:40,200 värdet av kontanter. 1359 01:05:40,200 --> 01:05:41,070 Men det är inte vettigt. 1360 01:05:41,070 --> 01:05:43,410 Det är vettigt att bara sätta allt detta i en tabell. 1361 01:05:43,410 --> 01:05:46,860 >> Så vi kommer att ha en tabell med den informationen. 1362 01:05:46,860 --> 01:05:48,360 Och sedan, vad är den andra tabellen vi ska ha? 1363 01:05:48,360 --> 01:05:49,430 Du sa, en Stocks bord. 1364 01:05:49,430 --> 01:05:50,680 Vad är det vi sätter in den Stocks bordet? 1365 01:05:50,680 --> 01:05:55,860 1366 01:05:55,860 --> 01:05:57,530 Vem som helst, idéer - 1367 01:05:57,530 --> 01:05:58,796 >> PUBLIK: Företaget. 1368 01:05:58,796 --> 01:06:00,020 >> JASON Hirschhorn: Vi kommer att sätta i namnet på 1369 01:06:00,020 --> 01:06:03,620 företag, så AAPL för Apple. 1370 01:06:03,620 --> 01:06:04,050 Yeah. 1371 01:06:04,050 --> 01:06:05,390 >> PUBLIK: Hur många aktier och hur mycket de är värda. 1372 01:06:05,390 --> 01:06:08,590 >> JASON Hirschhorn: Hur många aktier, hur mycket de är värda - 1373 01:06:08,590 --> 01:06:10,630 vad är något annat vi behöver i tabellen? 1374 01:06:10,630 --> 01:06:12,770 >> PUBLIK: Ett användar-ID för att indexera den. 1375 01:06:12,770 --> 01:06:14,000 >> JASON Hirschhorn: Ett användar-ID. 1376 01:06:14,000 --> 01:06:16,070 Så i den tabellen, vi ska förmodligen - 1377 01:06:16,070 --> 01:06:18,610 låt oss säga, om det är någon som äger tre lager, tre rader, var och en med 1378 01:06:18,610 --> 01:06:23,730 som användar-ID eller den personens användare ID, men ett annat företagsnamn, en 1379 01:06:23,730 --> 01:06:28,570 annat antal aktier Förmodligen och ett annat pris värde för varje 1380 01:06:28,570 --> 01:06:29,820 av dessa bestånd. 1381 01:06:29,820 --> 01:06:34,690 1382 01:06:34,690 --> 01:06:37,130 Återigen, är inte vad jag säger nu nödvändigtvis genomförandet, 1383 01:06:37,130 --> 01:06:39,150 eftersom du inser att det finns lite mer effektiva sätt att genomföra det. 1384 01:06:39,150 --> 01:06:41,020 Men det här är ett bra ställe att börja. 1385 01:06:41,020 --> 01:06:41,430 >> OK. 1386 01:06:41,430 --> 01:06:42,830 Så de är de två tabeller som vi har. 1387 01:06:42,830 --> 01:06:44,470 Nu vill vi visa den här sidan. 1388 01:06:44,470 --> 01:06:48,510 Vilken är den första typen av fråga vi skulle behöva göra. 1389 01:06:48,510 --> 01:06:52,190 På varje sida, antas att en användare är loggat in, har vi deras användar-ID. 1390 01:06:52,190 --> 01:06:55,480 Så vad är den första typen av fråga måste vi göra? 1391 01:06:55,480 --> 01:06:55,910 Yeah. 1392 01:06:55,910 --> 01:06:56,936 >> PUBLIK: Deras användarnamn. 1393 01:06:56,936 --> 01:07:00,090 >> JASON Hirschhorn: Vi har deras användar-ID, när vi börjar koden på 1394 01:07:00,090 --> 01:07:01,340 början på vår sida. 1395 01:07:01,340 --> 01:07:03,880 1396 01:07:03,880 --> 01:07:06,470 Så vad är den första typen av fråga som vi måste göra, med tanke på en användares ID? 1397 01:07:06,470 --> 01:07:09,580 1398 01:07:09,580 --> 01:07:10,530 Vi gick under de fyra typerna. 1399 01:07:10,530 --> 01:07:11,860 Det finns bara fyra möjliga svar. 1400 01:07:11,860 --> 01:07:13,230 >> PUBLIK: Det är att välja en post. 1401 01:07:13,230 --> 01:07:14,710 >> JASON Hirschhorn: A Välj - 1402 01:07:14,710 --> 01:07:19,110 vi vill välja från användarens bord för att få, låt oss säga, 1403 01:07:19,110 --> 01:07:20,040 deras mängd kontanter. 1404 01:07:20,040 --> 01:07:22,450 Och vi kan trycka hur mycket pengar på toppen av skärmen. 1405 01:07:22,450 --> 01:07:22,720 OK. 1406 01:07:22,720 --> 01:07:24,210 Vad är nästa typ av fråga vi vill göra? 1407 01:07:24,210 --> 01:07:34,650 1408 01:07:34,650 --> 01:07:36,160 >> Vi har en del andra saker vi måste visa. 1409 01:07:36,160 --> 01:07:37,480 De som sparas i en annan tabell. 1410 01:07:37,480 --> 01:07:38,300 Så hur ska vi få det? 1411 01:07:38,300 --> 01:07:40,106 >> PUBLIK: Du väljer för dem. 1412 01:07:40,106 --> 01:07:42,490 >> JASON Hirschhorn: A Välj - igen, finns det bara fyra alternativ. 1413 01:07:42,490 --> 01:07:44,180 Välj förmodligen ljud som den rätta. 1414 01:07:44,180 --> 01:07:47,510 Så vi behöver göra en urvalsfråga, igen med det användar-ID. 1415 01:07:47,510 --> 01:07:50,370 Och nu, vi vill återvända inte bara en rad, bu alla rader som matchar vår 1416 01:07:50,370 --> 01:07:53,200 kriterier, där användar-ID är lika 1. 1417 01:07:53,200 --> 01:07:56,790 >> Och då kan vi gå och låta en slinga precis skriva ut alla dem ut på skärmen, 1418 01:07:56,790 --> 01:07:59,250 kanske skriva ut företaget från var och en av dem på skärmen. 1419 01:07:59,250 --> 01:08:02,430 Bra, det låter som det är visning av en portfölj, inte mycket mer 1420 01:08:02,430 --> 01:08:03,810 komplicerat än så. 1421 01:08:03,810 --> 01:08:07,460 >> OK beslutar användaren sedan att de har gott om pengar över. 1422 01:08:07,460 --> 01:08:09,900 Och de vill köpa några fler aktier i ett lager. 1423 01:08:09,900 --> 01:08:12,580 Låt oss säga, de redan äger detta företags lager också. 1424 01:08:12,580 --> 01:08:14,110 >> Så de går till ditt köp sidan. 1425 01:08:14,110 --> 01:08:16,830 De ingång företagets namn. 1426 01:08:16,830 --> 01:08:20,380 Vad är frågan, efter att mata in företagets namn, att du måste 1427 01:08:20,380 --> 01:08:22,819 exekvera härnäst? 1428 01:08:22,819 --> 01:08:23,180 Yeah. 1429 01:08:23,180 --> 01:08:23,960 >> PUBLIK: Update. 1430 01:08:23,960 --> 01:08:26,670 >> JASON Hirschhorn: Update - och vad bord vill du uppdatera? 1431 01:08:26,670 --> 01:08:29,018 >> PUBLIK: Deras bord, baserad på deras ID-nummer? 1432 01:08:29,018 --> 01:08:31,880 >> JASON Hirschhorn: Så uppdatera inte användarens bordet - 1433 01:08:31,880 --> 01:08:36,029 1434 01:08:36,029 --> 01:08:40,899 så uppdatera tabellen Aktier, där användar-ID inte bara matcher, men det 1435 01:08:40,899 --> 01:08:43,160 aktienamnet matchar också. 1436 01:08:43,160 --> 01:08:45,660 Du får något värde. 1437 01:08:45,660 --> 01:08:48,270 Och då, vill du ta det värdet och lägga hur många lager som de 1438 01:08:48,270 --> 01:08:49,890 vill köpa den. 1439 01:08:49,890 --> 01:08:53,420 >> Så du vill inte blint skriva över det värdet. 1440 01:08:53,420 --> 01:08:56,330 Men du kan faktiskt ta det första värdesätter och bara uppdatera den. 1441 01:08:56,330 --> 01:09:00,790 Du kan göra som ett plus är lika, snarare än bara ett likhets. 1442 01:09:00,790 --> 01:09:03,689 >> Vad är något men - om vi är tänka på detta och vi vill vara 1443 01:09:03,689 --> 01:09:08,090 så robust som möjligt - vi borde göra innan vi kör den uppdateringsfråga? 1444 01:09:08,090 --> 01:09:09,859 De vill köpa fem år av Apple. 1445 01:09:09,859 --> 01:09:11,030 Varje aktie av Apple är $ 200. 1446 01:09:11,030 --> 01:09:12,762 >> PUBLIK: Vi bör kontrollera pengar först. 1447 01:09:12,762 --> 01:09:15,130 >> JASON Hirschhorn: Vi bör Kontrollera pengar först. 1448 01:09:15,130 --> 01:09:16,680 Vi bör se till att de har tillräckligt med pengar. 1449 01:09:16,680 --> 01:09:20,766 Vilken typ av fråga kan vi köra till se till att de har tillräckligt med pengar? 1450 01:09:20,766 --> 01:09:22,143 >> PUBLIK: Another Välj. 1451 01:09:22,143 --> 01:09:23,680 >> JASON Hirschhorn: A Välj - 1452 01:09:23,680 --> 01:09:26,580 Vi väljer utifrån deras användar-ID, att få sitt värde av kontanter. 1453 01:09:26,580 --> 01:09:27,620 Gör några snabba matte. 1454 01:09:27,620 --> 01:09:30,279 Och om det går uppbåda, de har tillräckligt med pengar. 1455 01:09:30,279 --> 01:09:31,580 Då kan vi köra vår uppdatering. 1456 01:09:31,580 --> 01:09:33,850 Eller kanske, om inte, vi passerar sedan. 1457 01:09:33,850 --> 01:09:35,370 Vi ger dem en varning. 1458 01:09:35,370 --> 01:09:35,710 >> OK. 1459 01:09:35,710 --> 01:09:36,560 Säger att de inte har ett företag. 1460 01:09:36,560 --> 01:09:37,310 De köper ett nytt företag. 1461 01:09:37,310 --> 01:09:39,910 De köper Microsoft. 1462 01:09:39,910 --> 01:09:41,910 Vilken typ av frågor vill vi göra, om de vill köpa Microsoft? 1463 01:09:41,910 --> 01:09:43,350 Och de inte äger någon Microsoft. 1464 01:09:43,350 --> 01:09:47,520 Inte Manu, någon annan, vem som helst förutom Marcus? 1465 01:09:47,520 --> 01:09:48,229 Carlos - 1466 01:09:48,229 --> 01:09:50,870 >> PUBLIK: A Välj, för att se till de har tillräckligt med pengar. 1467 01:09:50,870 --> 01:09:51,770 >> JASON Hirschhorn: Låter bra. 1468 01:09:51,770 --> 01:09:54,815 >> PUBLIK: Och då du sätter på [OHÖRBAR]. 1469 01:09:54,815 --> 01:09:56,500 >> JASON Hirschhorn: Exakt, vi är kommer att vilja sätta in 1470 01:09:56,500 --> 01:09:57,800 i tabellen Stocks. 1471 01:09:57,800 --> 01:09:59,370 Och vi kommer att vilja sätta in. 1472 01:09:59,370 --> 01:10:02,510 Vi kan sätta in sitt användar-ID, namn av företaget, och hur många aktier 1473 01:10:02,510 --> 01:10:03,940 de vill köpa. 1474 01:10:03,940 --> 01:10:08,040 >> Vilka är några andra verksamheter som är sidor eller funktioner du är 1475 01:10:08,040 --> 01:10:10,420 kommer att behöva genomföra i P-Set 7, att vi skulle gå över? 1476 01:10:10,420 --> 01:10:12,160 >> PUBLIK: Egentligen slags måste jag en fråga om detta. 1477 01:10:12,160 --> 01:10:18,000 Innan du visar portfölj, bör du kontrollerar Yahoos hemsida 1478 01:10:18,000 --> 01:10:19,920 se till att aktiekurserna har inte förändrats? 1479 01:10:19,920 --> 01:10:21,660 >> JASON Hirschhorn: Det är ljud som en bra idé. 1480 01:10:21,660 --> 01:10:27,260 Så vad Marcus säger är, OK, lager priserna förändras ständigt. 1481 01:10:27,260 --> 01:10:32,840 I de lager som de äger bord, vår Tabellen heter Stocks, kunde vi rädda 1482 01:10:32,840 --> 01:10:35,360 priset på aktien de köpte den på. 1483 01:10:35,360 --> 01:10:37,990 >> Men det verkar inte som robust, eftersom priset på aktien är 1484 01:10:37,990 --> 01:10:39,490 ständigt kommer att förändras. 1485 01:10:39,490 --> 01:10:41,990 Så i själva verket är du förmodligen inte behöver att rädda priset på aktien. 1486 01:10:41,990 --> 01:10:45,230 Men varje gång du visar deras portfölj, du uppdatera eller uppdatera 1487 01:10:45,230 --> 01:10:46,280 priset på aktien. 1488 01:10:46,280 --> 01:10:48,720 >> Och om du har - och du har redan. 1489 01:10:48,720 --> 01:10:51,330 Jag vet att ni alla har tittat på Problemet ställer tillbaka redan. 1490 01:10:51,330 --> 01:10:55,410 Du har insett att vi har skrivit lite kod för dig som gör att du 1491 01:10:55,410 --> 01:10:57,650 att få priset på en aktie, ges ett företags namn. 1492 01:10:57,650 --> 01:10:59,620 >> Så ja, det kanske låter lite mer robust. 1493 01:10:59,620 --> 01:11:04,260 Men tabellen behöver inte nödvändigtvis att rädda priset på aktien. 1494 01:11:04,260 --> 01:11:04,720 OK. 1495 01:11:04,720 --> 01:11:07,590 Vilka är några andra funktioner du behöver för att genomföra den här veckan som 1496 01:11:07,590 --> 01:11:10,340 Vi kan prata om? 1497 01:11:10,340 --> 01:11:11,590 Jag vill prata om dem. 1498 01:11:11,590 --> 01:11:14,342 1499 01:11:14,342 --> 01:11:16,516 >> Vad vill du prata om? 1500 01:11:16,516 --> 01:11:17,810 Det är nog i detta spec. 1501 01:11:17,810 --> 01:11:20,600 Jag skulle bara rulla ner till botten på spec och fråga mig det första ordet 1502 01:11:20,600 --> 01:11:21,850 du ser det är inte rimligt. 1503 01:11:21,850 --> 01:11:55,130 1504 01:11:55,130 --> 01:11:56,960 En annan funktion - 1505 01:11:56,960 --> 01:11:57,840 låt oss tala om något. 1506 01:11:57,840 --> 01:12:00,775 Vi börjar där. 1507 01:12:00,775 --> 01:12:02,065 >> PUBLIK: Inspelning historierna. 1508 01:12:02,065 --> 01:12:03,960 >> JASON Hirschhorn: Inspelning historien, stor en. 1509 01:12:03,960 --> 01:12:06,920 Så du kommer att behöva hålla reda av en historia av transaktioner. 1510 01:12:06,920 --> 01:12:10,840 1511 01:12:10,840 --> 01:12:14,270 Så du vill hålla reda på varje gång de köper eller säljer en aktie. 1512 01:12:14,270 --> 01:12:15,160 >> Jag köpte mitt lager. 1513 01:12:15,160 --> 01:12:18,580 Vi sa bara, är det antagligen meningen att inkludera en Select, för att få sina 1514 01:12:18,580 --> 01:12:20,220 mängd kontanter och tillbaka. 1515 01:12:20,220 --> 01:12:25,270 Det är förmodligen smarta då att inkludera en infoga eller en uppdatering, beroende på 1516 01:12:25,270 --> 01:12:27,720 oavsett om de äger detta bestånd. 1517 01:12:27,720 --> 01:12:32,740 Om vi ​​vill också att hålla reda på en historia, hur kan vi göra det? 1518 01:12:32,740 --> 01:12:37,530 1519 01:12:37,530 --> 01:12:38,720 Betyder det går i tabellen Stocks? 1520 01:12:38,720 --> 01:12:39,822 >> PUBLIK: Nej. 1521 01:12:39,822 --> 01:12:42,130 >> JASON Hirschhorn: Nej det förmodligen går i en annan tabell. 1522 01:12:42,130 --> 01:12:44,040 Därför att säga att du köper 10 aktier i Apple. 1523 01:12:44,040 --> 01:12:45,370 Då du köper ytterligare 10 aktier. 1524 01:12:45,370 --> 01:12:46,610 Du vill bogsera separata poster. 1525 01:12:46,610 --> 01:12:47,610 Det är två separata transaktioner. 1526 01:12:47,610 --> 01:12:50,510 >> Så vi har en annan tabell, en historia bord. 1527 01:12:50,510 --> 01:12:51,880 Så återigen, köper vi. 1528 01:12:51,880 --> 01:12:54,080 Vi utför en Select, då en Infoga eller Uppdatera. 1529 01:12:54,080 --> 01:12:56,410 Vad ska vi göra nu? 1530 01:12:56,410 --> 01:13:00,410 Vad är nästa fråga vi utför när vi ska köpa något? 1531 01:13:00,410 --> 01:13:01,430 Vi vill hålla koll på historien. 1532 01:13:01,430 --> 01:13:01,570 Yeah. 1533 01:13:01,570 --> 01:13:05,195 >> PUBLIK: Du vill hålla koll av misslyckade transaktioner också. 1534 01:13:05,195 --> 01:13:07,700 >> JASON Hirschhorn: Tja, innan vi säga vilken typ av transaktion, 1535 01:13:07,700 --> 01:13:11,080 Vad vill vi - 1536 01:13:11,080 --> 01:13:13,910 Vilken typ av fråga, Carlos, skulle det möjligt för oss att hålla reda 1537 01:13:13,910 --> 01:13:16,216 om saker i allmänhet? 1538 01:13:16,216 --> 01:13:17,860 Du har fyra gissningar. 1539 01:13:17,860 --> 01:13:18,660 Vilken tycker du? 1540 01:13:18,660 --> 01:13:20,835 >> PUBLIK: Uppdaterar. 1541 01:13:20,835 --> 01:13:22,400 >> JASON Hirschhorn: Inte uppdatera. 1542 01:13:22,400 --> 01:13:25,250 Vad är din andra gissning? 1543 01:13:25,250 --> 01:13:26,730 >> PUBLIK: Val. 1544 01:13:26,730 --> 01:13:30,020 >> JASON Hirschhorn: Om du vill behålla reda på något, vill du förmodligen 1545 01:13:30,020 --> 01:13:33,310 att skriva ner det någonstans eller spara den till senare. 1546 01:13:33,310 --> 01:13:37,054 Så om inte uppdatera, då - 1547 01:13:37,054 --> 01:13:38,310 >> PUBLIK: Sätt i den. 1548 01:13:38,310 --> 01:13:39,553 >> JASON Hirschhorn: Insert, där går vi. 1549 01:13:39,553 --> 01:13:44,230 Ja, så du väljer hur mycket pengar de har, låter bra. 1550 01:13:44,230 --> 01:13:45,320 De har inte tillräckligt med pengar. 1551 01:13:45,320 --> 01:13:46,720 Transaktionen kommer inte att fungera. 1552 01:13:46,720 --> 01:13:49,440 Nej, du behöver inte hålla reda på en transaktion, om det inte fungerar. 1553 01:13:49,440 --> 01:13:52,280 Eller så kan du, om du vill ge dem en hård tid. 1554 01:13:52,280 --> 01:13:53,430 Men du behöver inte. 1555 01:13:53,430 --> 01:13:55,820 >> Då du sätter i eller uppdatera i sina lager tabellen. 1556 01:13:55,820 --> 01:13:57,260 Och nu har du din andra tabellen. 1557 01:13:57,260 --> 01:13:59,790 Du har din historia bord eller vad du än vill kalla det. 1558 01:13:59,790 --> 01:14:02,920 Och i den tabellen, kommer du för att infoga en ny rad. 1559 01:14:02,920 --> 01:14:04,205 >> Det är förmodligen att ha användarens ID. 1560 01:14:04,205 --> 01:14:05,840 Det kommer förmodligen att ha namnet på aktien. 1561 01:14:05,840 --> 01:14:08,760 Det kommer förmodligen att ha en tid att de gjorde det. 1562 01:14:08,760 --> 01:14:11,500 Och i det här fallet, kommer du antagligen vill infoga priset. 1563 01:14:11,500 --> 01:14:13,960 På grund av en historia, gör du inte bry sig om vad det nuvarande priset är. 1564 01:14:13,960 --> 01:14:17,140 Du bryr dig vad priset är när de köpt eller sålt något. 1565 01:14:17,140 --> 01:14:21,530 >> Så det låter som, att genomföra köp fullt involverar ett antal olika 1566 01:14:21,530 --> 01:14:25,530 SQL-frågor, men ärligt talat, inte så mycket kod övergripande. 1567 01:14:25,530 --> 01:14:26,330 OK. 1568 01:14:26,330 --> 01:14:28,840 Och som tar hand om historien. 1569 01:14:28,840 --> 01:14:30,450 >> Låt oss säga, vill vi visa vår historia. 1570 01:14:30,450 --> 01:14:31,670 Vi pratade om att visa vår portfölj. 1571 01:14:31,670 --> 01:14:33,902 Hur skulle vi visa vår historia? 1572 01:14:33,902 --> 01:14:36,312 >> PUBLIK: Förmodligen kronologiskt. 1573 01:14:36,312 --> 01:14:37,920 >> JASON Hirschhorn: Förmodligen kronologiskt - 1574 01:14:37,920 --> 01:14:39,400 vilken fråga tror du att vi skulle använda? 1575 01:14:39,400 --> 01:14:40,675 >> PUBLIK: En select. 1576 01:14:40,675 --> 01:14:41,840 >> JASON Hirschhorn: En select - 1577 01:14:41,840 --> 01:14:46,590 väljer kanske alla rader från tabellen att matcha användar-ID och sedan 1578 01:14:46,590 --> 01:14:49,510 visa dem kronologiskt, låter bra. 1579 01:14:49,510 --> 01:14:52,590 Behöver vi skriva kod till sortera igenom den listan? 1580 01:14:52,590 --> 01:14:55,084 >> PUBLIK: Nej, eftersom du sa oss finns det en stigande 1581 01:14:55,084 --> 01:14:57,320 och fallande sak. 1582 01:14:57,320 --> 01:14:58,230 >> JASON Hirschhorn: Thing? 1583 01:14:58,230 --> 01:14:59,190 >> PUBLIK: Ja. 1584 01:14:59,190 --> 01:15:01,270 >> JASON Hirschhorn: Ja. 1585 01:15:01,270 --> 01:15:09,300 OK, inte vända i koden för mig, att manuellt sorterar igenom dina frågor, 1586 01:15:09,300 --> 01:15:09,820 att sortera dem. 1587 01:15:09,820 --> 01:15:12,480 Den koden är redan given. 1588 01:15:12,480 --> 01:15:15,310 Du kan skriva en urvalsfråga som sorterar saker. 1589 01:15:15,310 --> 01:15:18,900 Sortera dem i förväg och sedan skriva ut dem. 1590 01:15:18,900 --> 01:15:22,070 Det gör så mycket mer meningsfullt att göra det på det sättet, än det andra hållet. 1591 01:15:22,070 --> 01:15:22,375 Ja. 1592 01:15:22,375 --> 01:15:23,925 >> PUBLIK: Behöver vi att sortera dem i förväg? 1593 01:15:23,925 --> 01:15:25,976 Betyder det att du sorterar dem i databasen? 1594 01:15:25,976 --> 01:15:30,510 >> JASON Hirschhorn: urvalsfrågan tillbaka dem till dig sorterade. 1595 01:15:30,510 --> 01:15:34,990 Så gör det, istället för att bara ha dem tillbaka till dig i en slumpmässig ordning och 1596 01:15:34,990 --> 01:15:36,150 sedan sortera dem själv. 1597 01:15:36,150 --> 01:15:36,405 Yeah. 1598 01:15:36,405 --> 01:15:39,925 >> PUBLIK: Finns det ett sätt att hålla den sorteras i själva databasen, så att 1599 01:15:39,925 --> 01:15:41,355 du behöver inte sortera det varje gång du - 1600 01:15:41,355 --> 01:15:43,065 >> PUBLIK: Kan du sätta in det sorterade? 1601 01:15:43,065 --> 01:15:45,740 >> JASON Hirschhorn: Fråga - 1602 01:15:45,740 --> 01:15:49,796 spelar det någon roll att det är sorterade i databasen? 1603 01:15:49,796 --> 01:15:50,700 >> PUBLIK: Nej. 1604 01:15:50,700 --> 01:15:52,240 >> JASON Hirschhorn: Tja, de sorteras. 1605 01:15:52,240 --> 01:15:53,100 De är sorterade i kronologisk ordning. 1606 01:15:53,100 --> 01:15:55,060 Men låt oss anta att saker sorteras 1607 01:15:55,060 --> 01:15:57,640 kronologiskt, från topp till botten. 1608 01:15:57,640 --> 01:15:58,930 Vi har ett Google-formulär. 1609 01:15:58,930 --> 01:16:01,400 När någon svarar på vår Google bildar, bara det blir sätta i 1610 01:16:01,400 --> 01:16:02,480 botten i tabellen. 1611 01:16:02,480 --> 01:16:07,318 Spelar det någon roll att det är sorteras inte kronologiskt? 1612 01:16:07,318 --> 01:16:11,290 >> PUBLIK: Om det inte är kronologisk, behöver du inte sortera det varje gång 1613 01:16:11,290 --> 01:16:12,920 du tar info ut. 1614 01:16:12,920 --> 01:16:16,730 Men om det redan är sorterade, kan inte du inte göra det extra 1615 01:16:16,730 --> 01:16:17,570 funktionsanrop? 1616 01:16:17,570 --> 01:16:20,690 >> JASON Hirschhorn: Så det är faktiskt en bra poäng. 1617 01:16:20,690 --> 01:16:23,690 För oss som programmerare, kan det roll. 1618 01:16:23,690 --> 01:16:26,190 Och vi kanske vill hitta en databas som inte sorterar saker 1619 01:16:26,190 --> 01:16:26,900 kronologiskt. 1620 01:16:26,900 --> 01:16:30,100 Eller ställa in i vår databas, så det håller saker sorterade efter användar-ID. 1621 01:16:30,100 --> 01:16:34,060 >> Så på det sättet, säger, vi har 1.000 användar-ID. 1622 01:16:34,060 --> 01:16:36,690 Eller Facebook, har vi miljontals av användar-ID. 1623 01:16:36,690 --> 01:16:39,560 Vi vill inte att vårt bord för att bara vara slumpmässig eller vår databas för att vara slumpmässigt. 1624 01:16:39,560 --> 01:16:41,630 Det skulle vara trevligt om alla de användar-ID sorterades. 1625 01:16:41,630 --> 01:16:46,020 Så då vi kunde köra binära sökningar på vårt bord och sedan bara hitta den 1626 01:16:46,020 --> 01:16:47,050 specifik bit. 1627 01:16:47,050 --> 01:16:50,640 >> Så ja, beroende på - om vi skalas upp, Vi kanske vill hitta en databas 1628 01:16:50,640 --> 01:16:53,370 som hålls saker sorteras i en annan sätt, så att dessa frågor 1629 01:16:53,370 --> 01:16:54,140 skulle ta mindre tid. 1630 01:16:54,140 --> 01:16:56,820 Och vi behövde inte gå igenom vår hela databasen i varje enskild rad i 1631 01:16:56,820 --> 01:16:58,260 en viss tabell. 1632 01:16:58,260 --> 01:17:01,640 Men den nivå vi jobbar på, vi behöver inte oroa dig för att hålla 1633 01:17:01,640 --> 01:17:02,270 saker sortering. 1634 01:17:02,270 --> 01:17:06,100 Vi kan anta att den tid det tar den frågan för att köra kommer att bli 1635 01:17:06,100 --> 01:17:08,910 försumbara, med tanke på vad vi har att göra med. 1636 01:17:08,910 --> 01:17:13,550 Men ja, bra idé - som vi skala upp, kan det vara meningsfullt att utforma vår 1637 01:17:13,550 --> 01:17:15,390 databas i en bit av ett annat sätt. 1638 01:17:15,390 --> 01:17:18,520 >> En sista databasdesign jag vill att nämna också, eftersom du kommer 1639 01:17:18,520 --> 01:17:22,660 graderas, eller gjorde snarare, på utformningen av din databas. 1640 01:17:22,660 --> 01:17:24,160 Vi pratade om det här. 1641 01:17:24,160 --> 01:17:27,490 Cash är unik för varje användare. 1642 01:17:27,490 --> 01:17:30,820 Så du har en tabell som heter pengar som har deras användar-ID och deras mängd 1643 01:17:30,820 --> 01:17:33,370 kontanter och sedan en tabell som heter användare som har sina användare 1644 01:17:33,370 --> 01:17:34,810 ID och deras användarnamn. 1645 01:17:34,810 --> 01:17:37,390 >> Dessa tabeller avbildas på varje andra en-till-en. 1646 01:17:37,390 --> 01:17:39,520 Det gör nog rimligt att dem att vara en tabell. 1647 01:17:39,520 --> 01:17:42,750 1648 01:17:42,750 --> 01:17:44,830 Så låt oss anta att du har en användare tabell som håller reda på 1649 01:17:44,830 --> 01:17:46,220 användarnamn och kontanter. 1650 01:17:46,220 --> 01:17:49,960 Du har nu en tabell som har bestånd en person äger. 1651 01:17:49,960 --> 01:17:52,130 >> Och en person kan äga mer än ett lager. 1652 01:17:52,130 --> 01:17:54,900 Så dessa inte karta på varandra en-till-en. 1653 01:17:54,900 --> 01:18:00,140 Det är inte rimligt att ha en jätte tabell som har 30 poster som 1654 01:18:00,140 --> 01:18:02,960 alla upprepa ett användarnamn, som alla upprepa ett lösenord, så att alla 1655 01:18:02,960 --> 01:18:04,680 upprepa ett antal kontanter. 1656 01:18:04,680 --> 01:18:08,360 Men alla har kanske en annan lager namn eller en annan aktiekurs. 1657 01:18:08,360 --> 01:18:11,310 >> Det är inte meningsfullt att ha att många stora skivor. 1658 01:18:11,310 --> 01:18:14,880 Var smart om när du skapar dessa databaser, så att du inte gör 1659 01:18:14,880 --> 01:18:20,050 något dumt som detta, upprepa en massa onödig information. 1660 01:18:20,050 --> 01:18:20,570 >> OK. 1661 01:18:20,570 --> 01:18:22,570 Vi har två minuter kvar. 1662 01:18:22,570 --> 01:18:26,580 Människor utanför är glada att gå med oss eller troligen, förmodligen, 1663 01:18:26,580 --> 01:18:27,650 starta sin egen klass. 1664 01:18:27,650 --> 01:18:30,110 Är det någon som har några frågor innan vi avslutar upp? 1665 01:18:30,110 --> 01:18:35,520 1666 01:18:35,520 --> 01:18:38,620 >> OK, det var verkligen en virvelvind genom allt. 1667 01:18:38,620 --> 01:18:43,510 Jag ber om ursäkt att det måste vara så snabb och att vi inte kan vara så praktisk 1668 01:18:43,510 --> 01:18:46,640 denna vecka som jag skulle har velat ha varit. 1669 01:18:46,640 --> 01:18:50,610 Men om du har några frågor om något vi gick över eller någonting 1670 01:18:50,610 --> 01:18:52,090 detta problem set - 1671 01:18:52,090 --> 01:18:54,900 Förutsatt att du har läst den och lägga i god tro ansträngning - 1672 01:18:54,900 --> 01:18:57,920 välkommen att maila mig eller kontakta mig. 1673 01:18:57,920 --> 01:19:00,960 Jag är mer än glad att arbeta igenom din kod med dig eller svara på någon 1674 01:19:00,960 --> 01:19:02,330 frågor du har. 1675 01:19:02,330 --> 01:19:06,160 >> Tänk på att, den här veckan, en hel del din tid kommer att spenderas lära 1676 01:19:06,160 --> 01:19:10,730 ny syntax och försöka förstå hur man skriver SQL-frågor eller PHP 1677 01:19:10,730 --> 01:19:14,280 funktioner eller affär med en ram MVC. 1678 01:19:14,280 --> 01:19:17,290 En hel del av din tid denna vecka förmodligen kommer inte att försöka lista ut det 1679 01:19:17,290 --> 01:19:19,380 galna logik som vi är ber dig att göra. 1680 01:19:19,380 --> 01:19:23,820 Mycket av det vi just gick över är relativt enkelt. 1681 01:19:23,820 --> 01:19:25,790 >> Så det betyder inte att vänta till sista minuten. 1682 01:19:25,790 --> 01:19:29,710 Men det betyder inte att justera hur du gör din arbeta i enlighet med detta för att se till 1683 01:19:29,710 --> 01:19:30,970 du förstå och lära sig syntaxen. 1684 01:19:30,970 --> 01:19:33,640 Så du är inte, helt plötsligt, att veta exakt vad du vill göra, 1685 01:19:33,640 --> 01:19:37,200 men med ingen aning om hur man precis skriva det. 1686 01:19:37,200 --> 01:19:38,450 OK, vi ses nästa vecka. 1687 01:19:38,450 --> 01:19:40,438