1 00:00:00,000 --> 00:00:10,075 >> [MUSIK SPELA] 2 00:00:10,075 --> 00:00:11,629 3 00:00:11,629 --> 00:00:14,420 ALLISON Buchholtz-AU: Okej, alla, välkommen tillbaka till avsnitt. 4 00:00:14,420 --> 00:00:17,420 Förhoppningsvis ni alla hade en bra Halloween helgen, eller Halloweekend, 5 00:00:17,420 --> 00:00:20,009 som jag vilja säga, alla utvilad och återvinns. 6 00:00:20,009 --> 00:00:21,675 Och tack och lov det inte snöar längre. 7 00:00:21,675 --> 00:00:23,230 Det är faktiskt soligt ute. 8 00:00:23,230 --> 00:00:25,040 Jag var riktigt glad över det. 9 00:00:25,040 --> 00:00:28,420 Inte redo att dra ut min vinterkängor. 10 00:00:28,420 --> 00:00:31,820 Förhoppningsvis pset6 gick ganska bra. 11 00:00:31,820 --> 00:00:35,040 >> Om du är trött på C, jag är glad att säga att du är klar med C för nu. 12 00:00:35,040 --> 00:00:37,550 Vi har fullt övergått i webbprogrammering, 13 00:00:37,550 --> 00:00:42,030 så du kommer att arbeta i HTML, PHP, kanske en liten bit av Javascript. 14 00:00:42,030 --> 00:00:44,650 Jag vet inte vad nästa veckas pset är, så jag kan inte garantera 15 00:00:44,650 --> 00:00:47,820 vad ditt nästa pset kommer vara, men denna veckas pset 16 00:00:47,820 --> 00:00:52,290 är CS50 Finance, som är i grunden genomföra den typ av webbsidan 17 00:00:52,290 --> 00:00:57,222 som tillåter dig att köpa och sälja lagerför och hålla reda på dem. 18 00:00:57,222 --> 00:00:59,930 Och det är ganska coolt, eftersom alla det genereras dynamiskt. 19 00:00:59,930 --> 00:01:02,320 Du kan ha olika användare som har var sin egen information, 20 00:01:02,320 --> 00:01:04,580 och du kommer att bli genomföra allt detta. 21 00:01:04,580 --> 00:01:05,970 Det tar ett tag. 22 00:01:05,970 --> 00:01:13,030 Jag tror definitivt att det är lättare än C psets, men det tar längre tid. 23 00:01:13,030 --> 00:01:17,370 Du lär dig ett nytt språk, PHP, som är mycket lik till C, 24 00:01:17,370 --> 00:01:21,390 men naturligtvis kommer att kräva du kan slå upp syntax och förstå 25 00:01:21,390 --> 00:01:23,360 hur du konverterar mellan språken. 26 00:01:23,360 --> 00:01:27,960 >> Men jag tror inte att det finns något super konceptuellt mycket på detta pset. 27 00:01:27,960 --> 00:01:30,087 Det är bara att lära sig nytt språk och att få 28 00:01:30,087 --> 00:01:31,420 genom alla dessa små bitar. 29 00:01:31,420 --> 00:01:34,850 Om ni har läst igenom spec, det är ganska lång. 30 00:01:34,850 --> 00:01:38,200 Jag tror att detta är som 21 sidor, om jag minns rätt. 31 00:01:38,200 --> 00:01:40,130 Det är en lång spec. 32 00:01:40,130 --> 00:01:42,218 Så om du inte har läst det-- 22. 33 00:01:42,218 --> 00:01:43,520 32. 34 00:01:43,520 --> 00:01:44,410 >> Wow. 35 00:01:44,410 --> 00:01:46,280 Så var jag av med 50% där. 36 00:01:46,280 --> 00:01:48,550 Så, 32 sidor. 37 00:01:48,550 --> 00:01:49,820 Så det är långt. 38 00:01:49,820 --> 00:01:54,070 Det finns massor av bitar, men ingen av bitarna skulle vara så illa. 39 00:01:54,070 --> 00:01:55,650 Det är bara en massa. 40 00:01:55,650 --> 00:02:00,310 Så definitivt komma igång tidigt om möjligt, som vanligt, 41 00:02:00,310 --> 00:02:05,480 men jag tror att det ska kännas lite trevligare än särskilt psets gillar 42 00:02:05,480 --> 00:02:10,250 återhämta sig och ändra storlek som är precis mycket svårt att svepa huvudet runt. 43 00:02:10,250 --> 00:02:12,550 >> Så med det, vi kommer att dyka i. 44 00:02:12,550 --> 00:02:14,840 Jag har inte din agenda skjut idag, men vi är 45 00:02:14,840 --> 00:02:17,920 kommer att bli att prata om PHP. 46 00:02:17,920 --> 00:02:20,790 Jag kommer att ge dig lite av en snabbkurs på vissa saker 47 00:02:20,790 --> 00:02:23,040 som du kanske vill veta om PHP. 48 00:02:23,040 --> 00:02:26,470 Olika syntax saker, saker att se upp med. 49 00:02:26,470 --> 00:02:29,400 Vi kommer att tala lite om SQL. 50 00:02:29,400 --> 00:02:33,020 Bara mycket enkla saker där, och sedan även MVC 51 00:02:33,020 --> 00:02:36,380 är Model View Controller, som är hur din pset är inställd, 52 00:02:36,380 --> 00:02:39,801 så att förstå hur det verk kommer att bli super bra. 53 00:02:39,801 --> 00:02:40,300 Okej. 54 00:02:40,300 --> 00:02:42,030 Så PHP. 55 00:02:42,030 --> 00:02:45,050 Ni borde ha gjort något mycket, mycket enkelt 56 00:02:45,050 --> 00:02:48,680 med PHP, vilket är denna botten sak här, 57 00:02:48,680 --> 00:02:53,700 där du lämnat in någon form på topp här som hade vissa namn som du 58 00:02:53,700 --> 00:02:58,860 ingång, och det skulle säga som hej, Ben, eller Hej, Allison, och det skulle dyka upp. 59 00:02:58,860 --> 00:03:02,570 Så detta är faktiskt vad det borde ha sett ut från din pset, 60 00:03:02,570 --> 00:03:06,040 ifall ni ville veta eller inte riktigt lista ut det. 61 00:03:06,040 --> 00:03:14,520 >> Men vi har dessa frågetecken här som visar att det här är PHP. 62 00:03:14,520 --> 00:03:18,850 De slå in den, och sedan htmlspecialcharge, kom ihåg, bara, 63 00:03:18,850 --> 00:03:22,450 se till att du är säker från någon galen injektionsattack 64 00:03:22,450 --> 00:03:26,550 eller om någon försöker sätta galna skadliga tecken 65 00:03:26,550 --> 00:03:30,780 i ditt namn fältet, det gör det inte gillar din server eller whatnot. 66 00:03:30,780 --> 00:03:37,590 >> Och sedan om vi märker, denna HTML formen hade en metod för $ _GET, vilken, 67 00:03:37,590 --> 00:03:42,050 Om vi ​​kommer ihåg våra superglobals från PHP, $ _GET, $ _POST, 68 00:03:42,050 --> 00:03:44,530 vi kommer att gå in i de i en liten bit. 69 00:03:44,530 --> 00:03:50,390 Men vi vet att vi har några namn här som motsvarar namnet 70 00:03:50,390 --> 00:03:51,920 att vi lämnat in. 71 00:03:51,920 --> 00:03:56,930 Så det här är bara ungefär som mycket enkel PHP HTML samarbete 72 00:03:56,930 --> 00:04:00,080 att ni fått från pset sex. 73 00:04:00,080 --> 00:04:02,410 >> Men som egentligen inte besvara vad är PHP. 74 00:04:02,410 --> 00:04:04,850 Självklart är det ett språk, men vi har inte riktigt 75 00:04:04,850 --> 00:04:08,260 pratade om det i detta avsnitt, så det finns lite mer 76 00:04:08,260 --> 00:04:09,740 om vad PHP är. 77 00:04:09,740 --> 00:04:14,270 Så PHP är bara PHP hyper preprocessor. 78 00:04:14,270 --> 00:04:16,399 >> Det är faktiskt anses ett programmeringsspråk 79 00:04:16,399 --> 00:04:20,500 eftersom det har logik, medan om Vi minns talar om HTML, 80 00:04:20,500 --> 00:04:24,980 Vi kallade det ett märkspråk kontra ett programmeringsspråk, eftersom HTML 81 00:04:24,980 --> 00:04:27,790 är strikt modifiera hur det ser ut på sidan. 82 00:04:27,790 --> 00:04:30,650 Det är bara att modifiera om något är fet, 83 00:04:30,650 --> 00:04:35,280 eller om det är en form, element, eller något liknande. 84 00:04:35,280 --> 00:04:36,750 Den har inte någon logik. 85 00:04:36,750 --> 00:04:38,770 Det har inte öglor eller villkor. 86 00:04:38,770 --> 00:04:40,940 Du kan inte fel kolla saker. 87 00:04:40,940 --> 00:04:44,810 Du skulle antingen visa saker på ett visst sätt eller be om saker 88 00:04:44,810 --> 00:04:45,490 från användaren. 89 00:04:45,490 --> 00:04:47,180 Det var allt. 90 00:04:47,180 --> 00:04:51,780 >> Så med PHP, det faktiskt gör det möjligt för oss att göra alla dessa mer logiska saker, 91 00:04:51,780 --> 00:04:56,840 liksom validera indata eller manipulera det på något sätt. 92 00:04:56,840 --> 00:05:02,570 Vi kan kombinera det med HTML, som vi just såg i din sista pset och just nu, 93 00:05:02,570 --> 00:05:05,280 och det ger oss möjlighet att skapa dessa dynamiska webbsidor. 94 00:05:05,280 --> 00:05:08,900 Så om ni ever-- jag vet inte om du var som mig, men i högstadiet 95 00:05:08,900 --> 00:05:13,820 de hade oss ta detta IT-klass där Vi skapade bara HTML-sidor, 96 00:05:13,820 --> 00:05:20,160 och de var statisk och klicka runt till andra saker, men de har aldrig ändrats. 97 00:05:20,160 --> 00:05:25,960 >> Med dynamiska sådana, vad vi kan gör är, som med CS50 Finance, 98 00:05:25,960 --> 00:05:27,870 du kommer att ha olika användare. 99 00:05:27,870 --> 00:05:30,992 Beroende på dessa användare " preferenser, och vad de ska köpa 100 00:05:30,992 --> 00:05:32,700 eller vad de säljer för sina lager, 101 00:05:32,700 --> 00:05:35,050 du kommer att visa olika saker. 102 00:05:35,050 --> 00:05:38,110 Så om det finns några identifiera karakteristiska 103 00:05:38,110 --> 00:05:41,990 för användare som använder den här webbsida kan vi dynamiskt 104 00:05:41,990 --> 00:05:44,720 bestämma vad som ska visas för dem. 105 00:05:44,720 --> 00:05:49,720 Det är inte samma sak för varje enskild person, som om vi hade bara HTML, 106 00:05:49,720 --> 00:05:52,400 sidan skulle vara densamma för varje enskild person som besökte. 107 00:05:52,400 --> 00:05:55,790 PHP ger oss möjlighet att anpassa sidor. 108 00:05:55,790 --> 00:06:01,670 >> Och då kan vi antingen sätta dem i samma fil, vilket, som i fallet 109 00:06:01,670 --> 00:06:06,670 innan här, såg vi att Vi har HTML alla här 110 00:06:06,670 --> 00:06:09,760 och sedan har vi denna lilla bit av PHP. 111 00:06:09,760 --> 00:06:12,690 Vi kan göra så där, eller med CS50 Finance, 112 00:06:12,690 --> 00:06:16,310 om ni har tittat på files-- och vi borde ha tid 113 00:06:16,310 --> 00:06:19,541 att gå igenom ett par av dem tillsammans vid slutet av section-- vi 114 00:06:19,541 --> 00:06:21,540 kan se hur du kan faktiskt hålla dem åtskilda, 115 00:06:21,540 --> 00:06:24,720 som egentligen är en bättre sak att göra. 116 00:06:24,720 --> 00:06:26,550 >> So. 117 00:06:26,550 --> 00:06:27,680 Snabbkurs. 118 00:06:27,680 --> 00:06:32,860 Alla snabba enkla saker du kanske behöver veta för PHP. 119 00:06:32,860 --> 00:06:34,470 Deklarera variabler. 120 00:06:34,470 --> 00:06:37,970 Det blå är lite irriterande, men förhoppningsvis ni kan se den. 121 00:06:37,970 --> 00:06:39,850 Om inte, ska jag skriva det ombord krita. 122 00:06:39,850 --> 00:06:41,370 De deklarerar variabler. 123 00:06:41,370 --> 00:06:46,710 En sak att veta är att, till skillnad från C, PHP är löst eller dynamiskt skrivit, 124 00:06:46,710 --> 00:06:50,870 vilket innebär att du inte behöver berätta för en variabel vilken typ det är. 125 00:06:50,870 --> 00:06:55,710 Du kan bara helt enkelt säga några rörliga är lika med vad du vill, 126 00:06:55,710 --> 00:07:00,440 och det kommer att avgöra vilken typ av den variabeln vid körning för dig. 127 00:07:00,440 --> 00:07:05,410 >> Som du ser, kan detta skapa några mycket intressanta saker. 128 00:07:05,410 --> 00:07:09,130 Men för de flesta ändamål, du behöver inte ange typ. 129 00:07:09,130 --> 00:07:12,580 Du kan, och du kan skriva gjutna saker som du normalt 130 00:07:12,580 --> 00:07:15,900 skulle inte se om du vill tvinga den att vara en viss typ, 131 00:07:15,900 --> 00:07:17,090 men du behöver inte. 132 00:07:17,090 --> 00:07:19,810 Det kommer inte att skrika på dig om du bara deklarera en variabel 133 00:07:19,810 --> 00:07:21,910 och inte anger en typ för det. 134 00:07:21,910 --> 00:07:25,199 >> Så om du inte kan läsa this-- Jag vet att det är inte den bästa. 135 00:07:25,199 --> 00:07:28,490 Jag trodde att det skulle dyka upp better-- den ditt sätt att initiera en variabel är bara 136 00:07:28,490 --> 00:07:31,270 med ett dollartecken, vad du vill att den ska kallas, 137 00:07:31,270 --> 00:07:33,240 och sedan vad du koppla den. 138 00:07:33,240 --> 00:07:36,520 Så i detta fall, är detta något $ var = 3. 139 00:07:36,520 --> 00:07:40,450 Så om vi någonsin använder $ var någonstans, kommer det bara 140 00:07:40,450 --> 00:07:42,760 vara samma som att sätta 3 där. 141 00:07:42,760 --> 00:07:43,650 OK? 142 00:07:43,650 --> 00:07:46,480 >> Så, eventuell rörlig, precis dollartecken, oavsett 143 00:07:46,480 --> 00:07:50,210 du vill ringa din variabel, och vad du vill att det ska lika. 144 00:07:50,210 --> 00:07:51,430 Lite svalare. 145 00:07:51,430 --> 00:07:56,156 Mindre att skriva för att initiera en variabel, eller hur? 146 00:07:56,156 --> 00:07:57,530 Betyder det vettigt för alla? 147 00:07:57,530 --> 00:08:02,280 Bara snabb syntax skillnaden mellan C och PHP. 148 00:08:02,280 --> 00:08:06,440 >> Arrayer är mycket svalare i PHP. 149 00:08:06,440 --> 00:08:09,620 Vi kan ge dem nycklarna. 150 00:08:09,620 --> 00:08:13,180 Så sätt att tänka på det är att, om vi någonsin 151 00:08:13,180 --> 00:08:16,610 ville komma åt en elementet inom en matris, 152 00:08:16,610 --> 00:08:19,290 vi behövde veta index på det, eller hur? 153 00:08:19,290 --> 00:08:24,290 Så vi vet att med C, vi kunde komma åt det första elementet 154 00:08:24,290 --> 00:08:28,650 genom att göra array fäste noll, eller om vi vill det första elementet, array fäste 155 00:08:28,650 --> 00:08:29,360 en. 156 00:08:29,360 --> 00:08:31,910 Och om vi ville ha något i det, vi kanske bara 157 00:08:31,910 --> 00:08:35,850 ha för att iterera igenom, om inte vi faktiskt visste index. 158 00:08:35,850 --> 00:08:38,320 >> En sak som verkligen är cool med PHP arrayer 159 00:08:38,320 --> 00:08:40,850 är att de är vad vi kallar associativ. 160 00:08:40,850 --> 00:08:44,970 Så vi kan associera någon nyckel till ett visst värde, 161 00:08:44,970 --> 00:08:47,340 och vi faktiskt kommer att-- Jag ska visa dig 162 00:08:47,340 --> 00:08:50,370 hur vi kan använda detta i en sekund. 163 00:08:50,370 --> 00:08:54,330 Men i grund och botten, om du någonsin vill att initiera en array så där, 164 00:08:54,330 --> 00:08:56,020 har du några $ array. 165 00:08:56,020 --> 00:08:59,622 >> Så på samma sätt, det är bara viss variabel som vi skapar. 166 00:08:59,622 --> 00:09:01,330 Detta skulle kunna kallas vad du ville. 167 00:09:01,330 --> 00:09:03,310 Detta kan vara $ exempel. 168 00:09:03,310 --> 00:09:04,930 Bara en annan variabel. 169 00:09:04,930 --> 00:09:09,510 Vad gör det en array är fäste syntax som vi har här. 170 00:09:09,510 --> 00:09:14,560 Precis som vanligt C. Och vi ha viss nyckel till något värde. 171 00:09:14,560 --> 00:09:19,480 Så nyckel1 går till värde1, KEY2 två går till value2. 172 00:09:19,480 --> 00:09:25,080 Dessa par är separerade med en kommatecken, precis som vanliga arrayer. 173 00:09:25,080 --> 00:09:25,810 >> Emellertid. 174 00:09:25,810 --> 00:09:26,520 Stor en. 175 00:09:26,520 --> 00:09:27,270 Nycklar är valfria. 176 00:09:27,270 --> 00:09:28,510 Du behöver inte använda dem. 177 00:09:28,510 --> 00:09:30,850 Och om du inte gör det, då är det bara normalt. 178 00:09:30,850 --> 00:09:32,030 Fråga? 179 00:09:32,030 --> 00:09:33,540 Eller, åh. 180 00:09:33,540 --> 00:09:37,829 >> PUBLIK: Tja, om höger. 181 00:09:37,829 --> 00:09:39,120 Var är minnet kommer från? 182 00:09:39,120 --> 00:09:43,425 Kan det också vara samma som [OHÖRBAR] och från stacken? 183 00:09:43,425 --> 00:09:45,277 Är det också med PHP? 184 00:09:45,277 --> 00:09:46,485 Som när vi länka dem? 185 00:09:46,485 --> 00:09:49,070 >> ALLISON Buchholtz-AU: Med PHP, behöver vi inte brukar 186 00:09:49,070 --> 00:09:52,670 att oroa sig där vår minne kommer från. 187 00:09:52,670 --> 00:09:54,670 Vi vill inte spendera mycket tid att prata om det, 188 00:09:54,670 --> 00:09:58,450 så det är egentligen inte något du behöver oroa dig. 189 00:09:58,450 --> 00:10:00,620 Så nycklar är valfria. 190 00:10:00,620 --> 00:10:04,780 På samma sätt, om du inte vill göra denna tillhörande, 191 00:10:04,780 --> 00:10:09,910 du bara vill ha en vanlig array där array noll är det första elementet 192 00:10:09,910 --> 00:10:13,190 och matrisen en är den andra element, kan du göra det exakt 193 00:10:13,190 --> 00:10:17,886 som du skulle i C. Du har någon variabel som kommer att vara din array, 194 00:10:17,886 --> 00:10:20,110 och det är lika dessa konsoler här. 195 00:10:20,110 --> 00:10:20,610 Ja. 196 00:10:20,610 --> 00:10:22,693 >> PUBLIK: Har den samma punkt till notation. 197 00:10:22,693 --> 00:10:26,250 Precis, jag kan göra som en array ++, och som pekar på den andra en. 198 00:10:26,250 --> 00:10:30,260 >> ALLISON Buchholtz-AU: Du kan do-- Tja, du kan ha lite iterator, i, 199 00:10:30,260 --> 00:10:34,300 att du kan göra i ++ och gör en matris med jag på samma sätt. 200 00:10:34,300 --> 00:10:35,680 Men det är det. 201 00:10:35,680 --> 00:10:39,630 Så som i detta fall, matris med 1 skulle motsvara 20. 202 00:10:39,630 --> 00:10:42,530 Samma typ av indexering notation. 203 00:10:42,530 --> 00:10:51,330 Detta är i grunden bara en implicit sak Här, där det står noll, noll till 10, 204 00:10:51,330 --> 00:10:54,640 till 1-20, 2-30. 205 00:10:54,640 --> 00:10:56,760 Det är bara implicita nycklar för det. 206 00:10:56,760 --> 00:10:59,990 Vilka förändringar med PHP är att du nu har makten 207 00:10:59,990 --> 00:11:02,660 att överlåta dessa nycklar till gör vad du vill. 208 00:11:02,660 --> 00:11:13,820 >> Så en sak är här. 209 00:11:13,820 --> 00:11:18,230 Så jag har bara några exempel här som jag skrev upp för er 210 00:11:18,230 --> 00:11:22,010 eftersom jag känner mig som exempel alltid hjälpa mer än bara det abstrakta. 211 00:11:22,010 --> 00:11:26,590 Så i det här fallet, vi har någon associativ array 212 00:11:26,590 --> 00:11:31,990 det är mitt förnamn, mitt efternamn, och jag 213 00:11:31,990 --> 00:11:35,390 am ekande, vilket är precis för alla ändamål här 214 00:11:35,390 --> 00:11:38,500 kommer att skriva ut till utgången här. 215 00:11:38,500 --> 00:11:39,300 >> Och den säger, OK. 216 00:11:39,300 --> 00:11:46,680 Skriv ut det värde som motsvarar array vid nyckel Allison. 217 00:11:46,680 --> 00:11:50,860 Och jag kan också skicka er killar all denna kod efter klassen. 218 00:11:50,860 --> 00:11:53,700 Så när vi kör detta, vad gör du tror kommer att hända? 219 00:11:53,700 --> 00:11:56,239 Vad kommer att skriva ut? 220 00:11:56,239 --> 00:11:57,280 PUBLIK: Ditt efternamn. 221 00:11:57,280 --> 00:11:58,738 ALLISON Buchholtz-AU: Mitt efternamn. 222 00:11:58,738 --> 00:12:00,000 Det gör det. 223 00:12:00,000 --> 00:12:00,960 Just här. 224 00:12:00,960 --> 00:12:02,400 Skriv ut. 225 00:12:02,400 --> 00:12:07,000 Så om vi skulle ändra på detta och vi skulle lägga till någon annan att vår list-- 226 00:12:07,000 --> 00:12:11,919 Så låt oss säga att vi har Emma här, och vi förknippar din sista name-- 227 00:12:11,919 --> 00:12:13,252 Få se om jag stava det rätt. 228 00:12:13,252 --> 00:12:13,714 >> PUBLIK: Ja. 229 00:12:13,714 --> 00:12:14,640 >> ALLISON Buchholtz-AU: Ja. 230 00:12:14,640 --> 00:12:15,010 >> PUBLIK: Bra jobbat. 231 00:12:15,010 --> 00:12:16,218 >> ALLISON Buchholtz-AU: Lovely. 232 00:12:16,218 --> 00:12:25,370 Så nu om vi har det här och Vi ville hitta ditt efternamn, 233 00:12:25,370 --> 00:12:26,290 du har det där. 234 00:12:26,290 --> 00:12:31,270 Så du kan bara tänka på det som ersätter det viktigaste här. 235 00:12:31,270 --> 00:12:33,190 Du bara ersätter indexet. 236 00:12:33,190 --> 00:12:36,845 Så det kan du bara söka genom en rad mycket lättare. 237 00:12:36,845 --> 00:12:38,220 Du behöver inte känna till indexet. 238 00:12:38,220 --> 00:12:43,470 Så länge som denna nyckel som du söker för existerar någonstans i arrayen, 239 00:12:43,470 --> 00:12:47,660 PHP kommer att finna det och det kommer tillbaka det värde i samband med det. 240 00:12:47,660 --> 00:12:49,840 Så det ger dig mycket mer makt med dina arrayer. 241 00:12:49,840 --> 00:12:50,340 Ja. 242 00:12:50,340 --> 00:12:53,131 >> PUBLIK: Om du har två nycklar på samma, kommer det att ge dig ett fel? 243 00:12:53,131 --> 00:12:55,830 ALLISON Buchholtz-AU: Det bör ge dig ett fel, ja. 244 00:12:55,830 --> 00:12:58,520 Gör det lite mer meningsfullt för er? 245 00:12:58,520 --> 00:13:07,640 Och på samma sätt har vi en matris här som inte har några nycklar. 246 00:13:07,640 --> 00:13:10,910 Också detta är en syntax som du kanske vill 247 00:13:10,910 --> 00:13:13,550 att vara medveten om, eftersom du kommer måste använda detta i din pset. 248 00:13:13,550 --> 00:13:17,317 >> När du gör en eko, du har dessa citat, 249 00:13:17,317 --> 00:13:19,400 och när du hänvisar att en del av en array, 250 00:13:19,400 --> 00:13:22,180 du måste ha dessa klamrar runt dem. 251 00:13:22,180 --> 00:13:25,630 Det finns en slags irriterande, men du måste bara göra det. 252 00:13:25,630 --> 00:13:28,010 Så bara något att ha i åtanke. 253 00:13:28,010 --> 00:13:31,490 Om du kör in i fel, Jag vet att detta finns i min samling 254 00:13:31,490 --> 00:13:34,523 men det är att kasta fel på mig, prova att sätta hängslen runt det 255 00:13:34,523 --> 00:13:37,180 och det bör fungera. 256 00:13:37,180 --> 00:13:40,810 >> Så i detta fallet här, är detta en normal C array som vi är vana vid. 257 00:13:40,810 --> 00:13:45,810 Har tre, fem, och sex, och vi bara vill skriva ut den första delen, 258 00:13:45,810 --> 00:13:47,850 så detta bör skriva ut tre. 259 00:13:47,850 --> 00:13:51,830 Och jag kör alla dessa, så förhoppningsvis ingenting förändrats. 260 00:13:51,830 --> 00:13:54,460 Vi ser i botten här, det bara skriver ut tre. 261 00:13:54,460 --> 00:13:57,050 262 00:13:57,050 --> 00:13:58,040 Cool. 263 00:13:58,040 --> 00:14:00,000 Det vettigt för alla? 264 00:14:00,000 --> 00:14:01,280 Associativa arrayer. 265 00:14:01,280 --> 00:14:03,150 Mycket kallare än normala matriser. 266 00:14:03,150 --> 00:14:09,640 >> Detta är why-- Har David visa PHP genomförandet av pset6 267 00:14:09,640 --> 00:14:11,751 Under föreläsningen alls? 268 00:14:11,751 --> 00:14:12,250 OK. 269 00:14:12,250 --> 00:14:13,300 Så ska jag visa dig. 270 00:14:13,300 --> 00:14:13,770 Jag vet inte det från t-- 271 00:14:13,770 --> 00:14:14,680 >> PUBLIK: Han gjorde förra veckan. 272 00:14:14,680 --> 00:14:15,560 >> ALLISON Buchholtz-AU: Var det förra veckan? 273 00:14:15,560 --> 00:14:15,870 >> PUBLIK: Ja. 274 00:14:15,870 --> 00:14:16,995 >> ALLISON Buchholtz-AU: Ja. 275 00:14:16,995 --> 00:14:20,800 Så stavnings kan göras Gillar sex rader med PHP, och en del av kraften i det 276 00:14:20,800 --> 00:14:25,640 är detta associativ array där Du kan bara ladda varje ord i, 277 00:14:25,640 --> 00:14:28,290 och du har det lika med sant eller falskt. 278 00:14:28,290 --> 00:14:31,410 Och så att du kan säga, åh. 279 00:14:31,410 --> 00:14:39,130 Återgå ordbok på några ord och om det är det, det kommer att återvända sant. 280 00:14:39,130 --> 00:14:42,130 Annars kommer det inte att hitta det och det kommer att returnera false. 281 00:14:42,130 --> 00:14:45,810 Så lite av en cool liten sak. 282 00:14:45,810 --> 00:14:46,750 >> Okej. 283 00:14:46,750 --> 00:14:48,990 Så de är associativa arrayer. 284 00:14:48,990 --> 00:14:50,150 De är ganska cool. 285 00:14:50,150 --> 00:14:51,830 Jag gillar verkligen dem. 286 00:14:51,830 --> 00:14:55,340 Och självklart this-- Ah. 287 00:14:55,340 --> 00:14:56,290 OK. 288 00:14:56,290 --> 00:14:57,880 Nu det funkar. 289 00:14:57,880 --> 00:15:00,700 Kanske. 290 00:15:00,700 --> 00:15:01,537 OK. 291 00:15:01,537 --> 00:15:02,120 En annan sak. 292 00:15:02,120 --> 00:15:07,680 Så, med jämlikhet, bara en cool sak att ha i åtanke. 293 00:15:07,680 --> 00:15:12,140 Med PHP, eftersom det är dynamiskt skrivit, 294 00:15:12,140 --> 00:15:16,110 typ kan ändras beroende på när du kör det, hur du kör det. 295 00:15:16,110 --> 00:15:19,890 Jag har faktiskt några coola exempel som jag ska visa er. 296 00:15:19,890 --> 00:15:23,350 >> Men == bara söker efter könen efter typ jonglering. 297 00:15:23,350 --> 00:15:28,890 Så om du har något som är som tecknet 1 och nummer 1, 298 00:15:28,890 --> 00:15:31,890 PHP skulle säga att de är lika, eftersom det 299 00:15:31,890 --> 00:15:35,990 kan jonglera de typer av den två av dem förrän det är lika, 300 00:15:35,990 --> 00:15:38,480 vilket kanske för ditt fall är bra. 301 00:15:38,480 --> 00:15:44,170 >> Om du behöver för att se om de är Samma typ av värde och samma typ, 302 00:15:44,170 --> 00:15:45,305 du vill att detta ===. 303 00:15:45,305 --> 00:15:48,150 Och jag tror inte att du har någon fall där du behöver använda den 304 00:15:48,150 --> 00:15:52,570 i din pset, men för en hel del Ni som kommer att gå på att göra webbsidor 305 00:15:52,570 --> 00:15:57,340 för din slutliga projekt och saker, det bra att veta att == och === 306 00:15:57,340 --> 00:16:01,690 är olika, och det är en bra distinktion att förstå. 307 00:16:01,690 --> 00:16:02,400 >> OK. 308 00:16:02,400 --> 00:16:02,980 So. 309 00:16:02,980 --> 00:16:04,460 Foreach slingor. 310 00:16:04,460 --> 00:16:07,920 De är ett sätt att iterera genom en matris. 311 00:16:07,920 --> 00:16:11,714 Så, precis som arrayer blev så mycket svalare i PHP, 312 00:16:11,714 --> 00:16:13,630 ditt sätt att iterera genom en rad, tror jag, 313 00:16:13,630 --> 00:16:16,250 också blir mycket kallare och mycket mer kraftfull. 314 00:16:16,250 --> 00:16:22,710 Så istället för att behöva skapa några för jag är lika med 0, och vad som helst, 315 00:16:22,710 --> 00:16:24,890 och sedan uppdatera det Jag som du går igenom, 316 00:16:24,890 --> 00:16:27,730 Vi har den här härliga foreach loop. 317 00:16:27,730 --> 00:16:36,340 >> Så här är det allmän standardiserad strukturen av dessa två. 318 00:16:36,340 --> 00:16:41,180 Så du antingen har foreach viss matris som det värde du vill iterera som. 319 00:16:41,180 --> 00:16:46,750 Så detta är namnet på uppsättningen variabel som du vill referera till, 320 00:16:46,750 --> 00:16:50,600 och detta är vad du vill att kalla det inom slingan. 321 00:16:50,600 --> 00:16:51,420 OK? 322 00:16:51,420 --> 00:16:56,810 Så detta motsvarar varje element i arrayen, 323 00:16:56,810 --> 00:16:59,500 och du använder detta värde i denna slinga. 324 00:16:59,500 --> 00:17:00,675 >> Jag har ett exempel. 325 00:17:00,675 --> 00:17:02,930 Jag vet exempel är så mycket bättre. 326 00:17:02,930 --> 00:17:05,119 Och så detta är om det finns inga nycklar, så det här är som 327 00:17:05,119 --> 00:17:11,170 om vi bara har en där nycklarna är de normala indexen för din array. 328 00:17:11,170 --> 00:17:14,770 Eller det är också i det fallet om du har ingen användning för nycklarna. 329 00:17:14,770 --> 00:17:16,690 Om du inte bryr dig om nycklar och du bara 330 00:17:16,690 --> 00:17:20,260 vill iterera igenom med värdena för var och en av dem i vilken ordning, 331 00:17:20,260 --> 00:17:20,950 det är bra. 332 00:17:20,950 --> 00:17:22,609 >> Du kan använda strukturen. 333 00:17:22,609 --> 00:17:28,640 Annars, om det finns nycklar, vår $ Värdet bara ändras till $ nyckelvärdet. 334 00:17:28,640 --> 00:17:30,660 Så det bara ändras till ett nyckelvärde paret. 335 00:17:30,660 --> 00:17:34,780 Och då kan vi hänvisa till $ nyckel och $ värde inom vår slinga. 336 00:17:34,780 --> 00:17:35,900 OK? 337 00:17:35,900 --> 00:17:36,660 So. 338 00:17:36,660 --> 00:17:37,810 Exempel. 339 00:17:37,810 --> 00:17:38,610 Gör det trevligare. 340 00:17:38,610 --> 00:17:48,910 341 00:17:48,910 --> 00:17:49,410 OK. 342 00:17:49,410 --> 00:17:56,780 >> Så vi har här Här, där vi har en del 343 00:17:56,780 --> 00:18:01,460 är-- Du kan också skapa en array som denna 344 00:18:01,460 --> 00:18:05,690 genom att ha några variabel lika till array med parenteser, 345 00:18:05,690 --> 00:18:08,340 eller så kan du bara göra fäste. 346 00:18:08,340 --> 00:18:11,890 Du bör göra konsolen, men Detta är ett annat sätt att göra det. 347 00:18:11,890 --> 00:18:16,220 Så här har vi en viss uppsättning av tre delar av en, två och tre, 348 00:18:16,220 --> 00:18:18,300 och vi har vår foreach. 349 00:18:18,300 --> 00:18:23,510 >> Lägg märke till detta motsvarar den array som vi iteration över, 350 00:18:23,510 --> 00:18:28,330 och detta är vad vi kallar Varje sak i vår samling. 351 00:18:28,330 --> 00:18:32,670 Och allt detta gör är att det är kommer att skriva ut varje värde. 352 00:18:32,670 --> 00:18:45,590 Så om vi kör det, märker vi att vi har värdet ett, värde två, värdet tre. 353 00:18:45,590 --> 00:18:54,080 >> Och på samma sätt som typiskt arrayer måste vara av en typ, 354 00:18:54,080 --> 00:18:57,570 arrayer behöver inte alla vara av samma typ här. 355 00:18:57,570 --> 00:18:58,690 Så nu har vi några int. 356 00:18:58,690 --> 00:19:00,910 Vi har två strängar. 357 00:19:00,910 --> 00:19:05,332 Så dina arrayer kan få mycket mer kraftfull 358 00:19:05,332 --> 00:19:07,040 och kanske lite bitars smutsigare, beroende 359 00:19:07,040 --> 00:19:08,500 på det sätt som du vill titta på det. 360 00:19:08,500 --> 00:19:10,970 Så vi kan ändra detta till vad vi vill. 361 00:19:10,970 --> 00:19:12,860 Vi använder värde. 362 00:19:12,860 --> 00:19:14,630 Det är bara standard som vi använder. 363 00:19:14,630 --> 00:19:19,650 Men, bara viktigt att veta att vi kan kallar detta som disk om vi ville. 364 00:19:19,650 --> 00:19:25,070 Och så länge de matchar, uppenbarligen alla är glada. 365 00:19:25,070 --> 00:19:30,600 Om du någonsin vill köra ett PHP kör något liknande detta kommando 366 00:19:30,600 --> 00:19:33,800 line du vet detta Här, du bara gör PHP, 367 00:19:33,800 --> 00:19:36,090 och sedan vad fil du vill köra. 368 00:19:36,090 --> 00:19:39,130 >> Så om du vill röra runt med PHP och mer logiken 369 00:19:39,130 --> 00:19:42,710 och du egentligen inte behöver se ut i en webbläsare, 370 00:19:42,710 --> 00:19:44,830 Du kan bara köra det i kommandoraden så där 371 00:19:44,830 --> 00:19:48,290 och eko kommer att skriva ut ut vad du vill. 372 00:19:48,290 --> 00:19:50,880 OK. 373 00:19:50,880 --> 00:20:00,640 Det andra sättet som vi har är så här. 374 00:20:00,640 --> 00:20:06,974 Så det här är ett fall där kanske du vill att använda både nyckeln och värdet, 375 00:20:06,974 --> 00:20:08,890 Jag vet att det är som super contrived exempel 376 00:20:08,890 --> 00:20:11,950 men jag hoppas att de gör det lite tydligare. 377 00:20:11,950 --> 00:20:14,940 Så här har vi någon array igen, men den här gången, 378 00:20:14,940 --> 00:20:19,450 istället för att bara ha du vet att det finns ingen nyckel. 379 00:20:19,450 --> 00:20:20,870 Vi har nycklar för varje av dessa. 380 00:20:20,870 --> 00:20:24,670 Så en kommer bli en, kommer b motsvara till två, kommer och c motsvara tre. 381 00:20:24,670 --> 00:20:27,030 Och i detta fall, om Vi skriver det här sättet, 382 00:20:27,030 --> 00:20:31,580 Vi har tillgång till både nyckeln och värde för var och en av dessa. 383 00:20:31,580 --> 00:20:36,570 >> Så när vi kör detta, Vi får var och en av dem. 384 00:20:36,570 --> 00:20:41,530 Så det skriver ut våra nycklar och motsvarande värden. 385 00:20:41,530 --> 00:20:46,940 En annan cool sak är att, och jag vet sade som den här inte har nycklar, 386 00:20:46,940 --> 00:20:51,540 men det alltid implicit har en nyckel för om du inte delegera 387 00:20:51,540 --> 00:20:54,050 en nyckel, naturligtvis, din nycklar är bara din index 388 00:20:54,050 --> 00:20:59,230 eller index så vi kunde alltid också göra detta. 389 00:20:59,230 --> 00:20:59,730 Gillar du. 390 00:20:59,730 --> 00:21:02,500 391 00:21:02,500 --> 00:21:03,400 Jag kommer att skriva ut. 392 00:21:03,400 --> 00:21:09,240 393 00:21:09,240 --> 00:21:13,420 Så i detta fall, om du märker, vi har våra implicita nycklar 394 00:21:13,420 --> 00:21:15,930 av noll, ett, och två här. 395 00:21:15,930 --> 00:21:20,020 396 00:21:20,020 --> 00:21:25,600 >> Och på samma sätt med den här, Du kan alltid bara säga r som värde, 397 00:21:25,600 --> 00:21:27,910 och du bara har tillgång till värdet. 398 00:21:27,910 --> 00:21:30,685 Du bryr dig inte om ditt nycklar, även om din har nycklar, 399 00:21:30,685 --> 00:21:32,810 om du inte bryr dig om dem, du behöver inte nödvändigtvis 400 00:21:32,810 --> 00:21:35,970 måste sätta dem i din foreach loop. 401 00:21:35,970 --> 00:21:37,953 Är det meningsfullt för alla? 402 00:21:37,953 --> 00:21:39,764 >> PUBLIK: Kan du bara kallar nycklarna också? 403 00:21:39,764 --> 00:21:42,180 ALLISON Buchholtz-AU: Ja du kunde helt göra det också. 404 00:21:42,180 --> 00:21:44,945 405 00:21:44,945 --> 00:21:45,570 Faktiskt, vänta. 406 00:21:45,570 --> 00:21:45,840 Håll ut. 407 00:21:45,840 --> 00:21:46,630 skulle det-- No. 408 00:21:46,630 --> 00:21:49,663 Om du vill ha nyckeln, sedan du behöver göra nyckeln till värde. 409 00:21:49,663 --> 00:21:50,496 PUBLIK: Skapa värde. 410 00:21:50,496 --> 00:21:50,870 ALLISON Buchholtz-AU: Ja. 411 00:21:50,870 --> 00:21:52,530 Och du bara aldrig använda värdet är allt. 412 00:21:52,530 --> 00:21:53,236 >> PUBLIK: OK. 413 00:21:53,236 --> 00:21:55,610 ALLISON Buchholtz-AU: Om du bara sätta en sak där, 414 00:21:55,610 --> 00:22:00,010 det kommer att anta att du är talar om värdet, inte nyckeln. 415 00:22:00,010 --> 00:22:02,070 Bra fråga. 416 00:22:02,070 --> 00:22:02,600 Okej. 417 00:22:02,600 --> 00:22:06,390 418 00:22:06,390 --> 00:22:08,170 Cool. 419 00:22:08,170 --> 00:22:09,032 Egentligen håll. 420 00:22:09,032 --> 00:22:09,990 Låt mig se vad jag har. 421 00:22:09,990 --> 00:22:13,600 422 00:22:13,600 --> 00:22:18,260 Så innan vi får in inlägget och få, jag vill bara visa er lite 423 00:22:18,260 --> 00:22:23,680 om hur det är dynamiskt maskinskrivna, vilket är ganska häftigt. 424 00:22:23,680 --> 00:22:24,450 Jag har alla dessa. 425 00:22:24,450 --> 00:22:28,160 Jag har liksom fyra exempel här uppe, och jag kommer att skicka all denna kod 426 00:22:28,160 --> 00:22:30,580 efter lektionen. 427 00:22:30,580 --> 00:22:34,440 >> Så här har vi någon variabel a. 428 00:22:34,440 --> 00:22:36,500 Det är bara 1 plus 1, eller hur? 429 00:22:36,500 --> 00:22:40,930 Och vi kommer att skriva ut vad det är lika med, och sedan har vi några slag. 430 00:22:40,930 --> 00:22:46,066 Och någon som har några gissningar om vilken typ det kommer att bli? 431 00:22:46,066 --> 00:22:46,890 >> PUBLIK: En int. 432 00:22:46,890 --> 00:22:48,560 >> ALLISON Buchholtz-AU: Ja, det är en int. 433 00:22:48,560 --> 00:22:49,890 Så det bara lägger ihop dem. 434 00:22:49,890 --> 00:22:51,671 Det är en int. 435 00:22:51,671 --> 00:22:52,170 Alla bra. 436 00:22:52,170 --> 00:22:56,440 437 00:22:56,440 --> 00:23:05,590 Så detta nästa, vi har vad ser ut som strängar. 438 00:23:05,590 --> 00:23:11,000 När vi kör detta, tycker det, oh. 439 00:23:11,000 --> 00:23:13,720 Du är faktiskt försöker att bara lägga till saker. 440 00:23:13,720 --> 00:23:15,140 Du bara blev förvirrad. 441 00:23:15,140 --> 00:23:17,410 Så jag ska bara fixa det åt dig. 442 00:23:17,410 --> 00:23:18,090 Du betydde int. 443 00:23:18,090 --> 00:23:19,160 Jag vet att du menade int. 444 00:23:19,160 --> 00:23:25,190 >> Så det här är ett av de sätt du kan se, har PHP en egen vilja. 445 00:23:25,190 --> 00:23:28,800 Även om vi uttryckligen sagt, ser, är dessa ettor är strängar. 446 00:23:28,800 --> 00:23:30,120 Jag menar strängen ett. 447 00:23:30,120 --> 00:23:32,160 Men den säger, åh, men du försöker lägga till dem, 448 00:23:32,160 --> 00:23:34,460 så du måste betyda att det är ett heltal. 449 00:23:34,460 --> 00:23:35,950 Lita på mig bara på det här. 450 00:23:35,950 --> 00:23:38,920 Så det säger att det är ett heltal, och det lägger till dem som vanligt. 451 00:23:38,920 --> 00:23:42,460 Så sorts kyla om man ska att få lata med dina saker, 452 00:23:42,460 --> 00:23:45,470 eller om du vill lägga till något. 453 00:23:45,470 --> 00:23:48,690 >> En bra sak är att, om du tänker tillbaka på pset2, 454 00:23:48,690 --> 00:23:51,840 något som var användaren matas in, höger, som vi tror 455 00:23:51,840 --> 00:23:54,010 är en röding eller en sträng i början. 456 00:23:54,010 --> 00:23:57,950 Nu behöver vi inte uttryckligen säger, åh, gör detta till en int. 457 00:23:57,950 --> 00:23:59,790 PHP skulle bara vara som, oh yeah. 458 00:23:59,790 --> 00:24:01,215 Jag vet att du menade en int. 459 00:24:01,215 --> 00:24:01,830 Silly dig. 460 00:24:01,830 --> 00:24:04,640 Du menade inte en sträng. 461 00:24:04,640 --> 00:24:12,596 >> Så i det fallet, nu att vi har det, vad 462 00:24:12,596 --> 00:24:14,330 tycker ni att det kommer att göra här? 463 00:24:14,330 --> 00:24:17,220 464 00:24:17,220 --> 00:24:20,495 Vi har en sträng och en int nu. 465 00:24:20,495 --> 00:24:21,980 >> PUBLIK: Det är fortfarande en int. 466 00:24:21,980 --> 00:24:24,040 >> ALLISON Buchholtz-AU: Det är fortfarande en int. 467 00:24:24,040 --> 00:24:26,790 Och anledningen är-- jag skulle sätta fler exempel, men den här är kul. 468 00:24:26,790 --> 00:24:30,110 Anledningen till att det gör det är för att det är som du försöker lägga till saker. 469 00:24:30,110 --> 00:24:33,310 Så om du försöker lägga till saker, jag kommer att ta på sig, 470 00:24:33,310 --> 00:24:36,030 rimligt, har du något rimligt att man skulle kunna lägga till. 471 00:24:36,030 --> 00:24:40,032 Jag kommer bara att göra det till en int, och Vi kommer bara att lägga till den, som vanligt. 472 00:24:40,032 --> 00:24:42,240 Och sedan på samma sätt, jag tror ni förstår tanken. 473 00:24:42,240 --> 00:24:47,400 Vi har också denna en här, som är bara åstadkommer förkolning, och det gör samma sak. 474 00:24:47,400 --> 00:24:49,210 Det är som, du dum användare. 475 00:24:49,210 --> 00:24:51,400 du vet att du vill ha en int. 476 00:24:51,400 --> 00:24:54,491 >> PUBLIK: Om vi ​​sätter ett brev, kommer Det gör [OHÖRBAR] värde eller inte? 477 00:24:54,491 --> 00:24:56,532 ALLISON Buchholtz-AU: Åh, det är en bra fråga. 478 00:24:56,532 --> 00:24:57,518 Låt oss se. 479 00:24:57,518 --> 00:25:00,480 480 00:25:00,480 --> 00:25:03,430 Nope, är fortfarande en int. 481 00:25:03,430 --> 00:25:06,700 Så det är lite galen. 482 00:25:06,700 --> 00:25:12,170 Detta är bara typ av visa PHP kan ibland uppträda på irrational-- Inte 483 00:25:12,170 --> 00:25:16,670 helt irrationell, men det kan bete sig på ett sätt som du egentligen inte förväntar sig. 484 00:25:16,670 --> 00:25:18,970 Så, när du är osäker, kontrollera de typer av saker. 485 00:25:18,970 --> 00:25:22,570 Denna funktion getType kan vara super användbar. 486 00:25:22,570 --> 00:25:26,930 >> Vanligtvis om du gör något med plustecknen eller några matematiska operatorer, 487 00:25:26,930 --> 00:25:32,010 det kommer att ta på sig något rimliga är bara en int. 488 00:25:32,010 --> 00:25:36,530 Så, har du röding 1, eller sträng 1, eller den faktiska int 1, 489 00:25:36,530 --> 00:25:38,200 det kommer att anta att. 490 00:25:38,200 --> 00:25:41,410 Om du vill typecast någonting, du helt kan. 491 00:25:41,410 --> 00:25:46,540 Du kan göra något liknande dubbla här, tror jag. 492 00:25:46,540 --> 00:25:50,370 493 00:25:50,370 --> 00:25:53,420 Och i så fall, det kommer att säga, oh. 494 00:25:53,420 --> 00:25:56,550 Jag ska göra det här en dubbel eftersom du uttryckligen sagt att det är en dubbel. 495 00:25:56,550 --> 00:26:00,370 Du kan alltid explicit gör PHP göra något, men. 496 00:26:00,370 --> 00:26:02,174 >> PUBLIK: Vänta, varför A plus 1 där? 497 00:26:02,174 --> 00:26:03,215 >> ALLISON Buchholtz-AU: Oh. 498 00:26:03,215 --> 00:26:06,512 499 00:26:06,512 --> 00:26:07,490 Där. 500 00:26:07,490 --> 00:26:08,400 Det var bara ett eko. 501 00:26:08,400 --> 00:26:10,820 Det var mitt fel. 502 00:26:10,820 --> 00:26:14,240 Så kan du uttryckligen säga det till gör något av en viss typ, 503 00:26:14,240 --> 00:26:17,980 men för det mesta, det kommer att dynamiskt besluta att vid körning. 504 00:26:17,980 --> 00:26:20,730 Så det kommer att fortsätta genom och det kommer att bli som, OK. 505 00:26:20,730 --> 00:26:23,229 Det som gör mest känsla för att det ska vara? 506 00:26:23,229 --> 00:26:24,520 Ska det verkligen vara en sträng? 507 00:26:24,520 --> 00:26:25,090 Ska det vara en int? 508 00:26:25,090 --> 00:26:25,770 Ska det vara ett flöte? 509 00:26:25,770 --> 00:26:26,810 Ska det vara en dubbel? 510 00:26:26,810 --> 00:26:29,456 Och det kommer att avgöra det åt dig. 511 00:26:29,456 --> 00:26:31,980 >> Du kan tvinga den att göra vad du vill, men-- 512 00:26:31,980 --> 00:26:35,032 >> PUBLIK: Gör det det långsammare? 513 00:26:35,032 --> 00:26:37,365 ALLISON Buchholtz-AU: Tja, Jag menar, är C mycket effektiv. 514 00:26:37,365 --> 00:26:41,760 Jag tycker det är definitivt långsammare eftersom det har att processen som det kommer. 515 00:26:41,760 --> 00:26:45,200 C, jag är nästan säker på är snabbare. 516 00:26:45,200 --> 00:26:47,620 Men självklart finns det en massa häftiga saker här 517 00:26:47,620 --> 00:26:49,190 att vi inte behöver oroa sig. 518 00:26:49,190 --> 00:26:50,981 Så, om vi söker genom en rad, vi 519 00:26:50,981 --> 00:26:54,290 behöver inte faktiskt skapa vissa Sök igenom arrayen. 520 00:26:54,290 --> 00:26:56,920 Vi kan bara be om nyckeln och PHP kommer att ta hand om det. 521 00:26:56,920 --> 00:26:59,510 522 00:26:59,510 --> 00:27:00,630 >> Cool. 523 00:27:00,630 --> 00:27:01,130 Grymt. 524 00:27:01,130 --> 00:27:03,937 Ser ut som i slutet av mina exempel. 525 00:27:03,937 --> 00:27:05,770 Ni kommer aldrig att glömma det nu. 526 00:27:05,770 --> 00:27:08,450 Du kommer att vara som, åh, är PHP bara så där mamma som är som nej, nej, nej. 527 00:27:08,450 --> 00:27:09,325 Jag vet vad du menar. 528 00:27:09,325 --> 00:27:11,000 Jag vet vad du vill. 529 00:27:11,000 --> 00:27:11,580 OK. 530 00:27:11,580 --> 00:27:15,040 Så det här är förhoppningsvis till nytta för din pset, åtminstone i början, 531 00:27:15,040 --> 00:27:20,290 eftersom du är allt om att hantera med former och saker från användaren. 532 00:27:20,290 --> 00:27:24,460 >> Så det finns två sätt som vi skicka runt information med PHP och HTML 533 00:27:24,460 --> 00:27:26,700 När vi passerar mellan dessa två saker. 534 00:27:26,700 --> 00:27:32,330 Så vi har $ _GET, som ledes via webbadressen, och vi har $ _POST, 535 00:27:32,330 --> 00:27:36,600 som ledes i meddelandet kropp, och så vi anser att det är dolt. 536 00:27:36,600 --> 00:27:41,660 Men en sak att förstå är att ingen av dessa anses säker. 537 00:27:41,660 --> 00:27:45,580 >> Om du har någon som är avlyssning av meddelanden som går 538 00:27:45,580 --> 00:27:49,180 fram och tillbaka mellan dig och server, kan de ändå få denna information. 539 00:27:49,180 --> 00:27:50,810 De måste bara titta lite hårdare. 540 00:27:50,810 --> 00:27:54,690 Det är egentligen inte that-- det är bara dolda från webbadressen. 541 00:27:54,690 --> 00:27:58,820 Det är fortfarande i meddelandetexten, dock så om de har tillgång till den, 542 00:27:58,820 --> 00:27:59,920 det är egentligen bara like-- 543 00:27:59,920 --> 00:28:01,710 >> Det är som skillnaden mellan något 544 00:28:01,710 --> 00:28:05,010 skrivs på utsidan av ett kuvert och något väsen 545 00:28:05,010 --> 00:28:06,980 skrivet på ett papper inuti. 546 00:28:06,980 --> 00:28:10,270 Det är inte så svårt att öppna kuvertet och få papper inuti. 547 00:28:10,270 --> 00:28:12,414 Visst, skulle det vara mycket lättare bara läsa på utsidan. 548 00:28:12,414 --> 00:28:14,330 Men det är hur du kan slags tänker på dessa. 549 00:28:14,330 --> 00:28:16,940 Ingen av dessa är verkligen anses säker. 550 00:28:16,940 --> 00:28:17,790 OK? 551 00:28:17,790 --> 00:28:19,750 >> Visst, egentligen inte roll för din pset 552 00:28:19,750 --> 00:28:22,050 eftersom du inte har att göra med affärshemligheter, 553 00:28:22,050 --> 00:28:25,850 men det är typiskt en sak som vi verkligen 554 00:28:25,850 --> 00:28:29,260 betona eftersom folk tänker, oh, ja, det är dolt. 555 00:28:29,260 --> 00:28:30,610 Det måste vara super säker. 556 00:28:30,610 --> 00:28:31,140 Nej. 557 00:28:31,140 --> 00:28:32,570 Det är inte säkert. 558 00:28:32,570 --> 00:28:35,808 Det är bara något mindre osäker, antar jag. 559 00:28:35,808 --> 00:28:38,500 Eller osäker. 560 00:28:38,500 --> 00:28:41,625 >> Så vi har faktiskt ett exempel. 561 00:28:41,625 --> 00:28:43,500 Som ni vet, jag älskar lära mer med exempel. 562 00:28:43,500 --> 00:28:45,070 Jag tycker detta hjälper bättre. 563 00:28:45,070 --> 00:28:49,590 Så, har vi några enkla formuläret här som faktiskt, om ni någonsin 564 00:28:49,590 --> 00:28:51,940 förvirrad om PHP, Detta är verkligen små, 565 00:28:51,940 --> 00:28:55,630 men php.net är faktiskt riktigt bra dokumentation. 566 00:28:55,630 --> 00:28:56,500 Jag gillar verkligen det. 567 00:28:56,500 --> 00:29:02,900 Jag använde den för att förbereda sig för detta avsnitt, så jag kan veterinären det för dig. 568 00:29:02,900 --> 00:29:07,760 >> Detta är ett exempel från dem på hur _POST $ och $ _GET arbete. 569 00:29:07,760 --> 00:29:09,970 Den enda skillnaden mellan två av dessa, 570 00:29:09,970 --> 00:29:13,285 förutom där informationen är visas, oavsett om det är i URL 571 00:29:13,285 --> 00:29:16,430 eller i kroppen, är också vilken metoden är. 572 00:29:16,430 --> 00:29:21,350 Så ditt formulär för HTML-- här är en mycket enkel HTML-formulär. 573 00:29:21,350 --> 00:29:22,760 Kan någon berätta för mig vad den gör? 574 00:29:22,760 --> 00:29:29,471 575 00:29:29,471 --> 00:29:30,970 PUBLIK: Fråga efter ditt namn och ålder. 576 00:29:30,970 --> 00:29:31,230 ALLISON Buchholtz-AU: Exakt. 577 00:29:31,230 --> 00:29:33,330 Så vi har några formuläråtgärder. 578 00:29:33,330 --> 00:29:36,260 Som låter oss veta att det är någon handling form. 579 00:29:36,260 --> 00:29:39,330 Och vad kommer att hända är, när vi träffar Skicka, 580 00:29:39,330 --> 00:29:44,280 det kommer att ringa action.php, vilket är vad detta är, 581 00:29:44,280 --> 00:29:47,180 och det kommer att kalla det med ett förfarande för att $ _POST. 582 00:29:47,180 --> 00:29:51,340 Så i detta fall, din informationen är dold. 583 00:29:51,340 --> 00:29:57,020 och det är bara ditt namn, en del input typ som kallas namn, vissa ålder, 584 00:29:57,020 --> 00:30:01,270 input type = "text" som vi kallar även ålder. 585 00:30:01,270 --> 00:30:05,110 Och sedan om vi slog in, Skicka ringer action.php. 586 00:30:05,110 --> 00:30:09,800 >> Så när vi faktiskt slog in, vi vet att den har skrivit, per se, 587 00:30:09,800 --> 00:30:15,290 och vi ska faktiskt se detta i din problembild som förhoppningsvis vi ska 588 00:30:15,290 --> 00:30:16,760 får gå igenom lite. 589 00:30:16,760 --> 00:30:21,690 Och allt det gör här är POST är några superglobal variabel 590 00:30:21,690 --> 00:30:23,300 att vi pratade om under föreläsningen. 591 00:30:23,300 --> 00:30:30,170 Och hur du kan tänka på $ _POST är att det bara är en associativ array. 592 00:30:30,170 --> 00:30:30,960 OK? 593 00:30:30,960 --> 00:30:35,930 Så det här är några viktiga, detta är några viktiga och vad 594 00:30:35,930 --> 00:30:39,270 användarinmatningen blir en värde för var och en av dem. 595 00:30:39,270 --> 00:30:39,960 OK? 596 00:30:39,960 --> 00:30:47,240 >> Så om vi skulle skriva vad denna samling faktiskt såg ut direkt efter att vi 597 00:30:47,240 --> 00:30:56,000 skickat in formuläret, skulle vi har, detta är vår $ _POST, 598 00:30:56,000 --> 00:31:04,380 och några array där vi har några namn. 599 00:31:04,380 --> 00:31:17,670 Låt oss bara säga att vi ska göra mitt namn, och sedan har vi några år, 21. 600 00:31:17,670 --> 00:31:19,420 Woo. 601 00:31:19,420 --> 00:31:23,550 Så det här är alla $ _POST är. $ _POST är bara en associativ array, OK? 602 00:31:23,550 --> 00:31:24,807 >> Den säger bara, OK. 603 00:31:24,807 --> 00:31:26,890 Vilka är de saker Prisjakt begärt från användaren? 604 00:31:26,890 --> 00:31:28,889 Vilka är de variabler att vi går runt 605 00:31:28,889 --> 00:31:30,730 att vi har bett om i denna form? 606 00:31:30,730 --> 00:31:33,830 Och vad är det värden förknippade med det? 607 00:31:33,830 --> 00:31:38,750 Så i detta fall, om jag lämnade in den med ett namn på Ally och en ålder av 21, 608 00:31:38,750 --> 00:31:40,890 detta är vad $ _POST ser ut. 609 00:31:40,890 --> 00:31:41,570 OK? 610 00:31:41,570 --> 00:31:45,150 Och detta är vad detta PHP-filen har tillgång till. 611 00:31:45,150 --> 00:31:46,680 Okej? 612 00:31:46,680 --> 00:31:51,730 >> Så i detta fall, det är precis som få någon annan sak från vår samling. 613 00:31:51,730 --> 00:31:55,370 I stället för ett index i vår array, har vi några viktiga. 614 00:31:55,370 --> 00:32:00,790 Så detta kommer att ge mig värdet vid nyckelnamn. 615 00:32:00,790 --> 00:32:05,400 Så detta kommer att bli Ally, och denna rätt här kommer att ge mig 616 00:32:05,400 --> 00:32:08,840 Värdet på $ _POST där Nyckeln är ålder, vilket kommer att vara 21. 617 00:32:08,840 --> 00:32:12,541 618 00:32:12,541 --> 00:32:14,290 Du kommer att bli göra detta ganska lite. 619 00:32:14,290 --> 00:32:18,920 620 00:32:18,920 --> 00:32:21,590 Ja, från vilken del? 621 00:32:21,590 --> 00:32:24,235 >> PUBLIK: När du var pekar på den nedre delen. 622 00:32:24,235 --> 00:32:25,860 ALLISON Buchholtz-AU: Denna nedre delen? 623 00:32:25,860 --> 00:32:26,359 OK. 624 00:32:26,359 --> 00:32:31,897 Så, förstår du det här är vår HTML bilda, och vi har någon metod $ _POST, 625 00:32:31,897 --> 00:32:32,480 som betyder något. 626 00:32:32,480 --> 00:32:35,410 Detta kan också vara $ _GET, men för detta ändamål, 627 00:32:35,410 --> 00:32:36,910 Vi kommer bara att säga att det är $ _POST. 628 00:32:36,910 --> 00:32:42,700 När vi lämna denna form är detta del av en PHP-fil som heter. 629 00:32:42,700 --> 00:32:48,530 Så denna PHP-fil kommer nu att köra givet den information från vår HTML 630 00:32:48,530 --> 00:32:49,840 formuläret. 631 00:32:49,840 --> 00:32:52,670 >> Så vad det gör är, när vi hit Submit på vår HTML-formulär, 632 00:32:52,670 --> 00:32:59,220 det passerar dig här superglobal, vilket är bara en associativ array. 633 00:32:59,220 --> 00:33:00,306 Det är det här. 634 00:33:00,306 --> 00:33:02,840 Det är precis som förbigående att till filen. 635 00:33:02,840 --> 00:33:04,540 Och vad den säger är, OK, här kommer $ _POST. 636 00:33:04,540 --> 00:33:05,706 Det är din associativ array. 637 00:33:05,706 --> 00:33:07,000 Gör med det vad du vill. 638 00:33:07,000 --> 00:33:08,980 Och vi säger, OK. 639 00:33:08,980 --> 00:33:13,620 Ge mig värdet vid namn, och ge mig värdet på ålder. 640 00:33:13,620 --> 00:33:18,150 >> Så det är bara nycklar, och detta är vår samling. 641 00:33:18,150 --> 00:33:19,190 Är det vettigt? 642 00:33:19,190 --> 00:33:19,815 >> PUBLIK: Mhmm. 643 00:33:19,815 --> 00:33:21,266 ALLISON Buchholtz-AU: Awesome. 644 00:33:21,266 --> 00:33:24,432 PUBLIK: Om du måste skicka om ser den bara skriva över data? 645 00:33:24,432 --> 00:33:25,557 ALLISON Buchholtz-AU: Ja. 646 00:33:25,557 --> 00:33:26,160 Mhmm? 647 00:33:26,160 --> 00:33:30,300 >> PUBLIK: Varför har du för att ange att det är en int? 648 00:33:30,300 --> 00:33:34,950 >> ALLISON Buchholtz-AU: I detta fall användaren bara tvingar den att vara en int. 649 00:33:34,950 --> 00:33:35,749 >> PUBLIK: OK. 650 00:33:35,749 --> 00:33:38,540 ALLISON Buchholtz-AU: Jag vet inte om du verkligen skulle behöva det, 651 00:33:38,540 --> 00:33:43,850 men för sina syften, bestämde de att de ville att det skulle vara en int. 652 00:33:43,850 --> 00:33:45,590 De bara type-casting det. 653 00:33:45,590 --> 00:33:47,760 De kanske använder det som något annat senare. 654 00:33:47,760 --> 00:33:49,872 Detta är bara en snutt. 655 00:33:49,872 --> 00:33:50,372 Ja? 656 00:33:50,372 --> 00:33:57,246 >> PUBLIK: Vad händer om de skrivit 12, T-W-E-L-V-E, för ålder? 657 00:33:57,246 --> 00:33:59,704 ALLISON Buchholtz-AU: Om de försökt att skriva det som en int? 658 00:33:59,704 --> 00:34:00,160 PUBLIK: Ja. 659 00:34:00,160 --> 00:34:02,076 ALLISON Buchholtz-AU: Jag glömma vad det gör. 660 00:34:02,076 --> 00:34:05,540 Jag tror att det kan försöka konvertera det första tecknet på en int, 661 00:34:05,540 --> 00:34:11,360 eller ta värdet och konvertera det, men jag har glömt exakt vad det. 662 00:34:11,360 --> 00:34:14,570 Var en rolig sak att skriva ett program och försöka. 663 00:34:14,570 --> 00:34:16,389 Gör ett par rader. 664 00:34:16,389 --> 00:34:21,310 OK, så detta är en av de viktigaste saker som du kommer att göra. 665 00:34:21,310 --> 00:34:23,969 Jag ska förhoppningsvis gå igenom ett par av filerna 666 00:34:23,969 --> 00:34:25,260 från pset med er killar. 667 00:34:25,260 --> 00:34:28,850 Det ser ut som vi kommer att har tid, så att vi kan göra det. 668 00:34:28,850 --> 00:34:31,190 >> Men du kommer att bli gör en massa saker 669 00:34:31,190 --> 00:34:36,130 så här, där du passerar saker från ett HTML-formulär 670 00:34:36,130 --> 00:34:42,130 in i denna PHP formulär som kommer då exekvera någon uppsättning av instruktioner 671 00:34:42,130 --> 00:34:44,460 på uppgifter som tillhandahölls. 672 00:34:44,460 --> 00:34:46,864 Det är bokstavligen kärnan i din pset. 673 00:34:46,864 --> 00:34:48,130 Yeah. 674 00:34:48,130 --> 00:34:52,040 >> PUBLIK: The type = "submit", att gör en knapp på HTML-formulär. 675 00:34:52,040 --> 00:34:54,280 Finns det sätt att ringa den knappen något? 676 00:34:54,280 --> 00:34:56,040 Så skulle du vara som name = "submit"? 677 00:34:56,040 --> 00:34:59,170 Eller är den knappen bara kommer att bli tömma just nu, eftersom du bara 678 00:34:59,170 --> 00:35:00,970 gav det en typ, inte ett namn. 679 00:35:00,970 --> 00:35:03,803 >> ALLISON Buchholtz-AU: Jag tycker det är bara kommer att vara tom just nu. 680 00:35:03,803 --> 00:35:07,320 Vi kan definitivt titta i pset, eftersom vi kommer definitivt 681 00:35:07,320 --> 00:35:10,265 att titta på Registrera sånt. 682 00:35:10,265 --> 00:35:14,610 Men ja, du kan definitivt ange den text som du vill på din knapp. 683 00:35:14,610 --> 00:35:17,560 OK, så SQL. 684 00:35:17,560 --> 00:35:21,880 >> När du köper och säljer aktier, du behöver för att hålla reda på dem. 685 00:35:21,880 --> 00:35:25,760 Så hur vi ska göra det är med SQL, som ligger bara en databas. 686 00:35:25,760 --> 00:35:29,200 Se det som en tabell där du håller all denna information 687 00:35:29,200 --> 00:35:30,649 om dina olika användare. 688 00:35:30,649 --> 00:35:32,940 Och ni är faktiskt kommer att skapa en av dessa. 689 00:35:32,940 --> 00:35:34,290 Det är ganska coolt. 690 00:35:34,290 --> 00:35:38,470 >> Och det finns bara fyra saker som du behöver veta för denna pset, 691 00:35:38,470 --> 00:35:43,120 och de är uppdatering, så att du princip uppdatera uppgifterna. 692 00:35:43,120 --> 00:35:45,190 Det förutsätter att det redan finns där. 693 00:35:45,190 --> 00:35:48,320 Om det inte finns där, det kommer att slå dig med ett fel, 694 00:35:48,320 --> 00:35:51,300 så kanske du vill kontrollera. 695 00:35:51,300 --> 00:35:55,882 Och du kommer att uppdatera on-- jag ska faktiskt- jag har tid, 696 00:35:55,882 --> 00:35:57,090 Jag ska skriva ett par av dessa. 697 00:35:57,090 --> 00:36:03,370 Jag ska faktiskt ge er en par prov, fullständig SQL-kommandon, 698 00:36:03,370 --> 00:36:06,530 eftersom dessa är bara huvud sådana, men du kan gå samman dem. 699 00:36:06,530 --> 00:36:09,780 Så jag ska göra det och jag ska skicka ut det till dig med dessa anteckningar. 700 00:36:09,780 --> 00:36:14,580 >> Så om du vill uppdatera något, måste tala om vad du uppdaterar 701 00:36:14,580 --> 00:36:16,390 och vart du uppdatera den. 702 00:36:16,390 --> 00:36:27,770 Så en typisk SQL-kommando skulle vara uppdatering ID där något är lika med något. 703 00:36:27,770 --> 00:36:31,490 Eller liknande uppdatering adress där ID är lika med 3, 704 00:36:31,490 --> 00:36:37,040 och detta skulle uppdatera adressfältet av din användare som har ett ID på tre. 705 00:36:37,040 --> 00:36:37,630 OK? 706 00:36:37,630 --> 00:36:44,300 >> Så om du går till SQL och W3Schools, de har enorma exempel. 707 00:36:44,300 --> 00:36:46,880 I själva verket kan jag dra några upp i en liten bit. 708 00:36:46,880 --> 00:36:49,810 Och sedan in i, du är bara föra in vissa värden där. 709 00:36:49,810 --> 00:36:56,810 Så om du försöker att skapa några nya post, så du skapar en ny användare, 710 00:36:56,810 --> 00:37:00,970 du kunde göra insatsen i oavsett vad din databas heter, 711 00:37:00,970 --> 00:37:03,540 och du skulle ha alla dessa värden. 712 00:37:03,540 --> 00:37:06,250 >> Då har du välja, Välj värden för att visa. 713 00:37:06,250 --> 00:37:09,640 Så om du försöker att kontrollera se om en användare finns eller du är 714 00:37:09,640 --> 00:37:12,030 försöker fånga specifika information om en användare 715 00:37:12,030 --> 00:37:13,790 du ska använda väljer. 716 00:37:13,790 --> 00:37:17,564 Och sedan ta bort, tror jag, är ganska enkelt där. 717 00:37:17,564 --> 00:37:19,480 Du är bara att ta bort något från bordet. 718 00:37:19,480 --> 00:37:25,960 Och faktiskt, låt mig faktiskt drar upp några exempel för er. 719 00:37:25,960 --> 00:37:29,350 Åh titta, det är min 61 sida. 720 00:37:29,350 --> 00:37:32,940 >> Så om vi går till W3Schools, förhoppningsvis är det upp igen. 721 00:37:32,940 --> 00:37:35,640 Ja, Love it. 722 00:37:35,640 --> 00:37:37,680 Vi går till SQL. 723 00:37:37,680 --> 00:37:39,160 Så detta är något här. 724 00:37:39,160 --> 00:37:42,548 Så detta är en mycket enkel SELECT. 725 00:37:42,548 --> 00:37:45,620 Man, jag älskar den här funktionen. 726 00:37:45,620 --> 00:37:50,030 Så kan du få VÄLJ vissa fält från kunder. 727 00:37:50,030 --> 00:37:55,340 I detta fall, kunder hänvisar till online-databas som du använder, 728 00:37:55,340 --> 00:38:00,480 så vad ditt bord kallas, och stjärna betyder bara markera allt. 729 00:38:00,480 --> 00:38:01,710 Ge mig alla. 730 00:38:01,710 --> 00:38:05,810 731 00:38:05,810 --> 00:38:10,720 >> Så jag vill bara ge er ett några exempel på hur det är. 732 00:38:10,720 --> 00:38:15,570 733 00:38:15,570 --> 00:38:17,960 Så vi har SELECT, UPDATE. 734 00:38:17,960 --> 00:38:21,460 735 00:38:21,460 --> 00:38:25,420 Så här är typ av den allmänna syntaxen. 736 00:38:25,420 --> 00:38:31,080 Så UPPDATERA, oavsett din Tabellnamnet är, och sedan SET 737 00:38:31,080 --> 00:38:35,060 är där du faktiskt kommer vara vilka data du ändrar. 738 00:38:35,060 --> 00:38:38,340 Så detta kan be-- Let mig göra ett exempel här. 739 00:38:38,340 --> 00:38:44,146 740 00:38:44,146 --> 00:38:45,145 Så detta kommer att be-- 741 00:38:45,145 --> 00:39:10,250 742 00:39:10,250 --> 00:39:10,750 >> OK. 743 00:39:10,750 --> 00:39:13,585 Så jag skapade en liten databas för oss. 744 00:39:13,585 --> 00:39:16,260 Vi kommer att ha lite ID, några år, och vissa namngivna. 745 00:39:16,260 --> 00:39:23,022 Så ID-en kommer att vara år '15, och vi kommer bara att göra det för mig. 746 00:39:23,022 --> 00:39:24,980 Vem vill vara den andra person i vårt bord? 747 00:39:24,980 --> 00:39:25,480 Någon. 748 00:39:25,480 --> 00:39:28,192 749 00:39:28,192 --> 00:39:30,525 Jag kommer bara att välja Emma eftersom ditt namn är snabb. 750 00:39:30,525 --> 00:39:32,220 Emma, ​​vilket år är du? 751 00:39:32,220 --> 00:39:33,180 >> PUBLIK: Vilket år? 752 00:39:33,180 --> 00:39:33,600 >> ALLISON Buchholtz-AU: Ja. 753 00:39:33,600 --> 00:39:34,183 >> PUBLIK: 16. 754 00:39:34,183 --> 00:39:35,780 ALLISON Buchholtz-AU: '16. 755 00:39:35,780 --> 00:39:37,920 Du kommer bara att bli mitt marsvin för idag. 756 00:39:37,920 --> 00:39:40,490 OK, så vi har dessa två personer. 757 00:39:40,490 --> 00:39:42,194 Faktiskt, låt mig göra det här. 758 00:39:42,194 --> 00:39:45,110 Låt oss säga att jag hörde henne fel, och jag sa faktiskt att hon är ett år yngre. 759 00:39:45,110 --> 00:39:46,980 Hon är 17. 760 00:39:46,980 --> 00:39:50,790 Vad vi vill göra här, om vi ville uppdatera Emmas år 761 00:39:50,790 --> 00:39:57,480 vara korrekt att använda det, vad vi skulle gör är att vi skulle säga uppdatera data över här. 762 00:39:57,480 --> 00:40:05,140 763 00:40:05,140 --> 00:40:09,130 >> Och detta kan alla vara på en linje, men eftersom jag komprimeras för utrymme här, 764 00:40:09,130 --> 00:40:11,450 Jag kommer att skriva här. 765 00:40:11,450 --> 00:40:12,740 Och vi vill ställa. 766 00:40:12,740 --> 00:40:16,770 Så detta är bordet vi uppdaterar. 767 00:40:16,770 --> 00:40:21,600 SET kommer att vara vad kolonn eller vilka data som vi faktiskt förändras. 768 00:40:21,600 --> 00:40:30,670 Vad vi förändras är år, så vi kommer att säga SET år = 16, 769 00:40:30,670 --> 00:40:39,470 och sedan VAR berättar vilken användare eller vilken rad är vi faktiskt att uppdatera denna. 770 00:40:39,470 --> 00:40:40,980 >> Så där? 771 00:40:40,980 --> 00:40:42,600 Vi har två alternativ här. 772 00:40:42,600 --> 00:40:43,450 Vilka är de två? 773 00:40:43,450 --> 00:40:44,580 Dessa är unika, eller hur? 774 00:40:44,580 --> 00:40:47,150 Så våra namn är unika och vår-ID är unikt, 775 00:40:47,150 --> 00:40:50,880 så vad är de två alternativen för där vi kunde göra det här? 776 00:40:50,880 --> 00:40:51,970 Jag ska ge dig ett. 777 00:40:51,970 --> 00:40:57,450 Vi skulle kunna göra WHERE id = 2, eller vi kunde göra vad 778 00:40:57,450 --> 00:41:00,920 om vi ska ut detta paradigm här. 779 00:41:00,920 --> 00:41:02,180 >> PUBLIK: [OHÖRBAR]. 780 00:41:02,180 --> 00:41:03,430 ALLISON Buchholtz-AU: Exakt. 781 00:41:03,430 --> 00:41:07,300 Så kunde vi också göra name = Emma. 782 00:41:07,300 --> 00:41:10,189 783 00:41:10,189 --> 00:41:11,480 Och någon av dessa skulle fungera. 784 00:41:11,480 --> 00:41:14,040 Och vi körde detta, skulle det vara som, OK. 785 00:41:14,040 --> 00:41:15,300 Vi ska ändra det. 786 00:41:15,300 --> 00:41:17,680 Du är faktiskt 16, så Nu har du rätt igen. 787 00:41:17,680 --> 00:41:21,410 OK, så det skulle vara super bra i din pset 788 00:41:21,410 --> 00:41:25,157 där kanske någon beslutat att köpa 100 aktier i Apple, 789 00:41:25,157 --> 00:41:26,740 och sedan de var som, bara skojar. 790 00:41:26,740 --> 00:41:28,320 Jag vill bara ha 90 aktier. 791 00:41:28,320 --> 00:41:33,630 Och så de säljer 10 av dem, så att du behöver uppdatera hur stort lagret 792 00:41:33,630 --> 00:41:34,330 som de har. 793 00:41:34,330 --> 00:41:39,050 Så, uppdatera lager, uppdatera tabellen. 794 00:41:39,050 --> 00:41:39,950 >> OK. 795 00:41:39,950 --> 00:41:42,710 Så det är ett exempel där. 796 00:41:42,710 --> 00:41:45,131 Det är uppdaterings syntax. 797 00:41:45,131 --> 00:41:45,630 DELETE. 798 00:41:45,630 --> 00:41:50,391 799 00:41:50,391 --> 00:41:50,890 Oh. 800 00:41:50,890 --> 00:41:53,580 Sätt in i vår andra. 801 00:41:53,580 --> 00:41:57,950 Så detta är en här mycket lika. 802 00:41:57,950 --> 00:42:00,430 Vi kan bara säga, i detta fall ska vi lägga till någon. 803 00:42:00,430 --> 00:42:02,310 Vi kan lägga till Ben här gången. 804 00:42:02,310 --> 00:42:13,300 Vi INSERT INTO, och vi vill ha namnet på vårt bord. 805 00:42:13,300 --> 00:42:16,580 I detta fall är det data. 806 00:42:16,580 --> 00:42:25,790 >> Och då är vi bara vill, kommer du att säger VÄRDEN, och vad du ska göra 807 00:42:25,790 --> 00:42:29,147 är du faktiskt behöver se till att att du har något för varje rad 808 00:42:29,147 --> 00:42:29,730 som du vill. 809 00:42:29,730 --> 00:42:31,090 Du sätter dem bara för att. 810 00:42:31,090 --> 00:42:33,920 Så i detta fall, skulle vi säga 3. 811 00:42:33,920 --> 00:42:35,280 Du är 18, eller hur Ben? 812 00:42:35,280 --> 00:42:36,439 >> PUBLIK: 19. 813 00:42:36,439 --> 00:42:37,480 ALLISON Buchholtz-AU: 19? 814 00:42:37,480 --> 00:42:38,360 PUBLIK: 19. 815 00:42:38,360 --> 00:42:39,943 ALLISON Buchholtz-AU: Din årets '19? 816 00:42:39,943 --> 00:42:41,459 Du examen i '18, eller hur? 817 00:42:41,459 --> 00:42:42,000 PUBLIK: Åh. 818 00:42:42,000 --> 00:42:42,870 ALLISON Buchholtz-AU: Graduation år. 819 00:42:42,870 --> 00:42:43,842 PUBLIK: OK. 820 00:42:43,842 --> 00:42:46,070 ALLISON Buchholtz-AU: Jag var som, du är 821 00:42:46,070 --> 00:42:48,550 planerar redan att ta ett sabbatsår här? 822 00:42:48,550 --> 00:42:52,590 Så, '18, har vi Ben. 823 00:42:52,590 --> 00:43:01,950 Så i detta fall, skulle det gå igenom, Det skulle skapa en ny post här. 824 00:43:01,950 --> 00:43:04,520 825 00:43:04,520 --> 00:43:05,750 Cool. 826 00:43:05,750 --> 00:43:07,570 Inte så illa, eller hur? 827 00:43:07,570 --> 00:43:09,850 En hel del av detta kommer att vara syntax för er. 828 00:43:09,850 --> 00:43:13,280 Begrepp skulle komma, förhoppningsvis, relativt enkelt. 829 00:43:13,280 --> 00:43:17,270 Syntaxen är det enda det kan vara lite knepigt. 830 00:43:17,270 --> 00:43:20,590 >> Och så vår sista är DELETE, och som ni märker, 831 00:43:20,590 --> 00:43:22,260 Jag rekommenderar denna webbplats. 832 00:43:22,260 --> 00:43:24,110 Det är bra. 833 00:43:24,110 --> 00:43:25,620 Det finns massor av saker. 834 00:43:25,620 --> 00:43:30,550 Så, på samma sätt som vi hade vissa UPDATE, DELETE är mycket lika. 835 00:43:30,550 --> 00:43:33,800 I stället har vi Radera från Data. 836 00:43:33,800 --> 00:43:37,506 Så i detta fall, vår sista jag ska skriva här nere. 837 00:43:37,506 --> 00:43:38,880 Låt oss säga att vi ville ta bort mig. 838 00:43:38,880 --> 00:43:44,670 839 00:43:44,670 --> 00:43:48,750 Jag kan inte skriva i dag. 840 00:43:48,750 --> 00:43:51,720 TA BORT från oavsett tabell vi är i, uppgifter. 841 00:43:51,720 --> 00:43:56,160 842 00:43:56,160 --> 00:44:02,128 Och det finns faktiskt tre sätt vi kan välja att ta bort mig. 843 00:44:02,128 --> 00:44:06,040 844 00:44:06,040 --> 00:44:09,780 >> Kan ni berätta för mig vad de tre sätt är, hur du kan ta bort mig? 845 00:44:09,780 --> 00:44:12,880 846 00:44:12,880 --> 00:44:15,400 ID är lika med 1, där ID är lika med 1. 847 00:44:15,400 --> 00:44:19,470 Vi kunde göra var år lika 15, eller om namnet är lika med Allison. 848 00:44:19,470 --> 00:44:21,540 naturligtvis finns det bara tre olika sätt, 849 00:44:21,540 --> 00:44:24,570 eftersom dessa är alla unika. 850 00:44:24,570 --> 00:44:28,000 Vanligtvis i tabellen, och speciellt i din pset, 851 00:44:28,000 --> 00:44:32,105 du kommer att ställa in en av dessa kolumner att vara unik. 852 00:44:32,105 --> 00:44:36,252 >> Det kommer förmodligen att bli lite unikt ID nummer, för om du have-- faktiskt, 853 00:44:36,252 --> 00:44:37,710 det faktiskt kan låta dig ha två. 854 00:44:37,710 --> 00:44:40,520 Jag minns inte om det ska låta du har två av samma sak. 855 00:44:40,520 --> 00:44:42,000 >> PUBLIK: Då skulle det ändra sitt beteende. 856 00:44:42,000 --> 00:44:43,291 >> ALLISON Buchholtz-AU: Det skulle. 857 00:44:43,291 --> 00:44:46,280 Det kommer att leda till ett beteende som är oväntat, att man inte riktigt kan förutse. 858 00:44:46,280 --> 00:44:53,040 Så du kommer definitivt att ha en kolumn i din databas som kommer att vara unik, 859 00:44:53,040 --> 00:44:55,760 och det är normalt kan du ställa in det så att det är som ett unikt ID, 860 00:44:55,760 --> 00:44:59,884 och det kommer bara att uppdatera varje gång du sätter in i tabellen. 861 00:44:59,884 --> 00:45:02,050 Varje gång du skapar en ny rad, kommer den automatiskt 862 00:45:02,050 --> 00:45:04,190 öka och ge det lite unikt ID. 863 00:45:04,190 --> 00:45:05,960 Så antyda för din pset. 864 00:45:05,960 --> 00:45:08,560 865 00:45:08,560 --> 00:45:09,160 OK. 866 00:45:09,160 --> 00:45:11,575 Så det är SQL. 867 00:45:11,575 --> 00:45:18,170 868 00:45:18,170 --> 00:45:22,140 >> Så nu ska vi prata om den allra sista, som anknyter 869 00:45:22,140 --> 00:45:24,770 faktiskt ganska bra med din pset, om det skulle gå framåt. 870 00:45:24,770 --> 00:45:28,210 Så MVC, Model View Controller. 871 00:45:28,210 --> 00:45:32,480 Detta är egentligen bara ett sätt att hålla saker organiserade. 872 00:45:32,480 --> 00:45:36,910 På samma sätt med C ber vi er att skapa funktioner och separata saker 873 00:45:36,910 --> 00:45:42,350 ut, detta är bara ett sätt att skilja ut kod när du gör webbutveckling. 874 00:45:42,350 --> 00:45:46,850 >> Så det gör saker mycket mer elegant och förenklas, 875 00:45:46,850 --> 00:45:49,310 och detta är faktiskt det sätt att din pset faktiskt 876 00:45:49,310 --> 00:45:52,460 ställa in, så om du vill det eller inte, du kommer att lära sig det, 877 00:45:52,460 --> 00:45:54,251 även om du inte tror du lär dig det. 878 00:45:54,251 --> 00:45:56,580 879 00:45:56,580 --> 00:46:01,950 Och en sak är, det gör att du också göra mycket mer som en användare samarbete. 880 00:46:01,950 --> 00:46:05,770 >> Så när jag tog CS50, gjorde jag en hemsida för mitt slutprojekt, 881 00:46:05,770 --> 00:46:09,190 och jag var som, jag hantera databas grejer. 882 00:46:09,190 --> 00:46:12,450 Jag ska göra back end grejer, och min rumskamrat som jag tog med det 883 00:46:12,450 --> 00:46:14,270 var mycket konstnärliga. 884 00:46:14,270 --> 00:46:17,370 Hon gör scenografi, och hon ville göra det hela ganska. 885 00:46:17,370 --> 00:46:18,435 Så jag är liksom, OK. 886 00:46:18,435 --> 00:46:20,310 Du kan ta hand om allt framänden grejer. 887 00:46:20,310 --> 00:46:22,660 >> Och saken är, som vi får se mycket snart, 888 00:46:22,660 --> 00:46:26,130 den modellen view controller kan du helt separera den koden så 889 00:46:26,130 --> 00:46:29,260 att jag kunde arbeta med genomföra våra sidor, 890 00:46:29,260 --> 00:46:31,266 och manipulera informationen i våra databaser, 891 00:46:31,266 --> 00:46:34,140 och hon kunde bara göra saker söt, och vi var båda verkligen glad, 892 00:46:34,140 --> 00:46:36,750 eftersom vi fick göra vad vi båda ville och vi 893 00:46:36,750 --> 00:46:38,400 behövde inte ta itu med den andra. 894 00:46:38,400 --> 00:46:40,377 >> Så vi hängde ihop. 895 00:46:40,377 --> 00:46:41,210 Vi gillar att umgås. 896 00:46:41,210 --> 00:46:45,649 Jag bara inte vill ta itu med all CSS och HTML grejer. 897 00:46:45,649 --> 00:46:46,940 Jag var som, du gör det ganska. 898 00:46:46,940 --> 00:46:49,420 Jag tar hand om databasen. 899 00:46:49,420 --> 00:46:52,620 Så vi har det verkligen cool, stor liten tabell. 900 00:46:52,620 --> 00:46:55,440 Jag älskar tabeller. 901 00:46:55,440 --> 00:46:59,680 Och i grund och botten, den modell du kan tänka på är bara din databas. 902 00:46:59,680 --> 00:47:03,630 >> Jag var den modell person för mitt projekt. 903 00:47:03,630 --> 00:47:06,800 Det handlar om lagring av information och organisera data. 904 00:47:06,800 --> 00:47:09,790 Så det är vad vi vill kalla bakändan. 905 00:47:09,790 --> 00:47:13,260 Så ni kommer att göra med SQL-databasen och datafilerna. 906 00:47:13,260 --> 00:47:14,650 Det är din modell. 907 00:47:14,650 --> 00:47:17,800 >> Din uppfattning, som du kanske tror slags vettigt, 908 00:47:17,800 --> 00:47:20,610 är vad din användaren faktiskt ser. 909 00:47:20,610 --> 00:47:22,110 Det är användargränssnittet. 910 00:47:22,110 --> 00:47:24,359 Det är att fronten mot komponenten. 911 00:47:24,359 --> 00:47:26,650 Så det är vad min rumskamrat fick arbeta på hela tiden. 912 00:47:26,650 --> 00:47:27,660 Hon var super glad. 913 00:47:27,660 --> 00:47:31,580 Så det är all HTML, och det finns väldigt lite PHP. 914 00:47:31,580 --> 00:47:34,420 >> Om du bara pratar om vad som visas för användaren, 915 00:47:34,420 --> 00:47:36,576 vi pratar om hypertext. 916 00:47:36,576 --> 00:47:37,950 Vi pratar om hur det ser ut. 917 00:47:37,950 --> 00:47:41,400 Vi pratar inte om logik, eller villkor, eller whatnot. 918 00:47:41,400 --> 00:47:45,620 Allt som blir hanterade av styrenheten, OK? 919 00:47:45,620 --> 00:47:49,470 Så som hanterar användaren begär och hämtar informationen. 920 00:47:49,470 --> 00:47:54,750 >> Så en sak du bör veta om din pset är att, i dina åsikter, 921 00:47:54,750 --> 00:47:57,650 något som faktiskt är visning av information 922 00:47:57,650 --> 00:48:00,530 ska aldrig göra samtal till din modell. 923 00:48:00,530 --> 00:48:02,570 Allt detta hanteras i handkontrollen. 924 00:48:02,570 --> 00:48:06,950 Handkontrollen är den medla mellan dessa två. 925 00:48:06,950 --> 00:48:10,280 Det kommer att be modellen för vissa uppgifter. 926 00:48:10,280 --> 00:48:12,610 Det kan iterera över att information räkna ut 927 00:48:12,610 --> 00:48:15,110 vad du faktiskt behöver från det, vad man ska göra med det, 928 00:48:15,110 --> 00:48:17,860 och då kommer det att vidarebefordra just den information som du 929 00:48:17,860 --> 00:48:24,670 behöver vyn för dig att skriva ut det ut eller visa det för användaren, OK? 930 00:48:24,670 --> 00:48:28,690 >> Eftersom vi se vad som allt som är vänd mot användaren, 931 00:48:28,690 --> 00:48:31,340 så det kommer att bli mycket lättare för dem att lista ut, 932 00:48:31,340 --> 00:48:34,980 åh, om du gör vissa kallar dig fram 933 00:48:34,980 --> 00:48:39,152 och du ber för alla användare som börjar med bokstaven A, 934 00:48:39,152 --> 00:48:41,985 och du gör det i din syn, någon som kan se din webbsida 935 00:48:41,985 --> 00:48:43,350 skulle kunna komma åt det. 936 00:48:43,350 --> 00:48:44,740 >> Du behöver inte nödvändigtvis ha det. 937 00:48:44,740 --> 00:48:48,560 Du vill inte att folk ska se mer in i databasen än vad 938 00:48:48,560 --> 00:48:49,800 de bör se. 939 00:48:49,800 --> 00:48:51,560 Bara deras specifika önskemål. 940 00:48:51,560 --> 00:48:53,840 Så styrenheten hanterar allt detta. 941 00:48:53,840 --> 00:48:59,800 Så alla dina .php filer som vi får se du kan överväga dina controller filer. 942 00:48:59,800 --> 00:49:02,710 Och det är där du är verkligen kommer att bli 943 00:49:02,710 --> 00:49:06,500 ber om saker från din databas, och iteration eller manipulera 944 00:49:06,500 --> 00:49:10,670 det som behövs innan vidarebefordra den till ses. 945 00:49:10,670 --> 00:49:12,830 >> Det är en riktigt cool pset, enligt min mening. 946 00:49:12,830 --> 00:49:15,580 Jag tycker det är lite mer som omedelbar tillfredsställelse, 947 00:49:15,580 --> 00:49:17,990 eftersom du implementerar en massa små små saker, 948 00:49:17,990 --> 00:49:20,250 och varje sak bör fungera på egen hand. 949 00:49:20,250 --> 00:49:24,180 Inte vill, göra allt och sedan se om det fungerar. 950 00:49:24,180 --> 00:49:26,570 Precis som med programvara där du är som jag är 951 00:49:26,570 --> 00:49:28,910 verkligen hoppas att detta är rätt, för om det inte är, 952 00:49:28,910 --> 00:49:30,743 det finns en hel del placerar den kan ha fel. 953 00:49:30,743 --> 00:49:34,220 954 00:49:34,220 --> 00:49:35,110 >> Okej. 955 00:49:35,110 --> 00:49:39,744 Bara att se till att jag sa allt jag behövde säga om MVC. 956 00:49:39,744 --> 00:49:40,680 Yeah. 957 00:49:40,680 --> 00:49:41,347 Cool. 958 00:49:41,347 --> 00:49:47,340 >> Så i CS50 Finance, har vi vår modell, som jag just sagt här. 959 00:49:47,340 --> 00:49:51,810 Det kommer att bli MySQL och phpMyAdmin. 960 00:49:51,810 --> 00:49:55,130 Jag kan definitivt dra dem upp så ni får en chans att titta på det. 961 00:49:55,130 --> 00:49:59,250 Som jag sa tidigare, det är din SQL Databasen fungerar som din modell, 962 00:49:59,250 --> 00:50:03,600 och du kan skicka det vi kallar frågor, som är bara den här sortens saker. 963 00:50:03,600 --> 00:50:04,914 Dessa kallas för en fråga. 964 00:50:04,914 --> 00:50:07,830 Detta är en fråga där du är bara be din databas för något, 965 00:50:07,830 --> 00:50:09,810 eller om du ska ändra din databas på något sätt. 966 00:50:09,810 --> 00:50:11,470 Det är allt det är. 967 00:50:11,470 --> 00:50:16,040 Och du gör det med den funktioner vi har gett dig här. 968 00:50:16,040 --> 00:50:20,500 >> Du kan också manipulera dem för hand via phpMyAdmin, 969 00:50:20,500 --> 00:50:22,170 som vi kan definitivt ta en titt på. 970 00:50:22,170 --> 00:50:25,160 Jag ska skapa ett prov databas med er. 971 00:50:25,160 --> 00:50:25,660 OK. 972 00:50:25,660 --> 00:50:26,680 Så, controller. 973 00:50:26,680 --> 00:50:30,730 Så i detta fall, om du varsel, detta är alla PHP. 974 00:50:30,730 --> 00:50:33,430 Lägg märke till att det är typ av din Huvudsaken för handkontrollen 975 00:50:33,430 --> 00:50:35,410 är att det bör vara mestadels PHP. 976 00:50:35,410 --> 00:50:39,590 Om du har HTML i handkontrollen, inte riktigt säker på vad som händer där. 977 00:50:39,590 --> 00:50:42,495 På samma sätt som jag sagt, om du lyckas [OHÖRBAR] med HTML, 978 00:50:42,495 --> 00:50:43,810 Jag är verkligen intresserad. 979 00:50:43,810 --> 00:50:49,150 >> Så vad vi har här är att du har en viss fråga. 980 00:50:49,150 --> 00:50:53,700 Query är en funktion som vi byggt för er. 981 00:50:53,700 --> 00:50:56,935 Det är som ett omslag för att göra frågor till din databas lite enklare. 982 00:50:56,935 --> 00:51:01,441 Om du inte har det, syntaxen för faktiskt prata med din SQL-databas 983 00:51:01,441 --> 00:51:03,690 skulle vara annorlunda, så vi bara leverera det åt er. 984 00:51:03,690 --> 00:51:05,490 Vi vill göra livet lätt. 985 00:51:05,490 --> 00:51:09,050 >> Så i detta fall, kan ni berätta för mig vad denna linje gör? 986 00:51:09,050 --> 00:51:11,860 987 00:51:11,860 --> 00:51:13,487 SELECT * från några bord. 988 00:51:13,487 --> 00:51:15,320 PUBLIK: Välj allt från den här tabellen. 989 00:51:15,320 --> 00:51:16,570 ALLISON Buchholtz-AU: Exakt. 990 00:51:16,570 --> 00:51:18,750 Så det säger, ge mig allt från den här tabellen. 991 00:51:18,750 --> 00:51:22,430 Och det är att förvara det i några variabla resultat. 992 00:51:22,430 --> 00:51:27,720 Och detta säger, om resultatet inte är lika till false, så gör vi alla i detta. 993 00:51:27,720 --> 00:51:32,390 Så om det finns inget här, om din tabellens tom eller det bara inte finns, 994 00:51:32,390 --> 00:51:33,640 det kommer att returnera false. 995 00:51:33,640 --> 00:51:36,431 Så i detta fall är vi bara göra Se till att något var faktiskt 996 00:51:36,431 --> 00:51:37,520 tillbaka till oss. 997 00:51:37,520 --> 00:51:40,070 >> Och så här, vi har vår stora foreach loop 998 00:51:40,070 --> 00:51:44,380 att vi iterera över vår resultat, och vi kallar den ro, 999 00:51:44,380 --> 00:51:51,080 och vi säger gör den här mallen var dina data är detta resultat. 1000 00:51:51,080 --> 00:51:52,170 OK? 1001 00:51:52,170 --> 00:51:54,440 Så det är bara att bearbeta raden av resultatet. 1002 00:51:54,440 --> 00:51:56,790 Annars skriker den. 1003 00:51:56,790 --> 00:51:59,770 Så detta är ett exempel av regulatorn. 1004 00:51:59,770 --> 00:52:02,842 Som ni ser är detta den bara plats-- Ja, förlåt? 1005 00:52:02,842 --> 00:52:04,960 >> PUBLIK: Varför finns det ett et-tecken före rad? 1006 00:52:04,960 --> 00:52:07,000 >> ALLISON Buchholtz-AU: Ett och-tecken före rad. 1007 00:52:07,000 --> 00:52:11,000 Vi är bara iteration. 1008 00:52:11,000 --> 00:52:13,490 Det är också en adress of-- 1009 00:52:13,490 --> 00:52:16,400 >> PUBLIK: Så det är som C referenser. 1010 00:52:16,400 --> 00:52:22,080 >> ALLISON Buchholtz-AU: Det är att se till att du är faktiskt 1011 00:52:22,080 --> 00:52:24,730 ändra den ursprungliga och inte en kopia. 1012 00:52:24,730 --> 00:52:28,580 Det är på samma sätt med C där vi passerar genom hänvisning här, bara 1013 00:52:28,580 --> 00:52:30,449 att se. 1014 00:52:30,449 --> 00:52:33,530 >> PUBLIK: Är det inte == istället för att inte = i PHP? 1015 00:52:33,530 --> 00:52:35,400 >> ALLISON Buchholtz-AU: Det är inte ==. 1016 00:52:35,400 --> 00:52:37,240 >> PUBLIK: Eftersom jämlikar i C är bara-- 1017 00:52:37,240 --> 00:52:37,970 >> ALLISON Buchholtz-AU: Det är bara inte =. 1018 00:52:37,970 --> 00:52:38,470 Ja, nr. 1019 00:52:38,470 --> 00:52:39,656 Det är inte ==. 1020 00:52:39,656 --> 00:52:45,610 Eftersom == i PHP söker efter jämlikhet med pendling, beviljade, 1021 00:52:45,610 --> 00:52:47,650 men extra kvalitet. 1022 00:52:47,650 --> 00:52:51,050 Så det är inte == i PHP. 1023 00:52:51,050 --> 00:52:53,025 Det är en av den lilla syntaxskillnader. 1024 00:52:53,025 --> 00:52:55,330 1025 00:52:55,330 --> 00:52:55,830 Yeah. 1026 00:52:55,830 --> 00:52:57,538 Så vi bara iteration genom varje rad, 1027 00:52:57,538 --> 00:53:00,850 och göra, om ni Läs igenom din spec, 1028 00:53:00,850 --> 00:53:05,360 är bara någon annan funktion som är faktiskt kommer att behandla all HTML 1029 00:53:05,360 --> 00:53:09,760 och visa den i din webbläsare för dig. 1030 00:53:09,760 --> 00:53:10,610 >> OK. 1031 00:53:10,610 --> 00:53:15,360 Så vi gillar att tänka på dina controllers som vad hanterar affärslogiken. 1032 00:53:15,360 --> 00:53:18,550 Som ni ser här, det är där vi är ta våra data från tabellen, 1033 00:53:18,550 --> 00:53:23,530 vi bearbetar det på något sätt, och sedan kommer vi att passera den. 1034 00:53:23,530 --> 00:53:27,930 När vi gör gör någon mall, viss mall är vår uppfattning, 1035 00:53:27,930 --> 00:53:31,810 och vi bara låta det passera de data som den borde få. 1036 00:53:31,810 --> 00:53:33,340 Inte alla data. 1037 00:53:33,340 --> 00:53:35,340 Bara data som vi vill att den ska få. 1038 00:53:35,340 --> 00:53:37,520 OK? 1039 00:53:37,520 --> 00:53:40,270 I grund och botten data efter bearbetning. 1040 00:53:40,270 --> 00:53:44,780 >> Så detta är utsikten, detta är summan mall som vi har, 1041 00:53:44,780 --> 00:53:49,810 och allt detta gör är, kan du har lite PHP i vyn. 1042 00:53:49,810 --> 00:53:52,620 Det är inte som ett nej PHP tanke. 1043 00:53:52,620 --> 00:53:55,650 Du ska bara ha mycket minimal PHP tanke, 1044 00:53:55,650 --> 00:53:58,860 och du bör inte vara förfrågning i vyn. 1045 00:53:58,860 --> 00:54:01,580 Du ska aldrig tala till din databas i vyn. 1046 00:54:01,580 --> 00:54:02,760 Det är den stora skillnaden. 1047 00:54:02,760 --> 00:54:07,886 >> Så vad som händer här är att vi har PHP som är iteration genom raden. 1048 00:54:07,886 --> 00:54:10,260 Så i detta fall, eftersom vi var iterera igenom varje rad 1049 00:54:10,260 --> 00:54:14,370 och rendering något, var det förmodligen som en tvådimensionell array 1050 00:54:14,370 --> 00:54:18,240 där vi har en del rad som är, i sig, en matris, 1051 00:54:18,240 --> 00:54:20,520 eftersom vi iteration igenom det igen. 1052 00:54:20,520 --> 00:54:26,730 Och vi bara skriva ut raden namnet, sedan avsluta det. 1053 00:54:26,730 --> 00:54:28,470 >> Du ska inte behöva detta i foreach. 1054 00:54:28,470 --> 00:54:30,560 Jag har aldrig sett det innan faktiskt. 1055 00:54:30,560 --> 00:54:33,160 Jag gör bara foreach. 1056 00:54:33,160 --> 00:54:35,140 OK, så det är vyn. 1057 00:54:35,140 --> 00:54:40,170 Låt oss se om vi kan gå igenom en liten bit av din pset. 1058 00:54:40,170 --> 00:54:45,380 Vi har 15 minuter, så jag är säker på att du killar vill ha det mer än bara 1059 00:54:45,380 --> 00:54:45,935 slutar tidigt. 1060 00:54:45,935 --> 00:54:48,980 1061 00:54:48,980 --> 00:54:52,680 Låt mig se om jag kan ta upp det här. 1062 00:54:52,680 --> 00:54:57,130 >> Så jag vet inte hur många av er killar har laddat ner den och vad inte ännu, 1063 00:54:57,130 --> 00:55:00,660 men vi har användarnamn här, och vi har några lösenord. 1064 00:55:00,660 --> 00:55:05,310 Och tyvärr, höger nu databasen är tomt, 1065 00:55:05,310 --> 00:55:10,390 så vi faktiskt behöver att skapa en databas. 1066 00:55:10,390 --> 00:55:13,470 Tja, det är konstigt. 1067 00:55:13,470 --> 00:55:14,450 Inte förvänta sig det. 1068 00:55:14,450 --> 00:55:15,375 Tekniska fel. 1069 00:55:15,375 --> 00:55:17,139 Tekniska svårigheter. 1070 00:55:17,139 --> 00:55:17,930 Vi har lite pset7. 1071 00:55:17,930 --> 00:55:22,470 1072 00:55:22,470 --> 00:55:23,180 Cool. 1073 00:55:23,180 --> 00:55:29,660 >> Så, en sak du kan göra är att, med en query-- Jag ska skapa en tabell. 1074 00:55:29,660 --> 00:55:38,570 Så detta kommer att bli users-- vad du kan göra här är, om vi har some-- 1075 00:55:38,570 --> 00:55:39,830 Verkligen nu? 1076 00:55:39,830 --> 00:55:40,330 OK. 1077 00:55:40,330 --> 00:55:44,510 Självklart jag inte gör så varmt. 1078 00:55:44,510 --> 00:55:45,010 Oh. 1079 00:55:45,010 --> 00:55:45,740 Jag vet varför. 1080 00:55:45,740 --> 00:55:49,070 Eftersom jag aldrig skapat mina faktiska tabeller. 1081 00:55:49,070 --> 00:55:52,400 Så när du börjar med en databas, du uppenbarligen 1082 00:55:52,400 --> 00:55:56,550 måste bestämma vad är det saker jag måste ha in här? 1083 00:55:56,550 --> 00:56:00,850 >> Så om vi bara gå ut vår datatabell här, 1084 00:56:00,850 --> 00:56:06,410 Vi hade några ID, som kan bara stanna en int. 1085 00:56:06,410 --> 00:56:12,460 Och om vi ser här, det finns en cool sak that-- So index. 1086 00:56:12,460 --> 00:56:18,060 Om du gör primära, kommer det att göra det sak som ditt bord arrangeras av, 1087 00:56:18,060 --> 00:56:19,410 och det kommer också att göra det unikt. 1088 00:56:19,410 --> 00:56:25,790 Så i detta fall kommer vi att göra det primära, och jag kommer att göra detta namn, 1089 00:56:25,790 --> 00:56:34,500 då ska vi bara göra det en varchar av som 26 bokstäver, eftersom varför inte? 1090 00:56:34,500 --> 00:56:39,060 >> Och sedan kan du gå för att spara och sedan om du ser, vi har några användare här. 1091 00:56:39,060 --> 00:56:42,950 Så om vi ville göra en infoga, vi kunde göra det 1092 00:56:42,950 --> 00:56:51,807 på detta sätt, eller om du ville praxis med din queries-- Oh boy. 1093 00:56:51,807 --> 00:56:53,140 Jag har inte använt detta i evighet. 1094 00:56:53,140 --> 00:56:53,980 Jag tar tillbaka. 1095 00:56:53,980 --> 00:56:57,620 1096 00:56:57,620 --> 00:57:04,030 >> Du kan redigera det här på egen hand, antingen bara genom att manuellt föra in uppgifter 1097 00:57:04,030 --> 00:57:08,270 med något liknande, du kan ändra någon av dessa 1098 00:57:08,270 --> 00:57:13,730 om du ville make-- Om du vill plötsligt bli av namnet, kan du släppa, 1099 00:57:13,730 --> 00:57:15,220 du kan göra alla dessa saker. 1100 00:57:15,220 --> 00:57:17,560 Om du behöver någonsin ändra ditt bord manuellt, 1101 00:57:17,560 --> 00:57:20,200 Jag föreslår att göra det på phpMyAdmin kontra försöker 1102 00:57:20,200 --> 00:57:24,475 att räkna ut SQL frågor i allmänhet. 1103 00:57:24,475 --> 00:57:27,350 När du startar din pset, du kommer att behöva arbeta i här, 1104 00:57:27,350 --> 00:57:29,650 så vänja mig vid det. 1105 00:57:29,650 --> 00:57:35,650 Och sedan när du verkligen vill att infoga saker i din table-- 1106 00:57:35,650 --> 00:57:38,310 Jag undrar verkligen om det är, eftersom there's-- Här är det. 1107 00:57:38,310 --> 00:57:39,310 Det är vad jag ville ha. 1108 00:57:39,310 --> 00:57:44,320 Så om du går till SQL, du kan faktiskt se, som vi ser här, 1109 00:57:44,320 --> 00:57:45,870 Vi har SQL-frågor. 1110 00:57:45,870 --> 00:57:54,100 >> Så om vi ville välja något eller om vi ville sätta in något, 1111 00:57:54,100 --> 00:58:00,320 vi kan göra insatsen i användarna, eller hur? 1112 00:58:00,320 --> 00:58:04,460 1113 00:58:04,460 --> 00:58:07,230 Jag tror att du behöver det omvända snedstrecket. 1114 00:58:07,230 --> 00:58:10,210 En sak att veta är, om du någonsin använder detta, 1115 00:58:10,210 --> 00:58:14,800 du måste använda dessa tillbaka apostrofer, som är typiskt, 1116 00:58:14,800 --> 00:58:16,790 om du är på en Mac, precis ovanför fliken. 1117 00:58:16,790 --> 00:58:17,840 Så en bra sak att veta. 1118 00:58:17,840 --> 00:58:23,330 >> Du kan infoga i användarna, och vi har våra värderingar, eller hur? 1119 00:58:23,330 --> 00:58:29,700 Så vi har värderingar, och våra värderingar i detta fall skulle bara vara, 1120 00:58:29,700 --> 00:58:33,910 Vi har bara ett ID så vi kunde göra något om vi ville. 1121 00:58:33,910 --> 00:58:35,320 Det är konstigt. 1122 00:58:35,320 --> 00:58:36,730 OK. 1123 00:58:36,730 --> 00:58:41,800 Så det är precis som en kort liten sak med SQL, 1124 00:58:41,800 --> 00:58:48,300 men det kan vara mer användbart att faktiskt titta på några av filerna i här. 1125 00:58:48,300 --> 00:58:50,985 >> Så gå till Downloads. 1126 00:58:50,985 --> 00:58:51,950 Åh, inte Downloads. 1127 00:58:51,950 --> 00:58:55,260 1128 00:58:55,260 --> 00:58:58,690 Så, bara en snabb genomgång av vad som finns i var och en av dessa mappar. 1129 00:58:58,690 --> 00:59:03,090 Den innehåller, vi har bara saker att konfigurera din webbläsare, 1130 00:59:03,090 --> 00:59:05,370 vi har dessa konstanter, och vi har dessa funktioner. 1131 00:59:05,370 --> 00:59:10,470 Om du är intresserad av någon av dem, Jag rekommenderar att titta på funktioner. 1132 00:59:10,470 --> 00:59:17,400 En av dem som är super användbar, egentligen är det en här, dumpa. 1133 00:59:17,400 --> 00:59:20,020 >> Så om du använder detta, det kommer faktiskt bara 1134 00:59:20,020 --> 00:59:23,120 skriva ut oavsett variabel att du gillar det. 1135 00:59:23,120 --> 00:59:29,000 Så om du har problem med att räkna ut vad denna samling ser ut, 1136 00:59:29,000 --> 00:59:31,920 eller vad dessa data faktiskt, hur det är formaterad, 1137 00:59:31,920 --> 00:59:33,280 detta är en stor sak att använda. 1138 00:59:33,280 --> 00:59:39,889 Speciellt när du har ett användare med multipla lager, 1139 00:59:39,889 --> 00:59:41,680 detta kommer att bli något bra att använda. 1140 00:59:41,680 --> 00:59:42,890 Eftersom det kan vara formatted-- 1141 00:59:42,890 --> 00:59:45,806 >> Jag vet åtminstone för mig när jag gjorde detta pset var det formateras på ett sätt 1142 00:59:45,806 --> 00:59:47,210 att jag inte riktigt trodde. 1143 00:59:47,210 --> 00:59:49,960 Så jag försökte att iterera över den och försöka manipulera den, 1144 00:59:49,960 --> 00:59:52,350 men jag visste inte riktigt förstå vad jag gjorde. 1145 00:59:52,350 --> 00:59:56,830 Så om du bara dumpa det, kommer det skriva ut den till webbläsaren, 1146 00:59:56,830 --> 00:59:59,220 och du kan se exakt hur det formateras. 1147 00:59:59,220 --> 01:00:03,530 Det kommer oftast skriva ut den som en array med sina nycklar och dess värden. 1148 01:00:03,530 --> 01:00:04,637 Så det kan hjälpa det. 1149 01:00:04,637 --> 01:00:06,720 Det kan också bidra till att göra Se till att du är faktiskt 1150 01:00:06,720 --> 01:00:09,070 ta tag i uppgifter som du trodde du var. 1151 01:00:09,070 --> 01:00:12,950 Så om du var som, mitt bord definitivt säger att det finns en användare med detta ID, 1152 01:00:12,950 --> 01:00:15,260 men när du går att dumpa variabel, det är inte där, 1153 01:00:15,260 --> 01:00:17,551 du uppenbarligen vet att det är där ett fel kommer att bli. 1154 01:00:17,551 --> 01:00:22,180 Detta är ett av de bästa verktygen för felsökning, enligt min mening. 1155 01:00:22,180 --> 01:00:24,480 Och så finns det en par andra saker här, 1156 01:00:24,480 --> 01:00:27,660 men för det mesta, det är jag vill uppmärksamma er på, 1157 01:00:27,660 --> 01:00:31,060 eftersom det är till stor hjälp. 1158 01:00:31,060 --> 01:00:35,800 >> Offentligt, vad vi har här är, Detta är alla våra CSS grejer. 1159 01:00:35,800 --> 01:00:40,520 Så CSS, typsnitt, våra bilder, allt. 1160 01:00:40,520 --> 01:00:43,255 Detta är alla saker som du behöver inte ändra. 1161 01:00:43,255 --> 01:00:46,070 1162 01:00:46,070 --> 01:00:50,080 Kan ni tänka på om detta har saker som CSS i typsnitt, 1163 01:00:50,080 --> 01:00:54,039 skulle detta vara en modell, eller en vy eller en controller? 1164 01:00:54,039 --> 01:00:54,914 PUBLIK: [OHÖRBAR] 1165 01:00:54,914 --> 01:00:57,080 ALLISON Buchholtz-AU: Det skulle vara mer av en vy, eller hur? 1166 01:00:57,080 --> 01:01:00,510 Detta hanterar alla saker, hur det ser ut. 1167 01:01:00,510 --> 01:01:03,500 Så om vi öppnar det här ser vi att allt som händer här 1168 01:01:03,500 --> 01:01:05,060 är att vi gör något. 1169 01:01:05,060 --> 01:01:05,820 OK? 1170 01:01:05,820 --> 01:01:09,710 Så detta skulle verkligen kvalificera sig som en vy för detta. 1171 01:01:09,710 --> 01:01:14,810 Så det här är bara ta lite, Det ringer någon portfolio.php 1172 01:01:14,810 --> 01:01:19,430 som vi har, och det är förbi i titeln och portfölj. 1173 01:01:19,430 --> 01:01:20,696 Och det är bara att göra det. 1174 01:01:20,696 --> 01:01:21,820 Faktiskt, jag tar tillbaka. 1175 01:01:21,820 --> 01:01:27,890 Detta är en styrenhet, eftersom render, kom ihåg, gör utsikten. 1176 01:01:27,890 --> 01:01:30,832 Så portfolio.php i detta fall skulle vara vyn. 1177 01:01:30,832 --> 01:01:32,480 Ledsen, grabbar. 1178 01:01:32,480 --> 01:01:36,160 Portfolio.php kommer att bli vyn, och det skulle bara 1179 01:01:36,160 --> 01:01:38,730 vara din controller för det. 1180 01:01:38,730 --> 01:01:43,120 Och om vi tar en titt på detta sista här, mallar, 1181 01:01:43,120 --> 01:01:47,330 mallar är alla dina åsikter här. 1182 01:01:47,330 --> 01:01:52,420 Så om vi ser naturligtvis Vi ser en hel del HTML här. 1183 01:01:52,420 --> 01:01:58,920 >> Så den här är bara visa dig vad inloggningssidan ska se ut. 1184 01:01:58,920 --> 01:02:04,810 Du märker att vi har en del bilda grupper, har på skicka. 1185 01:02:04,810 --> 01:02:08,510 Här är hur du bestämma vad visas där. 1186 01:02:08,510 --> 01:02:14,320 Du har någon knapp type = "submit", och då har du vad du vill ha det 1187 01:02:14,320 --> 01:02:16,670 som ska visas i knappen. 1188 01:02:16,670 --> 01:02:19,860 Så det är hur man skulle göra det visas som vad du vill. 1189 01:02:19,860 --> 01:02:24,520 >> Och vi ser här har vi några användarnamn, några lösenord, 1190 01:02:24,520 --> 01:02:30,590 och när vi faktiskt slog in, det kommer att bli en del inlägg, 1191 01:02:30,590 --> 01:02:33,346 och det kommer att lägga till vad? 1192 01:02:33,346 --> 01:02:35,430 Vad är ansvarig för denna uppfattning? 1193 01:02:35,430 --> 01:02:38,040 1194 01:02:38,040 --> 01:02:40,940 När vi träffar Skicka, vad som kommer att kallas? 1195 01:02:40,940 --> 01:02:42,990 Vet vi? 1196 01:02:42,990 --> 01:02:45,560 Det är just här, så login.php. 1197 01:02:45,560 --> 01:02:47,600 Något ni är kommer att genomföra. 1198 01:02:47,600 --> 01:02:50,580 >> Så du kan alltid säga vad som kommer att bli 1199 01:02:50,580 --> 01:02:53,740 ropade efter du träffar Skicka genom denna första raden här. 1200 01:02:53,740 --> 01:02:55,440 Vad form action är. 1201 01:02:55,440 --> 01:02:58,350 När denna blankett lämnas in, vilka åtgärder tar vi? 1202 01:02:58,350 --> 01:03:01,440 Vi kallar login.php, och vi kalla det med denna metod 1203 01:03:01,440 --> 01:03:05,500 av inlägget, som har den dold information. 1204 01:03:05,500 --> 01:03:06,210 OK? 1205 01:03:06,210 --> 01:03:14,485 Så det här är din uppfattning, och då är det uppenbart om vi gick till login.php-- Har vi det 1206 01:03:14,485 --> 01:03:16,025 ännu? 1207 01:03:16,025 --> 01:03:17,970 Yeah. 1208 01:03:17,970 --> 01:03:21,950 >> Så som vi ser här, det här har mycket mer logiskt. 1209 01:03:21,950 --> 01:03:23,570 Det är alla våra PHP här. 1210 01:03:23,570 --> 01:03:28,870 Vi försöker se om det var $ _GET, om det var $ _POST, validera saker, 1211 01:03:28,870 --> 01:03:31,370 frågande, allt det här. 1212 01:03:31,370 --> 01:03:34,950 1213 01:03:34,950 --> 01:03:40,200 Så de är bara tre olika saker här. 1214 01:03:40,200 --> 01:03:43,750 du behöver inte ändra saker. 1215 01:03:43,750 --> 01:03:46,540 Du kommer att skapa saker i mall, eventuellt, 1216 01:03:46,540 --> 01:03:51,350 men så långt som HTML eller styling av något av detta går, 1217 01:03:51,350 --> 01:03:54,550 Du kan lämna det som vanligt eller så intrikat som du vill. 1218 01:03:54,550 --> 01:03:59,800 >> Vissa människor får verkligen in i den och göra några ganska häftigt webbplatser. 1219 01:03:59,800 --> 01:04:00,940 Du behöver inte göra det. 1220 01:04:00,940 --> 01:04:03,750 Om du har tid, det är en riktigt cool grej. 1221 01:04:03,750 --> 01:04:08,260 Du kan röra runt med CSS och HTML och få en mycket bättre känsla för det, 1222 01:04:08,260 --> 01:04:10,810 men känner mig inte pressad att. 1223 01:04:10,810 --> 01:04:14,760 Det finns mycket för dig att göra på back end med om genomförande logga in, 1224 01:04:14,760 --> 01:04:17,170 och registrera, och alla dessa saker. 1225 01:04:17,170 --> 01:04:20,490 >> Så förhoppningsvis som hjälper lite. 1226 01:04:20,490 --> 01:04:23,430 gör ni har några frågor om något vi har gått över, 1227 01:04:23,430 --> 01:04:25,690 några andra källor? 1228 01:04:25,690 --> 01:04:31,160 Jag kommer definitivt att skicka alla mitt exempel PHP-kod till er killar, 1229 01:04:31,160 --> 01:04:35,020 och då gärna att ta bilder eller whatnot i detta. 1230 01:04:35,020 --> 01:04:36,180 Också det är online. 1231 01:04:36,180 --> 01:04:39,010 Du kan alltid bara titta igen. 1232 01:04:39,010 --> 01:04:42,190 Så om det är det, alla bra? 1233 01:04:42,190 --> 01:04:42,690 Ja. 1234 01:04:42,690 --> 01:04:44,523 >> PUBLIK: Jag vill bara att bekräfta, när vi är 1235 01:04:44,523 --> 01:04:47,447 gör välj i SQL, den stjärnan betyder allt, eller hur? 1236 01:04:47,447 --> 01:04:48,530 ALLISON Buchholtz-AU: Ja. 1237 01:04:48,530 --> 01:04:50,446 PUBLIK: Och sedan om du har inte stjärnan, 1238 01:04:50,446 --> 01:04:53,732 om du vill att det ska ta från en specifik rad, då du bara sätta namnet of-- 1239 01:04:53,732 --> 01:04:55,440 ALLISON Buchholtz-AU: Namnet på den rad 1240 01:04:55,440 --> 01:04:56,240 och vad du vill du vill att värdet av. 1241 01:04:56,240 --> 01:04:57,577 >> PUBLIK: Och sedan datum. 1242 01:04:57,577 --> 01:04:59,910 ALLISON Buchholtz-AU: Vad du är ute efter, ja. 1243 01:04:59,910 --> 01:05:05,100 På samma sätt, om du DELETE * från några bord, kommer det att ta bort allt. 1244 01:05:05,100 --> 01:05:08,896 Så, * är bara en vild kort för allt. 1245 01:05:08,896 --> 01:05:09,788 >> PUBLIK: OK. 1246 01:05:09,788 --> 01:05:10,930 >> ALLISON Buchholtz-AU: Cool. 1247 01:05:10,930 --> 01:05:11,430 Grymt. 1248 01:05:11,430 --> 01:05:12,800 Tja, har en stor måndag, grabbar. 1249 01:05:12,800 --> 01:05:13,760 Vi ses nästa vecka. 1250 01:05:13,760 --> 01:05:15,530 Lycka till på din pset. 1251 01:05:15,530 --> 01:05:16,992