1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Välkommen till avsnittet för den här veckan. 3 00:00:08,440 --> 00:00:10,040 Jag är inte Andi. 4 00:00:10,040 --> 00:00:14,590 Andi har fallit sjuk i dag, och jag har slags kallas i sista minuten 5 00:00:14,590 --> 00:00:15,700 att ta över. 6 00:00:15,700 --> 00:00:20,920 Det är influensasäsong, så se till att du vistas ren, tvätta händerna, 7 00:00:20,920 --> 00:00:24,800 och äta hälsosamt så att du också, inte sängliggande. 8 00:00:24,800 --> 00:00:26,870 >> Men utan ytterligare ADO, låt oss komma igång. 9 00:00:26,870 --> 00:00:29,970 Idag ska vi prata om PHP lite bit-- hur 10 00:00:29,970 --> 00:00:33,900 PHP avser HTML, hur det avser CSS och en del av banan 11 00:00:33,900 --> 00:00:36,100 saker du gjorde på den senaste tilldelningen. 12 00:00:36,100 --> 00:00:37,930 Vi kommer att prata lite om SQL 13 00:00:37,930 --> 00:00:41,360 och hur du kan arbeta med databaser, vilket är en ganska viktig del av P 14 00:00:41,360 --> 00:00:43,650 set 8-- P inställd 7. 15 00:00:43,650 --> 00:00:44,480 P set 7. 16 00:00:44,480 --> 00:00:48,400 >> Och sedan ska vi prata lite lite om hur visa styrenheter fungerar 17 00:00:48,400 --> 00:00:54,640 och varför det är en filosofi bakom några moderna webbsidor och annorlunda design. 18 00:00:54,640 --> 00:00:58,760 Ganska mycket en hel del olika typer av appar och program som du kan leverera 19 00:00:58,760 --> 00:01:01,120 använder denna modell, controller ram view, 20 00:01:01,120 --> 00:01:02,890 att du kommer att använda i P set 7, så jag ska 21 00:01:02,890 --> 00:01:05,220 prata lite om varför det har blivit 22 00:01:05,220 --> 00:01:07,970 populär, varför det är viktigt och trevligt. 23 00:01:07,970 --> 00:01:12,052 Och sedan ska jag äntligen gå vidare till några tips om att ta itu med P set 7. 24 00:01:12,052 --> 00:01:13,760 Och om vi har tid kvar i slutet, 25 00:01:13,760 --> 00:01:17,320 vi faktiskt kan göra något arbeta på det tillsammans. 26 00:01:17,320 --> 00:01:20,380 >> Så, PHP. 27 00:01:20,380 --> 00:01:23,790 I själva verket kan du ha märkt this-- att du inte verkligen måste dyka in det-- 28 00:01:23,790 --> 00:01:27,880 men P set 6 hade någon PHP kod som pågick. 29 00:01:27,880 --> 00:01:34,710 Och eftersom PHP är ett C-liknande språket, PHP, till skillnad från HTML och CSS, 30 00:01:34,710 --> 00:01:39,030 är ett programmeringsspråk, medan HTML och CSS är statiska. 31 00:01:39,030 --> 00:01:44,050 De är märkspråk som behandlar med stil och visuell layout. 32 00:01:44,050 --> 00:01:46,230 PHP är den verkliga affären. 33 00:01:46,230 --> 00:01:51,590 >> PHP har loopar, den har conditions-- allt det där som är kul om C. 34 00:01:51,590 --> 00:01:56,190 Det har några saker som är lite lite bättre än C, som vi får se, 35 00:01:56,190 --> 00:01:59,760 men jag tror att det enklaste sättet att prata om PHP är bara att dyka i. 36 00:01:59,760 --> 00:02:04,087 Så jag kommer att gå rätt in IDE vid denna punkt. 37 00:02:04,087 --> 00:02:06,170 Det första vi ska göra är att faktiskt titta 38 00:02:06,170 --> 00:02:10,169 en liten bit på några av de PHP-kod som var i P set 6. 39 00:02:10,169 --> 00:02:13,600 Så det sätt som vi gör that-- innan, det sätt som vi körde 40 00:02:13,600 --> 00:02:18,550 servern för apparaten var att vi skulle behöva Motortyp- 41 00:02:18,550 --> 00:02:21,750 antingen använda din implementation eller personalens genomförandet 42 00:02:21,750 --> 00:02:27,059 av server.c genom att gå in i katalogen och rinnande server.c med antingen ingen 43 00:02:27,059 --> 00:02:30,100 arguments-- så bara kalla det på lokala värden, vilket är vad du förmodligen 44 00:02:30,100 --> 00:02:31,849 gjorde det mesta av time-- och sedan mata den 45 00:02:31,849 --> 00:02:35,380 en directory-- med som att använda som dess rot 46 00:02:35,380 --> 00:02:38,310 där webbplatsen skulle köras, i grund och botten. 47 00:02:38,310 --> 00:02:42,180 >> Denna vecka för P set 7, som stor som vår kod för server.c 48 00:02:42,180 --> 00:02:47,580 är att det finns människor som redan har skrivit dessa fina saker över på CS50 49 00:02:47,580 --> 00:02:49,630 som har en lite mer funktionalitet, 50 00:02:49,630 --> 00:02:52,920 ett serverprogram som är kapabel att hantera lite mer 51 00:02:52,920 --> 00:02:56,350 av de krångligheter som vi ska se i både P set 7 och P ställa 8. 52 00:02:56,350 --> 00:03:01,410 Och det sätt som du startar server är genom att bara skriva "apache50." 53 00:03:01,410 --> 00:03:03,960 >> Och innan du gör något, du vill vara säker på 54 00:03:03,960 --> 00:03:06,070 att Apache 50 är inte redan körs som det är 55 00:03:06,070 --> 00:03:08,130 på min maskin, som jag gjorde för att testa det. 56 00:03:08,130 --> 00:03:10,320 Och du gör det genom att ringa apache50. 57 00:03:10,320 --> 00:03:14,070 Stopp, och du ser att det är stopp webbservern, om du kan se det 58 00:03:14,070 --> 00:03:16,340 längst ned i terminalfönstret. 59 00:03:16,340 --> 00:03:21,090 Och sedan bara att börja, vi är kommer att kalla "apache50 börja." 60 00:03:21,090 --> 00:03:23,150 Och då kommer vi att mata den en katalog. 61 00:03:23,150 --> 00:03:26,950 >> Nu, eftersom vi vill se på några av P set 6-kod 62 00:03:26,950 --> 00:03:32,850 att vi hade genomfört, jag faktiskt kopieras en liten bit av P 63 00:03:32,850 --> 00:03:37,090 set 6-koden i min egen mapp, som du kan se på vänster finns. 64 00:03:37,090 --> 00:03:40,170 Den heter "SECTION8" i alla versaler 65 00:03:40,170 --> 00:03:44,510 eftersom jag är bara så upphetsad att vara levande strömmande idag. 66 00:03:44,510 --> 00:03:47,330 >> Så om vi kör detta, bör det alla fungerar ganska effektivt. 67 00:03:47,330 --> 00:03:52,350 Det säger, OK, är vår hemsida nu tillgänglig på adressen för IDE, 68 00:03:52,350 --> 00:03:57,710 i grund och botten, vilket är vad du använde precis som det var i P set 7-- P set 6. 69 00:03:57,710 --> 00:04:00,899 Alla mina index är ett index i dag. 70 00:04:00,899 --> 00:04:02,940 Så vi kan gå till den adress, om du kommer ihåg, 71 00:04:02,940 --> 00:04:05,710 genom att bara klicka på den här lilla knappen i det övre högra. 72 00:04:05,710 --> 00:04:14,200 >> Och du kommer ihåg den här koden, som hände när du gick in i hello.php. 73 00:04:14,200 --> 00:04:18,000 Och vad är utformad för att gör är när du skrev in ett namn 74 00:04:18,000 --> 00:04:20,550 här-- om du säger Sam eftersom det är min name-- 75 00:04:20,550 --> 00:04:23,620 och jag klickar Say Hello, när vi gick till nästa sida, 76 00:04:23,620 --> 00:04:25,270 det namnet var tänkt att visas. 77 00:04:25,270 --> 00:04:28,550 Det skulle säga, "Hej, Sam" eller "Hej," vilket namn du 78 00:04:28,550 --> 00:04:32,470 lagt ned på det trots att vi gick till en helt ny webbsida. 79 00:04:32,470 --> 00:04:36,610 >> Och det är denna typ av sak att PHP kan göra för dig. 80 00:04:36,610 --> 00:04:42,840 PHP kan skicka data mellan två webbsidor. 81 00:04:42,840 --> 00:04:44,390 Detta är en helt annan sida. 82 00:04:44,390 --> 00:04:46,990 Du ser titeln är "hej" här. 83 00:04:46,990 --> 00:04:49,080 Faktiskt, har de samma titel, men jag 84 00:04:49,080 --> 00:04:52,560 lova att de är olika web sidor om vi tittar på källan. 85 00:04:52,560 --> 00:04:55,890 Och du kan skicka data som är in i det här textfältet, 86 00:04:55,890 --> 00:04:59,830 du skickar det till nästa sida som kallas upp, 87 00:04:59,830 --> 00:05:02,490 och sedan dessa data kan vara där i sin nuvarande form. 88 00:05:02,490 --> 00:05:04,810 >> Nu har vi ännu inte har genomfört detta själva, som 89 00:05:04,810 --> 00:05:08,710 är vad vi ska göra just nu för att sort få en smak för hur PHP fungerar, 90 00:05:08,710 --> 00:05:15,070 men det viktigaste idén är att PHP-- du kan sorts tänker på det som en funktion. 91 00:05:15,070 --> 00:05:18,570 Något som PHP kan låta dig gör det kan ta parametrar 92 00:05:18,570 --> 00:05:24,710 att du matar in en HTML-sida genom användning av PHP och former, 93 00:05:24,710 --> 00:05:29,960 och det kan passera dem som parametrar till nästa sida som den laddar upp. 94 00:05:29,960 --> 00:05:35,110 >> I det här fallet, vi laddar upp denna sida med knappen "Säg hej". 95 00:05:35,110 --> 00:05:38,960 Men nu, jag faktiskt raderat en del av denna kod 96 00:05:38,960 --> 00:05:44,850 i hello.php som drivs som faktiskt visar "hej, 97 00:05:44,850 --> 00:05:49,680 värld "eller" Hej, Sam "eller "Hej," oavsett var bara mata in. 98 00:05:49,680 --> 00:05:53,620 Så för just nu, vi är kommer att göra det, i princip. 99 00:05:53,620 --> 00:05:56,570 Vi kommer att återskapa den och också lägga till några fler funktioner, 100 00:05:56,570 --> 00:06:00,210 göra lite mer med det, se vad PHP är verkligen kan. 101 00:06:00,210 --> 00:06:04,870 >> Så först, låt oss tala om den här filen, hello.php. 102 00:06:04,870 --> 00:06:07,440 Så om vi in ​​i en lite bit-- och nu är jag 103 00:06:07,440 --> 00:06:10,520 sorts försöker rulla alla sättet around-- där vi går. 104 00:06:10,520 --> 00:06:14,220 Du ser det heter hello.php, men syntaxen i det 105 00:06:14,220 --> 00:06:16,880 ser ut som en HTML-fil. 106 00:06:16,880 --> 00:06:20,380 Detta beror på att faktiska PHP i den här filen 107 00:06:20,380 --> 00:06:25,220 är alla fastnat mellan dessa Frågetecken-Caret block. 108 00:06:25,220 --> 00:06:28,610 Allt här anses PHP-kod. 109 00:06:28,610 --> 00:06:32,040 >> Och du kommer att märka att när jag gjorde en kommentar, 110 00:06:32,040 --> 00:06:35,320 ser du den välbekanta två snedstreck. 111 00:06:35,320 --> 00:06:38,440 Och om du minns, i HTML, om jag skriver en kommentar, 112 00:06:38,440 --> 00:06:42,540 det ser något närmare detta, vilket är en kommentar i HTML. 113 00:06:42,540 --> 00:06:46,570 Så egentligen allt mellan dessa två vinkelfästen 114 00:06:46,570 --> 00:06:50,060 är nu PHP-kod, som återspeglas i det faktum 115 00:06:50,060 --> 00:06:53,270 att denna lilla kommentar symbol förvandlas till en kommentar. 116 00:06:53,270 --> 00:06:58,420 >> Så varje gång du skriver PHP-kod, även om det inte finns någon HTML-kod utanför den, 117 00:06:58,420 --> 00:07:02,720 det alltid kommer att vara inneslutna i dessa vinkelfästen 118 00:07:02,720 --> 00:07:04,080 med frågetecken. 119 00:07:04,080 --> 00:07:08,260 Du kan sorts tänka det-- hur allt av koden som sprang in din C-program 120 00:07:08,260 --> 00:07:13,950 inneslöts i en int main, tomrum, klammerparentes, end klammerparentes uttalande. 121 00:07:13,950 --> 00:07:17,100 Och ser du klammerparenteserna i PHP, också, men det är typ av 122 00:07:17,100 --> 00:07:20,490 som den huvudsakliga metoden för PHP. 123 00:07:20,490 --> 00:07:25,630 >> Så nu, hur ska vi göra någonting i PHP? 124 00:07:25,630 --> 00:07:29,190 Nu är PHP ett programmeringsspråk språk som är väldigt C-liknande, 125 00:07:29,190 --> 00:07:30,970 men det fungerar på webben. 126 00:07:30,970 --> 00:07:33,270 Så en sak som du immediately-- en 127 00:07:33,270 --> 00:07:38,130 av de första saker du verkligen gjorde med C du skrev saker ut, eller hur? 128 00:07:38,130 --> 00:07:42,290 Så i C vi gjorde det med en printf funktion. 129 00:07:42,290 --> 00:07:46,430 Vi gav det ett snöre, troligen med en ny linje, 130 00:07:46,430 --> 00:07:49,850 och sedan vi avslutade det med ett semikolon. 131 00:07:49,850 --> 00:07:53,790 >> Så det sätt som vi kommer att göra det i PHP-- eftersom det inte är helt printf. 132 00:07:53,790 --> 00:07:55,940 Det är en lite annorlunda syntax. 133 00:07:55,940 --> 00:08:02,580 Det sätt som vi skriver ut saker i PHP är att vi säger, "echo hello" 134 00:08:02,580 --> 00:08:04,180 eller "echo" alla ord. 135 00:08:04,180 --> 00:08:09,830 Och det har effekten av att göra printf med en sträng, "Hej." 136 00:08:09,830 --> 00:08:11,990 Och det tillför den nya linjen till det. 137 00:08:11,990 --> 00:08:16,000 >> Så låt oss nu göra sure-- Jag ska zooma ut igen lite bit-- 138 00:08:16,000 --> 00:08:18,250 Låt oss se till att att koden fungerar 139 00:08:18,250 --> 00:08:21,030 eftersom det kan mycket väl vara ett fel i denna kod 140 00:08:21,030 --> 00:08:22,880 att vi kommer att behöva ta itu med. 141 00:08:22,880 --> 00:08:25,860 Så servern redan är igång. 142 00:08:25,860 --> 00:08:30,630 Så om vi rulla tillbaka ner till botten, Japp, är servern fortfarande körs. 143 00:08:30,630 --> 00:08:34,510 Så om vi bara peka på detta lite rätt här-- 144 00:08:34,510 --> 00:08:37,620 welcome-- vi bör get-- stor. 145 00:08:37,620 --> 00:08:39,930 >> Vi fortfarande har bekant "Säg hej" dialog, 146 00:08:39,930 --> 00:08:45,750 men när jag skriver in "hej" vi får se att texten "hello" verkligen var 147 00:08:45,750 --> 00:08:50,080 skrivas ut, vilket är exakt som vi förväntade oss eftersom eko ​​i PHP 148 00:08:50,080 --> 00:08:53,190 är precis som en printf uttalande. 149 00:08:53,190 --> 00:09:01,410 Så tillbaka till koden, hur i P ställer 6 gjorde det kodfördelning du har tillgång 150 00:09:01,410 --> 00:09:05,920 göra det så att PHP skulle utgång det som du 151 00:09:05,920 --> 00:09:07,920 skrivas in på föregående skärm? 152 00:09:07,920 --> 00:09:10,350 >> Och sorts undersöka varför det händer, vi är 153 00:09:10,350 --> 00:09:15,510 gå in index.html, som är den ursprungliga filen, filen som 154 00:09:15,510 --> 00:09:18,710 dyker upp på skärmen med knappen "Säg hej". 155 00:09:18,710 --> 00:09:20,950 Du märker att det finns alla de klassiska sakerna 156 00:09:20,950 --> 00:09:26,910 vi har kommit att förvänta sig från HTML sådan eftersom dessa saker, dessa taggar slutna 157 00:09:26,910 --> 00:09:31,080 i vinkeljärnen, som PHP men utan frågetecken, 158 00:09:31,080 --> 00:09:34,650 vilket tyder på en speciell sak till HTML. 159 00:09:34,650 --> 00:09:36,895 Vi har titel, som är "Hej." 160 00:09:36,895 --> 00:09:41,010 Och du kommer att märka att när vi såg, titeln är "Hej" i båda fallen. 161 00:09:41,010 --> 00:09:43,260 Låt oss ändra detta att "säga" bara så vi 162 00:09:43,260 --> 00:09:48,170 kan skilja oss där vi är. 163 00:09:48,170 --> 00:09:49,600 >> Men vi har en kropp. 164 00:09:49,600 --> 00:09:52,690 Och sedan den intressanta biten, bit som dyker upp i HTML, 165 00:09:52,690 --> 00:09:54,530 är detta formulärelement. 166 00:09:54,530 --> 00:09:56,370 Och så har vi ett formulär. 167 00:09:56,370 --> 00:09:58,330 Och det är nyckeln. 168 00:09:58,330 --> 00:10:00,530 Det är så vi arbetar med PHP. 169 00:10:00,530 --> 00:10:05,790 Verkan parametern formulär säger att hello.php 170 00:10:05,790 --> 00:10:09,310 är vad vi kommer att skicka värdena i detta formulär för att. 171 00:10:09,310 --> 00:10:13,830 Det är där vi passerar parametrar, så att säga. 172 00:10:13,830 --> 00:10:18,680 >> Du kommer att märka en annan sak här är att metoden är "får." 173 00:10:18,680 --> 00:10:24,450 Det finns två huvudsakliga metoder genom vilka kommer 174 00:10:24,450 --> 00:10:28,750 att använda PHP för att skicka data mellan websites-- webbsidor, 175 00:10:28,750 --> 00:10:30,500 rather-- i detta uppdrag. 176 00:10:30,500 --> 00:10:34,070 Och dessa metoder är "får" och "post." 177 00:10:34,070 --> 00:10:37,010 Det finns några subtila skillnader mellan get och post 178 00:10:37,010 --> 00:10:40,520 att vi kommer att få into-- vi kommer att "få" in, om man så vill. 179 00:10:40,520 --> 00:10:44,030 >> Men i allt väsentligt och ändamål, få och post 180 00:10:44,030 --> 00:10:47,120 ligger bara ett sätt som du skicka parametrar 181 00:10:47,120 --> 00:10:49,500 med lite olika utföranden. 182 00:10:49,500 --> 00:10:53,500 För nu, kommer vi att använda få eftersom får var vad som användes ursprungligen 183 00:10:53,500 --> 00:10:57,340 i PHP-fil P set 6. 184 00:10:57,340 --> 00:11:00,850 Och faktiskt, om vi går in och titta innan vi har redigerat något annat, 185 00:11:00,850 --> 00:11:03,090 Jag kommer att säga hej att-- vad heter du? 186 00:11:03,090 --> 00:11:03,812 >> PUBLIK: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: Åh, Jisses. 188 00:11:04,770 --> 00:11:05,600 Jag vet inte hur man stavar det. 189 00:11:05,600 --> 00:11:06,766 Kan du stava det för mig? 190 00:11:06,766 --> 00:11:08,710 Publik: E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> PUBLIK: Ja. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Perfect. 194 00:11:10,960 --> 00:11:11,210 OK. 195 00:11:11,210 --> 00:11:12,751 Jag antar att jag visste hur man stavar det. 196 00:11:12,751 --> 00:11:13,510 Förlåt för det. 197 00:11:13,510 --> 00:11:16,560 Men om vi säger "Säg hej," det är inte det kommer inte att dyka upp på skärmen 198 00:11:16,560 --> 00:11:18,476 men eftersom vi ändrade koden lite. 199 00:11:18,476 --> 00:11:21,290 Men om vi gör "Säg hej" - OK, så "hello" är här. 200 00:11:21,290 --> 00:11:24,137 Men om vi tar en närmare titta på själva webbadressen, 201 00:11:24,137 --> 00:11:26,220 vi får se att det slutar med hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Så detta är ett sätt att kommunicera till nästa webbsidan 204 00:11:37,180 --> 00:11:39,240 de parametrar som vi har passerat. 205 00:11:39,240 --> 00:11:40,870 Vi sade name = Elliot. 206 00:11:40,870 --> 00:11:46,290 Och det är i slutändan hur P ställer 6 åt den variabel som vi passerade i 207 00:11:46,290 --> 00:11:47,520 via formuläret. 208 00:11:47,520 --> 00:11:51,470 Och detta är något som är utmärkande för en begäran få. 209 00:11:51,470 --> 00:11:57,480 En get begäran gör parametrarna känd i webbadressen till webbplatsen. 210 00:11:57,480 --> 00:12:01,190 >> Och du kommer ihåg, alltför, i P set 6 som du 211 00:12:01,190 --> 00:12:04,450 var tvungen att skriva en funktion som handlade om det faktum 212 00:12:04,450 --> 00:12:09,700 att detta frågesträngen skulle kunna existera efter en fil. 213 00:12:09,700 --> 00:12:14,684 Det kan finnas ett frågetecken följt genom att i princip alla antal tecken. 214 00:12:14,684 --> 00:12:16,350 Och det är precis vad som händer här. 215 00:12:16,350 --> 00:12:21,280 Och anledningen till att du var tvungen att tolka det i genomförandet av server.c i P 216 00:12:21,280 --> 00:12:27,570 set 6 är så att du kan berätta PHP-kod som name = Elliot. 217 00:12:27,570 --> 00:12:30,460 Du behövs för att kunna parse att av URL 218 00:12:30,460 --> 00:12:35,900 så att PHP-fil i fråga visste vad det handlade med. 219 00:12:35,900 --> 00:12:39,350 >> Så förhoppningsvis detta ger motivationen att server.c 220 00:12:39,350 --> 00:12:43,900 nu när vi går vidare utanför C i PHP. 221 00:12:43,900 --> 00:12:48,240 Så låt oss verkligen fokusera på att komma åt saker passera genom en begäran få nu 222 00:12:48,240 --> 00:12:48,880 vid denna punkt. 223 00:12:48,880 --> 00:12:50,157 Jag kommer att spara. 224 00:12:50,157 --> 00:12:51,240 Vi ville inte ändra någonting. 225 00:12:51,240 --> 00:12:56,080 Det ser ut som om vi har fått en inmatningsfält. 226 00:12:56,080 --> 00:12:58,550 >> Vi ställa in några egenskaper, som vi kan göra en HTML. 227 00:12:58,550 --> 00:12:59,550 Dessa är enkla saker. 228 00:12:59,550 --> 00:13:00,580 Vi behöver inte dessa. 229 00:13:00,580 --> 00:13:03,750 Men vi har Komplettera automatiskt bort, som i princip says-- du vet, 230 00:13:03,750 --> 00:13:05,710 när du skriver saker i banan, ibland 231 00:13:05,710 --> 00:13:07,355 det försöker fylla det åt dig. 232 00:13:07,355 --> 00:13:08,230 Så det är en bra sak. 233 00:13:08,230 --> 00:13:11,700 Vi vill stänga av den för detta ändamål. 234 00:13:11,700 --> 00:13:13,970 Det var ett CS50 beslut. 235 00:13:13,970 --> 00:13:15,640 Så vi kan ta bort den om vi ville. 236 00:13:15,640 --> 00:13:19,510 >> Autofokus pinnar bara markören i form alldeles i början. 237 00:13:19,510 --> 00:13:21,060 Återigen, inte alltför viktig. 238 00:13:21,060 --> 00:13:26,220 >> Men name = "namn" - det är lite knepigt eftersom det är namn och namn. 239 00:13:26,220 --> 00:13:28,730 Men vi kunde har ändrat detta till något annat. 240 00:13:28,730 --> 00:13:30,563 Och i själva verket är det vad vi ska göra just nu. 241 00:13:30,563 --> 00:13:34,830 Vi kommer att säga "person" som är ungefär som namn 242 00:13:34,830 --> 00:13:36,790 om en person definieras av deras namn. 243 00:13:36,790 --> 00:13:41,480 >> Så låt oss avsluta detta, öppna upp vår hemsida 244 00:13:41,480 --> 00:13:46,110 eftersom vår server är fortfarande igång Apache 50, och vi kommer att säga, hej, här är 245 00:13:46,110 --> 00:13:47,200 Elliot igen. 246 00:13:47,200 --> 00:13:48,460 Varför inte? 247 00:13:48,460 --> 00:13:49,220 Hallå. 248 00:13:49,220 --> 00:13:52,880 Och om vi går upp här, vi får se då i stället för name = Elliot, 249 00:13:52,880 --> 00:13:55,200 det står personen = Elliot. 250 00:13:55,200 --> 00:14:00,060 Och det är ett direkt resultat av det faktum att vi bara bytt namn = "person." 251 00:14:00,060 --> 00:14:06,840 >> Så i ett inmatningselement av ett HTML-formulär, namnfältet 252 00:14:06,840 --> 00:14:10,590 är identifierare för parameter som är passeras. 253 00:14:10,590 --> 00:14:14,250 Det är som om du skapar en funktion "lägg till" som tog in två heltal 254 00:14:14,250 --> 00:14:16,670 och du sa int a och int b. 255 00:14:16,670 --> 00:14:22,680 Det skulle vara namn a, och om du ville en annan form, som 256 00:14:22,680 --> 00:14:27,800 vi kan göra just genom att kopiera och klistra in, då skulle vi ha namn b. 257 00:14:27,800 --> 00:14:31,030 >> Så nu kommer vi att ha två parametrar som håller på att passera genom 258 00:14:31,030 --> 00:14:36,970 komma till nästa website-- nästa webbsida, hello.php. 259 00:14:36,970 --> 00:14:39,770 Och vi kan faktiskt se det igen om vi vill. 260 00:14:39,770 --> 00:14:44,830 Detta är det enklaste sättet att ta itu med webbkoden i IDE, i princip. 261 00:14:44,830 --> 00:14:47,940 Du startar servern, får den kör, och sedan varje gång du 262 00:14:47,940 --> 00:14:50,649 göra vissa förändringar, bara stänga filen bara för att vara säker. 263 00:14:50,649 --> 00:14:52,440 Genom att trycka på bakåtknappen är lite knepigt 264 00:14:52,440 --> 00:14:55,800 eftersom det kan ladda en tidigare versionen, inte den mest uppdaterade ett. 265 00:14:55,800 --> 00:14:59,200 >> Och sedan klickar du bara din knappen igen, pop höger up-- oh, 266 00:14:59,200 --> 00:15:00,510 och nu finns det två former. 267 00:15:00,510 --> 00:15:10,440 Och så om vi skriver en sak i varje en-- "Jason Hirshhorn" för instance-- 268 00:15:10,440 --> 00:15:11,590 vi säger hej. 269 00:15:11,590 --> 00:15:12,840 Vi tittar upp på våra parametrar. 270 00:15:12,840 --> 00:15:18,910 Det ser ut som vi har fått, som förväntat, a = jason och b = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 som representerar de två parametrarna att vi gick till denna funktion. 272 00:15:23,760 --> 00:15:27,900 >> Så nu ska vi faktiskt få genomförandet av denna funktionalitet som vi 273 00:15:27,900 --> 00:15:30,840 hade i P set 6. 274 00:15:30,840 --> 00:15:32,490 Så just nu är vi bara ekande hej. 275 00:15:32,490 --> 00:15:34,310 Och det är inte mycket användbar. 276 00:15:34,310 --> 00:15:38,530 Vi vill upprepa några variabel som skickades till oss. 277 00:15:38,530 --> 00:15:40,320 Och vi vet namnet på denna variabel. 278 00:15:40,320 --> 00:15:41,770 Vi har en och vi har b. 279 00:15:41,770 --> 00:15:43,500 Så att vi kunde välja att upprepa den ena. 280 00:15:43,500 --> 00:15:45,470 >> Men hur gör vi åt det? 281 00:15:45,470 --> 00:15:48,820 Tja, det finns vissa globala variabler i PHP. 282 00:15:48,820 --> 00:15:51,240 Och jag kommer att skriva dem i kommentarer här. 283 00:15:51,240 --> 00:15:59,910 De två viktigaste är get och efter för våra ändamål just nu. 284 00:15:59,910 --> 00:16:05,350 Det är dessa kedjor eller, tekniskt, ordböcker 285 00:16:05,350 --> 00:16:10,540 där våra variabler som vi är övergå till nästa webbsida live. 286 00:16:10,540 --> 00:16:14,520 Och vi ska snart se hur man använder dem. 287 00:16:14,520 --> 00:16:19,720 >> En annan kort anteckning om PHP-kod och vissa detaljerna i det-- i C, 288 00:16:19,720 --> 00:16:23,260 att deklarera en variabel eller att använda variabler, 289 00:16:23,260 --> 00:16:24,570 du först tvungen att förklara dem. 290 00:16:24,570 --> 00:16:30,860 Och vad du var tvungen att göra när du förklarade dem var säga int a eller röding b. 291 00:16:30,860 --> 00:16:35,630 Du var tvungen att förklara vilka typer av dessa variabler innan du skapade dem. 292 00:16:35,630 --> 00:16:38,800 PHP-- du inte behöver göra något av det. 293 00:16:38,800 --> 00:16:42,522 PHP frågar inte efter vilken typ av variabel. 294 00:16:42,522 --> 00:16:44,480 Och det sätt som du skapa en variable-- snarare 295 00:16:44,480 --> 00:16:49,930 än att säga int, char, string-- vilket är riktigt char *, som vi vet-- 296 00:16:49,930 --> 00:16:52,180 snarare än att göra alla att eftersom allt 297 00:16:52,180 --> 00:16:54,620 är av samma typ, typeless, vi kan bara 298 00:16:54,620 --> 00:16:59,210 använder ett tecken, som är dollartecken. 299 00:16:59,210 --> 00:17:03,700 Och du ser den redan poppar upp, lite Komplettera automatiskt saker. 300 00:17:03,700 --> 00:17:11,380 Och det säger att _GET och _POST är två alternativ som jag har till förfogande 301 00:17:11,380 --> 00:17:11,900 till mig. 302 00:17:11,900 --> 00:17:16,430 Några av dessa andra saker är andra globala variabler i PHP 303 00:17:16,430 --> 00:17:18,430 att du kommer att använda över Under P set 7. 304 00:17:18,430 --> 00:17:20,569 För nu ska vi fokusera på get och post. 305 00:17:20,569 --> 00:17:22,910 Men detta är ett användbart sak som IDE gör 306 00:17:22,910 --> 00:17:24,980 där när du har skrivit i det dollartecken, 307 00:17:24,980 --> 00:17:28,760 det ska börja fylla i globala variabler eller variabler som du redan har definierat. 308 00:17:28,760 --> 00:17:34,360 >> Så om du ville definiera en variabel som kallas "sträng" 309 00:17:34,360 --> 00:17:38,290 du kan bara ställa in den lika med "hej." 310 00:17:38,290 --> 00:17:40,100 Och det är i princip så enkelt är det. 311 00:17:40,100 --> 00:17:44,720 Och då kan vi göra något liknande "echo $ string." 312 00:17:44,720 --> 00:17:48,524 IDE bör kasta några fel om jag gör något fel, 313 00:17:48,524 --> 00:17:50,190 så förhoppningsvis jag gör allt rätt. 314 00:17:50,190 --> 00:17:52,060 Men buggar alltid uppstår. 315 00:17:52,060 --> 00:17:56,670 >> En annan knepig sak om PHP är att det inte kompileras. 316 00:17:56,670 --> 00:18:00,640 Så med C-program, skulle du göra den dagliga rutinen of-- princip, 317 00:18:00,640 --> 00:18:02,710 skulle du göra ändringar till koden, skulle du spara den, 318 00:18:02,710 --> 00:18:04,460 och sedan du skulle gör det, där make var 319 00:18:04,460 --> 00:18:08,830 det steg som kallas kompilator, klang, för att göra din kod, denna text 320 00:18:08,830 --> 00:18:10,570 fil, till en körbar. 321 00:18:10,570 --> 00:18:15,550 PHP är C-liknande, men det är verk i farten från din webbläsare. 322 00:18:15,550 --> 00:18:17,640 Så det finns inget sätt att veta. 323 00:18:17,640 --> 00:18:19,790 >> Gör skulle kasta dem hjälp fel, eller hur? 324 00:18:19,790 --> 00:18:22,190 Det skulle vara som du inte förklara denna variabel 325 00:18:22,190 --> 00:18:23,320 innan du försökte använda den. 326 00:18:23,320 --> 00:18:29,120 Du gjorde allt detta dåliga stuff-- segfault, segfault, allt sorts roliga tider 327 00:18:29,120 --> 00:18:31,000 som kom med make. 328 00:18:31,000 --> 00:18:33,920 PHP är ett tveeggat svärd eftersom du inte kommer att få dessa fel, 329 00:18:33,920 --> 00:18:37,770 men det innebär också att du inte vet verkligen vad som är fel med ditt program 330 00:18:37,770 --> 00:18:39,840 Om du bara köra det och det fungerar inte. 331 00:18:39,840 --> 00:18:45,130 Men debugger bör påpeka några förhoppningsvis hjälp småsaker 332 00:18:45,130 --> 00:18:47,950 syntaktiskt att du kan fixa. 333 00:18:47,950 --> 00:18:52,850 >> Så nu om vi går över att-- säger, låt oss avsluta det. 334 00:18:52,850 --> 00:18:54,522 Öppna. 335 00:18:54,522 --> 00:18:55,480 Och vi är tillbaka hit. 336 00:18:55,480 --> 00:18:57,210 Så vi har en variabel och en rörlig b. 337 00:18:57,210 --> 00:18:58,626 Och dessa kommer inte i slutändan roll. 338 00:18:58,626 --> 00:19:01,850 Vi kallar dem h och g utan någon speciell anledning. 339 00:19:01,850 --> 00:19:03,120 >> Och vi säger hej. 340 00:19:03,120 --> 00:19:07,480 Nu ser det ut som vår sträng "hej" är verkligen utskrift. 341 00:19:07,480 --> 00:19:10,460 Vi skapade en variabel som heter "sträng" ställa in den lika med "hej." 342 00:19:10,460 --> 00:19:15,520 Lägg märke till att vi inte behövde göra malloc eller göra en karaktär array. 343 00:19:15,520 --> 00:19:19,110 >> I PHP, eftersom variabler är typeless, en sträng 344 00:19:19,110 --> 00:19:22,230 är densamma som en röding för alla avseenden. 345 00:19:22,230 --> 00:19:23,570 Detta kan vara "hej." 346 00:19:23,570 --> 00:19:26,340 Detta kan vara just den karaktären k. 347 00:19:26,340 --> 00:19:29,290 Detta kan vara ett nummer ett. 348 00:19:29,290 --> 00:19:30,300 Och det bryr sig inte. 349 00:19:30,300 --> 00:19:33,560 PHP bryr sig inte om vilken typ av variabel. 350 00:19:33,560 --> 00:19:34,390 Eller, det gör det vård. 351 00:19:34,390 --> 00:19:36,240 Det bryr sig när du försöker och göra saker med det, 352 00:19:36,240 --> 00:19:38,790 men det bryr sig inte in deklarationen steget. 353 00:19:38,790 --> 00:19:46,960 >> Och precis som du kan i C, kan du deklarera strängar på stacken så här 354 00:19:46,960 --> 00:19:51,130 men att säga "stack" är en liten bit av en potentiell missvisande när 355 00:19:51,130 --> 00:19:52,230 vi pratar om PHP. 356 00:19:52,230 --> 00:19:54,020 Men vi behöver inte bekymra dig om det. 357 00:19:54,020 --> 00:19:55,936 Så vi fick vår sträng "Hej", och vi upprepar sträng. 358 00:19:55,936 --> 00:19:58,880 Så nu har vi diskuterat variabler. 359 00:19:58,880 --> 00:20:06,060 Så nu måste vi prata om get och publicera och utför sista sak som är 360 00:20:06,060 --> 00:20:12,660 behövs för att verkligen få den tillbaka upp funktionaliteten av P set 6. 361 00:20:12,660 --> 00:20:14,990 Så just nu är vi ekande strängen, men vi 362 00:20:14,990 --> 00:20:17,080 har dessa variabler få och post. 363 00:20:17,080 --> 00:20:19,430 Och eftersom vi använder metoden få, det 364 00:20:19,430 --> 00:20:24,810 verkar naturligt att vår variabel som vi är intresserade av, både a och b, 365 00:20:24,810 --> 00:20:29,870 kommer att ligga i arrayen eller ordbok, tekniskt få. 366 00:20:29,870 --> 00:20:33,510 >> Så om vi sätter upp får så här med din groups-- jag tryckte ange 367 00:20:33,510 --> 00:20:36,770 och det gillade inte det-- men här har vi. 368 00:20:36,770 --> 00:20:38,000 Och så får redan existerar. 369 00:20:38,000 --> 00:20:41,380 Så vi kan redan börja tillgång några av de delar av get. 370 00:20:41,380 --> 00:20:45,000 Om vi ​​får denna syntax för matriser i PHP är mycket C-liknande. 371 00:20:45,000 --> 00:20:47,900 Vi har våra två hakparenteser. 372 00:20:47,900 --> 00:20:53,440 >> Så om vi säger får i en normal array, kan vi komma åt 373 00:20:53,440 --> 00:20:55,600 den nollte index, det första indexet. 374 00:20:55,600 --> 00:20:56,840 PHP är noll index. 375 00:20:56,840 --> 00:21:00,550 Vi skulle kunna säga noll, ett, two-- sånt här. 376 00:21:00,550 --> 00:21:03,420 Och jag har sagt att få är tekniskt en ordbok. 377 00:21:03,420 --> 00:21:08,290 Så vad PHP gör under huven, vilket är lite trevligare än C, 378 00:21:08,290 --> 00:21:12,760 är det redan ger dig några ordbok funktionalitet, vilket 379 00:21:12,760 --> 00:21:16,240 är verkligen hashtabeller, eller försöker, förmodligen. 380 00:21:16,240 --> 00:21:19,360 Eller, tekniskt sett skulle kunna vara ett försök också. 381 00:21:19,360 --> 00:21:25,500 Men PHP genomför en hashtabell, vilket bildar en effektiv ordbok. 382 00:21:25,500 --> 00:21:28,400 >> Och så vi vet namnet vår variabel, eller hur? 383 00:21:28,400 --> 00:21:32,440 Det passeras i frågesträngen med PHP. 384 00:21:32,440 --> 00:21:37,290 Vi har a = h och b = g var och b är namnen på variablerna. 385 00:21:37,290 --> 00:21:41,580 Så det sätt som vi kan få tillgång till värde som motsvarar den tangent 386 00:21:41,580 --> 00:21:45,055 i vår ordlista är bara genom att säga _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Så nu har vi _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 Och om vi bara byta inne vår eko, om vi upprepar _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 och vi får se om debugger kastar eventuella fel om this-- 391 00:22:02,410 --> 00:22:05,620 Vi ska spara det och avveckla detta. 392 00:22:05,620 --> 00:22:07,130 Öppna den. 393 00:22:07,130 --> 00:22:10,390 Så vi bara göra rätt nu, så b bör ingen roll. 394 00:22:10,390 --> 00:22:12,980 "hennes" och "honom" - "brum." "hennes" och "hum." 395 00:22:12,980 --> 00:22:14,810 Låter bra. 396 00:22:14,810 --> 00:22:18,040 >> Och det skrivs ut "henne" som är galen. 397 00:22:18,040 --> 00:22:21,920 Men det är precis vad hände i P set 6. 398 00:22:21,920 --> 00:22:27,240 I grund och botten, ställa in vilken P 6 var doing-- echo hello, 399 00:22:27,240 --> 00:22:31,580 name-- där det hade en variabelnamn och det bara 400 00:22:31,580 --> 00:22:35,520 ber dig att skriva in den biten av text. 401 00:22:35,520 --> 00:22:37,380 Det fanns också en del tilläggsnummer där 402 00:22:37,380 --> 00:22:40,550 det ingår om uttalanden, som vi kan göra just nu. 403 00:22:40,550 --> 00:22:50,120 >> Vi kan säga om det finns, som är en funktionalitet inom PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Med understreck, "namn" - som i princip säger, 405 00:22:55,110 --> 00:22:58,760 "om namnet har fyllts i" eftersom Vi kunde bara klickat på knappen 406 00:22:58,760 --> 00:23:02,580 att skicka formuläret utan skriva någonting i detta område. 407 00:23:02,580 --> 00:23:07,760 Och vi slå in det i vår vänliga klammerparenteserna. 408 00:23:07,760 --> 00:23:09,175 Vi kan ha en annan förklaring. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 Och det är allt inom PHP vinkeln fäste, frågetecken, vinkelparentes, 411 00:23:18,820 --> 00:23:20,040 om du vill. 412 00:23:20,040 --> 00:23:21,750 >> Och nu ska vi se om det fungerar. 413 00:23:21,750 --> 00:23:26,300 Jag fortsätter att vänta på att felsöka och skit på mig, i princip, 414 00:23:26,300 --> 00:23:28,410 men det har ännu inte. 415 00:23:28,410 --> 00:23:30,830 Kanske kommer det nu eftersom jag talade om. 416 00:23:30,830 --> 00:23:31,330 Japp. 417 00:23:31,330 --> 00:23:32,510 Det gjorde faktiskt. 418 00:23:32,510 --> 00:23:34,610 Så, ingenting dyker upp. 419 00:23:34,610 --> 00:23:38,750 Det är på grund av något fel som jag skrev i PHP-koden. 420 00:23:38,750 --> 00:23:42,844 Och jag nämnde felsökning är knepigt eftersom i PHP, vi 421 00:23:42,844 --> 00:23:45,260 inte kompilera det i förväg och kompilatorn var inte gillar, 422 00:23:45,260 --> 00:23:46,710 här är där dina fel är. 423 00:23:46,710 --> 00:23:49,690 >> Men vad vi kan göra är-- gör människor minns 424 00:23:49,690 --> 00:23:57,010 hur man ser på de olika nätverk begär att PHP-- eller att webbplatser 425 00:23:57,010 --> 00:23:57,620 skicka? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Gjorde detta i föreläsning en eller två gånger. 427 00:24:00,290 --> 00:24:05,830 Kommer du ihåg när vi gå för att hitta de olika skulder och 200 OKs, 428 00:24:05,830 --> 00:24:09,780 alla dessa koder som skickas via HTTP från webbsidan till webbsidan? 429 00:24:09,780 --> 00:24:12,514 Kommer någon ihåg där vi går att göra det? 430 00:24:12,514 --> 00:24:13,787 >> PUBLIK: Sidkälla. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH Page källa. 432 00:24:14,870 --> 00:24:15,890 Exakt. 433 00:24:15,890 --> 00:24:19,230 Om du går till sidan Source-- perfekt. 434 00:24:19,230 --> 00:24:21,630 Så Page Source drar upp inspektören. 435 00:24:21,630 --> 00:24:23,140 >> Och jag använder Safari. 436 00:24:23,140 --> 00:24:25,790 En hel del av er kommer förmodligen att använda Chrome eller Firefox. 437 00:24:25,790 --> 00:24:27,750 Men så länge du är i alla moderna browser-- 438 00:24:27,750 --> 00:24:29,500 och känn dig fri att följa tillsammans om du vill. 439 00:24:29,500 --> 00:24:32,560 Du kan skriva upp denna kod eller bara titta in i P set 6 440 00:24:32,560 --> 00:24:35,820 katalog för några liknande saker. 441 00:24:35,820 --> 00:24:41,020 hello.php är vad vi är arbetar för närvarande med att efterlikna. 442 00:24:41,020 --> 00:24:42,476 >> Så det finns ett antal olika flikar. 443 00:24:42,476 --> 00:24:43,850 Vi kan titta på alla resurser. 444 00:24:43,850 --> 00:24:45,810 Vi kan se källkoden. 445 00:24:45,810 --> 00:24:49,900 Så ser ut som det inte komma förbi kroppen i slutändan. 446 00:24:49,900 --> 00:24:54,890 Det funnit ett fel i PHP och det slutade laddar hela webbsidan. 447 00:24:54,890 --> 00:24:58,320 Vi har inte ens ett slut tagg för HTML eller något. 448 00:24:58,320 --> 00:25:07,189 >> Och om vi ser på nätet, vi kan se att vi skickas en förfrågan. 449 00:25:07,189 --> 00:25:07,980 Detta är den domänen. 450 00:25:07,980 --> 00:25:09,270 Detta är adressen. 451 00:25:09,270 --> 00:25:10,070 Det är ett dokument. 452 00:25:10,070 --> 00:25:14,310 Vi använder metoden GET. 453 00:25:14,310 --> 00:25:15,760 >> Och det är rött. 454 00:25:15,760 --> 00:25:19,030 Eller, det var rött när jag inte att välja det. 455 00:25:19,030 --> 00:25:22,680 Hur gör jag avmarkera det? 456 00:25:22,680 --> 00:25:23,980 Tja, det var rött. 457 00:25:23,980 --> 00:25:25,201 Låt mig uppdatera. 458 00:25:25,201 --> 00:25:25,700 Där är den. 459 00:25:25,700 --> 00:25:26,640 Nu är det rött. 460 00:25:26,640 --> 00:25:30,530 >> Så det är rött, vilket innebär Det misslyckades, vilket är dåligt. 461 00:25:30,530 --> 00:25:32,280 Så låt oss undersöka varför det gjorde misslyckas. 462 00:25:32,280 --> 00:25:37,070 Så allt som Sidkälla kan princip säga är din grej 463 00:25:37,070 --> 00:25:38,720 fungerade inte, som vi redan kan se. 464 00:25:38,720 --> 00:25:42,100 Så idealt det skulle vara ett mer användbart verktyg. 465 00:25:42,100 --> 00:25:45,710 Och det finns några webbläsartillägg som gör att du kan felsöka PHP, 466 00:25:45,710 --> 00:25:50,490 men vi kommer inte att att skriva massor av PHP, 467 00:25:50,490 --> 00:25:53,190 så det är förmodligen bara bäst att titta igenom din kod 468 00:25:53,190 --> 00:25:56,760 noggrant och bara se till att det är inte gör något annat. 469 00:25:56,760 --> 00:26:03,876 >> Så låt oss se om formatet på detta if-sats är där problemet är. 470 00:26:03,876 --> 00:26:07,420 Jag vill läsa det tillbaka hit. 471 00:26:07,420 --> 00:26:09,830 Hallå Hej. 472 00:26:09,830 --> 00:26:11,350 Så det finns ett problem där. 473 00:26:11,350 --> 00:26:15,130 >> Så för korrekt syntax av PHP är PHP går 474 00:26:15,130 --> 00:26:17,369 att vara C-liknande i att du får se loopar. 475 00:26:17,369 --> 00:26:18,410 Du får se om uttalanden. 476 00:26:18,410 --> 00:26:20,920 Du ser alla dessa vänner att du har blivit bekant 477 00:26:20,920 --> 00:26:24,820 med under loppet av denna CS50 termin. 478 00:26:24,820 --> 00:26:29,960 Men det bästa sättet att ta reda på hur man göra något i PHP är att Google det 479 00:26:29,960 --> 00:26:33,170 eller för att titta på några exempel på PHP-kod eftersom du vet funktionaliteten. 480 00:26:33,170 --> 00:26:35,080 >> Du vet vad du kan göra med programmet. 481 00:26:35,080 --> 00:26:35,976 Du kan loop. 482 00:26:35,976 --> 00:26:37,600 Du kan loop så många gånger du vill. 483 00:26:37,600 --> 00:26:39,433 Du kan slinga i alla möjliga olika sätt. 484 00:26:39,433 --> 00:26:40,700 Du kan skapa funktioner. 485 00:26:40,700 --> 00:26:43,241 Du kan skapa funktioner som ringa andra funktioner, funktioner 486 00:26:43,241 --> 00:26:44,150 som kallar sig. 487 00:26:44,150 --> 00:26:45,733 Och du har namn för dessa begrepp. 488 00:26:45,733 --> 00:26:49,860 Du har rekursion, loopar, om, andra styrflöden. 489 00:26:49,860 --> 00:26:51,300 Och så Google är din bästa vän. 490 00:26:51,300 --> 00:26:53,540 Även säger, "PHP om påståendet "och det blir 491 00:26:53,540 --> 00:26:57,740 finnas massor av inlägg med svar till andra människor 492 00:26:57,740 --> 00:27:02,090 som har haft liknande frågor till dig, som just har börjat med PHP 493 00:27:02,090 --> 00:27:03,820 och är nyfiken på en syntax sak. 494 00:27:03,820 --> 00:27:08,480 >> Eftersom vi har lyxen av att vara kunna titta på koden i P-set 6, 495 00:27:08,480 --> 00:27:14,980 vi faktiskt dra upp och se att OK, här är något intressant. 496 00:27:14,980 --> 00:27:18,070 Så det här är vad det egentligen såg ut i P set 6. 497 00:27:18,070 --> 00:27:20,340 Så om vi går igenom detta, Vi kan se att vi har 498 00:27:20,340 --> 00:27:27,150 fick flera av dessa små PHP-liknande frågetecken bitar. 499 00:27:27,150 --> 00:27:29,050 >> Och det finns inte klammerparenteserna. 500 00:27:29,050 --> 00:27:30,250 Det finns kolon. 501 00:27:30,250 --> 00:27:32,340 Och det finns lockigt hängslen i PHP, men detta 502 00:27:32,340 --> 00:27:38,700 är ett format och ett sätt att göra PHP som fungerar bra med HTML 503 00:27:38,700 --> 00:27:43,830 eftersom som du ser, vi stänger utanför dessa PHP bits-- den elses 504 00:27:43,830 --> 00:27:49,770 och ifs och alla that-- och sedan vi interspersing HTML inuti dem 505 00:27:49,770 --> 00:27:54,640 medan fortfarande efter flödeskontroll som anges av PHP. 506 00:27:54,640 --> 00:27:58,480 >> Så jag ska bara snabb promenad genom denna 507 00:27:58,480 --> 00:28:01,740 eftersom det är en hel del av samma koncept som vi gjorde innan. 508 00:28:01,740 --> 00:28:07,280 Vi har om inte tom, parenteser, _GET_GET ["namn"]. 509 00:28:07,280 --> 00:28:08,500 Detta är alla samma grejer. 510 00:28:08,500 --> 00:28:15,430 Vi använder _GET lexikon som PHP skickar på begäran av blanketter, 511 00:28:15,430 --> 00:28:20,720 eftersom det är parametrarna för åtgärder, och metoden är få. 512 00:28:20,720 --> 00:28:22,110 Och då slutar det. 513 00:28:22,110 --> 00:28:27,420 Kolon är en signifier att bara göra detta Om if utvärderas till true. 514 00:28:27,420 --> 00:28:29,490 Det är som en klammerparentes. 515 00:28:29,490 --> 00:28:33,320 Och i själva verket är det en klammerparentes i andra språk som Python, 516 00:28:33,320 --> 00:28:37,070 som kan uppstå om du bara göra det för din slutprojekt. 517 00:28:37,070 --> 00:28:40,170 >> Och sedan denna linje, hej. 518 00:28:40,170 --> 00:28:41,510 Sedan har vi detta konstig sak. 519 00:28:41,510 --> 00:28:43,190 Vi har fler konsoler. 520 00:28:43,190 --> 00:28:46,140 Det finns ingen HTTP there-- eller PHP, sorry. 521 00:28:46,140 --> 00:28:47,250 Men det finns ett likhetstecken. 522 00:28:47,250 --> 00:28:50,625 Och sedan har vi en funktion, htmlspecialchars (_GEThtmlspecialchars (_GET ["namn"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Detta är ungefär som en mer avancerad version av eko. 525 00:28:58,040 --> 00:29:01,450 Som vi hade eko som ett sätt att skriva saker i PHP. 526 00:29:01,450 --> 00:29:03,890 Detta är en funktion som är definieras i PHP som 527 00:29:03,890 --> 00:29:08,160 kommer att behandla lite mer otäck tecken och bytevärden 528 00:29:08,160 --> 00:29:09,540 att du kan skicka det. 529 00:29:09,540 --> 00:29:11,070 Det är alltid säkrast att använda detta. 530 00:29:11,070 --> 00:29:14,930 Men eko kommer att göra jobbet bara bra om vi inte 531 00:29:14,930 --> 00:29:17,620 arbetar med något alltför otäck. 532 00:29:17,620 --> 00:29:20,340 >> Och så detta har samma effekten av i grund och botten, 533 00:29:20,340 --> 00:29:26,360 det här i mellan frågan märken utvärderas av PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars returnerar en trevlig HTML tryckta värde _GET_GET ["namn"], dvs. 535 00:29:34,490 --> 00:29:36,010 vad vi skrev i formuläret. 536 00:29:36,010 --> 00:29:40,025 Och då kommer det att säga hej, kommatecken utrymme, och då. 537 00:29:40,025 --> 00:29:42,910 Det hela mellan vinkeljärnen 538 00:29:42,910 --> 00:29:47,390 kommer att ersättas av vad htmlspecialchars sätter ut. 539 00:29:47,390 --> 00:29:49,390 Så det är i princip lika vad vi gör. 540 00:29:49,390 --> 00:29:54,760 Och vi har en annan förklaring som är hallå världen, vilket är vettigt. 541 00:29:54,760 --> 00:29:58,070 Så nu ska vi gå tillbaka till vår kod och se exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Jag sa existerar, vilket inte en sak som vi ville göra. 543 00:30:02,200 --> 00:30:05,370 Vi ville inte säga tom. 544 00:30:05,370 --> 00:30:10,020 >> Och så detta bör arbeta lite lite bättre, inte tom _GET_GET ["namn"]. 545 00:30:10,020 --> 00:30:12,710 Och det klammerparentes matchar det klammerparentes. 546 00:30:12,710 --> 00:30:15,210 Vi har våra klammerparenteserna här. 547 00:30:15,210 --> 00:30:17,790 echo hello _GET ["namn"]. 548 00:30:17,790 --> 00:30:19,912 Låt oss se om det fungerar lite bättre. 549 00:30:19,912 --> 00:30:21,350 Vi är fortfarande kör vår server. 550 00:30:21,350 --> 00:30:23,910 Hej Jason. 551 00:30:23,910 --> 00:30:24,780 Hej Jason. 552 00:30:24,780 --> 00:30:25,810 Och det fungerade den här gången. 553 00:30:25,810 --> 00:30:29,860 Och så det är ett bevis att du kan verkligen 554 00:30:29,860 --> 00:30:35,180 använda klammerparenteserna som du vet och kärlek i PHP-kod i HTML. 555 00:30:35,180 --> 00:30:41,100 PHP-koden tillhandahålls dig pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 ger ett annat sätt att göra samma sak. 557 00:30:44,760 --> 00:30:49,220 >> Så nu har vi makten. 558 00:30:49,220 --> 00:30:55,740 Vi har funktioner för att genomföra PHP-kod som vi såg i pset 6 559 00:30:55,740 --> 00:30:57,390 av oss, i grund och botten. 560 00:30:57,390 --> 00:31:01,350 Innan jag går vidare, vad är några av de frågor som du har på denna punkt? 561 00:31:01,350 --> 00:31:02,066 Ja [OHÖRBAR]. 562 00:31:02,066 --> 00:31:06,512 >> PUBLIK: Så i den version som pset6, när du kör det, det finns ett mellanslag. 563 00:31:06,512 --> 00:31:09,330 Och jag kan se där utrymmet är efter kommatecknet. [OHÖRBAR] start 564 00:31:09,330 --> 00:31:10,700 den öppna konsolen. 565 00:31:10,700 --> 00:31:15,420 Hur gör du infoga utrymmet hur du skrev dina egna koder? 566 00:31:15,420 --> 00:31:17,910 >> Speak: Det är en bra fråga. 567 00:31:17,910 --> 00:31:21,650 Och så låt oss räkna ut. 568 00:31:21,650 --> 00:31:24,450 Så det är en riktigt bra fråga och en som jag inte tänka på. 569 00:31:24,450 --> 00:31:25,950 Men låt oss göra det tillsammans. 570 00:31:25,950 --> 00:31:30,280 >> Så först av allt, vad Jag gör med eko 571 00:31:30,280 --> 00:31:33,690 är när vi upprepar bara Hej, matar det hej. 572 00:31:33,690 --> 00:31:41,310 Om vi ​​upprepar nu detta få på en separat linje, låt oss undersöka vad som händer. 573 00:31:41,310 --> 00:31:43,740 Så vi klickar här. 574 00:31:43,740 --> 00:31:45,220 Vi håller säga hej Jason. 575 00:31:45,220 --> 00:31:48,690 Så återigen, vi har inte detta utrymme. 576 00:31:48,690 --> 00:31:53,090 >> Och det är därför, i PHP, när vi har eko, 577 00:31:53,090 --> 00:31:55,820 oavsett hur många spaces-- nix, inte V-- 578 00:31:55,820 --> 00:32:01,770 oavsett hur många platser vi sätter in här-- om vi nu ladda upp det igen, 579 00:32:01,770 --> 00:32:03,010 hej Jason. 580 00:32:03,010 --> 00:32:05,770 Ja, se, alla de utrymmen fick ätas upp. 581 00:32:05,770 --> 00:32:08,020 Och det är något som echo funktionen gör. 582 00:32:08,020 --> 00:32:11,110 >> Så för att ta hand om det utrymmet, är och detta 583 00:32:11,110 --> 00:32:14,960 en av orsakerna varför du inte använder eko 584 00:32:14,960 --> 00:32:18,200 och du använder htmlspecialchars istället. 585 00:32:18,200 --> 00:32:22,140 Jag är nyfiken på vad skulle hända om vi gjorde detta 586 00:32:22,140 --> 00:32:26,700 där vi bifogade en plats i en sträng. 587 00:32:26,700 --> 00:32:29,720 Jag är ärligt talat inte säker på vad kommer att hända när jag gör detta. 588 00:32:29,720 --> 00:32:30,790 >> Så det är ett sätt. 589 00:32:30,790 --> 00:32:32,210 Det är ett sätt att ta hand om det. 590 00:32:32,210 --> 00:32:34,840 Om du svepa utrymmet en sträng, då utrymmet 591 00:32:34,840 --> 00:32:36,920 matas ut snyggt av eko. 592 00:32:36,920 --> 00:32:41,930 Det säkraste man kan göra är att göra htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Det är alltid en säker satsning. 594 00:32:43,800 --> 00:32:47,050 Men nu har vi ett sätt att göra det med eko om nödvändigt. 595 00:32:47,050 --> 00:32:50,700 Och på liknande sätt, kan vi echo nya linjer, alla slags 596 00:32:50,700 --> 00:32:53,550 av saker du är bekant att göra i PHP. 597 00:32:53,550 --> 00:32:57,460 >> Någon annan, vad är något mer frågor som andra människor har 598 00:32:57,460 --> 00:33:01,090 vid denna punkt om PHP? 599 00:33:01,090 --> 00:33:04,620 Om människor visade upp lite sent, Jag är glad att stanna efter en lite 600 00:33:04,620 --> 00:33:06,420 och tala om några av början. 601 00:33:06,420 --> 00:33:10,380 Och det är också allt livestreamed, och arkiveras, som är galen. 602 00:33:10,380 --> 00:33:13,960 >> Hur som helst, så nu ska vi göra några mer avancerade saker med PHP. 603 00:33:13,960 --> 00:33:18,790 Och en av de tidigaste saker som du infördes i C var för slingor. 604 00:33:18,790 --> 00:33:24,060 Och PHP har en mer kraftfull för slingan kallas foreach slingan. 605 00:33:24,060 --> 00:33:37,940 Och det ser ut som this-- för varje ämne som tomma, lockigt parentes, gör saken. 606 00:33:37,940 --> 00:33:41,500 Så det här är i grunden en stenografi. 607 00:33:41,500 --> 00:33:45,380 >> Se, for-slingan som en syntaktisk konstruktion 608 00:33:45,380 --> 00:33:50,590 utarbetades i C och montering språk och saker som. 609 00:33:50,590 --> 00:33:56,300 Devised i C, bestämt som förkortning för många av de typer av slingor 610 00:33:56,300 --> 00:33:57,750 att människor skulle få se. 611 00:33:57,750 --> 00:34:01,230 Som när du skrev en slinga, där var ofta ett initieringssteg 612 00:34:01,230 --> 00:34:04,700 utförs precis i början, en tillstånd där slingan skulle stop-- 613 00:34:04,700 --> 00:34:07,030 och det är funktionen det är bara i en while-slinga, 614 00:34:07,030 --> 00:34:10,040 eller att ett tag har exakt just det feature-- och sedan 615 00:34:10,040 --> 00:34:12,320 en inkrementering steg i slutet. 616 00:34:12,320 --> 00:34:16,489 Och så skulle du ofta befinner dig skriva kod som följande. 617 00:34:16,489 --> 00:34:19,780 Jag kommer att radera en del av detta. 618 00:34:19,780 --> 00:34:23,850 >> Men om vi iterera igenom tecken i en array, 619 00:34:23,850 --> 00:34:26,960 till exempel, som vi har fick en matris med tecken. 620 00:34:26,960 --> 00:34:29,400 Ledsen att föra tillbaka C. Jag vet, du trodde du var klar. 621 00:34:29,400 --> 00:34:31,900 Men det är bara för ändamålet att lära PHP, jag lovar. 622 00:34:31,900 --> 00:34:38,880 Så om du har en röding str längd 8, och låt oss 623 00:34:38,880 --> 00:34:46,760 säga att det säger hellooo med en avslutande null. 624 00:34:46,760 --> 00:34:48,270 Stor, så det är vår sträng. 625 00:34:48,270 --> 00:34:51,469 >> Och sedan hade vi en for-loop. 626 00:34:51,469 --> 00:34:53,730 Vi har int i är lika med 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 Och vi vill avsluta när str av lika jag inte är lika med noll, 629 00:35:09,110 --> 00:35:11,590 eftersom vi avsluta när det är lika med noll. 630 00:35:11,590 --> 00:35:19,170 Och sedan gör vi i ++ vid varje punkt i för slingan. 631 00:35:19,170 --> 00:35:30,480 Att göra något med str av i. 632 00:35:30,480 --> 00:35:34,950 >> Så grundformeln var, vi hade denna array som vi 633 00:35:34,950 --> 00:35:37,910 ville behandla som separata element. 634 00:35:37,910 --> 00:35:45,170 Men vad vi hade att göra är att vi var tvungna att princip skapa en separat heltal 635 00:35:45,170 --> 00:35:50,530 variabel som räknade upp varje tiden gick vi genom öglan. 636 00:35:50,530 --> 00:35:55,240 Och då skulle vi behöva sedan ringa strstr [i] när det som vi verkligen ville göra 637 00:35:55,240 --> 00:35:57,280 är bara gå tecken för tecken, eller hur? 638 00:35:57,280 --> 00:36:00,185 Vi vill inte öka en heltal och sedan använda det heltal 639 00:36:00,185 --> 00:36:02,780 att få tillgång till varje tecken för sig. 640 00:36:02,780 --> 00:36:04,410 Vi vill verkligen tecken för tecken. 641 00:36:04,410 --> 00:36:08,600 >> Och så för varje intelligent beräknar det för oss. 642 00:36:08,600 --> 00:36:11,875 Om vi ​​har en matris, som vi kan deklarera i PHP 643 00:36:11,875 --> 00:36:15,900 som bara-- om vi har en variabel kallas, låt oss kalla det array. 644 00:36:15,900 --> 00:36:19,840 Mirakel ingen skriva, är det precis som alla andra variabler. 645 00:36:19,840 --> 00:36:20,730 Det är bara en array. 646 00:36:20,730 --> 00:36:26,890 Och vi har en liten [OHÖRBAR] som en, 2, 3, bara ett slags initialized matris. 647 00:36:26,890 --> 00:36:29,680 Det är OK, inte gillar min foreach. 648 00:36:29,680 --> 00:36:33,120 >> Men om vi foreach-- faktiskt Jag skrev att lite fel. 649 00:36:33,120 --> 00:36:34,840 Det finns två sätt att göra en foreach loop. 650 00:36:34,840 --> 00:36:37,400 Det är i syntax och som syntax. 651 00:36:37,400 --> 00:36:40,580 Och vi kommer att göra i syntax först, inte så. 652 00:36:40,580 --> 00:36:41,780 Det är mitt misstag. 653 00:36:41,780 --> 00:36:53,785 >> Så foreach num i slagordning, eko num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 Och PHP skriker på mig av någon anledning. 656 00:36:59,500 --> 00:37:03,520 Det är att hitta en oväntad ii något, 657 00:37:03,520 --> 00:37:05,820 som är lite av en förtret. 658 00:37:05,820 --> 00:37:09,105 Men vi ska räkna ut varför det är i ett ögonblick. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Så inte gillar det. 661 00:37:13,610 --> 00:37:15,040 Låt oss försöka använda som. 662 00:37:15,040 --> 00:37:17,310 Den föredrar som syntax är verkar. 663 00:37:17,310 --> 00:37:22,550 Så låt oss göra foreach array som num. 664 00:37:22,550 --> 00:37:24,520 >> Så en liten förklaring av vad som just hänt 665 00:37:24,520 --> 00:37:30,670 Den som syntaxen saying-- väl först, låt oss titta på vad det skrivs ut. 666 00:37:30,670 --> 00:37:32,260 Så öppnar vi upp vårt IDE. 667 00:37:32,260 --> 00:37:33,110 Vi går här. 668 00:37:33,110 --> 00:37:35,845 Vi säger, Hej Jason. 669 00:37:35,845 --> 00:37:41,390 Och det gjorde det 123, som var innehållet av uppsättningen som vi skapade där uppe. 670 00:37:41,390 --> 00:37:45,500 >> Så dyka in i denna foreach loop, vi har en variabel som heter array 671 00:37:45,500 --> 00:37:47,470 som är en array av tre tal. 672 00:37:47,470 --> 00:37:52,120 Och sedan gör vi foreach array som num, eko num. 673 00:37:52,120 --> 00:37:54,990 Och det är mer intuitivt än en för lop. 674 00:37:54,990 --> 00:38:02,380 Vi säger, att behandla var och en av saker i gruppen som num, 675 00:38:02,380 --> 00:38:05,180 Jag vill att du ger mig num. 676 00:38:05,180 --> 00:38:06,640 Och det är precis vad det gör. 677 00:38:06,640 --> 00:38:12,000 >> PHP beräknar att när du säger foreach array, 678 00:38:12,000 --> 00:38:16,080 och du har att göra med en rad, vad du kommer att vilja iterera över 679 00:38:16,080 --> 00:38:19,950 är karaktärerna i denna samling, är de ints i den arrayen, 680 00:38:19,950 --> 00:38:21,920 är elementen i den arrayen. 681 00:38:21,920 --> 00:38:26,110 Och det låter dig lagra de variabler som num, 682 00:38:26,110 --> 00:38:29,360 och sedan bara utgångs num direkt istället för att säga, 683 00:38:29,360 --> 00:38:34,090 Jag har en variabel som heter i, och då vill jag utgångs strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> Och så som tillåter oss att göra coola saker. 685 00:38:39,130 --> 00:38:43,330 Liksom i princip vi inte behöver skapa dessa variabler som jag är och gör allt 686 00:38:43,330 --> 00:38:45,090 denna inkrementering grejer i slutet. 687 00:38:45,090 --> 00:38:48,290 PHP tar hand om allt detta för dig. 688 00:38:48,290 --> 00:38:54,470 >> Så nu ska vi prata om foreach som det tillämpas i vår _GET ordbok. 689 00:38:54,470 --> 00:38:57,170 Så vi ska kommentera ut snabbt. 690 00:38:57,170 --> 00:39:02,030 Så vi har vår _GET array. 691 00:39:02,030 --> 00:39:04,361 Vi har denna variabel. 692 00:39:04,361 --> 00:39:05,610 Och det har lite grejer i den. 693 00:39:05,610 --> 00:39:10,275 >> Just nu har vi bara en variabel som skickas till den, vilket är namnet. 694 00:39:10,275 --> 00:39:13,420 Men om vi på Enter, nu vi kan ha två variabler. 695 00:39:13,420 --> 00:39:17,910 Vi kan ha namn och ålder, till exempel, Om vi ​​vill få ålder och även 696 00:39:17,910 --> 00:39:20,960 namnet på en person, lustigt nog. 697 00:39:20,960 --> 00:39:25,690 >> Så nu _GET kommer att bli en ordbok med två element, 698 00:39:25,690 --> 00:39:27,980 med två nyckelpar värde. 699 00:39:27,980 --> 00:39:33,490 Och den första key-- jag ska skriva här på bordet också. 700 00:39:33,490 --> 00:39:37,136 Vi har vår ordlista är _GET. 701 00:39:37,136 --> 00:39:39,520 Tyvärr, det är är lite svårt att se. 702 00:39:39,520 --> 00:39:46,690 Men inuti vår ordlista vi har namn, vilket kommer att bli något 703 00:39:46,690 --> 00:39:47,680 att vi har gett. 704 00:39:47,680 --> 00:39:53,040 Och vi kommer att ha ålder, som också är kommer att vara något som vi har gett. 705 00:39:53,040 --> 00:39:56,020 Och detta är helheten av vår ordlista. 706 00:39:56,020 --> 00:39:57,730 >> Så det har fått två element i den. 707 00:39:57,730 --> 00:40:01,310 Och så på grund foreach loopar är smarta, vi 708 00:40:01,310 --> 00:40:04,900 kanske tror, ​​och korrekt kanske tror att foreach 709 00:40:04,900 --> 00:40:08,080 kan iterera genom detta ordbok, skriva ut 710 00:40:08,080 --> 00:40:10,850 de värden som ges med namn och ålder. 711 00:40:10,850 --> 00:40:14,510 >> Så låt oss faktiskt göra just det. 712 00:40:14,510 --> 00:40:17,520 Låt oss konstruera en foreach slinga. 713 00:40:17,520 --> 00:40:23,351 Och vi kommer att göra för _GET som. 714 00:40:23,351 --> 00:40:24,850 Och vi kommer att göra följande. 715 00:40:24,850 --> 00:40:34,186 Så låt oss se vad som händer om vi skriver bara ord, och sedan säga eko ord. 716 00:40:34,186 --> 00:40:40,540 Vi kommer även att upprepa en ny linje bara för att göra det lite tydligare, 717 00:40:40,540 --> 00:40:41,260 vad händer. 718 00:40:41,260 --> 00:40:42,890 >> Så låt oss se. 719 00:40:42,890 --> 00:40:44,390 Det är inte att ge mig några fel. 720 00:40:44,390 --> 00:40:46,810 Och vi kommer att stänga. 721 00:40:46,810 --> 00:40:51,020 På vår hemsida, du kommer att göra en hel del som under loppet av pset7. 722 00:40:51,020 --> 00:40:53,890 Så vi säger mitt namn är Sam. 723 00:40:53,890 --> 00:40:58,560 Min ålder är 45. 724 00:40:58,560 --> 00:41:01,060 Det är inte. 725 00:41:01,060 --> 00:41:05,640 Men det skrivs ut, som förväntat, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> Och så kommer du att märka att vad foreach slinga did-- här, 727 00:41:08,930 --> 00:41:12,360 Låt oss gå tillbaka till den så det är upp på board-- vi får _GET som ord. 728 00:41:12,360 --> 00:41:15,130 Och det fanns fyra saker i _GET. 729 00:41:15,130 --> 00:41:17,410 Men det bara skrivas ut två saker. 730 00:41:17,410 --> 00:41:21,290 foreach, är dess intelligens själv, antas att vad vi verkligen ville 731 00:41:21,290 --> 00:41:24,100 var värdena, inte nycklar. 732 00:41:24,100 --> 00:41:27,800 >> Men det finns ett sätt att vi kunde skriva ut ut nycklarna också, om vi ville. 733 00:41:27,800 --> 00:41:30,810 Om vi ​​ville också veta vad dessa variabler kallades, 734 00:41:30,810 --> 00:41:33,540 det finns ett sätt som vi kan få tillgång till detta. 735 00:41:33,540 --> 00:41:36,840 Och sättet att sorts göra det, så vi kan säga, låter verkligen 736 00:41:36,840 --> 00:41:39,485 dela upp den i nyckelpar värde. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Så låt oss se vad som händer nu. 739 00:41:47,580 --> 00:41:50,550 >> Så vi har nyckeln. 740 00:41:50,550 --> 00:41:52,290 Vi har värde. 741 00:41:52,290 --> 00:41:56,650 Vi har en annan ny linje för läsbarhet. 742 00:41:56,650 --> 00:42:00,540 Och låt oss se vad som händer När vi gör detta nu. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Jag vet inte hur gammal Jason är. 745 00:42:06,720 --> 00:42:09,180 Jasons 15. 746 00:42:09,180 --> 00:42:11,650 Så vi har namn Jason, 15 år. 747 00:42:11,650 --> 00:42:15,830 Så vi kunde få tillgång till nyckeln och värdepar av denna ordbok 748 00:42:15,830 --> 00:42:18,590 bara genom att säga så viktiga punkter att värde. 749 00:42:18,590 --> 00:42:23,350 Och det är en foreach syntaktiskt socker bit som gör 750 00:42:23,350 --> 00:42:25,960 du kan komma åt saker i ordboken. 751 00:42:25,960 --> 00:42:31,190 >> Så förhoppningsvis den här sortens betonar kraften i foreach loop. 752 00:42:31,190 --> 00:42:35,690 Du kan ganska mycket kasta något som verkar iterable, 753 00:42:35,690 --> 00:42:38,922 som något som har flera element som en array, 754 00:42:38,922 --> 00:42:41,880 som en dictionary-- de är två primära saker du kommer att arbeta med 755 00:42:41,880 --> 00:42:45,630 både i livet och i pset 7. 756 00:42:45,630 --> 00:42:49,350 Så du kan kasta det där på det, och det kommer att räkna ut 757 00:42:49,350 --> 00:42:51,030 vad du vill göra med det. 758 00:42:51,030 --> 00:42:54,250 Det kommer att säga, OK, jag kommer att få dessa saker från de data som 759 00:42:54,250 --> 00:42:55,680 skickades till mig. 760 00:42:55,680 --> 00:43:02,470 Och det är något som du är kommer att använda en hel del i pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Jag ska snabbt bläddra ner bara för att se var jag är på. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Har människor har frågor på denna punkt? 764 00:43:13,070 --> 00:43:13,778 Frågor alls? 765 00:43:13,778 --> 00:43:14,400 Ja? 766 00:43:14,400 --> 00:43:18,320 >> PUBLIK: Så med nyckel och värde, du kan kalla den något annat 767 00:43:18,320 --> 00:43:20,507 och det skulle fortfarande att fungera? 768 00:43:20,507 --> 00:43:21,090 Speak: Oj. 769 00:43:21,090 --> 00:43:22,820 Wow, jag bort helt hela linjen. 770 00:43:22,820 --> 00:43:23,380 Bra jobbat. 771 00:43:23,380 --> 00:43:26,502 Så en, en. 772 00:43:26,502 --> 00:43:30,109 Key och värdet är bara en konvention. 773 00:43:30,109 --> 00:43:30,650 Det är bra. 774 00:43:30,650 --> 00:43:34,010 Du skulle få några motiv punkter, kanske några stilpoäng 775 00:43:34,010 --> 00:43:36,970 för att göra detta, eftersom den verkligen förmedlar avsikten. 776 00:43:36,970 --> 00:43:39,650 Men vi säger ett och yarp. 777 00:43:39,650 --> 00:43:42,476 >> PUBLIK: Du behöver inte ändra något i HTML-filen 778 00:43:42,476 --> 00:43:43,607 för att återspegla det? 779 00:43:43,607 --> 00:43:44,440 Speak: Inte alls. 780 00:43:44,440 --> 00:43:47,260 PUBLIK: Och det bara vet att på grund av den är lika med större than-- 781 00:43:47,260 --> 00:43:47,801 Speak: Ja. 782 00:43:47,801 --> 00:43:49,489 PUBLIK: --det indikator som that's-- 783 00:43:49,489 --> 00:43:50,030 Speak: Ja. 784 00:43:50,030 --> 00:43:52,260 Det är en foreach syntax, men ja. 785 00:43:52,260 --> 00:43:53,720 >> PUBLIK: Det är inte typer. 786 00:43:53,720 --> 00:43:57,230 Så vad händer om du ville ålder bara vara ett nummer? 787 00:43:57,230 --> 00:43:59,510 Finns det ett sätt att göra det? 788 00:43:59,510 --> 00:44:04,550 >> Speak: Det finns sätt att kontrollera om variabler överensstämmer med vissa typer. 789 00:44:04,550 --> 00:44:08,482 Så PHP frågar lite mer från dig eftersom det inte finns några typer i. 790 00:44:08,482 --> 00:44:09,440 Några sätt den frågar mindre. 791 00:44:09,440 --> 00:44:11,070 På sätt och vis frågar mer. 792 00:44:11,070 --> 00:44:13,320 För om du bara något i en variabel, 793 00:44:13,320 --> 00:44:14,960 du har ingen aning om vilken typ det är. 794 00:44:14,960 --> 00:44:19,310 Men om du är smart om variabler att du tilldelar slag till och se till att 795 00:44:19,310 --> 00:44:22,750 som fungerar bara return-- du vill funktioner till endast avkastning 796 00:44:22,750 --> 00:44:26,210 en typ av värde så att du kan i princip 797 00:44:26,210 --> 00:44:31,090 förväntar sig att den variabel som du får tillbaka från en funktion kommer att vara av den typ som 798 00:44:31,090 --> 00:44:32,780 att du tror att det kommer att bli, i princip. 799 00:44:32,780 --> 00:44:36,550 >> Men det finns några metoder med vilken du kan kontrollera. 800 00:44:36,550 --> 00:44:39,801 Jag minns inte dem från toppen av mitt huvud. 801 00:44:39,801 --> 00:44:43,300 Jag väntar på den för att slå blå. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Det finns metoder inbyggt i PHP som kan 805 00:44:52,000 --> 00:44:54,440 kontrollera vilken typ av variabler för dig. 806 00:44:54,440 --> 00:44:58,250 Men om du tilldelar variabler smart, ska du inte 807 00:44:58,250 --> 00:45:01,330 måste göra det för mycket i pset 7. 808 00:45:01,330 --> 00:45:02,780 Men dessa metoder existerar. 809 00:45:02,780 --> 00:45:06,704 Och det är något som är i själva språket. 810 00:45:06,704 --> 00:45:08,370 Och jag minns inte den exakta syntaxen. 811 00:45:08,370 --> 00:45:09,930 Vi kan även slå upp det. 812 00:45:09,930 --> 00:45:11,974 Men tiden är knapp. 813 00:45:11,974 --> 00:45:13,890 har Finns det någon annan har några fler frågor? 814 00:45:13,890 --> 00:45:14,660 Ja. 815 00:45:14,660 --> 00:45:15,951 >> PUBLIK: Jag har bara en mer. 816 00:45:15,951 --> 00:45:19,050 Så du nämnde GET-metoden, men du nämnde inte POST-metoden. 817 00:45:19,050 --> 00:45:20,500 Ska vi komma tillbaka till det? 818 00:45:20,500 --> 00:45:21,540 >> Speak: Ja, vi kommer att komma tillbaka till det. 819 00:45:21,540 --> 00:45:24,840 Det är precis vad jag letade på min telefon, som nu somnade, 820 00:45:24,840 --> 00:45:26,960 men jag hittar det. 821 00:45:26,960 --> 00:45:30,680 Bara se till att vi hit alla PHP anteckningar. 822 00:45:30,680 --> 00:45:35,640 Japp, det finns ingen felsökning version. 823 00:45:35,640 --> 00:45:41,940 Ja, vi har några fler saker som vi vill göra nu på denna punkt. 824 00:45:41,940 --> 00:45:45,980 >> Så talar om POST, som ni nämnde, 825 00:45:45,980 --> 00:45:49,630 den enda skillnaden mellan GET och POST är 826 00:45:49,630 --> 00:45:53,150 att komma ihåg när vi såg på följande webbadress och vi såg, oh, 827 00:45:53,150 --> 00:45:58,270 Namnet är en och ålder är lika yarp har rätt i webbadressen där för oss. 828 00:45:58,270 --> 00:46:03,300 POST är lite mer hemlighets med sin bortgång av information. 829 00:46:03,300 --> 00:46:08,090 >> Så om du inte vill att en användare att veta, till exempel, du 830 00:46:08,090 --> 00:46:11,160 ville inte användarnamnet och lösenord för den person 831 00:46:11,160 --> 00:46:15,080 inloggad ska visas i URL, vilket är en rimlig sak 832 00:46:15,080 --> 00:46:17,770 att inte vilja i webbadressen, eftersom någon kan se det. 833 00:46:17,770 --> 00:46:21,520 Om de länkar någon till en sida, du inte vill att deras URL putsade där, 834 00:46:21,520 --> 00:46:27,850 eftersom det skulle göra det möjligt för människor att logga in bara med klister av en webbadress i stället 835 00:46:27,850 --> 00:46:29,670 för att faktiskt fylla i ett formulär. 836 00:46:29,670 --> 00:46:31,710 POST är lite mer hemlighets. 837 00:46:31,710 --> 00:46:34,150 >> Och det enda som vi måste ändra 838 00:46:34,150 --> 00:46:38,550 är denna metod förändring från får publicera. 839 00:46:38,550 --> 00:46:42,367 Och sedan inne i HTTP, i stället att få tillgång arrayen _GET, 840 00:46:42,367 --> 00:46:43,950 vi kommer att få tillgång till arrayen _POST. 841 00:46:43,950 --> 00:46:48,600 >> Och vi kommer att märka att om Vi öppnar upp igen, 842 00:46:48,600 --> 00:46:51,910 Jason avtar långsamt i ålder. 843 00:46:51,910 --> 00:46:53,230 namn Jason, 14 år. 844 00:46:53,230 --> 00:46:54,280 Samma saker dyker upp. 845 00:46:54,280 --> 00:46:57,190 Men vi går till webbadressen och dessa variabler är inte där. 846 00:46:57,190 --> 00:47:00,540 >> Och det sätt som POST passes-- så kom ihåg 847 00:47:00,540 --> 00:47:02,750 hur man ser på källan på en sida. 848 00:47:02,750 --> 00:47:04,570 Vi går till nätverket. 849 00:47:04,570 --> 00:47:06,920 Vi uppdaterar. 850 00:47:06,920 --> 00:47:10,690 Och detta är en annan sak som POST ger dig varningar om. 851 00:47:10,690 --> 00:47:15,050 Du kanske har sett en låda, en text ruta så här i din webbläsare. 852 00:47:15,050 --> 00:47:18,170 Är du säker på att du vill att skicka en blankett igen? 853 00:47:18,170 --> 00:47:21,170 POST är vad det är som att skicka dessa former. 854 00:47:21,170 --> 00:47:24,680 >> Eftersom i stort sett om du skickade din kreditkortsinformation till någon, 855 00:47:24,680 --> 00:47:26,350 det kommer inte att dyka upp i webbadressen. 856 00:47:26,350 --> 00:47:28,180 Det kommer att bli en POST-begäran. 857 00:47:28,180 --> 00:47:32,905 Så när du uppdaterar sidan, det omsändning det inlägget begäran. 858 00:47:32,905 --> 00:47:35,530 Så nu är vi vill skicka bildar igen eftersom det inte kommer 859 00:47:35,530 --> 00:47:37,340 att skapa eventuella dubblerade inköp. 860 00:47:37,340 --> 00:47:41,160 >> Och vi kommer att märka att här nere, den metod vi använder är POST. 861 00:47:41,160 --> 00:47:43,065 Och det gjorde verkligen överföra byte. 862 00:47:43,065 --> 00:47:45,460 Överförs 401 av dem. 863 00:47:45,460 --> 00:47:47,190 Program är ganska liten. 864 00:47:47,190 --> 00:47:51,600 Men det finns ingenstans att vi kan se de värden som förs över. 865 00:47:51,600 --> 00:47:59,540 Webbsidorna själva kan se, men vi som användare inte kan se, 866 00:47:59,540 --> 00:48:01,650 om du inte är en hacker. 867 00:48:01,650 --> 00:48:05,340 Om du är en bra hacker, kan du titta. 868 00:48:05,340 --> 00:48:09,360 >> Om du känner till grundläggande format HTML, 869 00:48:09,360 --> 00:48:11,790 värdena kommer att göra sig till känna i sidorna. 870 00:48:11,790 --> 00:48:13,160 Du kommer att kunna se. 871 00:48:13,160 --> 00:48:16,720 Värdena kommer att vara där, de är bara lite mindre självklart för dig 872 00:48:16,720 --> 00:48:19,522 att komma åt, i princip. 873 00:48:19,522 --> 00:48:23,620 >> Har vi något mer frågor om GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- vad vi ska göra härnäst är faktiskt titta på några av koden 875 00:48:26,800 --> 00:48:30,837 att du ger i pset 7, tala om hur man använder en del av dessa begrepp, 876 00:48:30,837 --> 00:48:32,670 och prata om saker som du ska 877 00:48:32,670 --> 00:48:35,090 att behöva göra lite i pset 7. 878 00:48:35,090 --> 00:48:36,760 Några fler frågor innan dess? 879 00:48:36,760 --> 00:48:38,047 Fler frågor ni har? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Bra. 882 00:48:41,840 --> 00:48:45,370 >> Okej, låt oss titta lite i pset 7, 883 00:48:45,370 --> 00:48:49,530 ingen tvekan om vad du är alla mest entusiastiska över. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Jag menar, är detta något som David går igenom lite. 886 00:48:54,750 --> 00:49:00,890 Men vi kommer att ha tre kataloger på top, liksom en konfigurationsfil. 887 00:49:00,890 --> 00:49:04,650 Det är för databaser, som vi ska tala om i ungefär fem minuter. 888 00:49:04,650 --> 00:49:07,220 Inkluderar, du aldrig behöver att titta i den här katalogen 889 00:49:07,220 --> 00:49:12,480 om du inte vill, men det är trevligt att vet att det finns alla typer av hjälpare. 890 00:49:12,480 --> 00:49:14,210 Hjälpare är som hjälpfunktioner. 891 00:49:14,210 --> 00:49:18,120 Och sedan har vi config, som sätter lite grejer. 892 00:49:18,120 --> 00:49:24,590 >> Det finns några funktioner som CS50 har skriven som är i hjälpare och config. 893 00:49:24,590 --> 00:49:27,250 Och en del av PHP som redan avslutas i filer 894 00:49:27,250 --> 00:49:30,880 kommer att göra en hel del mer sort av trubbig benet arbete för dig. 895 00:49:30,880 --> 00:49:35,250 Som om vi går in allmänheten login.php, vilket är vad 896 00:49:35,250 --> 00:49:38,350 dyker upp till höger när du går in pset 7. 897 00:49:38,350 --> 00:49:40,580 Vi ser att det finns Detta kräver uttalande. 898 00:49:40,580 --> 00:49:43,420 Och det ungefär som en skarp innefattar, hashtag 899 00:49:43,420 --> 00:49:46,850 inkluderar om du är en nyare generation. 900 00:49:46,850 --> 00:49:49,740 Men i grunden säger att jag behöver tillgång 901 00:49:49,740 --> 00:49:52,260 till alla funktioner i config.php. 902 00:49:52,260 --> 00:49:55,290 Och du kan ha ett krav för alla typer av andra saker. 903 00:49:55,290 --> 00:49:59,670 >> config kräver faktiskt hjälpare. 904 00:49:59,670 --> 00:50:02,490 Så när du behöver config, du är också 905 00:50:02,490 --> 00:50:05,660 inklusive eller kräver medhjälpare också. 906 00:50:05,660 --> 00:50:09,590 Så som ger dig tillgång till alla häftiga funktioner som vi kommer att använda, 907 00:50:09,590 --> 00:50:10,420 saker som gör. 908 00:50:10,420 --> 00:50:13,490 Jag faktiskt kommer att underlätta ner det lite. 909 00:50:13,490 --> 00:50:16,280 Så fungerar då är vi kommer att gå igenom 910 00:50:16,280 --> 00:50:22,380 precis innan vi går vidare till SQL lite biten är login.php funktionen, bara 911 00:50:22,380 --> 00:50:26,586 eftersom den använder en del av de ämnen att vi bara talade om i PHP. 912 00:50:26,586 --> 00:50:30,840 >> Du ser det första är om $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Detta är en annan global variabel som du kommer att ha att göra med. 914 00:50:34,500 --> 00:50:38,460 Det är som _GET och _POST, men vad server innehåller detta kan låta dig 915 00:50:38,460 --> 00:50:42,730 veta om förfrågningsmetoden var en GET eller POST. 916 00:50:42,730 --> 00:50:47,250 Liksom tidigare vad vi gjorde är bara i vår kod som vi skrev, 917 00:50:47,250 --> 00:50:51,880 vi bara ändra det för att vara GET och POST beroende på vad HTML har. 918 00:50:51,880 --> 00:50:55,120 Men det finns sidor som kan vara nås med båda typerna av förfrågningar. 919 00:50:55,120 --> 00:50:57,410 Och kanske du vill göra olika saker beroende 920 00:50:57,410 --> 00:50:59,740 på vilken typ av begäran, precis som inloggning gör. 921 00:50:59,740 --> 00:51:04,400 >> Så du kan kontrollera att begäran metod genom tillgång nycklar, 922 00:51:04,400 --> 00:51:08,630 genom att använda en nyckel och få värdet av något i ordboken 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Så det är en annan global variabel som _GET och _POST. 925 00:51:13,800 --> 00:51:16,990 >> Om det är GET, vill vi göra inloggningsformuläret. 926 00:51:16,990 --> 00:51:21,920 Rendera är en funktion som i grund och botten bara sätter upp lämpliga HTML 927 00:51:21,920 --> 00:51:24,500 och skickar den vissa parametrar. 928 00:51:24,500 --> 00:51:28,740 Denna titel är en parameter som är används vid visning, konstigt nog, 929 00:51:28,740 --> 00:51:32,670 titeln på sidan i fråga, saken upp här, 930 00:51:32,670 --> 00:51:34,850 säger eller hej i vårt tidigare exempel. 931 00:51:34,850 --> 00:51:36,100 Nu har vi en annan sak. 932 00:51:36,100 --> 00:51:38,570 Annars om det är POST, vi göra några andra saker. 933 00:51:38,570 --> 00:51:40,790 Vi använder det tomma metod. 934 00:51:40,790 --> 00:51:42,750 Det finns inte, det är tomt. 935 00:51:42,750 --> 00:51:45,440 Och vi såg tidigare, PHP har en hel del inbyggda 936 00:51:45,440 --> 00:51:52,370 i metoder som David will-- om det är metoder som är användbara för dig, 937 00:51:52,370 --> 00:51:55,560 de ska varnas för dig i promenad genom att David 938 00:51:55,560 --> 00:51:59,770 ger i början översikten, och även Zamyla s hjälp bitar. 939 00:51:59,770 --> 00:52:01,040 Hon är tillbaka alla. 940 00:52:01,040 --> 00:52:03,100 Vi kan alla glädjas. 941 00:52:03,100 --> 00:52:06,530 be om ursäkt är en passande namnet funktion som bara i princip skrivs ut 942 00:52:06,530 --> 00:52:10,130 några felmeddelanden, eftersom CS50 är mycket artigt. 943 00:52:10,130 --> 00:52:14,770 >> Och nu detta, är detta en knepigt lite eftersom detta 944 00:52:14,770 --> 00:52:16,697 är där vi att fråga databasen. 945 00:52:16,697 --> 00:52:18,280 Nu har vi inte pratat om databaser. 946 00:52:18,280 --> 00:52:22,220 Och vi kommer att i nästa fem minuter eller så, max. 947 00:52:22,220 --> 00:52:24,980 Men detta är en funktion att CS50 har skrivit 948 00:52:24,980 --> 00:52:38,050 att få en tabell i grund och botten från en databas att vi arbetar med i pset 7. 949 00:52:38,050 --> 00:52:40,860 Jag är verkligen dåligt med min noll indexering idag. 950 00:52:40,860 --> 00:52:42,060 Men ja, det är 7. 951 00:52:42,060 --> 00:52:46,340 >> Så fråga det kommer att returnera en matris, är i grunden nyckelaxet. 952 00:52:46,340 --> 00:52:54,130 Och eftersom dessa saker inte har maskinskrivning, så rader är en samling av matriser. 953 00:52:54,130 --> 00:52:59,480 För när vi funderar ett bord, vad vi ska göra 954 00:52:59,480 --> 00:53:04,830 är, som du lärde dig i psets som spelet 15, i alla fall 955 00:53:04,830 --> 00:53:06,990 där du var tvungen att använda en dubbel array, vi i grund och botten 956 00:53:06,990 --> 00:53:15,210 har matris med andra arrayer gör en tabell. 957 00:53:15,210 --> 00:53:18,150 Och du har rader och kolumner. 958 00:53:18,150 --> 00:53:24,450 Och då kan du komma åt dem som [0] [1], får du [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Grundläggande sånt. 960 00:53:26,900 --> 00:53:29,380 >> Så vad vi gör här i denna funktion, 961 00:53:29,380 --> 00:53:35,070 Vi frågar databasen om användaren som är 962 00:53:35,070 --> 00:53:40,200 försöker logga in, kommer det vara skickas via POST-metoden. 963 00:53:40,200 --> 00:53:43,950 Vi får se vi får användarnamnet från _POST. 964 00:53:43,950 --> 00:53:46,900 De kommer att ha sänt användaren eller om du kommer att skicka ett värde 965 00:53:46,900 --> 00:53:50,750 genom ett formulär genom POST eftersom det är användarnamn och lösenord grejer. 966 00:53:50,750 --> 00:53:54,830 Vi kollar användarnamn att se, är detta i tabellen? 967 00:53:54,830 --> 00:53:58,070 För om en användare loggar i, då deras användarnamn 968 00:53:58,070 --> 00:54:03,320 bör lagras i tabellen i användare som finns för den här webbplatsen. 969 00:54:03,320 --> 00:54:09,360 Så i grund och botten om användaren är i databasen, 970 00:54:09,360 --> 00:54:16,400 fråga kommer att återvända den raden, som är en array. 971 00:54:16,400 --> 00:54:24,560 >> Men den svåra delen är att om även om den dubbla uppsättningen är bara en rad, 972 00:54:24,560 --> 00:54:31,900 även om det är en en rad array-- som om du har basically-- 973 00:54:31,900 --> 00:54:36,900 om du har en storlek en array som är med annat array, 974 00:54:36,900 --> 00:54:38,940 du verkligen ta itu med en kolumn. 975 00:54:38,940 --> 00:54:41,420 Men det är fortfarande behandlas som en dubbelmatris. 976 00:54:41,420 --> 00:54:44,560 >> Och det är där det ibland kan få knepigt, eftersom vi har rader här. 977 00:54:44,560 --> 00:54:46,440 Vår variabel är rader. 978 00:54:46,440 --> 00:54:48,590 Och sedan skapar vi en ny variabel som kallas rad 979 00:54:48,590 --> 00:54:51,450 och ställer in det lika med den första raden av rader. 980 00:54:51,450 --> 00:54:55,150 Och du kommer att märka att kommentar säger att det är den första och enda raden. 981 00:54:55,150 --> 00:54:57,080 >> Så det här är den knepiga del där nu funktioner 982 00:54:57,080 --> 00:54:59,660 kan återvända arrayer mycket lätt. 983 00:54:59,660 --> 00:55:01,270 Det finns inte mallocs. 984 00:55:01,270 --> 00:55:02,280 Du kommer inte att se mallocs. 985 00:55:02,280 --> 00:55:03,940 Så du kommer inte att se seg fel. 986 00:55:03,940 --> 00:55:08,380 Men funktioner kommer fortfarande att passera runt matriser och data i grupper. 987 00:55:08,380 --> 00:55:12,250 Och du måste vara försiktig med vad exakt dina funktioner kommer tillbaka. 988 00:55:12,250 --> 00:55:15,160 Och även om det är en kolumn så här, fråga 989 00:55:15,160 --> 00:55:17,520 fortfarande kommer att återvända en dubbel uppsättning. 990 00:55:17,520 --> 00:55:21,390 Så att komma åt som column-- eller om du kan tänka på allt detta som inverterad 991 00:55:21,390 --> 00:55:22,870 eftersom vi pratar om rader. 992 00:55:22,870 --> 00:55:26,810 Men för att få tillgång till att en rad, du kan inte bara säga rader. 993 00:55:26,810 --> 00:55:31,540 Även om det är en rad, måste du gör rowsrows [0] för att sorts eliminera detta 994 00:55:31,540 --> 00:55:37,360 yttre bit av uppställningen och har bara din en rad. 995 00:55:37,360 --> 00:55:38,342 >> Gör en del andra saker. 996 00:55:38,342 --> 00:55:40,050 Det finns en funktion kallas password_verify 997 00:55:40,050 --> 00:55:42,980 som verifierar lösenord som bokfördes. 998 00:55:42,980 --> 00:55:48,500 Och sedan ser vi en annan global variabel här, _SESSION. 999 00:55:48,500 --> 00:55:51,340 I grund och botten sessions-id är hur du hålla koll 1000 00:55:51,340 --> 00:55:53,990 av om någon är inloggad eller inte. 1001 00:55:53,990 --> 00:55:58,590 Så just nu med login.php, vi loggar en användare i. 1002 00:55:58,590 --> 00:56:01,920 Så vad vi vill göra är att vi vill säga sessions-ID är lika med den rad 1003 00:56:01,920 --> 00:56:05,890 id, som just är logiskt eftersom varje rad kommer att ha olika id 1004 00:56:05,890 --> 00:56:07,239 nummer som en del av tabellen. 1005 00:56:07,239 --> 00:56:09,280 Vi kommer att komma in i SQL i en andra, så om något av detta 1006 00:56:09,280 --> 00:56:13,500 verkar lite som bla, då alla kommer att klaras upp. 1007 00:56:13,500 --> 00:56:18,450 Men vi kommer att ställa id lika med rätt sak, användaren loggas in. 1008 00:56:18,450 --> 00:56:20,530 Ber om ursäkt om något går fel. 1009 00:56:20,530 --> 00:56:27,600 Och det är inloggningar syfte livet som professor Malan skulle säga. 1010 00:56:27,600 --> 00:56:29,130 >> Så det var login.php. 1011 00:56:29,130 --> 00:56:33,750 Och en hel del PHP-koden du skriver i pset 7, kommer de att vara lite. 1012 00:56:33,750 --> 00:56:36,470 Glöm inte att chmod till rätt behörighet. 1013 00:56:36,470 --> 00:56:40,180 Det kommer att bli lite om att i början av spec. 1014 00:56:40,180 --> 00:56:46,382 >> Men PHP att du är skrivning kommer att bli 1015 00:56:46,382 --> 00:56:47,840 gör saker som liknar detta. 1016 00:56:47,840 --> 00:56:49,715 Du kommer att vara åtkomst några saker som 1017 00:56:49,715 --> 00:56:52,760 ges till dig i globala variabler i PHP som 1018 00:56:52,760 --> 00:56:56,105 har att göra med den nuvarande inloggade användaren, oavsett om det 1019 00:56:56,105 --> 00:57:00,460 har varit ansökningar till detta sida, olika saker. 1020 00:57:00,460 --> 00:57:05,790 Och det kommer också att vara potentiellt iterera genom rader av denna sak. 1021 00:57:05,790 --> 00:57:09,010 >> I en annan funktion, fråga kommer tillbaka denna dubbla array. 1022 00:57:09,010 --> 00:57:11,450 Och om det finns fler än en rader i det, 1023 00:57:11,450 --> 00:57:15,080 om det är-- ja, om det är mer än en rader i det, 1024 00:57:15,080 --> 00:57:16,870 då blir det en tabell. 1025 00:57:16,870 --> 00:57:20,500 Och du kanske vill iterera genom raderna av denna matris som använder 1026 00:57:20,500 --> 00:57:22,860 den foreach loop som vi beskrivit. 1027 00:57:22,860 --> 00:57:30,270 >> Så om du gör foreach på en dubbel array, vad blir det word-- här, 1028 00:57:30,270 --> 00:57:31,909 Jag ska faktiskt skriva det. 1029 00:57:31,909 --> 00:57:32,950 Jag ska skriva det snabbt här. 1030 00:57:32,950 --> 00:57:44,280 >> Om vi ​​har en foreach rader som rad, vad är den typ av raden? 1031 00:57:44,280 --> 00:57:45,390 Någon som vet? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Du har det? 1034 00:57:54,500 --> 00:57:57,110 Så rader är en dubbel uppsättning. 1035 00:57:57,110 --> 00:58:02,810 Så vad är foreach kommer att sluta att vi vill ha från denna dubbla array 1036 00:58:02,810 --> 00:58:04,280 om vi iteration över det? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Vi kan i princip utgå från att det kommer att vara antingen element, 1039 00:58:10,770 --> 00:58:14,970 eller rader eller kolumner, i princip. 1040 00:58:14,970 --> 00:58:18,740 Och så rader och kolumner vi kan behandla som samma sak. 1041 00:58:18,740 --> 00:58:23,880 >> I grund och botten vad foreach loop går att göra är att det kommer att återvända rader. 1042 00:58:23,880 --> 00:58:28,500 rad kommer att vara av typen rad, medan rader är en dubbel uppsättning. 1043 00:58:28,500 --> 00:58:32,290 Så om du ger foreach en dubbel uppsättning, det är 1044 00:58:32,290 --> 00:58:35,830 kommer inte att upprepa mer än en nivå djup. 1045 00:58:35,830 --> 00:58:44,464 Som är i grunden att säga om det finns åtta celler i detta table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, 8-- den foreach slingan inte 1047 00:58:48,110 --> 00:58:51,880 kommer att gå igenom var och en av dessa celler. 1048 00:58:51,880 --> 00:58:56,390 Vad foreach slingan kommer att göra var det kommer att gå igenom den här raden, 1049 00:58:56,390 --> 00:58:57,870 ger dig hela den här raden. 1050 00:58:57,870 --> 00:58:59,410 Och då ska gå igenom den raden. 1051 00:58:59,410 --> 00:59:01,850 >> Så det bara itererar en nivå djup. 1052 00:59:01,850 --> 00:59:05,310 Om du lägger till en kapslad foreach loop, då du 1053 00:59:05,310 --> 00:59:16,280 kan behandla varje rad återvänt från rader, ni foreach rad som element, 1054 00:59:16,280 --> 00:59:17,640 låt oss säga. 1055 00:59:17,640 --> 00:59:22,750 Och då kan du upprepa elementet. 1056 00:59:22,750 --> 00:59:24,930 Så det är en kort liten repetition av hur 1057 00:59:24,930 --> 00:59:30,220 du kanske använder foreach loopar i samband med frågan. 1058 00:59:30,220 --> 00:59:32,840 >> Finns det några frågor om PHP? 1059 00:59:32,840 --> 00:59:36,520 Någonting alls innan vi gå vidare till att tala om SQL 1060 00:59:36,520 --> 00:59:37,820 och det roliga i databasen? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Mår bra? 1063 00:59:42,110 --> 00:59:42,750 Mår bra. 1064 00:59:42,750 --> 00:59:43,470 Okej. 1065 00:59:43,470 --> 00:59:49,130 >> Låt oss gå vidare tillbaka till PowerPoint, som du förmodligen missa. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Människor som är i mitt avsnitt typiskt vet att undernummer akronymer 1068 00:59:57,900 --> 01:00:01,220 är alltid bara de första orden Jag tänker på den match som 1069 01:00:01,220 --> 01:00:02,690 algorithm-- att akronym. 1070 01:00:02,690 --> 01:00:04,090 Det är inte en algoritm. 1071 01:00:04,090 --> 01:00:08,050 >> Så SQL är en databas. 1072 01:00:08,050 --> 01:00:11,060 Det är ett språk som arbetar med databaser. 1073 01:00:11,060 --> 01:00:14,440 Och alla databaser finns är tabeller, åtminstone på det sätt 1074 01:00:14,440 --> 01:00:17,220 att SQL företräder dem. 1075 01:00:17,220 --> 01:00:23,610 >> Ett annat sätt att tänka på databaser är databaser är en uppsättning nycklar och värden 1076 01:00:23,610 --> 01:00:24,110 i grund och botten. 1077 01:00:24,110 --> 01:00:29,530 Du kan tänka på en databas som en ordbok och även som en tabell. 1078 01:00:29,530 --> 01:00:34,300 I grunden är det ett sätt att associera olika data med andra data, 1079 01:00:34,300 --> 01:00:36,270 ofta genom rader och kolumner. 1080 01:00:36,270 --> 01:00:38,470 Och det är så det är SQL fungerar bäst. 1081 01:00:38,470 --> 01:00:40,880 >> Så detta är ett exempel på en tabell. 1082 01:00:40,880 --> 01:00:44,610 Jag har fått några exempel på människor i mitt avsnitt, som 1083 01:00:44,610 --> 01:00:45,970 Jag har inte tid att byta. 1084 01:00:45,970 --> 01:00:52,020 Men vi har saker som ID, namn, supermakt, och hemstad. 1085 01:00:52,020 --> 01:00:54,100 Jag vet inte var någons från i min avdelning, 1086 01:00:54,100 --> 01:00:56,266 så jag ska bara anta alla är från New York 1087 01:00:56,266 --> 01:00:59,370 Staden eftersom jag har en hög statistisk Sannolikheten för att vara korrekt. 1088 01:00:59,370 --> 01:01:04,200 >> SQL automatiskt ta hand om ID-kolumnen för dig. 1089 01:01:04,200 --> 01:01:07,560 Om du sätter i en ny rad i en SQL-databas, 1090 01:01:07,560 --> 01:01:09,700 Det kommer att öka det ID-nummer och bara 1091 01:01:09,700 --> 01:01:14,890 princip hålla ut fem namn, supermakt, hemstad, vem 1092 01:01:14,890 --> 01:01:16,430 på slutet av tabellen. 1093 01:01:16,430 --> 01:01:19,160 Så ID är en kolumn du aldrig oroa dig. 1094 01:01:19,160 --> 01:01:22,770 Men, som i fallet av login.php, när vi 1095 01:01:22,770 --> 01:01:26,610 fick sessions-ID från ett bord och bara använda ID, 1096 01:01:26,610 --> 01:01:30,320 ID är ett sätt att identifiera ett element i en databas. 1097 01:01:30,320 --> 01:01:34,980 >> Så om vi hade två Sams, båda som lärde CS50, och båda av vem 1098 01:01:34,980 --> 01:01:39,370 var från Milwaukee, de skulle fortfarande har distinkta ID-nummer 1099 01:01:39,370 --> 01:01:43,420 och därmed skiljer sig i samband med tabellen. 1100 01:01:43,420 --> 01:01:48,700 Så det här är vad SQL handlar med, arbetar med i bakändan. 1101 01:01:48,700 --> 01:01:54,160 >> Nu är dessa fyra kommandon att du behöver för att arbeta med SQL. 1102 01:01:54,160 --> 01:01:56,390 Och jag kastade upp dem alla på en bild. 1103 01:01:56,390 --> 01:01:59,530 Men vi kommer att gå igenom dem alla individuellt. 1104 01:01:59,530 --> 01:02:03,300 >> Det första kommandot är UPDATE som gör vad man kan förvänta sig. 1105 01:02:03,300 --> 01:02:07,240 Säg att du har en del data i tabellen som är föråldrad. 1106 01:02:07,240 --> 01:02:09,470 Som om du håller koll på människors namn 1107 01:02:09,470 --> 01:02:13,350 och åldras, om någon är ålder ökar, då 1108 01:02:13,350 --> 01:02:18,590 du kommer att vilja gå in och uppdatera just den personens ålder. 1109 01:02:18,590 --> 01:02:21,902 För ett exempel som fungerar med vår första table-- 1110 01:02:21,902 --> 01:02:24,610 oroa dig inte om att skriva alla dessa kommandon samtidigt. 1111 01:02:24,610 --> 01:02:27,640 Men om du har uppdateringen ner, som kommer att vara bra för denna del, 1112 01:02:27,640 --> 01:02:29,790 eftersom vi kommer att gå tillbaka till bordet. 1113 01:02:29,790 --> 01:02:33,920 >> Så om vi går tillbaka till bordet, låt oss säga något som hände 1114 01:02:33,920 --> 01:02:38,480 var det var en jordbävning eller en förkastningslinje som delas direkt 1115 01:02:38,480 --> 01:02:39,920 genom New York City. 1116 01:02:39,920 --> 01:02:45,130 Och vi ville uppdatera alla som bodde i New York City. 1117 01:02:45,130 --> 01:02:49,670 De alla var tvungna att flytta till Pennsylvania. 1118 01:02:49,670 --> 01:02:51,130 Det är inte en hemstad. 1119 01:02:51,130 --> 01:02:53,180 De alla var tvungna att flytta till New Haven. 1120 01:02:53,180 --> 01:02:54,030 Det går vi. 1121 01:02:54,030 --> 01:02:57,630 Så alla i New York flyttar till New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> Och så det är något som är redigera tre rader i den här tabellen. 1123 01:03:01,300 --> 01:03:04,716 Men i SQL, kan du göra att på bara ett uttalande. 1124 01:03:04,716 --> 01:03:05,715 Så vi går tillbaka till uppdateringen. 1125 01:03:05,715 --> 01:03:09,670 Låt mig snabbt radera detta forum igen. 1126 01:03:09,670 --> 01:03:14,570 När vi pratar om uppdatering, finns det 1127 01:03:14,570 --> 01:03:17,640 några delar av syntax som är viktiga. 1128 01:03:17,640 --> 01:03:19,770 Tja, är alla syntaxen nyckeln. 1129 01:03:19,770 --> 01:03:22,210 Men saker i grönt är valfritt. 1130 01:03:22,210 --> 01:03:25,680 Den vita krävs, som fördefinierade namn. 1131 01:03:25,680 --> 01:03:30,750 Och ljusblå är saker som varierar beroende på bordet. 1132 01:03:30,750 --> 01:03:34,640 Så det är vad som händer med färgsättning här uppe. 1133 01:03:34,640 --> 01:03:40,250 >> Så om vi vill uppdatera bara dessa rader av de människor som bor i New York, 1134 01:03:40,250 --> 01:03:43,490 så vad vi skulle göra om vi sa UPPDATERING? 1135 01:03:43,490 --> 01:03:46,320 Så tabellen är där vi lägger namnet på vårt bord. 1136 01:03:46,320 --> 01:03:49,170 Låt oss bara säga namnet av vårt bord är bord ett. 1137 01:03:49,170 --> 01:03:52,515 Så vi vill uppdatera tabell ett. 1138 01:03:52,515 --> 01:03:57,470 Och vi vill set-- vad vi vill ställa? 1139 01:03:57,470 --> 01:04:05,160 Jo vi vill säga, så column-- PHP behandlar rader som unika identifierare. 1140 01:04:05,160 --> 01:04:07,930 Och sedan kolumner de olika fälten 1141 01:04:07,930 --> 01:04:09,940 av de delar av databasen. 1142 01:04:09,940 --> 01:04:14,210 >> Så det första elementet av databasen har ett namn Sam, supermakt CS50, 1143 01:04:14,210 --> 01:04:16,210 och en hemstad Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Så om vi nämnda uppsättning, låt oss titta på parametrarna återigen att uppsättningen tar. 1145 01:04:20,710 --> 01:04:23,880 Vi har kolumnen lika värde. 1146 01:04:23,880 --> 01:04:27,290 Så vill vi säga några column-- som minns 1147 01:04:27,290 --> 01:04:31,850 är en field-- vi vill se en fältet är lika med något nytt. 1148 01:04:31,850 --> 01:04:42,340 >> Så om vi just sagt uppdatering tabell 1, ange namn lika Elliot. 1149 01:04:42,340 --> 01:04:46,310 Få några människor från nytt avsnitt på den här. 1150 01:04:46,310 --> 01:04:51,540 Men om vi bara gjorde uppdatering tabell 1 uppsättningsnamn lika Elliot, vad skulle 1151 01:04:51,540 --> 01:04:55,530 tabellen ser ut efter det? 1152 01:04:55,530 --> 01:04:56,410 Människor har någon idé? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Ja. 1155 01:05:00,210 --> 01:05:03,195 >> PUBLIK: Allt i det raden skulle bli Elliot. 1156 01:05:03,195 --> 01:05:04,570 Speak: Allt i vilken rad? 1157 01:05:04,570 --> 01:05:06,067 PUBLIK: I den första raden. 1158 01:05:06,067 --> 01:05:07,150 Speak: I den första raden? 1159 01:05:07,150 --> 01:05:09,724 Varför den första raden? 1160 01:05:09,724 --> 01:05:10,890 Jag menar inte att plocka på dig. 1161 01:05:10,890 --> 01:05:13,287 >> PUBLIK: Kanske allt i hela bordet? 1162 01:05:13,287 --> 01:05:15,120 Speak: Allt i hela tabellen, ja. 1163 01:05:15,120 --> 01:05:19,520 Och det är precis rätt because-- jag bara hjälpa dig ut lite 1164 01:05:19,520 --> 01:05:22,650 there-- eftersom vi utelämnade tillval WHERE. 1165 01:05:22,650 --> 01:05:27,260 Om du inte har WHERE klausul, vad detta kommando kommer att göra 1166 01:05:27,260 --> 01:05:32,240 det kommer att arbeta med varje enda rad i tabellen. 1167 01:05:32,240 --> 01:05:35,430 Allas namn kommer bli Elliott, i princip, 1168 01:05:35,430 --> 01:05:37,360 som Elliot är mycket glad över. 1169 01:05:37,360 --> 01:05:40,070 Eller Yanni, en av de två. 1170 01:05:40,070 --> 01:05:42,490 Men allas namn kommer att förändras. 1171 01:05:42,490 --> 01:05:47,880 >> Så hur vi använder WHERE clause-- och detta gäller alla Wheres 1172 01:05:47,880 --> 01:05:51,410 som är i var och en av dessa olika saker. 1173 01:05:51,410 --> 01:05:54,380 Så du kommer att märka att SET har kolumnen lika värde. 1174 01:05:54,380 --> 01:05:55,190 Och det gör VAR. 1175 01:05:55,190 --> 01:06:00,040 Men dessa är olika typer av uttalanden. 1176 01:06:00,040 --> 01:06:04,400 Så kolonnen lika värde i SET är i uppdrag. 1177 01:06:04,400 --> 01:06:08,320 Som vi säger att vi vill ha för att ställa in namn lika med Elliot. 1178 01:06:08,320 --> 01:06:15,390 Men i WHERE klausuler, dessa är jämlikhets uttalanden. 1179 01:06:15,390 --> 01:06:20,410 Så låt oss säga att vi bara ville ändra personens namn till Elliot 1180 01:06:20,410 --> 01:06:23,940 om deras namn var Ryan, låt oss säga. 1181 01:06:23,940 --> 01:06:24,920 >> Så när vi säger 1182 01:06:24,920 --> 01:06:32,700 >> VAR Namnet är Ryan, att skulle framgångsrikt enda förändring 1183 01:06:32,700 --> 01:06:37,440 det name-- det skulle bara ändra namnet fältet i rader 1184 01:06:37,440 --> 01:06:40,770 där namnfältet är lika med Ryan. 1185 01:06:40,770 --> 01:06:44,430 Så om vi hade flera personer namngav Ryan, alla deras namn 1186 01:06:44,430 --> 01:06:45,730 skulle ändras till Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Detta liknar det exempel av om en förkastningslinje delar 1188 01:06:48,169 --> 01:06:50,960 New York City och alla måste flytta till New Haven, hur vi kan 1189 01:06:50,960 --> 01:06:56,570 gör det i ett uttalande UPPDATERING Tabell1 SET hemstad = New Haven 1190 01:06:56,570 --> 01:07:00,210 där hemstad lika New York City. 1191 01:07:00,210 --> 01:07:03,410 Detta är kraften i UPDATE uttalande. 1192 01:07:03,410 --> 01:07:10,530 Vi kan välja valfritt antal rader genom sanna påståenden 1193 01:07:10,530 --> 01:07:12,860 om fälten i dessa rader. 1194 01:07:12,860 --> 01:07:19,510 Vi kan inte säga UPDATE Tabell1 set name = Elliot WHERE v = 1, 1195 01:07:19,510 --> 01:07:24,820 förutom att vi kan om vi säger ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Så vi kommer att vara arbetar med jämställdhet 1198 01:07:29,830 --> 01:07:32,830 fält, jämlikhet kolumner. 1199 01:07:32,830 --> 01:07:38,030 Men med hjälp av ID-fältet är ett sätt att välja enskilda rader specifikt 1200 01:07:38,030 --> 01:07:43,210 eftersom ID-fältet är en unik identifierare i en SQL-databas. 1201 01:07:43,210 --> 01:07:45,860 Så som att uppdatera rad ett, lika ID 1. 1202 01:07:45,860 --> 01:07:49,560 Uppdatering rad två, precis ändra detta ID-nummer. 1203 01:07:49,560 --> 01:07:51,610 Men kraften i WHERE uttalande är att vi 1204 01:07:51,610 --> 01:07:57,480 kan uppdatera saker baserat på vad deras aktuella värden för vissa saker är. 1205 01:07:57,480 --> 01:07:58,155 Ja Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> PUBLIK: Och vad händer om du vill att-- igen, detta är en annan fråga. 1207 01:08:02,678 --> 01:08:07,660 Men min första fråga var, där händer detta? 1208 01:08:07,660 --> 01:08:09,130 Var ska jag uppdatera denna? 1209 01:08:09,130 --> 01:08:11,100 Är detta i ett PHP-kod? 1210 01:08:11,100 --> 01:08:13,379 >> Speak: Där du uppdaterar, ja. 1211 01:08:13,379 --> 01:08:15,170 Vi kommer att prata om var allt detta 1212 01:08:15,170 --> 01:08:18,729 händer slags när vi går genom alla kommandon. 1213 01:08:18,729 --> 01:08:21,130 Men vad du behöver vet nu är i grunden 1214 01:08:21,130 --> 01:08:26,279 att din SQL-databas existerar som något 1215 01:08:26,279 --> 01:08:30,090 som skall nås av frågan funktion, vilket CS50 definieras. 1216 01:08:30,090 --> 01:08:33,800 Så om du använder sökfunktion, du kan komma åt den här tabellen. 1217 01:08:33,800 --> 01:08:39,529 >> Så du kommer att skicka dessa kommandon till ditt bord i PHP-filer 1218 01:08:39,529 --> 01:08:41,420 genom frågefunktion. 1219 01:08:41,420 --> 01:08:45,410 Du kan också leka med ditt bord direkt. 1220 01:08:45,410 --> 01:08:49,050 Och det är det bästa sättet att testa dessa typer av kommandon. 1221 01:08:49,050 --> 01:08:52,720 Och vi kommer att gå igenom exakt hur att göra det på bara en liten bit. 1222 01:08:52,720 --> 01:08:54,910 >> Så det är UPDATE kommando. 1223 01:08:54,910 --> 01:08:57,939 Och resten av kommandona kommer att vara typ av liknande, 1224 01:08:57,939 --> 01:08:59,069 arbetar på liknande saker. 1225 01:08:59,069 --> 01:09:02,740 INSERT INTO är förmodligen den mest skiljer sig från UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Jag kommer att lämna det där uppe för bara en liten bit och arbeta här. 1227 01:09:06,170 --> 01:09:10,215 Så INSERT INTO ser du tabellen är fortfarande densamma. 1228 01:09:10,215 --> 01:09:17,010 Du vill infoga i. 1229 01:09:17,010 --> 01:09:20,286 Kapitalisering, SQL är fallet okänslig. 1230 01:09:20,286 --> 01:09:22,160 Så du behöver inte kapitalisera dessa saker. 1231 01:09:22,160 --> 01:09:27,960 Av konvention orden i vitt aktiveras. 1232 01:09:27,960 --> 01:09:31,590 Men jag också färgkodade dem. 1233 01:09:31,590 --> 01:09:34,390 Den enda anledningen till att du kapitalisera de när du skriver dem 1234 01:09:34,390 --> 01:09:36,609 bara för att understryka att de är konstanter. 1235 01:09:36,609 --> 01:09:39,189 Och så kan du antingen titta på kapitaliseringen eller det faktum 1236 01:09:39,189 --> 01:09:40,740 att jag har färgat dem på olika sätt. 1237 01:09:40,740 --> 01:09:44,910 >> Så vi har INSERT INTO, låt oss göra table1 igen. 1238 01:09:44,910 --> 01:09:45,930 Detta är allt på en rad. 1239 01:09:45,930 --> 01:09:48,609 Jag bara separera den genom de olika uttalanden. 1240 01:09:48,609 --> 01:09:52,399 Så oroa dig inte om det faktum att Tabell1 gjorde det på den andra raden. 1241 01:09:52,399 --> 01:09:56,130 >> Så vi vill infoga INTO tabell 1. vissa värden. 1242 01:09:56,130 --> 01:09:58,922 Och du kommer att märka den valfria bit, som jag får i en sekund. 1243 01:09:58,922 --> 01:09:59,755 Så vi har fått VÄRDEN. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Så låt oss säga att vi vill lägga till Andi till vårt bord, eftersom vi saknar Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi är sjuk. 1247 01:10:09,390 --> 01:10:12,490 Så låt oss lägga Andi till vårt bord. 1248 01:10:12,490 --> 01:10:15,150 Kom ihåg att ID-numret uppdateras automatiskt. 1249 01:10:15,150 --> 01:10:17,320 Så de enda områden vi behöver oroa sig 1250 01:10:17,320 --> 01:10:20,230 är namn, supermakt, och hemstad. 1251 01:10:20,230 --> 01:10:23,660 >> Och så sätt att vi gör det, titta på vår syntax, är vi har 1252 01:10:23,660 --> 01:10:28,780 precis fått en parentes, med kommatecken separerade värden, vilka vart och ett 1253 01:10:28,780 --> 01:10:29,890 är ett värde. 1254 01:10:29,890 --> 01:10:35,530 Så om vi ville sätta in Andi i vår bord, är allt vi har att göra rätt Andi. 1255 01:10:35,530 --> 01:10:38,630 Vad är Andi supermakt, människor i Andi sektion? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Hon gillar flyg, eller gillar hastighet, eller något. 1258 01:10:47,545 --> 01:10:48,920 Vad gör vi redan har där uppe? 1259 01:10:48,920 --> 01:10:53,425 Vi har CS50, flyg, hastighet och styrka. 1260 01:10:53,425 --> 01:10:54,850 >> PUBLIK: Tidsresor. 1261 01:10:54,850 --> 01:10:56,180 >> Speak: Tidsresor, fantastiskt. 1262 01:10:56,180 --> 01:11:04,280 Så vi har Andi, tid resor och hennes hemstad. 1263 01:11:04,280 --> 01:11:05,530 Det är en riktigt bra fråga. 1264 01:11:05,530 --> 01:11:09,210 New York City, om inte någon vet. 1265 01:11:09,210 --> 01:11:13,600 Alla är från New York är den läxa att ta ifrån i dag. 1266 01:11:13,600 --> 01:11:17,710 >> Så detta uttalande skulle infoga, som en femte rad, 1267 01:11:17,710 --> 01:11:21,900 med supermakten tidsresor och en hemstad New York City. 1268 01:11:21,900 --> 01:11:25,660 Men det valfritt fält är i grunden ett sätt 1269 01:11:25,660 --> 01:11:30,090 att ange exakt vilka kolumner du vill infoga saker. 1270 01:11:30,090 --> 01:11:33,710 >> Det sätt som vi gör det nu, Andi, tidsresor, New York City, 1271 01:11:33,710 --> 01:11:38,150 går i exakt ordning vår table-- namn, supermakt, hemstad. 1272 01:11:38,150 --> 01:11:42,290 Och om du ville göra något annat än att 1273 01:11:42,290 --> 01:11:44,970 som säger att du inte visste någons supermakt, 1274 01:11:44,970 --> 01:11:47,660 som hur jag inte visste Andi s supermakt i början. 1275 01:11:47,660 --> 01:11:50,450 Så allt jag visste var hennes namn och sin hemstad. 1276 01:11:50,450 --> 01:11:54,550 Vad jag kan göra är att jag kunde do-- Jag ska radera detta snabbt. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Jag vill bara uppdatera kolumnerna. 1279 01:12:00,090 --> 01:12:04,100 Och det är där som tillval kolumnlistan kommer in i bilden. 1280 01:12:04,100 --> 01:12:09,185 Jag vill bara att uppdatera namn och hemstad. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 Och då vill jag säga VÄRDEN. 1283 01:12:16,480 --> 01:12:24,430 Jag ska göra Andi och New York City. 1284 01:12:24,430 --> 01:12:28,980 >> Om jag hade utelämnat listan över kolumner och bara gjort dessa två saker, 1285 01:12:28,980 --> 01:12:32,450 där skulle New York har gått? 1286 01:12:32,450 --> 01:12:35,900 Vilken kolumn skulle New York Staden har placerats i? 1287 01:12:35,900 --> 01:12:38,950 Människor har någon idé? 1288 01:12:38,950 --> 01:12:40,160 Supermakt, exakt. 1289 01:12:40,160 --> 01:12:41,890 >> Så det här kommer bara att gå i ordning. 1290 01:12:41,890 --> 01:12:45,530 Och när den når slutet av den listan, kommer det bara sluta fylla saker. 1291 01:12:45,530 --> 01:12:49,080 Och de värden som den ska hålla i alla kolumner kommer bara vara NULL. 1292 01:12:49,080 --> 01:12:51,840 Så eftersom vi specificerade namn och hemstad, 1293 01:12:51,840 --> 01:12:56,110 vi kommer att ha ID 5, namnet Andi, supermakt NULL. 1294 01:12:56,110 --> 01:12:58,750 Så supermakt är en oinitierad värde. 1295 01:12:58,750 --> 01:13:01,340 Du kommer inte nödvändigtvis att få Samma Valgrind fel om du försöker 1296 01:13:01,340 --> 01:13:01,970 och få tillgång till den. 1297 01:13:01,970 --> 01:13:05,160 Allt kommer att snyggt nollställs ut, eftersom NULL är ett värde i SQL. 1298 01:13:05,160 --> 01:13:06,780 Det är en konstant. 1299 01:13:06,780 --> 01:13:08,980 Och sedan hemstad kommer att vara New York City. 1300 01:13:08,980 --> 01:13:11,860 Så det är INSERT INTO kommandot. 1301 01:13:11,860 --> 01:13:13,610 Innan vi går, det finns två kommandon. 1302 01:13:13,610 --> 01:13:19,060 Har människor har några frågor om UPDATE, om INSERT INTO, om SQL 1303 01:13:19,060 --> 01:13:21,556 i allmänhet innan vi flyttar på vår sista bitarna? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Människor känner sig bra, bra. 1306 01:13:26,910 --> 01:13:27,410 Älskar det. 1307 01:13:27,410 --> 01:13:29,480 Så låt oss tala om SELECT. 1308 01:13:29,480 --> 01:13:33,445 Going dike UPPDATERING hit. 1309 01:13:33,445 --> 01:13:35,720 >> Och SELECT kommer att vara mycket lika. 1310 01:13:35,720 --> 01:13:38,790 Målet för SELECT, VÄLJ syfte i livet 1311 01:13:38,790 --> 01:13:45,910 är att ge dig ett gäng kolumner som uppfyller vissa villkor. 1312 01:13:45,910 --> 01:13:48,230 Och när jag säger att tillfredsställa vissa villkor, 1313 01:13:48,230 --> 01:13:50,800 ditt sinne kanske omedelbart gå tillbaka till det WHERE 1314 01:13:50,800 --> 01:13:52,090 som kom upp i UPDATE. 1315 01:13:52,090 --> 01:13:54,880 Och denna klausul är precis där i SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Om vi ​​inte sätter WHERE klausul och vi säger SELECT namn, 1317 01:14:06,020 --> 01:14:16,490 hometown-- stavas det lite wrong-- namn, hemstad ur tabell 1. 1318 01:14:16,490 --> 01:14:19,690 Om vi ​​bara säga att, vad VÄLJ kommer att ge oss är det 1319 01:14:19,690 --> 01:14:23,730 kommer att ge oss en double-- en tabell, snarare. 1320 01:14:23,730 --> 01:14:27,450 En dubbel uppsättning om vi funderar i PHP känner. 1321 01:14:27,450 --> 01:14:33,239 Men det är bara kommer att ge oss en dubbel uppsättning av två columns-- namn, 1322 01:14:33,239 --> 01:14:33,780 och hemstad. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 Och det kommer att ignorera-ID. 1325 01:14:38,130 --> 01:14:41,310 Och det kommer att ignorera supermakt. 1326 01:14:41,310 --> 01:14:44,696 Och det kommer bara ge oss varje enda rad i tabellen. 1327 01:14:44,696 --> 01:14:46,570 Så om vi bara insatt Andi, kommer vi att ha andi. 1328 01:14:46,570 --> 01:14:48,605 Och vi kommer att ha de ursprungliga fyra. 1329 01:14:48,605 --> 01:14:53,720 Om de har uppdaterats, kommer att reflekteras, et cetera, et cetera. 1330 01:14:53,720 --> 01:14:56,520 >> Så det här är att vi inte använda WHERE. 1331 01:14:56,520 --> 01:14:59,200 Men vi kan använda den i exakt samma sätt som vi använde det i UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Om vi ​​bara vill ha en tabell av namnen och superkrafter för människor som lever 1333 01:15:05,310 --> 01:15:13,430 i New York, kan vi köra en sats som SELECT namn, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Jag kommer bara att lämna that-- FRÅN tabell 1 där hemstad = New York City. 1335 01:15:27,190 --> 01:15:33,370 >> Så detta går att visa att du kan få helt olika kolumner, 1336 01:15:33,370 --> 01:15:36,920 och sedan lägga kolumner som du inte även att få tillbaka i WHERE klausulen. 1337 01:15:36,920 --> 01:15:39,200 Vi vet inte ens vill hemstad alla. 1338 01:15:39,200 --> 01:15:41,920 Men vi vill att namn och supermakt människor 1339 01:15:41,920 --> 01:15:43,817 vars hemstad är New York City. 1340 01:15:43,817 --> 01:15:45,650 Så det är något vi kan göra med WHERE 1341 01:15:45,650 --> 01:15:49,112 klausulen är att vi kan ta itu med kolumner att vi inte nödvändigtvis vill tillbaka. 1342 01:15:49,112 --> 01:15:52,320 På samma sätt UPDATE, kan vi ta itu med kolumner som vi inte nödvändigtvis 1343 01:15:52,320 --> 01:15:53,270 vill uppdatera. 1344 01:15:53,270 --> 01:15:58,890 Vi kan uppdatera staden alla som heter Sam, till exempel. 1345 01:15:58,890 --> 01:16:02,080 Vi kan uppdatera staden alla vars ID-nummer är 2. 1346 01:16:02,080 --> 01:16:04,960 Så bara uppdatera staden den andra raden 1347 01:16:04,960 --> 01:16:08,220 där vi inte har att göra med nödvändigt vanlig fråga. 1348 01:16:08,220 --> 01:16:13,264 >> Och radera, eftersom du skulle förvänta, DELETE FROM tabell 1. 1349 01:16:13,264 --> 01:16:14,930 Och sedan har vi fått en annan WHERE. 1350 01:16:14,930 --> 01:16:17,940 Så vi kan säga var ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Ta bort den första raden. 1352 01:16:18,950 --> 01:16:23,240 Och DELETE kommer alltid att ta bort en rad, eller kommer det att ta bort en del antal rader. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM tabell VAR hemstad = New York 1354 01:16:26,990 --> 01:16:28,740 raderar alla i New York City. 1355 01:16:28,740 --> 01:16:30,985 Det är om det fanns en plötslig tragiska pest 1356 01:16:30,985 --> 01:16:33,360 och du ville bara ta bort alla från bordet som 1357 01:16:33,360 --> 01:16:35,760 bodde i en viss stad som drabbades av pesten. 1358 01:16:35,760 --> 01:16:38,050 Må de vila i frid. 1359 01:16:38,050 --> 01:16:43,849 >> Dessa är de fyra SQL-kommandon att du kommer att behöva använda. 1360 01:16:43,849 --> 01:16:45,390 Du kanske inte ens behöver använda dem alla. 1361 01:16:45,390 --> 01:16:47,690 Men dessa är de fyra att CS50 förväntar sig att du 1362 01:16:47,690 --> 01:16:53,630 att vara bekväm med att gå in både frågesport 1 och även pset7 och pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Det är bara det att bordet igen. 1364 01:16:55,820 --> 01:16:58,930 I den här, har Roy supermakt uppdaterats till laserstrålar, som 1365 01:16:58,930 --> 01:17:00,880 är ett exempel jag inte använda. 1366 01:17:00,880 --> 01:17:05,480 Jag vet inte vilka en Roy föredrar, men styrka. 1367 01:17:05,480 --> 01:17:07,670 Roy har en supermakt styrka. 1368 01:17:07,670 --> 01:17:09,090 Katherine gjorde inte det i dag. 1369 01:17:09,090 --> 01:17:10,260 Det är olyckligt. 1370 01:17:10,260 --> 01:17:11,260 Men hon har super hastighet. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Ja, det var PHP. 1373 01:17:14,670 --> 01:17:19,410 Innan vi talar om MVC, gör någon som har frågor om PHP? 1374 01:17:19,410 --> 01:17:23,864 Nu SQL eller PHP om du plötsligt har komma med en fråga om PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Bra. 1377 01:17:28,460 --> 01:17:29,920 Okej, vi alla satt sedan. 1378 01:17:29,920 --> 01:17:33,660 >> Så talar en liten bit om Model View controllers, 1379 01:17:33,660 --> 01:17:38,770 Låt oss gå tillbaka till någon av grejer i pset7. 1380 01:17:38,770 --> 01:17:42,470 Så vilken modell view controller är-- Jag är inte 1381 01:17:42,470 --> 01:17:45,660 kommer att spara mina ändringar för att logga in eftersom jag helt slaktat det. 1382 01:17:45,660 --> 01:17:49,220 Men i grund och botten har vi två skilda saker händer. 1383 01:17:49,220 --> 01:17:52,390 Vi har ett offentligt katalog som innehåller 1384 01:17:52,390 --> 01:17:56,460 den kod som kommer att utföras och webbsidor som kommer att besökas. 1385 01:17:56,460 --> 01:17:58,780 Och vi har också denna utsikt katalogen. 1386 01:17:58,780 --> 01:18:01,780 Och vyer innehåller mallar. 1387 01:18:01,780 --> 01:18:04,390 >> Detta är vad funktionen render-- vi såg göra 1388 01:18:04,390 --> 01:18:08,240 funktionen i en massa PHP-koden att CS50 har redan skrivit för dig, 1389 01:18:08,240 --> 01:18:10,550 som tar in vissa parametrar. 1390 01:18:10,550 --> 01:18:14,510 Vad det koden gör det kommer till vyer, 1391 01:18:14,510 --> 01:18:18,000 som är uppsättningar av liknande prewritten HTML-kod, 1392 01:18:18,000 --> 01:18:20,720 och det är att infoga värden i vissa ställen. 1393 01:18:20,720 --> 01:18:23,990 Detta är hur när du gå in CS50 Finance, 1394 01:18:23,990 --> 01:18:25,760 samma rubrik är på varje sida. 1395 01:18:25,760 --> 01:18:28,130 Samma sidfot på varje sida. 1396 01:18:28,130 --> 01:18:31,880 Detta beror på det sätt att göra verk är det kommer 1397 01:18:31,880 --> 01:18:36,720 automatiskt patch i det sidhuvud och viewer där du kan hitta av utsikten. 1398 01:18:36,720 --> 01:18:41,400 >> Vi faktiskt kan gå in i huvudet, och titta, det är en HTML-fil med ett huvud. 1399 01:18:41,400 --> 01:18:43,280 Det har fått vissa mallar. 1400 01:18:43,280 --> 01:18:48,450 Du behöver inte titta på CSS för pset7 om du inte vill. 1401 01:18:48,450 --> 01:18:50,560 Men du kan ändra dem om du vill, göra 1402 01:18:50,560 --> 01:18:53,470 din Finance ser lite annorlunda ut. 1403 01:18:53,470 --> 01:18:57,560 >> Det har fått en del PHP i huvudet lite för att se 1404 01:18:57,560 --> 01:19:01,240 om det finns en annan titel det bör införa denna rubrik. 1405 01:19:01,240 --> 01:19:04,300 Men bara några andra skript, och länkar, och andra saker. 1406 01:19:04,300 --> 01:19:08,700 Head slutar, kroppen börjar och oops, Vi har denna konstiga lilla slutbiten. 1407 01:19:08,700 --> 01:19:14,730 Och det finns en div, precis som en formlös sorts elementet 1408 01:19:14,730 --> 01:19:17,120 som har en idé om mitten. 1409 01:19:17,120 --> 01:19:22,450 >> Och sedan när vi ser sidfot, Vi har i slutet av en div. 1410 01:19:22,450 --> 01:19:25,000 Vi har en botten, som är där sidfotstext är. 1411 01:19:25,000 --> 01:19:26,770 Slutet av div, i slutet av kroppen, i slutet av HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Så vad gör är gör är göra är typ 1413 01:19:29,070 --> 01:19:33,150 av lappa huvudet, en olika PHP-fil som 1414 01:19:33,150 --> 01:19:37,110 kommer att innehålla de faktiska saker som du se, liksom tabellen av bestånden 1415 01:19:37,110 --> 01:19:39,690 Om du köper eller säljer aktier. 1416 01:19:39,690 --> 01:19:41,480 Och då ska man lägga i sidfoten. 1417 01:19:41,480 --> 01:19:44,890 Och modellen view controller Tanken är att vi 1418 01:19:44,890 --> 01:19:49,590 vill separera hur det ser från koden. 1419 01:19:49,590 --> 01:19:53,420 Det är vi vill separera frontend och backend, där frontend är 1420 01:19:53,420 --> 01:20:00,440 de saker som användaren ser, den trevliga visuals-- HTML, CSS, sånt, 1421 01:20:00,440 --> 01:20:02,320 bilder, et cetera. 1422 01:20:02,320 --> 01:20:05,780 Och backend är PHP. 1423 01:20:05,780 --> 01:20:07,710 Detta är kod som du skriver. 1424 01:20:07,710 --> 01:20:10,240 Det är där koden som är gör den egentliga verksamheten. 1425 01:20:10,240 --> 01:20:12,400 Det är när du lägger till ett lager till ditt bord, 1426 01:20:12,400 --> 01:20:14,890 när du ska köpa och sälja, det är backend. 1427 01:20:14,890 --> 01:20:20,210 >> Och vi kan, som du såg, inklusive PHP direkt i HTML. 1428 01:20:20,210 --> 01:20:23,210 Så vad vi kunde ha gjort för detta uppdrag bara haft 1429 01:20:23,210 --> 01:20:26,200 en HTML-fil för varje sida, som inloggning. 1430 01:20:26,200 --> 01:20:30,260 Och sedan på den sidan, bara hade en enorm block av PHP-kod, 1431 01:20:30,260 --> 01:20:33,822 inklusive all kod som den sidan specifikt skulle behöva. 1432 01:20:33,822 --> 01:20:35,780 Och då kunde vi ha gjort det för portfölj. 1433 01:20:35,780 --> 01:20:40,250 Vi kunde ha gjort alla uppköp och försäljning inom de enskilda sidor. 1434 01:20:40,250 --> 01:20:43,680 >> Men eftersom vi gör separat från där 1435 01:20:43,680 --> 01:20:46,660 vi skriver backend kod, vi kan lätt 1436 01:20:46,660 --> 01:20:52,660 ändra hur det ser ut utan ändra varje enskild fil. 1437 01:20:52,660 --> 01:20:55,460 Vi gör saker som bara lägga en ny div till botten 1438 01:20:55,460 --> 01:21:00,720 of-- Hej Jag ändrade sidfoten. 1439 01:21:00,720 --> 01:21:03,710 Du kan bara göra sånt. 1440 01:21:03,710 --> 01:21:07,250 Men också, kan du ändra hela visuella layouten 1441 01:21:07,250 --> 01:21:09,290 utan att det påverkar vad som är går i backend. 1442 01:21:09,290 --> 01:21:12,000 Och du kan ändra hela backend och fortfarande 1443 01:21:12,000 --> 01:21:13,900 har det ser ut precis som det gjorde innan. 1444 01:21:13,900 --> 01:21:14,400 Detta 1445 01:21:14,400 --> 01:21:16,170 >> Är idén om Model View Controller. 1446 01:21:16,170 --> 01:21:19,992 Och det är faktiskt en påtvingad paradigm i några av de programmeringsspråk 1447 01:21:19,992 --> 01:21:21,700 kanske du vill använda för examensarbeten. 1448 01:21:21,700 --> 01:21:25,100 Om du gör iOS utveckling, De har utsikt, 1449 01:21:25,100 --> 01:21:29,120 vilket är vad du ser på iPhone, och då backend som som en separat sak. 1450 01:21:29,120 --> 01:21:31,260 >> Du kan tänka lite. 1451 01:21:31,260 --> 01:21:35,190 Det finns en hel del binärer i datavetenskap, som är roligt, 1452 01:21:35,190 --> 01:21:37,270 eftersom allt är i binärt. 1453 01:21:37,270 --> 01:21:38,550 Jag hade inte planerat det. 1454 01:21:38,550 --> 01:21:41,590 Det var en vits oavsiktlig. 1455 01:21:41,590 --> 01:21:43,860 Ja, vits inte avsedd. 1456 01:21:43,860 --> 01:21:49,070 >> Men som .h filer och .c filer, finns det en hel del separering av saker som vi 1457 01:21:49,070 --> 01:21:49,900 kanske inte behöver. 1458 01:21:49,900 --> 01:21:54,330 Så vi kan bara redigera h filer, eller någon kan bara se en .h fil och vet 1459 01:21:54,330 --> 01:21:57,650 exakt de funktioner som finns i .c fil utan att nödvändigtvis veta 1460 01:21:57,650 --> 01:21:58,870 genomförandet. 1461 01:21:58,870 --> 01:22:02,800 Denna idé att separera komponenter som är beroende av varandra 1462 01:22:02,800 --> 01:22:06,990 men kan sorts komma åt varandra genom olika kanaler, passerar 1463 01:22:06,990 --> 01:22:09,310 variabler, precis inkluderar uttalanden, saker 1464 01:22:09,310 --> 01:22:14,440 så, denna princip bidrar till att skapa applikationer 1465 01:22:14,440 --> 01:22:17,080 som är lättare att redigerad av flera personer, 1466 01:22:17,080 --> 01:22:20,440 lättare kan ändras eller ändras på en stor skala, 1467 01:22:20,440 --> 01:22:24,880 och är lättare att felsöka i många sätt. 1468 01:22:24,880 --> 01:22:28,254 >> Riktigt snabb, har jag några tips för pset7, 1469 01:22:28,254 --> 01:22:31,420 som jag ska göra helskärm så att du inte bara titta på the-- spets spets tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Det finns inte så många tips. 1472 01:22:35,130 --> 01:22:38,060 >> Men jag nämnde PHP är svårt att felsöka. 1473 01:22:38,060 --> 01:22:39,290 Dubbel och trippel kolla upp det. 1474 01:22:39,290 --> 01:22:41,550 Om din kod är helt enkelt inte dyker upp på sidan, 1475 01:22:41,550 --> 01:22:46,240 det är förmodligen en PHP fel, sorry. 1476 01:22:46,240 --> 01:22:48,570 >> Du behöver aldrig titta på CSS om du inte vill. 1477 01:22:48,570 --> 01:22:52,150 Men när du är klar, kan det vara en trevlig liten rolig sak att bara gå in 1478 01:22:52,150 --> 01:22:54,770 och bråka med CSS parametrarna. 1479 01:22:54,770 --> 01:22:58,700 CSS och HTML är ett exempel på en modell visa controller stil sak också, eller hur? 1480 01:22:58,700 --> 01:23:02,150 Du kunde ha stil taggar insidan av HTML-element. 1481 01:23:02,150 --> 01:23:04,800 Men om du typ av lägga ut dem till CSS, 1482 01:23:04,800 --> 01:23:08,180 de blir lättare att redigera och spela runt med och ha kul med. 1483 01:23:08,180 --> 01:23:10,816 >> Behandla CS50 hjälpare fungerar som svarta lådor. 1484 01:23:10,816 --> 01:23:12,940 Du behöver inte veta exakt vad render gör, 1485 01:23:12,940 --> 01:23:16,770 men lita på att alltid göra rätt sak beroende på vad du klarar det, 1486 01:23:16,770 --> 01:23:17,690 sånt här. 1487 01:23:17,690 --> 01:23:21,040 Och jag skulle rekommendera tittar Davids genomgång, 1488 01:23:21,040 --> 01:23:24,490 går igenom alla saker, inte bara todos, 1489 01:23:24,490 --> 01:23:26,960 men du verkligen kan behandla dessa som svarta lådor. 1490 01:23:26,960 --> 01:23:29,280 Gå inte in i dessa funktioner söker buggar. 1491 01:23:29,280 --> 01:23:33,510 >> Och välkommen återkomst av vår overlord Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Bra. 1493 01:23:34,010 --> 01:23:40,430 >> Finns det några slutgiltiga frågor innan vi sorts studsar för dagen? 1494 01:23:40,430 --> 01:23:42,610 Jag fortfarande lever? 1495 01:23:42,610 --> 01:23:44,700 Bra. 1496 01:23:44,700 --> 01:23:47,120 Hi Live människor. 1497 01:23:47,120 --> 01:23:47,620 Bra. 1498 01:23:47,620 --> 01:23:50,260 Finns det längre frågor? 1499 01:23:50,260 --> 01:23:50,760 Nej? 1500 01:23:50,760 --> 01:23:52,884 >> Och då jag tror att vi är bra att gå för i dag. 1501 01:23:52,884 --> 01:23:55,550 Jag ska stanna kvar lite efteråt om folk hade frågor 1502 01:23:55,550 --> 01:23:57,480 de var rädda att fråga på strömmen. 1503 01:23:57,480 --> 01:23:59,790 Men annars har en bra dag. 1504 01:23:59,790 --> 01:24:01,933