1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Bonvenon sekcio por tiu semajno. 3 00:00:08,440 --> 00:00:10,040 Mi ne estas Andi. 4 00:00:10,040 --> 00:00:14,590 Andi falis malsana hodiaux, kaj mi estis speco de nomita en lasta minuto 5 00:00:14,590 --> 00:00:15,700 transpreni. 6 00:00:15,700 --> 00:00:20,920 Estas gripo sezono, tiel certigi ke vi estas restanta pura, lavi viajn manojn, 7 00:00:20,920 --> 00:00:24,800 kaj manĝante sana por ke ankaŭ vi ne enlite. 8 00:00:24,800 --> 00:00:26,870 >> Sed sen plua ado, ni komencu. 9 00:00:26,870 --> 00:00:29,970 Hodiaŭ, ni tuj parolos pri PHP iom bit-- kiom 10 00:00:29,970 --> 00:00:33,900 PHP rilatas al HTML, kiel rilatas al CSS, kaj iuj de la TTT 11 00:00:33,900 --> 00:00:36,100 aĵoj vi faris sur la lasta farita. 12 00:00:36,100 --> 00:00:37,930 Ni tuj paroli iomete pri SQLa 13 00:00:37,930 --> 00:00:41,360 kaj kiel vi povas labori kun datumbazoj, kio estas bela kerna ero de P 14 00:00:41,360 --> 00:00:43,650 fiksita 8-- P starigis 7. 15 00:00:43,650 --> 00:00:44,480 P starigis 7. 16 00:00:44,480 --> 00:00:48,400 >> Kaj poste ni iras paroli iom bita pri kiel vido regiloj labori 17 00:00:48,400 --> 00:00:54,640 kaj kial tio estas filozofio malantaŭ iuj moderna retpaĝojn kaj malsama dezajno. 18 00:00:54,640 --> 00:00:58,760 Pli malpli multajn tipojn de apps kaj aplikoj vi povus ekspedi 19 00:00:58,760 --> 00:01:01,120 abonas tiun modelon, vido controlador kadro, 20 00:01:01,120 --> 00:01:02,890 ke vi estos uzanta en P aro 7, do mi 21 00:01:02,890 --> 00:01:05,220 paroli iomete pri kial tio fariĝis 22 00:01:05,220 --> 00:01:07,970 populara, kial ĝi estas grava kaj bela. 23 00:01:07,970 --> 00:01:12,052 Kaj poste mi finfine pluiri al kelkaj konsiletoj pri pritraktado P starigis 7. 24 00:01:12,052 --> 00:01:13,760 Kaj se ni havas tempon superflue fine, 25 00:01:13,760 --> 00:01:17,320 ni povas vere fari iun labori en tiu kune. 26 00:01:17,320 --> 00:01:20,380 >> Do, PHP. 27 00:01:20,380 --> 00:01:23,790 Fakte, vi eble rimarkis this-- vi ne vere devas plonĝi en it-- 28 00:01:23,790 --> 00:01:27,880 sed P starigis 6 havis iuj PHP kodo kiu okazas. 29 00:01:27,880 --> 00:01:34,710 Kaj ĉar PHP estas C-simila lingvo, PHP, kontraste HTML kaj CSS, 30 00:01:34,710 --> 00:01:39,030 estas komputila programlingvo dum HTML kaj CSS estas statikaj. 31 00:01:39,030 --> 00:01:44,050 Ili estas markado lingvoj kontraktanta kun stilo kaj vidaj aranĝo. 32 00:01:44,050 --> 00:01:46,230 PHP estas la vera interkonsento. 33 00:01:46,230 --> 00:01:51,590 >> PHP havas cikloj, ĝi havas conditions-- ĉiuj kiuj aĵoj estas amuza pri C. 34 00:01:51,590 --> 00:01:56,190 Ĝi havas kelkajn aĵojn kiuj estas iom iom pli bona ol C, kiu ni vidos, 35 00:01:56,190 --> 00:01:59,760 sed mi pensas ke la plej facila maniero por paroli pri la PHP estas nur plonĝi en. 36 00:01:59,760 --> 00:02:04,087 Do mi tuj iros dekstren en la IDE ĉe tiu punkto. 37 00:02:04,087 --> 00:02:06,170 La unua afero ni iras fari vere aspektas 38 00:02:06,170 --> 00:02:10,169 iomete en iu el la PHP kodo kiu estis en P starigis 6. 39 00:02:10,169 --> 00:02:13,600 Do la maniero ke ni faru that-- antaŭe, la maniero ke ni kuradis 40 00:02:13,600 --> 00:02:18,550 la servilo por la aparaton estis ke ni devus type-- 41 00:02:18,550 --> 00:02:21,750 ĉu uzi via efektivigo aŭ la personaro efektivigo 42 00:02:21,750 --> 00:02:27,059 de server.c irante en dosierujo kaj kurante server.c per aŭ ne 43 00:02:27,059 --> 00:02:30,100 arguments-- tiel simple nomas ĝin sur la loka gastiganto, kiu estas kion vi probable 44 00:02:30,100 --> 00:02:31,849 faris plej el la time-- kaj tiam nutrante ĝin 45 00:02:31,849 --> 00:02:35,380 a directory kun kiu por uzi kiel lia radiko 46 00:02:35,380 --> 00:02:38,310 kie la retejo volus esti kuri, esence. 47 00:02:38,310 --> 00:02:42,180 >> Ĉi tiu semajno por P starigis 7, kiel granda kiel nia kodo por server.c 48 00:02:42,180 --> 00:02:47,580 estas, ekzistas homoj kiuj jam skribis tiujn belegajn aferojn super ĉe CS50 49 00:02:47,580 --> 00:02:49,630 kiuj havas iomete pli funcionalidad, 50 00:02:49,630 --> 00:02:52,920 servilan programon kiu estas kapabla trakti iom pli 51 00:02:52,920 --> 00:02:56,350 de la kompleksecojn ke ni vidi en ambaŭ P starigis 7 kaj P aro 8. 52 00:02:56,350 --> 00:03:01,410 Kaj la vojon ke vi funkciigas la servilo estas por nur tajpante "apache50." 53 00:03:01,410 --> 00:03:03,960 >> Kaj antaŭ ol vi fari ion ajn, Vi volas certigi 54 00:03:03,960 --> 00:03:06,070 ke Apache 50 ne jam kurante kiel ĝi estas 55 00:03:06,070 --> 00:03:08,130 sur mia komputilo, kiun mi faris por testi ĝin. 56 00:03:08,130 --> 00:03:10,320 Kaj vi faros tion per nomante apache50. 57 00:03:10,320 --> 00:03:14,070 Ĉesu, kaj vi vidos ke ĝi estas haltanta la retservilo, se vi povas rigardi tie 58 00:03:14,070 --> 00:03:16,340 ĉe la malsupro de la terminala fenestro. 59 00:03:16,340 --> 00:03:21,090 Kaj tiam simple komenci, ni estas tuj nomos "apache50 komenci." 60 00:03:21,090 --> 00:03:23,150 Kaj tiam ni tuj nutri ĝin dosierujo. 61 00:03:23,150 --> 00:03:26,950 >> Nun, ĉar ni volas aspekti en iu de la P starigis 6 kodo 62 00:03:26,950 --> 00:03:32,850 ke ni implementado, mi efektive kopiitaj iomete de la P 63 00:03:32,850 --> 00:03:37,090 fiksita 6 kodon en mian propran dosierujon, kiun vi povas vidi sur la maldekstra. 64 00:03:37,090 --> 00:03:40,170 Ĝi nomiĝas "SECTION8" en ĉiuj majuskloj 65 00:03:40,170 --> 00:03:44,510 ĉar mi estas nur tiel ekscitita esti viva-eksudita hodiaŭ. 66 00:03:44,510 --> 00:03:47,330 >> Do se ni kuras ĉi, ĝi devus ĉiuj uzeblas efike. 67 00:03:47,330 --> 00:03:52,350 Ĝi diras, OK, nia paĝaro nun disponeblaj ĉe la adreso de la IDE, 68 00:03:52,350 --> 00:03:57,710 esence, kiu estas kion vi uzis ĝuste kiel estis en P starigis 7-- P starigis 6. 69 00:03:57,710 --> 00:04:00,899 Ĉiuj miaj indeksoj estas unu indekso hodiaŭ. 70 00:04:00,899 --> 00:04:02,940 Do ni povas iri al tiu adreso, se vi memoras, 71 00:04:02,940 --> 00:04:05,710 per simple alklakante ĉi iom butono en supra dekstra. 72 00:04:05,710 --> 00:04:14,200 >> Kaj vi memoras tiun kodon, kiu okazis kiam vi iris en hello.php. 73 00:04:14,200 --> 00:04:18,000 Kaj kion la kodo celas faras estas kiam vi entajpis nomon 74 00:04:18,000 --> 00:04:20,550 here-- se vi diras Sam ĉar tio estas mia name-- 75 00:04:20,550 --> 00:04:23,620 kaj mi klakas Say Hello, kiam Ni iris al la sekva paĝo, 76 00:04:23,620 --> 00:04:25,270 tiu nomo estis supozita esti montrata. 77 00:04:25,270 --> 00:04:28,550 Ĝi dirus, "Saluton, Sam" aŭ "Saluton," kiel ajn vi 78 00:04:28,550 --> 00:04:32,470 metis en ĝin eĉ se ni iris al tute nova retpaĝo. 79 00:04:32,470 --> 00:04:36,610 >> Kaj tiu estas la speco de afero ke PHP povas fari por vi. 80 00:04:36,610 --> 00:04:42,840 PHP povas pasi datumoj inter du retpaĝojn. 81 00:04:42,840 --> 00:04:44,390 Tio estas plene malsama paĝo. 82 00:04:44,390 --> 00:04:46,990 Vi vidos la titolo estas "saluton" tie. 83 00:04:46,990 --> 00:04:49,080 Fakte, ili havas la sama titolo, sed mi 84 00:04:49,080 --> 00:04:52,560 promesi ili estas malsamaj ttt paĝoj, se ni rigardas la fonto. 85 00:04:52,560 --> 00:04:55,890 Kaj vi povas transdoni la datumojn kiuj estas eniris en tiun tekston kampo, 86 00:04:55,890 --> 00:04:59,830 vi submetas ĝin al la sekva paĝo kiu estas estanta vokita ĝis, 87 00:04:59,830 --> 00:05:02,490 kaj tiam ke datumoj povas cxi tie, en ĝia nuna formo. 88 00:05:02,490 --> 00:05:04,810 >> Nun ni ankoraŭ ne implementadas tiu mem, kiu 89 00:05:04,810 --> 00:05:08,710 estas kion ni tuj faros nun al ia akiri guston por kiel PHP laboras, 90 00:05:08,710 --> 00:05:15,070 sed la ŝlosilo ideo estas ke PHP-- vi povas ia rigardante ĝin kiel funkcio. 91 00:05:15,070 --> 00:05:18,570 Iu kiu PHP povas lasi vin ja estas ĝi povas preni parametroj 92 00:05:18,570 --> 00:05:24,710 ke vi enigo en HTML paĝon tra la uzo de PHP kaj formoj, 93 00:05:24,710 --> 00:05:29,960 kaj ĝi povas superi tiujn kiel parametroj al la sekva paĝo kiu ŝarĝas supren. 94 00:05:29,960 --> 00:05:35,110 >> En tiu kazo, ni ŝarĝas supren ĉi paĝo kun la "Diru saluton" butonon. 95 00:05:35,110 --> 00:05:38,960 Sed nuntempe, mi efektive forigita iom de tiu kodo 96 00:05:38,960 --> 00:05:44,850 en la hello.php kiu estis kuri kiu fakte montranta la "saluton, 97 00:05:44,850 --> 00:05:49,680 mondo "aŭ" saluton, Sam "aŭ "saluton," kio ajn estis nur enigo. 98 00:05:49,680 --> 00:05:53,620 Do por ĝusta nun, ni estas faros tion, esence. 99 00:05:53,620 --> 00:05:56,570 Ni tuj rekrei kaj Ankaŭ aldonu iom pli funcionalidad, 100 00:05:56,570 --> 00:06:00,210 fari iomete pli kun ĝi, vidu kion PHP estas vere kapablaj. 101 00:06:00,210 --> 00:06:04,870 >> Do unue, ni parolu pri dosiero, hello.php. 102 00:06:04,870 --> 00:06:07,440 Do se ni zomi en iom bit-- kaj nun mi estas 103 00:06:07,440 --> 00:06:10,520 ia provas rulumu ĉiuj la vojo around-- tie ni iras. 104 00:06:10,520 --> 00:06:14,220 Vi vidos ĝi nomiĝas hello.php, sed la sintakso de ĝi 105 00:06:14,220 --> 00:06:16,880 aspektas kiel HTML-dosieron. 106 00:06:16,880 --> 00:06:20,380 Tiu estas ĉar la fakta PHP en la dosiero 107 00:06:20,380 --> 00:06:25,220 estas ĉiuj tiuj senmoviĝita inter demandosigno-tekstkursoran blokoj. 108 00:06:25,220 --> 00:06:28,610 Ĉio tie ĉi estas konsiderita PHP kodo. 109 00:06:28,610 --> 00:06:32,040 >> Kaj vi rimarkos ke kiam mi faris komenton, 110 00:06:32,040 --> 00:06:35,320 vi vidos la familiara du antaŭen slashes. 111 00:06:35,320 --> 00:06:38,440 Kaj se vi memoras, en HTML, se mi tajpas komenton, 112 00:06:38,440 --> 00:06:42,540 ĝi aspektas ion pli proksiman al tiu, kiu estas komenton en HTML. 113 00:06:42,540 --> 00:06:46,570 Do vere ĉiu inter tiuj du angulajn krampojn 114 00:06:46,570 --> 00:06:50,060 nun PHP kodon, kiun estas reflektita en la fakto 115 00:06:50,060 --> 00:06:53,270 ke tiu malgranda komenton simbolo fresxecon komenton. 116 00:06:53,270 --> 00:06:58,420 >> Do ĉiufoje vi skribas PHP kodo, eĉ se estas neniu HTML- kodon ekster ĝi, 117 00:06:58,420 --> 00:07:02,720 ĝi estas ĉiam tuj estos enmetitaj en tiuj angulajn krampojn 118 00:07:02,720 --> 00:07:04,080 kun demandosignojn. 119 00:07:04,080 --> 00:07:08,260 Vi povas ordigi de pripensi it-- kiel ĉio de la kodo kiu kuris en via C programoj 120 00:07:08,260 --> 00:07:13,950 estis enfermita en int ĉefa, malplenon, krispa krampoj, fino krispa streĉa komunikaĵo. 121 00:07:13,950 --> 00:07:17,100 Kaj vi vidos buklaj krampoj en PHP, tro, sed ĉi tiu estas speco de 122 00:07:17,100 --> 00:07:20,490 kiel la ĉefa metodo de PHP. 123 00:07:20,490 --> 00:07:25,630 >> Do nun, kiel ni faros ion en PHP? 124 00:07:25,630 --> 00:07:29,190 Nun, PHP estas programlingvo lingvo kiu estas tre C-simila, 125 00:07:29,190 --> 00:07:30,970 sed operacias en la reto. 126 00:07:30,970 --> 00:07:33,270 Do unu afero vi immediately-- unu 127 00:07:33,270 --> 00:07:38,130 el la unuaj aferoj vi vere faris kun C estis vi presitaj aĵoj ekstere, dekstra? 128 00:07:38,130 --> 00:07:42,290 Do en C ni faradis kun printf funkcio. 129 00:07:42,290 --> 00:07:46,430 Ni donis ĝin ĉenon, probable kun nova linio, 130 00:07:46,430 --> 00:07:49,850 kaj tiam ni finis per punktokomo. 131 00:07:49,850 --> 00:07:53,790 >> Do la maniero ke ni tuj faros tion en PHP-- ĉar ĝi ne estas sufiĉe printf. 132 00:07:53,790 --> 00:07:55,940 Estas iomete da malsama sintakso. 133 00:07:55,940 --> 00:08:02,580 La maniero kiu ni presi aferojn en PHP estas ni diras, "eĥo saluton" 134 00:08:02,580 --> 00:08:04,180 aŭ "eĥon" ajna vorto. 135 00:08:04,180 --> 00:08:09,830 Kaj kiu havas la efikon de farado printf kun ŝnureto, "saluton." 136 00:08:09,830 --> 00:08:11,990 Kaj ĝi aldonas la novan linion al ĝi. 137 00:08:11,990 --> 00:08:16,000 >> Do ni nun faru sure-- Mi malzomi denove iom bit-- 138 00:08:16,000 --> 00:08:18,250 ni certigi ke ke kodo laboras 139 00:08:18,250 --> 00:08:21,030 ĉar ne povus tre bone esti cimo en tiu kodo 140 00:08:21,030 --> 00:08:22,880 ke ni devos pritrakti. 141 00:08:22,880 --> 00:08:25,860 Do la servilo estas jam funkcianta. 142 00:08:25,860 --> 00:08:30,630 Do se ni rulumu reen malsupren al la fundo, Yup, la servilo daŭre kuras. 143 00:08:30,630 --> 00:08:34,510 Do se ni nur tap sur tiu iomete dekstra here-- 144 00:08:34,510 --> 00:08:37,620 welcome-- ni devus get-- granda. 145 00:08:37,620 --> 00:08:39,930 >> Ni ankoraŭ havas la familiara "Diru saluton" dialogo, 146 00:08:39,930 --> 00:08:45,750 sed kiam mi tajpas "hi," ni vidos ke la teksto "saluton" ja 147 00:08:45,750 --> 00:08:50,080 presita el, kiu estas ĝuste kiel ni atendis ĉar eĥon en PHP 148 00:08:50,080 --> 00:08:53,190 estas ĝuste kiel printf deklaro. 149 00:08:53,190 --> 00:09:01,410 Do reen al la kodo, kiel en P starigis 6 faris la dissendo kodo vi estas provizitaj 150 00:09:01,410 --> 00:09:05,920 fari ĝin tiel ke PHP volus eligo Jenon vi 151 00:09:05,920 --> 00:09:07,920 tajpitaj sur la antaŭa ekrano? 152 00:09:07,920 --> 00:09:10,350 >> Kaj al ia ekzameni kial tio okazas, ni estas 153 00:09:10,350 --> 00:09:15,510 tuj iras en index.html, kiu estas la origina dosiero, la dosiero kiu 154 00:09:15,510 --> 00:09:18,710 aperas sur tiu ekrano kun la "Diru saluton" butonon. 155 00:09:18,710 --> 00:09:20,950 Vi rimarkos ke estas tuta klasika aferoj 156 00:09:20,950 --> 00:09:26,910 ni venis atendi de HTML tia kiel tion, tiuj etikedoj enfermitan 157 00:09:26,910 --> 00:09:31,080 en angulajn krampojn, kiel PHP sed sen la demandosignojn, 158 00:09:31,080 --> 00:09:34,650 kiu indikas specialan aferon al HTML. 159 00:09:34,650 --> 00:09:36,895 Ni havas titolon, kiu estas "saluton." 160 00:09:36,895 --> 00:09:41,010 Kaj vi rimarkos ke kiel ni vidis, la titolo estas "saluton" en ambaŭ kazoj. 161 00:09:41,010 --> 00:09:43,260 Ni ŝanĝi ĉi tiu al "diri" nur tiel ni 162 00:09:43,260 --> 00:09:48,170 povas distingi nin, kie ni estas. 163 00:09:48,170 --> 00:09:49,600 >> Sed ni havas korpon. 164 00:09:49,600 --> 00:09:52,690 Kaj tiam la interesa malmulta, la biton kiu montras supren en la HTML, 165 00:09:52,690 --> 00:09:54,530 estas tiu formo elemento. 166 00:09:54,530 --> 00:09:56,370 Kaj do ni havas formon. 167 00:09:56,370 --> 00:09:58,330 Kaj tiu estas la ŝlosilo. 168 00:09:58,330 --> 00:10:00,530 Jen kiel ni laboras kun PHP. 169 00:10:00,530 --> 00:10:05,790 La ago de parametro formo diras ke hello.php 170 00:10:05,790 --> 00:10:09,310 estas kion ni tuj sendos la valoroj en tiu formo. 171 00:10:09,310 --> 00:10:13,830 Tie estas kie ni pasante la parametroj, por tiel diri. 172 00:10:13,830 --> 00:10:18,680 >> Vi rimarkos alia afero ĉi tie estas ke la metodo estas "akiri". 173 00:10:18,680 --> 00:10:24,450 Ekzistas du primaraj metodoj per kiuj volo 174 00:10:24,450 --> 00:10:28,750 esti uzante PHP pasi datumoj inter websites-- retpaĝojn, 175 00:10:28,750 --> 00:10:30,500 rather-- en tiu tasko. 176 00:10:30,500 --> 00:10:34,070 Kaj tiuj metodoj estas "akiri" kaj "post." 177 00:10:34,070 --> 00:10:37,010 Ekzistas kelkaj subtilaj diferencoj inter GET kaj POST 178 00:10:37,010 --> 00:10:40,520 ke ni ricevos into-- ni estos "get" en, se vi volas. 179 00:10:40,520 --> 00:10:44,030 >> Sed efike kaj intencoj, get kaj post 180 00:10:44,030 --> 00:10:47,120 estas ambaŭ ĵus manieroj vi parametri 181 00:10:47,120 --> 00:10:49,500 kun iomete malsamaj ekzekutoj. 182 00:10:49,500 --> 00:10:53,500 Por nun, ni tuj uzi akiri ĉar akiri estis kio estis uzata origine 183 00:10:53,500 --> 00:10:57,340 en la PHP-dosiero de P starigis 6. 184 00:10:57,340 --> 00:11:00,850 Kaj fakte, se ni eniros kaj rigardi antaŭ ni redaktis ion alian, 185 00:11:00,850 --> 00:11:03,090 Mi tuj diru hi to-- kio estas via nomo? 186 00:11:03,090 --> 00:11:03,812 >> Publiko: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: Oh, Gosh. 188 00:11:04,770 --> 00:11:05,600 Mi ne scias kiel literumi tion. 189 00:11:05,600 --> 00:11:06,766 Ĉu vi povas literumi ke estas por mi? 190 00:11:06,766 --> 00:11:08,710 Publiko: E-L-L-Mi-ho-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: Mi-ho-T? 192 00:11:09,720 --> 00:11:10,440 >> Publiko: Yeah. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Perfekta. 194 00:11:10,960 --> 00:11:11,210 BONE. 195 00:11:11,210 --> 00:11:12,751 Mi supozas Mi konis kiel literumi tion. 196 00:11:12,751 --> 00:11:13,510 Pardonu pri tio. 197 00:11:13,510 --> 00:11:16,560 Sed se ni diros "Diru saluton," ĝi estas ne ĝi ne tuj aperas sur la ekrano 198 00:11:16,560 --> 00:11:18,476 tamen, cxar ni modifita la kodo iomete. 199 00:11:18,476 --> 00:11:21,290 Sed se ni "Diru saluton" - Bone, do "saluton" estas tie. 200 00:11:21,290 --> 00:11:24,137 Sed se ni prenas pli proksiman rigardi la URL mem, 201 00:11:24,137 --> 00:11:26,220 Ni vidos ke ĝi finas kun hello.php? nomo = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Do, tio estas maniero de komuniki al la sekva retpaĝo 204 00:11:37,180 --> 00:11:39,240 la parametroj kiujn ni pasis. 205 00:11:39,240 --> 00:11:40,870 Ni diris nomo = Elliot. 206 00:11:40,870 --> 00:11:46,290 Kaj tio estas finfine kiel P starigis 6 Montrita la variablo kiu ni pasigis en 207 00:11:46,290 --> 00:11:47,520 tra la formularo. 208 00:11:47,520 --> 00:11:51,470 Kaj tiu estas iu kiu estas propra al get peto. 209 00:11:51,470 --> 00:11:57,480 Al get peto faras la parametroj konata en la URL de la retejo. 210 00:11:57,480 --> 00:12:01,190 >> Kaj vi memoras, ankaŭ, en P starigis 6 ke vi 211 00:12:01,190 --> 00:12:04,450 devis skribi funkcion kiuj komercis kun la fakto 212 00:12:04,450 --> 00:12:09,700 ke ĉi query string povus ekzisti post dosiero. 213 00:12:09,700 --> 00:12:14,684 Tie povus esti demandosigno sekvis per esence ajnan nombron de karakteroj. 214 00:12:14,684 --> 00:12:16,350 Kaj tio estas ĝuste kio okazas tie. 215 00:12:16,350 --> 00:12:21,280 Kaj la kialo vi devas analizi ke en via efektivigo de server.c en P 216 00:12:21,280 --> 00:12:27,570 fiksita 6 estas tiel ke vi povus diri la PHP kodo kiu NAME = Elliot. 217 00:12:27,570 --> 00:12:30,460 Vi bezonas por povi analizi, ke el la URL 218 00:12:30,460 --> 00:12:35,900 por ke la PHP-dosiero en demando sciis kio ĝi estis pritraktas. 219 00:12:35,900 --> 00:12:39,350 >> Do espereble tiu donas la motivación al server.c 220 00:12:39,350 --> 00:12:43,900 nun ke ni translogxigxis eksteren de C en PHP. 221 00:12:43,900 --> 00:12:48,240 Do ni vere temigi aliranta la aferoj pasis tra get peto nun 222 00:12:48,240 --> 00:12:48,880 ĉe tiu punkto. 223 00:12:48,880 --> 00:12:50,157 Mi tuj savi ĉi. 224 00:12:50,157 --> 00:12:51,240 Ni ne ŝanĝis nenion. 225 00:12:51,240 --> 00:12:56,080 Ĝi aspektas kiel ni hvas enmetkampo. 226 00:12:56,080 --> 00:12:58,550 >> Ni opcio iuj propraĵoj, kiel ni povas fari HTML. 227 00:12:58,550 --> 00:12:59,550 Tiuj estas simplaj aferoj. 228 00:12:59,550 --> 00:13:00,580 Ni ne bezonas tiujn. 229 00:13:00,580 --> 00:13:03,750 Sed ni havas autocompletar for, kiu esence says-- vi scias, 230 00:13:03,750 --> 00:13:05,710 kiam vi tajpas aferoj en la retejo, kelkfoje 231 00:13:05,710 --> 00:13:07,355 ĝi klopodas plenigi ke en por vi. 232 00:13:07,355 --> 00:13:08,230 Do ĝi estas bela afero. 233 00:13:08,230 --> 00:13:11,700 Ni volas elŝalti ĝin tiucele. 234 00:13:11,700 --> 00:13:13,970 Tio estis CS50 decido. 235 00:13:13,970 --> 00:13:15,640 Do ni povas forigi, ke se ni volis. 236 00:13:15,640 --> 00:13:19,510 >> Autofocus nur puŝas la kursoro en la formo dekstre komence. 237 00:13:19,510 --> 00:13:21,060 Denove, ne tro grava. 238 00:13:21,060 --> 00:13:26,220 >> Sed nomo = "nomo" - ĝi estas iom malfacila ĉar ĝi estas nomo kaj nomo. 239 00:13:26,220 --> 00:13:28,730 Sed ni povus jam ŝanĝis ĉi al io alia. 240 00:13:28,730 --> 00:13:30,563 Kaj fakte, tio estas kion ni faros nun. 241 00:13:30,563 --> 00:13:34,830 Ni diru "persono", kiu Estas ia kiel nomo 242 00:13:34,830 --> 00:13:36,790 se persono estas difinita per sia nomo. 243 00:13:36,790 --> 00:13:41,480 >> Do ni fermu, remalfermi ĝis nia retejo 244 00:13:41,480 --> 00:13:46,110 ekde nia servilo daŭre kuras Apache 50, kaj ni diru, saluton, jen 245 00:13:46,110 --> 00:13:47,200 Elliot denove. 246 00:13:47,200 --> 00:13:48,460 Kial ne? 247 00:13:48,460 --> 00:13:49,220 Saluton. 248 00:13:49,220 --> 00:13:52,880 Kaj se ni iros tien, ni vidos tiam anstataux nomo = Elliot, 249 00:13:52,880 --> 00:13:55,200 ĝi diras personon = Elliot. 250 00:13:55,200 --> 00:14:00,060 Kaj tio estas rekta rezulto de la fakto ke ni ĵus ŝanĝis nomon = "persono." 251 00:14:00,060 --> 00:14:06,840 >> Do en eniga elemento de HTML formo, la nomo kampo 252 00:14:06,840 --> 00:14:10,590 estas la identigilo por la parametro ke tio esti pasis. 253 00:14:10,590 --> 00:14:14,250 Estas kiel se vi kreas funkcio "aldoni" kiu portis en du entjeroj 254 00:14:14,250 --> 00:14:16,670 kaj vi diris int a kaj int b. 255 00:14:16,670 --> 00:14:22,680 Tio estus nomon, kaj se vi volis alian formon, kiu 256 00:14:22,680 --> 00:14:27,800 ni povas fari nur kopiante kaj interglui, tiam ni havus nomon b. 257 00:14:27,800 --> 00:14:31,030 >> Do nun ni havas du parametrojn kiuj estas trapasis 258 00:14:31,030 --> 00:14:36,970 atingi la najbaran website-- la sekva retpaĝo, hello.php. 259 00:14:36,970 --> 00:14:39,770 Kaj ni povas reale vidu ke denove se ni volas. 260 00:14:39,770 --> 00:14:44,830 Tiu estas la plej facila maniero trakti la ttt kodon en la IDE, esence. 261 00:14:44,830 --> 00:14:47,940 Vi funkciigi la servilo, akiri ĝin kurante, kaj tiam ĉiu tempo vi 262 00:14:47,940 --> 00:14:50,649 fari kelkajn ŝanĝojn, ĝuste Fermi ke dosiero nur por esti sekuraj. 263 00:14:50,649 --> 00:14:52,440 Premante la butonon Estas iom malfacila 264 00:14:52,440 --> 00:14:55,800 ĉar ĝi povus ŝargi pli frua versio, ne la plej ĝisdatigita unu. 265 00:14:55,800 --> 00:14:59,200 >> Kaj tiam vi simple alklaku vian butono denove, popmuziko dekstra up-- ho, 266 00:14:59,200 --> 00:15:00,510 kaj nun ekzistas du formoj. 267 00:15:00,510 --> 00:15:10,440 Kaj do se ni tajpi unu afero en ĉiu one-- "jason Hirshhorn," por instance-- 268 00:15:10,440 --> 00:15:11,590 ni diras saluton. 269 00:15:11,590 --> 00:15:12,840 Ni rigardas supre ĉe niaj parametroj. 270 00:15:12,840 --> 00:15:18,910 Ĝi aspektas kiel ni havas, kiel atendis, al = jason kaj b = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 kiu reprezentas la du parametroj ke ni pasis por ĉi tiu funkcio. 272 00:15:23,760 --> 00:15:27,900 >> Do nun ni vere akiras efektivigado ke funcionalidad kiu ni 273 00:15:27,900 --> 00:15:30,840 havis en P starigis 6. 274 00:15:30,840 --> 00:15:32,490 Do nun ni nur eĥanta saluton. 275 00:15:32,490 --> 00:15:34,310 Kaj tio ne tre utilaj. 276 00:15:34,310 --> 00:15:38,530 Ni volas eĥon iu variablo kiu estis pasita al ni. 277 00:15:38,530 --> 00:15:40,320 Kaj ni konas la nomon de tiu variablo. 278 00:15:40,320 --> 00:15:41,770 Ni havas kaj ni b. 279 00:15:41,770 --> 00:15:43,500 Do ni povus elekti eĥi ĉu unu. 280 00:15:43,500 --> 00:15:45,470 >> Sed kiel ni aliras gxin? 281 00:15:45,470 --> 00:15:48,820 Nu, estas iuj tutmonda variabloj en PHP. 282 00:15:48,820 --> 00:15:51,240 Kaj mi tuj skribos ilin en komentoj ĉi tie. 283 00:15:51,240 --> 00:15:59,910 La du plej gravaj estas get kaj poŝti por niaj celoj nun. 284 00:15:59,910 --> 00:16:05,350 Tio estas la sensilo aŭ, teknike, la vortaroj 285 00:16:05,350 --> 00:16:10,540 kie nia variabloj kiuj ni estas pasante al la sekva retpaĝo vivas. 286 00:16:10,540 --> 00:16:14,520 Kaj ni baldaŭ vidos kiel uzi ilin. 287 00:16:14,520 --> 00:16:19,720 >> Alia mallonga noto pri PHP kodo kaj iuj specifaj detaloj de it-- en C, 288 00:16:19,720 --> 00:16:23,260 deklari variablon aŭ uzi variablojn, 289 00:16:23,260 --> 00:16:24,570 vi unue devis deklari ilin. 290 00:16:24,570 --> 00:16:30,860 Kaj kion vi devis fari kiam deklaris ilin estis diri int a aŭ char b. 291 00:16:30,860 --> 00:16:35,630 Vi devis deklari la tipojn de tiuj variabloj antaux vi kreis ilin. 292 00:16:35,630 --> 00:16:38,800 PHP-- vi ne bezonas fari ion ajn tian. 293 00:16:38,800 --> 00:16:42,522 PHP ne petas la tipo de variablo. 294 00:16:42,522 --> 00:16:44,480 Kaj la vojon ke vi krei variable-- prefere 295 00:16:44,480 --> 00:16:49,930 ol diri int, char, ĉenon kiu estas vere char *, kiel ni know-- 296 00:16:49,930 --> 00:16:52,180 prefere ol faranta ĉiuj ke, ĉar ĉio 297 00:16:52,180 --> 00:16:54,620 estas de la sama tipo, typeless, ni povas nur 298 00:16:54,620 --> 00:16:59,210 uzi unu signo, kiu estas la dolaro signo. 299 00:16:59,210 --> 00:17:03,700 Kaj vi vidos ĝi estas jam krevanta supren, iom autocompletar aferojn. 300 00:17:03,700 --> 00:17:11,380 Kaj ĝin dirante ke _GET kaj _POST Estas du ebloj kiujn mi havas disponeblaj 301 00:17:11,380 --> 00:17:11,900 al mi. 302 00:17:11,900 --> 00:17:16,430 Iuj de ĉi tiuj aliaj aferoj estas aliaj tutmondaj variabloj en PHP 303 00:17:16,430 --> 00:17:18,430 ke vi estos uzanta super la kurso de P starigis 7. 304 00:17:18,430 --> 00:17:20,569 Nuntempe ni tuj temigi GET kaj POST. 305 00:17:20,569 --> 00:17:22,910 Sed tio estas helpema afero ke la IDE faras 306 00:17:22,910 --> 00:17:24,980 kie iam vi tajpis en tiu dolaro signo, 307 00:17:24,980 --> 00:17:28,760 gxi devos komenci plenigante en tutmonda variabloj aŭ variabloj vi jam difinita. 308 00:17:28,760 --> 00:17:34,360 >> Do se vi volas difini ŝanĝiĝema nomita "string" 309 00:17:34,360 --> 00:17:38,290 Vi nur povus agordi ĝin egala al "hi." 310 00:17:38,290 --> 00:17:40,100 Kaj ĝi estas resume tiel simpla kiel tiu. 311 00:17:40,100 --> 00:17:44,720 Kaj tiam ni povus fari io kiel "eĥo $ ŝnuro." 312 00:17:44,720 --> 00:17:48,524 La IDE estu ĵetante iuj eraroj se mi faras ion malĝustan, 313 00:17:48,524 --> 00:17:50,190 Tiel espereble mi faras ĉion ĝuste. 314 00:17:50,190 --> 00:17:52,060 Sed eraroj ĉiam ja ekesti. 315 00:17:52,060 --> 00:17:56,670 >> Alia malfacila afero pri PHP estas ke ĝi ne estas kompilita. 316 00:17:56,670 --> 00:18:00,640 Do kun C programoj, vi farus la ĉiutaga rutino of-- esence, 317 00:18:00,640 --> 00:18:02,710 vi farus redaktoj por via kodo, oni kredus savi gxin 318 00:18:02,710 --> 00:18:04,460 kaj tiam vi farus fari, kie konsiston estis 319 00:18:04,460 --> 00:18:08,830 la paŝo kiu nomis la kompililo, tin, fari vian kodon, ĉi tiu teksto 320 00:18:08,830 --> 00:18:10,570 fajliloj, en plenumeblan. 321 00:18:10,570 --> 00:18:15,550 PHP estas C-simila, sed ĝi estas ekzekutitaj sur la muŝo fare via retumilo. 322 00:18:15,550 --> 00:18:17,640 Do ne estas maniero de scii. 323 00:18:17,640 --> 00:18:19,790 >> Faru ĵetus tiuj helpema erarojn, ĉu ne? 324 00:18:19,790 --> 00:18:22,190 Estus kiel vi ne deklaris tiun variablon 325 00:18:22,190 --> 00:18:23,320 antaŭ vi provis uzi ĝin. 326 00:18:23,320 --> 00:18:29,120 Vi faris ĉion ĉi malbona stuff-- segfault, segfault, ĉiuj tia amuza fojojn 327 00:18:29,120 --> 00:18:31,000 kiu venis kun ŝminko. 328 00:18:31,000 --> 00:18:33,920 PHP estas duobla-ĉirkaŭtranĉita glavon ĉar vi ne ricevos tiuj eraroj, 329 00:18:33,920 --> 00:18:37,770 sed tio ankaŭ signifas ke vi ne scias vere kio okazas kun via programo 330 00:18:37,770 --> 00:18:39,840 se vi nur kuri ĝin kaj ĝin ne funkcias. 331 00:18:39,840 --> 00:18:45,130 Sed la debugger devus atentigi kelkaj espereble helpema etulojn 332 00:18:45,130 --> 00:18:47,950 sintakse ke vi povas ripari. 333 00:18:47,950 --> 00:18:52,850 >> Do nun, se ni transiru to-- diri, ni fermos tio. 334 00:18:52,850 --> 00:18:54,522 Remalfermi. 335 00:18:54,522 --> 00:18:55,480 Kaj ni estas reen ĉi tien. 336 00:18:55,480 --> 00:18:57,210 Do ni hvas ŝanĝiĝema kaj ŝanĝiĝema b. 337 00:18:57,210 --> 00:18:58,626 Kaj tiuj lin ne finfine gravas. 338 00:18:58,626 --> 00:19:01,850 Ni ilin vokos h kaj g cxar neniu aparta kialo. 339 00:19:01,850 --> 00:19:03,120 >> Kaj ni diras saluton. 340 00:19:03,120 --> 00:19:07,480 Nun ĝi aspektas kiel niaj kordo "hi" estas ja printado. 341 00:19:07,480 --> 00:19:10,460 Ni kreis variablon vokis "kordo," agordi ĝin egala al "hi." 342 00:19:10,460 --> 00:19:15,520 Rimarku ke ni ne devas fari malloc aŭ fari karaktero tabelo. 343 00:19:15,520 --> 00:19:19,110 >> En PHP, ĉar variabloj estas typeless, ŝnuro 344 00:19:19,110 --> 00:19:22,230 Estas la sama kiel char por ĉiuj intencoj kaj celoj. 345 00:19:22,230 --> 00:19:23,570 Tio povus esti "hi." 346 00:19:23,570 --> 00:19:26,340 Tio povus esti nur la karaktero k. 347 00:19:26,340 --> 00:19:29,290 Tio povas esti numero 1. 348 00:19:29,290 --> 00:19:30,300 Kaj ĝi ne gravas. 349 00:19:30,300 --> 00:19:33,560 PHP ne zorgas pri la tipo de via variablo. 350 00:19:33,560 --> 00:19:34,390 Aŭ, ĝi faras zorgo. 351 00:19:34,390 --> 00:19:36,240 Ĝi zorgas kiam vi provas kaj fari aferojn kun ĝi, 352 00:19:36,240 --> 00:19:38,790 sed ne gravas en la deklaro paŝo. 353 00:19:38,790 --> 00:19:46,960 >> Kaj kiel vi povas en C, oni povas deklari kordoj en la pilo kiel ĉi 354 00:19:46,960 --> 00:19:51,130 kvankam dirante "stako" estas iom bita de potenciala malĝusta kiam 355 00:19:51,130 --> 00:19:52,230 ni parolas pri PHP. 356 00:19:52,230 --> 00:19:54,020 Sed ni ne devas zorgi pri tio. 357 00:19:54,020 --> 00:19:55,936 Do ni havas nian kordoj "hi", kaj ni eĥon kordo. 358 00:19:55,936 --> 00:19:58,880 Do nun ni diskutis variabloj. 359 00:19:58,880 --> 00:20:06,060 Do nun ni bezonas paroli pri GET kaj afiŝi kaj elfari la fina afero tio 360 00:20:06,060 --> 00:20:12,660 bezonis por vere atingi ĉi savkopion al la funcionalidad de la P starigis 6. 361 00:20:12,660 --> 00:20:14,990 Do ĝuste nun ni estas eĥigante la kordo, sed ni 362 00:20:14,990 --> 00:20:17,080 ja havas tiujn variablojn akiri kaj afiŝi. 363 00:20:17,080 --> 00:20:19,430 Kaj ĉar ni estas uzanta la metodo akiri, ĝi 364 00:20:19,430 --> 00:20:24,810 Ŝajnas nature ke nia variablo kiu ni interesiĝas, ambaŭ a kaj b, 365 00:20:24,810 --> 00:20:29,870 lokos en la tabelo aŭ vortaro, teknike akiras. 366 00:20:29,870 --> 00:20:33,510 >> Do se ni starigis eksimilas ĉi kun via groups-- mi premis eniri 367 00:20:33,510 --> 00:20:36,770 kaj li ne ŝatis it-- sed cxi tie ni akiras. 368 00:20:36,770 --> 00:20:38,000 Kaj foriros jam ekzistas. 369 00:20:38,000 --> 00:20:41,380 Do ni jam povas komenci al aliro iuj de la elementoj de GET. 370 00:20:41,380 --> 00:20:45,000 Se ni ricevas, ĉi sintakson por arrays en PHP estas tre C-similaj. 371 00:20:45,000 --> 00:20:47,900 Ni havas niajn du rektaj krampoj. 372 00:20:47,900 --> 00:20:53,440 >> Do se ni diras akiri en normala tabelo, ni povus aliri 373 00:20:53,440 --> 00:20:55,600 la nula indekson, la unua indico. 374 00:20:55,600 --> 00:20:56,840 PHP estas nulo indekso. 375 00:20:56,840 --> 00:21:00,550 Ni povus diri nul, unu, two-- stuff kiel ĉi. 376 00:21:00,550 --> 00:21:03,420 Kaj mi estis dirante ke akiri estas teknike vortaron. 377 00:21:03,420 --> 00:21:08,290 Do kio PHP faras sub la kapuĉo, kiu estas iomete pli bela ol C, 378 00:21:08,290 --> 00:21:12,760 Estas jam donas al vi kelkajn vortaro funcionalidad, kiu 379 00:21:12,760 --> 00:21:16,240 Estas vere hash tabloj, aŭ provas, supozeble. 380 00:21:16,240 --> 00:21:19,360 Aŭ, teknike eblis provi ankaŭ. 381 00:21:19,360 --> 00:21:25,500 Sed PHP estas implementando hash tablo, Kiu formas efikan vortaro. 382 00:21:25,500 --> 00:21:28,400 >> Kaj do ni scias la nomon de nia varia, dekstra? 383 00:21:28,400 --> 00:21:32,440 Ĝi estas aprobotaj en La serĉomendo kordo per PHP. 384 00:21:32,440 --> 00:21:37,290 Ni havas = h kaj b = g kie kaj b estas la nomoj de la variabloj. 385 00:21:37,290 --> 00:21:41,580 Do la modo kiun povas aliri la valoron kiu respondas al la klavon 386 00:21:41,580 --> 00:21:45,055 en nia vortaro estas nur dirante _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Do nun ni havas _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 Kaj se ni nur anstataŭi ene nia eĥo, se ni eĥon _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 kaj ni vidos se la erarserĉilo ĵetas ajnan eraroj pri this-- 391 00:22:02,410 --> 00:22:05,620 ni ŝparos tio kaj fermi ĉi ekstere. 392 00:22:05,620 --> 00:22:07,130 Malfermu ĝin. 393 00:22:07,130 --> 00:22:10,390 Do ni nur faras rajton nun, do b ne gravas. 394 00:22:10,390 --> 00:22:12,980 "ŝi" kaj "li" - "Hum". "ŝi" kaj "hum". 395 00:22:12,980 --> 00:22:14,810 Sonas bone. 396 00:22:14,810 --> 00:22:18,040 >> Kaj presita eksteren "ŝi," kiu estas freneza. 397 00:22:18,040 --> 00:22:21,920 Sed tio estas ĝuste kion okazis en P starigis 6. 398 00:22:21,920 --> 00:22:27,240 Esence, kion P starigis 6 Estis doing-- eĥo saluton, 399 00:22:27,240 --> 00:22:31,580 name-- kie havis ŝanĝiĝema nomon kaj ĝi simple 400 00:22:31,580 --> 00:22:35,520 petas ke vi tajpu en tiu peco de teksto. 401 00:22:35,520 --> 00:22:37,380 Ekzistis ankaŭ kelkaj aldona kodo kie 402 00:22:37,380 --> 00:22:40,550 inkludis se deklaroj, kion ni povas fari nun. 403 00:22:40,550 --> 00:22:50,120 >> Ni povas diri se ekzistas, kiuj estas funcionalidad ene PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Kun la substreko, "nomo" - kiu estas esence dirante: 405 00:22:55,110 --> 00:22:58,760 "se nomo estis plenigita en" ĉar ni povus ĵus klakis la butonon 406 00:22:58,760 --> 00:23:02,580 sendi la formularon sen tajpi ion en tiun kampon. 407 00:23:02,580 --> 00:23:07,760 Kaj ni envolver ke en nia amika buklaj krampoj. 408 00:23:07,760 --> 00:23:09,175 Ni povas havi alia aserto. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 Kaj jen ĉio ene de la PHP angulo krampo, demandosigno, angulo krampo, 411 00:23:18,820 --> 00:23:20,040 se vi volas. 412 00:23:20,040 --> 00:23:21,750 >> Nun ni vidos se tio funkcias. 413 00:23:21,750 --> 00:23:26,300 Mi tenas atendante ĝin elpurigi kaj crap ekstere sur min, esence, 414 00:23:26,300 --> 00:23:28,410 sed ĝi havas ankoraŭ ne. 415 00:23:28,410 --> 00:23:30,830 Eble nun ĉar mi parolis pri. 416 00:23:30,830 --> 00:23:31,330 Jes. 417 00:23:31,330 --> 00:23:32,510 Ĝi faris, fakte. 418 00:23:32,510 --> 00:23:34,610 Do, nenio estas aperantaj. 419 00:23:34,610 --> 00:23:38,750 Tio estas ĉar de io malĝusta ke mi skribis en la PHP-kodo. 420 00:23:38,750 --> 00:23:42,844 Mi menciis la elpuriganta estas malfacila ĉar en PHP, ni 421 00:23:42,844 --> 00:23:45,260 ne kompili ĝin anticipe kaj la tradukilo ne ŝatas, 422 00:23:45,260 --> 00:23:46,710 jen kien viaj eraroj estas. 423 00:23:46,710 --> 00:23:49,690 >> Sed kion ni povas fari is-- fari homo memoras 424 00:23:49,690 --> 00:23:57,010 kiamaniere rigardi la malsamaj reto petoj ke PHP-- aŭ ke retejoj 425 00:23:57,010 --> 00:23:57,620 sendu? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Faris tio en prelegi foyi. 427 00:24:00,290 --> 00:24:05,830 Vi memoru kie iras trovi la malsamaj ŝuldoj kaj 200 Oks, 428 00:24:05,830 --> 00:24:09,780 ĉiuj tiuj kodoj kiuj estas senditaj tra HTTP de retpaĝo al retpaĝo? 429 00:24:09,780 --> 00:24:12,514 Ĉu iu memoras kie iras fari tion? 430 00:24:12,514 --> 00:24:13,787 >> Publiko: Paĝo Fonto. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: Paĝo fonto. 432 00:24:14,870 --> 00:24:15,890 Ekzakte. 433 00:24:15,890 --> 00:24:19,230 Se vi iras al Paĝo Source-- perfekta. 434 00:24:19,230 --> 00:24:21,630 Do Paĝo Fonto tiras supren la inspektisto. 435 00:24:21,630 --> 00:24:23,140 >> Kaj mi uzas Safari. 436 00:24:23,140 --> 00:24:25,790 Multa vi probable esti uzante Chrome aŭ Firefox. 437 00:24:25,790 --> 00:24:27,750 Sed tiel longe kiel vi estas en ajna moderna browser-- 438 00:24:27,750 --> 00:24:29,500 kaj bonvolu sekvi kune se vi volas. 439 00:24:29,500 --> 00:24:32,560 Vi povas tajpi tiun kodon aŭ nur rigardi en la P aro 6 440 00:24:32,560 --> 00:24:35,820 Gvidlibro por iuj similaj aĵoj. 441 00:24:35,820 --> 00:24:41,020 hello.php estas kio ni estas aktuale prilaboras emulando. 442 00:24:41,020 --> 00:24:42,476 >> Do estas diversaj langetoj. 443 00:24:42,476 --> 00:24:43,850 Ni povas rigardi ĉiujn rimedojn. 444 00:24:43,850 --> 00:24:45,810 Ni povas vidi la fontkodon. 445 00:24:45,810 --> 00:24:49,900 Do aspektas kiel ĝi ne preteriri korpo en la fino. 446 00:24:49,900 --> 00:24:54,890 Ĝi trovis eraron en PHP kaj ĝi haltis ŝarĝante la tuta retpaĝo. 447 00:24:54,890 --> 00:24:58,320 Ni eĉ ne havas finon etikedo por HTML aŭ nenion. 448 00:24:58,320 --> 00:25:07,189 >> Kaj se ni rigardas la reto, ni povas vidu ke ni estas sendis peton. 449 00:25:07,189 --> 00:25:07,980 Jen la domajno. 450 00:25:07,980 --> 00:25:09,270 Jen la adreso. 451 00:25:09,270 --> 00:25:10,070 Estas dokumento. 452 00:25:10,070 --> 00:25:14,310 Ni uzas la get metodo. 453 00:25:14,310 --> 00:25:15,760 >> Kaj ĝi estas ruĝa. 454 00:25:15,760 --> 00:25:19,030 Aŭ, ĝi estis ruĝa kiam mi ne selektante ĝin. 455 00:25:19,030 --> 00:25:22,680 Kiel mi unselect ĝi? 456 00:25:22,680 --> 00:25:23,980 Nu, ĝi estis ruĝa. 457 00:25:23,980 --> 00:25:25,201 Lasu min refreŝigi. 458 00:25:25,201 --> 00:25:25,700 Jen ĝi. 459 00:25:25,700 --> 00:25:26,640 Nun estas ruĝa. 460 00:25:26,640 --> 00:25:30,530 >> Do estas ruĝa, kio signifas ĝi malsukcesis, kio estas malbona. 461 00:25:30,530 --> 00:25:32,280 Do ni ekzamenos kial ĝi malsukcesos. 462 00:25:32,280 --> 00:25:37,070 Do ĉiuj ke la fonto povas Paĝo esence diri al vi estas via afero 463 00:25:37,070 --> 00:25:38,720 ne funkciis, kiu jam povas vidi. 464 00:25:38,720 --> 00:25:42,100 Do ideale estus esti pli utila ilo. 465 00:25:42,100 --> 00:25:45,710 Kaj estas kelkaj retumilo etendoj ke vi permesas elpurigi PHP, 466 00:25:45,710 --> 00:25:50,490 sed ni ne tuj skribos barelon de PHP, 467 00:25:50,490 --> 00:25:53,190 do ĝi estas probable simple bona rigardi tra via kodo 468 00:25:53,190 --> 00:25:56,760 singarde kaj nur certigi ke ĝi ne faras ion alian. 469 00:25:56,760 --> 00:26:03,876 >> Do ni vidu se la formato de tiu se aserto estas kie la problemo estas. 470 00:26:03,876 --> 00:26:07,420 Mi volas ŝargi tiun dorso supren tie. 471 00:26:07,420 --> 00:26:09,830 Saluton, hi. 472 00:26:09,830 --> 00:26:11,350 Do tie estas problemo tie. 473 00:26:11,350 --> 00:26:15,130 >> Do por ĝusta sintakso de PHP, PHP tuj 474 00:26:15,130 --> 00:26:17,369 esti C-similaj en kiu vi vidos cikloj. 475 00:26:17,369 --> 00:26:18,410 Vi vidos se deklaroj. 476 00:26:18,410 --> 00:26:20,920 Vi vidos ĉiujn tiujn amikojn ke vi familiarizarse 477 00:26:20,920 --> 00:26:24,820 kun super la kurso de tiu CS50 semestro. 478 00:26:24,820 --> 00:26:29,960 Sed la plej bona maniero por malkovri kiel fari ion en PHP estas al google ĝi 479 00:26:29,960 --> 00:26:33,170 aŭ rigardi ekzemplojn de PHP kodo ĉar vi konas la funcionalidad. 480 00:26:33,170 --> 00:26:35,080 >> Vi scias kion vi povas fari kun la programo. 481 00:26:35,080 --> 00:26:35,976 Vi povas buklo. 482 00:26:35,976 --> 00:26:37,600 Vi povas buklo kiel multaj tempoj kiel vi deziras. 483 00:26:37,600 --> 00:26:39,433 Vi povas buklo en ĉiuj specoj de malsamaj manieroj. 484 00:26:39,433 --> 00:26:40,700 Vi povas krei funkcioj. 485 00:26:40,700 --> 00:26:43,241 Vi povas krei funkcioj kiuj vokas aliaj funkcioj, funkciojn 486 00:26:43,241 --> 00:26:44,150 kiuj nomas sin. 487 00:26:44,150 --> 00:26:45,733 Kaj vi havas nomojn por tiuj konceptoj. 488 00:26:45,733 --> 00:26:49,860 Vi havas rekursio, loops, se, alia kontrolo fluas. 489 00:26:49,860 --> 00:26:51,300 Kaj tial Google estas via plej bona amiko. 490 00:26:51,300 --> 00:26:53,540 Eĉ diri, "PHP se deklaro "kaj tie denove 491 00:26:53,540 --> 00:26:57,740 esti tunoj de artikoloj kun respondoj al aliaj homoj 492 00:26:57,740 --> 00:27:02,090 kiuj havis similajn demandojn al vi, kiu estas nur komencanta per PHP 493 00:27:02,090 --> 00:27:03,820 kaj estas scivola pri sintaksa afero. 494 00:27:03,820 --> 00:27:08,480 >> Ĉar ni havas la lukson de esti povis rigardi la kodon en P aro 6, 495 00:27:08,480 --> 00:27:14,980 ni fakte tiri ĝin kaj vidi ke OK, ĉi tie estas io interesa. 496 00:27:14,980 --> 00:27:18,070 Do tiu estas kio vere similis en P starigis 6. 497 00:27:18,070 --> 00:27:20,340 Do se ni trairi ĉi, ni povas vidi ke ni 498 00:27:20,340 --> 00:27:27,150 venigis plurajn tiuj malgranduloj PHP-kiel demandosigno bitoj. 499 00:27:27,150 --> 00:27:29,050 >> Kaj estas ne frizita krampoj. 500 00:27:29,050 --> 00:27:30,250 Ekzistas dupunktoj. 501 00:27:30,250 --> 00:27:32,340 Kaj estas krispa krampoj en PHP, sed ĉi 502 00:27:32,340 --> 00:27:38,700 Estas formato kaj maniero de farado PHP kiu funkcias bone kun HTML 503 00:27:38,700 --> 00:27:43,830 ĉar kiel vi vidos, ni fermante deŝiri tiujn PHP bits-- la elses 504 00:27:43,830 --> 00:27:49,770 kaj la oj kaj ĉiuj that-- kaj tiam ni intercalando HTML ene ilin 505 00:27:49,770 --> 00:27:54,640 dum daŭre sekvante la kontrolo fluo elmontritaj de PHP. 506 00:27:54,640 --> 00:27:58,480 >> Do mi simple tuj Rapida promeno tra tiu 507 00:27:58,480 --> 00:28:01,740 ĉar ĝi estas multe da la sama konceptoj kiujn ni faris antaŭe. 508 00:28:01,740 --> 00:28:07,280 Ni havas se ne malplena, krampoj, _GET_GET ["nomo"]. 509 00:28:07,280 --> 00:28:08,500 Tio estas tutegale stuff. 510 00:28:08,500 --> 00:28:15,430 Ni uzas la _GET vortaro ke PHP sendas sur peto de formoj, 511 00:28:15,430 --> 00:28:20,720 ĉar ĝi estas la parametroj de ago, kaj la metodo estas akiri. 512 00:28:20,720 --> 00:28:22,110 Kaj tiam kiu finiĝas tio. 513 00:28:22,110 --> 00:28:27,420 La dupunkto estas signifier al nur faru ĉi se la se aserto taksas al vera. 514 00:28:27,420 --> 00:28:29,490 Estas kiel krispa krampoj. 515 00:28:29,490 --> 00:28:33,320 Kaj fakte, ĝi estas krispa krampoj en aliaj lingvoj kiel Python, 516 00:28:33,320 --> 00:28:37,070 kiun vi eble renkontos se vi nur fari tion por via fina projekto. 517 00:28:37,070 --> 00:28:40,170 >> Kaj tiam ĉi tiu linio, saluton. 518 00:28:40,170 --> 00:28:41,510 Tiam ni havas tiun strangan aferon. 519 00:28:41,510 --> 00:28:43,190 Ni havas pli krampoj. 520 00:28:43,190 --> 00:28:46,140 Mankas HTTP there-- aŭ PHP, pardonon. 521 00:28:46,140 --> 00:28:47,250 Sed estas egala signo. 522 00:28:47,250 --> 00:28:50,625 Kaj tiam ni havas funkcion, htmlspecialchars (_GEThtmlspecialchars (_GET ["nomo"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Tio estas ia kiel pli progresinta versio de eĥo. 525 00:28:58,040 --> 00:29:01,450 Kiel ni eĥon kiel maniero presi aferojn en PHP. 526 00:29:01,450 --> 00:29:03,890 Tiu estas funkcio kiu estas difinita en PHP kiu 527 00:29:03,890 --> 00:29:08,160 pritraktos kelkaj pli aĉa karakteroj kaj bajto valoroj 528 00:29:08,160 --> 00:29:09,540 ke vi povus pasi ĝin. 529 00:29:09,540 --> 00:29:11,070 Ĉiam plej sekura uzi tiun. 530 00:29:11,070 --> 00:29:14,930 Sed eĥo faros la laboron nur fajna se ni ne 531 00:29:14,930 --> 00:29:17,620 kontraktanta kun io tro aĉa. 532 00:29:17,620 --> 00:29:20,340 >> Kaj tiel tio ĝi havas la saman efekto de esence, 533 00:29:20,340 --> 00:29:26,360 ĉi aĵoj intere la demando markoj estas taksita de PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars revenas belan HTML presita valoro de _GET_GET ["nomo"], tio estas: 535 00:29:34,490 --> 00:29:36,010 ajn ni tajpis en la formon. 536 00:29:36,010 --> 00:29:40,025 Kaj tiam diros saluton, komo spaco, kaj do. 537 00:29:40,025 --> 00:29:42,910 Ke tuta afero inter la angulo krampoj 538 00:29:42,910 --> 00:29:47,390 estosanstataŭigitaj per nenial htmlspecialchars aperigas. 539 00:29:47,390 --> 00:29:49,390 Do jen esence simila kion ni faras. 540 00:29:49,390 --> 00:29:54,760 Kaj ni havas alia aserto tio saluton mondo, kiuj havas sencon. 541 00:29:54,760 --> 00:29:58,070 Do nun ni reiros al nia kodo kaj vidi exactly-- io. 542 00:29:58,070 --> 00:30:02,200 Mi diris ekzistas, kio ne io kion ni volis fari. 543 00:30:02,200 --> 00:30:05,370 Ni volis diri vane. 544 00:30:05,370 --> 00:30:10,020 >> Kaj tiel tio devus iomete iom pli bone, ne malplena _GET_GET ["nomo"]. 545 00:30:10,020 --> 00:30:12,710 Kaj ke buklaj krampoj matĉojn ke buklaj krampoj. 546 00:30:12,710 --> 00:30:15,210 Ni havas niajn buklaj krampoj tie. 547 00:30:15,210 --> 00:30:17,790 eĥo saluton _GET ["nomo"]. 548 00:30:17,790 --> 00:30:19,912 Ni vidu se tio funkcias iom pli bona. 549 00:30:19,912 --> 00:30:21,350 Ni ankoraŭ kurante nia servilo. 550 00:30:21,350 --> 00:30:23,910 Saluton Jason. 551 00:30:23,910 --> 00:30:24,780 Saluton Jason. 552 00:30:24,780 --> 00:30:25,810 Kaj ĝi funkciis tiu tempo. 553 00:30:25,810 --> 00:30:29,860 Kaj do jen pruvo ke vi povas ja 554 00:30:29,860 --> 00:30:35,180 uzi la krispa krampoj, ke vi konas kaj amas en PHP kodo en HTML. 555 00:30:35,180 --> 00:30:41,100 La PHP kodo disponigis al vi en pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 provizas alian manieron de faranta tion samon. 557 00:30:44,760 --> 00:30:49,220 >> Do nun ni havas la potencon. 558 00:30:49,220 --> 00:30:55,740 Ni havas la funcionalidad implementar la PHP kodon, kiun ni vidis en pset 6 559 00:30:55,740 --> 00:30:57,390 solaj, esence. 560 00:30:57,390 --> 00:31:01,350 Antaŭ mi pluiru, kio estas kelkaj el la demandoj kiujn vi havas je tiu punkto? 561 00:31:01,350 --> 00:31:02,066 Jes [inaudible]. 562 00:31:02,066 --> 00:31:06,512 >> Publiko: Do ​​en la versio en pset6, kiam vi kuros ĝin, ekzistas spaco. 563 00:31:06,512 --> 00:31:09,330 Kaj mi povas vidi kie la spaco estas post la komo. [Inaudible] komenco 564 00:31:09,330 --> 00:31:10,700 la malferma krampo. 565 00:31:10,700 --> 00:31:15,420 Kiel vi korpigi la spaco en la vojo vi skribis vian propran kodoj? 566 00:31:15,420 --> 00:31:17,910 >> Parolanto: Tio estas bona demando. 567 00:31:17,910 --> 00:31:21,650 Kaj do ni kalkuli ke ekstere. 568 00:31:21,650 --> 00:31:24,450 Do tio estas vere bona demando kaj kiu mi ne komprenas. 569 00:31:24,450 --> 00:31:25,950 Sed ni kunlaboras. 570 00:31:25,950 --> 00:31:30,280 >> Do unue, kio Mi faras kun eĥo 571 00:31:30,280 --> 00:31:33,690 Estas kiam ni nur eĥo saluton, ĝi eligas saluton. 572 00:31:33,690 --> 00:31:41,310 Se ni eĥon nun ĉi akiri sur aparta linio, ni ekzamenu kio okazas. 573 00:31:41,310 --> 00:31:43,740 Do ni klaki ĉi. 574 00:31:43,740 --> 00:31:45,220 Ni parolas tiele hi Jason. 575 00:31:45,220 --> 00:31:48,690 Do denove, ni ne havas ĉi spaco. 576 00:31:48,690 --> 00:31:53,090 >> Kaj tio estas ĉar, PHP, kiam ni eĥon, 577 00:31:53,090 --> 00:31:55,820 negrave kiom spaces-- Nope, Ne la V-- 578 00:31:55,820 --> 00:32:01,770 negrave kiom da spacoj ni metas en here-- se ni nun ŝarĝas ke restariĝi, 579 00:32:01,770 --> 00:32:03,010 hi Jason. 580 00:32:03,010 --> 00:32:05,770 Jes, vidu, ĉiuj tiuj spacoj got formanĝis. 581 00:32:05,770 --> 00:32:08,020 Kaj tio estas iu kiu la eĥo funkcio faras. 582 00:32:08,020 --> 00:32:11,110 >> Do prizorgi tiu spaco, kaj tiu estas 583 00:32:11,110 --> 00:32:14,960 unu el la kialoj kial vi ne uzas eĥo 584 00:32:14,960 --> 00:32:18,200 kaj vi uzas htmlspecialchars anstataŭe. 585 00:32:18,200 --> 00:32:22,140 Mi estas scivola kion farus okazi se ni faris ĉi 586 00:32:22,140 --> 00:32:26,700 kie ni enfermitan spacon en cxeno. 587 00:32:26,700 --> 00:32:29,720 Mi honeste ne certas kion okazos se mi faros tion. 588 00:32:29,720 --> 00:32:30,790 >> Do jen unu maniero. 589 00:32:30,790 --> 00:32:32,210 Tio estas unu maniero por prizorgi ĝin. 590 00:32:32,210 --> 00:32:34,840 Se vi envolver la spaco en ĉenon, tiam la spaco 591 00:32:34,840 --> 00:32:36,920 Estos eligo bele per eĥo. 592 00:32:36,920 --> 00:32:41,930 La plej sekura agmaniero estas fari htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Tio ĉiam la sekura vetas. 594 00:32:43,800 --> 00:32:47,050 Sed nun ni havas vojon fari per eĥo eventuale. 595 00:32:47,050 --> 00:32:50,700 Kaj en simila maniero, ni povas eĥo novaj linioj, la tuta varo 596 00:32:50,700 --> 00:32:53,550 de aĵoj vi konas faras en PHP. 597 00:32:53,550 --> 00:32:57,460 >> Ajnulo, kio estas plu demandoj kiujn aliaj personoj havas 598 00:32:57,460 --> 00:33:01,090 ĉe tiu punkto pri PHP? 599 00:33:01,090 --> 00:33:04,620 Se homoj montris supren iom malfrue, Mi estas feliĉa resti post iom 600 00:33:04,620 --> 00:33:06,420 kaj paroli pri iuj de la komenco. 601 00:33:06,420 --> 00:33:10,380 Kaj ĝi estas ankaŭ ĉiuj livestreamed, kaj arkivita, kiu estas freneza. 602 00:33:10,380 --> 00:33:13,960 >> Ĉiuokaze, do nun ni faros kelkajn pli progresintaj aĵoj kun PHP. 603 00:33:13,960 --> 00:33:18,790 Kaj unu el la plej fruaj aĵoj vi estis enkondukita en C estis por bukloj. 604 00:33:18,790 --> 00:33:24,060 Kaj PHP havas pli potenca por buklo nomata foreach buklo. 605 00:33:24,060 --> 00:33:37,940 Kaj ĝi aspektas kiel this-- por ĉiu malplenan kiel malplenan, krispa krampoj, do la afero. 606 00:33:37,940 --> 00:33:41,500 Do tiu estas esence stenografio. 607 00:33:41,500 --> 00:33:45,380 >> Vidu, la por ciklo kiel sintaksa konstruo 608 00:33:45,380 --> 00:33:50,590 estis konceptita en C kaj en asembleo lingvo kaj aĵoj ŝatas. 609 00:33:50,590 --> 00:33:56,300 Konceptita en C, precize, kiel stenografio por multa la tipoj de cikloj 610 00:33:56,300 --> 00:33:57,750 ke homoj vidus. 611 00:33:57,750 --> 00:34:01,230 Kiel kiam vi skribis buklo, tie Estis ofte inicialización paŝo 612 00:34:01,230 --> 00:34:04,700 ekzekutita ĝuste en la komenco, kondiĉo kie la banto estus stop-- 613 00:34:04,700 --> 00:34:07,030 kaj tio estas la trajto tio estas nur en momento buklo, 614 00:34:07,030 --> 00:34:10,040 aŭ ke tempeto havas akurate Nur ke feature-- kaj tiam 615 00:34:10,040 --> 00:34:12,320 an incrementation paŝo fine. 616 00:34:12,320 --> 00:34:16,489 Kaj tiel oni kredus ofte trovas vin skribi kodon kiel la jena. 617 00:34:16,489 --> 00:34:19,780 Mi tuj viŝos iun el tio. 618 00:34:19,780 --> 00:34:23,850 >> Sed se ni ripetanta tra karakteroj en tabelo, 619 00:34:23,850 --> 00:34:26,960 ekzemple, kiel ni akiris aron de karakteroj. 620 00:34:26,960 --> 00:34:29,400 Pardonu revenigo C. Mi scias, vi pensis vin estis faritaj. 621 00:34:29,400 --> 00:34:31,900 Sed estas nur por la celo lerni PHP, mi promesas. 622 00:34:31,900 --> 00:34:38,880 Do se vi havas char str de longo 8, kaj ni 623 00:34:38,880 --> 00:34:46,760 diru diras Hellooo kun fina nula. 624 00:34:46,760 --> 00:34:48,270 Granda, do tio estas nia kordoj. 625 00:34:48,270 --> 00:34:51,469 >> Kaj tiam ni havis por buklo. 626 00:34:51,469 --> 00:34:53,730 Ni havas int i egalas 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 Kaj ni volas eliri kiam str de i egalas ne egala al nula, 629 00:35:09,110 --> 00:35:11,590 ĉar ni eliri kiam ĝi egalas nula. 630 00:35:11,590 --> 00:35:19,170 Kaj tiam ni fari i ++ je ĉiu punkto en la por buklo. 631 00:35:19,170 --> 00:35:30,480 Farante ion kun str de i. 632 00:35:30,480 --> 00:35:34,950 >> Do la baza formulo estis, ni havis tiun tabelo ke ni 633 00:35:34,950 --> 00:35:37,910 volis trakti kiel apartaj elementoj. 634 00:35:37,910 --> 00:35:45,170 Sed kion ni devis fari estas ni devis esence krei apartan entjero 635 00:35:45,170 --> 00:35:50,530 variablo kiu kalkulis ĉiun tempo ni iris tra la buklo. 636 00:35:50,530 --> 00:35:55,240 Kaj tiam ni devus tiam nomita strstr [mi] kiam kion ni vere deziris fari 637 00:35:55,240 --> 00:35:57,280 estas nur iri karaktero por karaktero, dekstra? 638 00:35:57,280 --> 00:36:00,185 Ni ne volas pliigo de entjero kaj tiam uzas tiun entjero 639 00:36:00,185 --> 00:36:02,780 aliri ĉiu karaktero individue. 640 00:36:02,780 --> 00:36:04,410 Ni vere volas karaktero por karaktero. 641 00:36:04,410 --> 00:36:08,600 >> Kaj do por ĉiu inteligente kalkulas ke por ni. 642 00:36:08,600 --> 00:36:11,875 Se ni havas tabelo, kiu ni povas deklari en PHP 643 00:36:11,875 --> 00:36:15,900 kiel just-- se ni havas variablo nomitaj, ni nomas ĝin tabelo. 644 00:36:15,900 --> 00:36:19,840 La mirakloj de neniu tajpadon, estas nur kiel ajna alia variablo. 645 00:36:19,840 --> 00:36:20,730 Ĝi estas nur tabelo. 646 00:36:20,730 --> 00:36:26,890 Kaj ni havas malgrandan [inaudible] kiel 1, 2, 3, nur ia pravalorizitaj tabelo. 647 00:36:26,890 --> 00:36:29,680 Estas bone, li ne ŝatas mian foreach. 648 00:36:29,680 --> 00:36:33,120 >> Sed se ni foreach-- reale Mi tajpis ke iom malĝusta. 649 00:36:33,120 --> 00:36:34,840 Estas du manieroj fari foreach buklo. 650 00:36:34,840 --> 00:36:37,400 Jen la en sintakso kaj la kiel sintakso. 651 00:36:37,400 --> 00:36:40,580 Kaj ni tuj faros en sintakso unua, ne kiel. 652 00:36:40,580 --> 00:36:41,780 Tio estas mia eraro. 653 00:36:41,780 --> 00:36:53,785 >> Do foreach num vicojn, eĥo num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 Kaj PHP estas kriante al mi ial. 656 00:36:59,500 --> 00:37:03,520 Ĝi estas trovanta neatendita en en iu, 657 00:37:03,520 --> 00:37:05,820 kiu estas iomete da ĝenas. 658 00:37:05,820 --> 00:37:09,105 Sed ni elkompreni kial kiu estas en momento. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Do ne ŝatas tion. 661 00:37:13,610 --> 00:37:15,040 Ni provu uzi la kiel. 662 00:37:15,040 --> 00:37:17,310 Ĝi preferas la kiel sintakso estas similas. 663 00:37:17,310 --> 00:37:22,550 Do ni faru foreach tabelo kiel num. 664 00:37:22,550 --> 00:37:24,520 >> Do iom ekspliko de kio ĵus okazis 665 00:37:24,520 --> 00:37:30,670 estas la kiel sintakso estas saying-- bone unue ni rigardu, kion ĉi presas. 666 00:37:30,670 --> 00:37:32,260 Do ni malfermu niajn IDE. 667 00:37:32,260 --> 00:37:33,110 Ni iru tien. 668 00:37:33,110 --> 00:37:35,845 Ni diru, Saluton Jason. 669 00:37:35,845 --> 00:37:41,390 Kaj ĝi faris 123, kiuj estis la enhavo de la tabelo, ke ni kreis ĝis supro. 670 00:37:41,390 --> 00:37:45,500 >> Do submarinismo en ĉi foreach buklo, ni havas variablo nomata tabelo 671 00:37:45,500 --> 00:37:47,470 kio estas tabelo de tri numeroj. 672 00:37:47,470 --> 00:37:52,120 Kaj tiam ni faras foreach tabelo kiel num, num eĥo. 673 00:37:52,120 --> 00:37:54,990 Kaj tio estas pli intuicia ol por Lop. 674 00:37:54,990 --> 00:38:02,380 Ni dirante, traktante ĉiun de la aferojn en la tabelo kiel num, 675 00:38:02,380 --> 00:38:05,180 Mi volas ke vi donu al mi num. 676 00:38:05,180 --> 00:38:06,640 Kaj tio estas ĝuste kio ĝi estas faranta. 677 00:38:06,640 --> 00:38:12,000 >> PHP estas kalkulante ke kiam vi diras foreach tabelo, 678 00:38:12,000 --> 00:38:16,080 kaj vi kontraktanta kun tabelo, kion vi tuj volas persisti super 679 00:38:16,080 --> 00:38:19,950 estas la gravuloj en tiu tabelo, estas la ints en tiu tabelo, 680 00:38:19,950 --> 00:38:21,920 estas la elementoj en tiu tabelo. 681 00:38:21,920 --> 00:38:26,110 Kaj ĝin lasanta vi stoki tiuj variabloj kiel num, 682 00:38:26,110 --> 00:38:29,360 kaj tiam simple eligo num tuj anstataŭ diri, 683 00:38:29,360 --> 00:38:34,090 Mi havas variablo nomita i, kaj tiam mi volas elirigi strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> Kaj por ke nin permesas fari malvarmeta aĵoj. 685 00:38:39,130 --> 00:38:43,330 Kiel esence ni ne devas krei tiuj variabloj kiel i aj kaj faru cxiujn 686 00:38:43,330 --> 00:38:45,090 ĉi incrementation frandajxojn cxe la fino. 687 00:38:45,090 --> 00:38:48,290 PHP prizorgas ĉiujn de tio por vi. 688 00:38:48,290 --> 00:38:54,470 >> Do nun ni parolu pri kiel foreach ĝi aplikas al nia _GET vortaro. 689 00:38:54,470 --> 00:38:57,170 Do ni komenti tiun rapide. 690 00:38:57,170 --> 00:39:02,030 Do ni havas nian _GET tabelo. 691 00:39:02,030 --> 00:39:04,361 Ni havas ĉi variablo. 692 00:39:04,361 --> 00:39:05,610 Kaj ĝi estas atingis iun aĵon en ĝi. 693 00:39:05,610 --> 00:39:10,275 >> Ĝuste nun, ni nur havas unu variablo aprobotaj al ĝi, kiu estas nomo. 694 00:39:10,275 --> 00:39:13,420 Sed se ni premas Enter, nun ni povas havi du variabloj. 695 00:39:13,420 --> 00:39:17,910 Ni povas havi nomon kaj aĝo, ekzemple, se ni volas ricevi la aĝo kaj ankaŭ 696 00:39:17,910 --> 00:39:20,960 la nomo de persono, funnily sufiĉas. 697 00:39:20,960 --> 00:39:25,690 >> Do nun _GET tuj esti vortaro kun du elementoj, 698 00:39:25,690 --> 00:39:27,980 kun du ŝlosilaj valoro paroj. 699 00:39:27,980 --> 00:39:33,490 Kaj la unua key-- mi tuj skribi ĉi tiu sur la tabulo ankaŭ. 700 00:39:33,490 --> 00:39:37,136 Ni havas niajn vortaro estas _GET. 701 00:39:37,136 --> 00:39:39,520 Pardonu, ĝi estas estas iom malfacile vidi. 702 00:39:39,520 --> 00:39:46,690 Sed interne nia vortaro ni havas nomo, kiu tuj estos io 703 00:39:46,690 --> 00:39:47,680 ke ni donita. 704 00:39:47,680 --> 00:39:53,040 Kaj ni devos aĝo, kiu estas ankaŭ tuj estos iu kiu ni donita. 705 00:39:53,040 --> 00:39:56,020 Kaj tiu estas la tuteco de nia vortaro. 706 00:39:56,020 --> 00:39:57,730 >> Do ĝi estas alvenis du elementoj en ĝi. 707 00:39:57,730 --> 00:40:01,310 Kaj tiel ĉar foreach masxojn estas inteligentaj, ni 708 00:40:01,310 --> 00:40:04,900 povus pensi, kaj korekte povus pensi ke foreach 709 00:40:04,900 --> 00:40:08,080 povas persisti tra tiu vortaro, presi el 710 00:40:08,080 --> 00:40:10,850 valoroj donitaj per nomo kaj aĝo. 711 00:40:10,850 --> 00:40:14,510 >> Do ni fakte fari ĝuste tion. 712 00:40:14,510 --> 00:40:17,520 Ni konstrui foreach buklo. 713 00:40:17,520 --> 00:40:23,351 Kaj ni tuj faros por _GET kiel. 714 00:40:23,351 --> 00:40:24,850 Kaj ni tuj faru la sekvajn. 715 00:40:24,850 --> 00:40:34,186 Do ni vidu kio okazas se ni tajpi nur vorto, kaj tiam diri eĥo vorto. 716 00:40:34,186 --> 00:40:40,540 Ni ankaŭ tuj eĥon nova linio nur por fari ĝin iom pli klara, 717 00:40:40,540 --> 00:40:41,260 Kio okazas. 718 00:40:41,260 --> 00:40:42,890 >> Do ni vidu. 719 00:40:42,890 --> 00:40:44,390 Tio ne donante al mi ajnajn erarojn. 720 00:40:44,390 --> 00:40:46,810 Kaj ni fermu. 721 00:40:46,810 --> 00:40:51,020 Sur nia retejo, vi tuj faros multajn ke dum de pset7. 722 00:40:51,020 --> 00:40:53,890 Do ni diru Mia nomo estas Sam. 723 00:40:53,890 --> 00:40:58,560 Mia aĝo estas 45. 724 00:40:58,560 --> 00:41:01,060 Ĝi ne estas. 725 00:41:01,060 --> 00:41:05,640 Sed ĝi presas el, kiel atendita, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> Kaj tial vi rimarkos ke kio foreach buklo did-- tie, 727 00:41:08,930 --> 00:41:12,360 ni revenu al tiu tiel lin tuŝas sur la board-- ni preni _GET kiel vorto. 728 00:41:12,360 --> 00:41:15,130 Kaj la kvar aferoj en _GET. 729 00:41:15,130 --> 00:41:17,410 Sed nur presita el du aferoj. 730 00:41:17,410 --> 00:41:21,290 foreach, estante lia inteligenteco mem, supozis ke kio ni vere volis 731 00:41:21,290 --> 00:41:24,100 estis la valoroj, ne la klavojn. 732 00:41:24,100 --> 00:41:27,800 >> Sed estas vojo ke ni povus presi el la ŝlosilojn tiel, se ni volis. 733 00:41:27,800 --> 00:41:30,810 Se ni volis ankaŭ scias kion tiuj variabloj estas vokitaj, 734 00:41:30,810 --> 00:41:33,540 ekzistas trairejo ke ni povas aliri ĉi tiel. 735 00:41:33,540 --> 00:41:36,840 Kaj la vojo al speco de fari tion, tial ni povas diri, ebligas efektive 736 00:41:36,840 --> 00:41:39,485 disigu ĝin en ŝlosilo valoro paroj. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Do ni vidu kio okazas nun. 739 00:41:47,580 --> 00:41:50,550 >> Do ni havas ŝlosilon. 740 00:41:50,550 --> 00:41:52,290 Ni havas valoron. 741 00:41:52,290 --> 00:41:56,650 Ni havas alian novan linio por legibilidad. 742 00:41:56,650 --> 00:42:00,540 Kaj ni vidu kio okazas kiam ni faras tion nun. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Mi ne scias kiom aĝa Jason estas. 745 00:42:06,720 --> 00:42:09,180 Jasono 15. 746 00:42:09,180 --> 00:42:11,650 Do ni havas nomon Jason, aĝo 15. 747 00:42:11,650 --> 00:42:15,830 Do ni povis aliri la ŝlosilo kaj valoro paroj de tiu vortaro 748 00:42:15,830 --> 00:42:18,590 nur dirante kiel ŝlosilaj punktoj por valoro. 749 00:42:18,590 --> 00:42:23,350 Kaj tio estas foreach sintaksa sukero biton kiu permesas 750 00:42:23,350 --> 00:42:25,960 vin aliri aferojn en la vortaro. 751 00:42:25,960 --> 00:42:31,190 >> Do espereble tiu ia substrekas la potenco de la foreach buklo. 752 00:42:31,190 --> 00:42:35,690 Vi povas sufiĉe tre ĵet io kiu ŝajnas iterable, 753 00:42:35,690 --> 00:42:38,922 kiel io kiu havas multoblajn elementoj kiel tabelo, 754 00:42:38,922 --> 00:42:41,880 kiel dictionary-- tiuj estas du primara aferoj vi estos laboranta kun 755 00:42:41,880 --> 00:42:45,630 ambaŭ en vivo kaj en pset 7. 756 00:42:45,630 --> 00:42:49,350 Do vi povas ĵeti Okaze ĉe ĝi, kaj ĝi estos elkompreni 757 00:42:49,350 --> 00:42:51,030 kion vi volas fari kun ĝi. 758 00:42:51,030 --> 00:42:54,250 Ĝi diros: Bone, mi iros akiri cxi tion for de datumoj kiuj 759 00:42:54,250 --> 00:42:55,680 estis pasita al mi. 760 00:42:55,680 --> 00:43:02,470 Kaj tio estas iu kiu vi estas tuj estos uzante multajn en pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Mi tuj rapida movo malsupren nur por vidi kie mi estas ĉe. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Ĉu homoj havas demandojn en ĉi tiu punkto? 764 00:43:13,070 --> 00:43:13,778 Demandoj entute? 765 00:43:13,778 --> 00:43:14,400 Jes? 766 00:43:14,400 --> 00:43:18,320 >> Publiko: Do ​​kun la ŝlosilo kaj valoron, vi povus nomi gxin io alia 767 00:43:18,320 --> 00:43:20,507 kaj ĝi ankoraŭ funkcias? 768 00:43:20,507 --> 00:43:21,090 Parolanto: Oops. 769 00:43:21,090 --> 00:43:22,820 Wow, mi tute forigita la tuta linio. 770 00:43:22,820 --> 00:43:23,380 Granda laboro. 771 00:43:23,380 --> 00:43:26,502 Do, al. 772 00:43:26,502 --> 00:43:30,109 Ŝlosilo kaj valoro estas nur konvencio. 773 00:43:30,109 --> 00:43:30,650 Ĝi estas helpema. 774 00:43:30,650 --> 00:43:34,010 Obtenebla iuj dezajno punktojn, eble iuj stilo punktoj 775 00:43:34,010 --> 00:43:36,970 por fari tion, ĉar ĝi vere transdonas la intenco. 776 00:43:36,970 --> 00:43:39,650 Sed ni diru a kaj yarp. 777 00:43:39,650 --> 00:43:42,476 >> Spektantaro: Vi ne devas ŝanĝi ion en la HTML-dosiero 778 00:43:42,476 --> 00:43:43,607 por reflekti ke? 779 00:43:43,607 --> 00:43:44,440 Parolanto: Tute ne. 780 00:43:44,440 --> 00:43:47,260 Publiko: Kaj ĵus scias ke pro la egalas pli granda than-- 781 00:43:47,260 --> 00:43:47,801 Parolanto: Jes. 782 00:43:47,801 --> 00:43:49,489 Publiko: --kiu indikilo kiu that's-- 783 00:43:49,489 --> 00:43:50,030 Parolanto: Jes. 784 00:43:50,030 --> 00:43:52,260 Ke estas foreach sintakso, sed jes. 785 00:43:52,260 --> 00:43:53,720 >> Spektantaro: Ne estas tipoj. 786 00:43:53,720 --> 00:43:57,230 Do kio se vi volis aĝo al nur kelkaj? 787 00:43:57,230 --> 00:43:59,510 Ĉu ekzistas maniero por fari tion? 788 00:43:59,510 --> 00:44:04,550 >> Parolanto: Ekzistas manieroj por kontroli se variabloj konformiĝi al iuj tipoj. 789 00:44:04,550 --> 00:44:08,482 Do PHP petas iom pli el vi ĉar ekzistas neniuj tipoj en. 790 00:44:08,482 --> 00:44:09,440 Kelkaj manieroj petas malpli. 791 00:44:09,440 --> 00:44:11,070 Kelkmaniere ĝi petas pli. 792 00:44:11,070 --> 00:44:13,320 Ĉar se vi havas nur io en variablo, 793 00:44:13,320 --> 00:44:14,960 vi tute ne scias kion tipo ĝi estas. 794 00:44:14,960 --> 00:44:19,310 Sed se vi estas lerte pri la variabloj ke vi atribuas tipoj kaj certiĝu 795 00:44:19,310 --> 00:44:22,750 ke funkcioj nur return-- vi volas funkcioj nur reveno 796 00:44:22,750 --> 00:44:26,210 unu tipo de valoro por ke vi povas esence 797 00:44:26,210 --> 00:44:31,090 atendi ke la variablo vi revenas de funkcio estos de la tipo 798 00:44:31,090 --> 00:44:32,780 ke vi kredas ke estos, esence. 799 00:44:32,780 --> 00:44:36,550 >> Sed estas iuj metodoj per kiu vi povas kontroli. 800 00:44:36,550 --> 00:44:39,801 Mi ne memoras ilin de la supro de mia kapo. 801 00:44:39,801 --> 00:44:43,300 Mi atendas ĝin por igi blua. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Ekzistas metodoj konstruita en PHP kiu povas 805 00:44:52,000 --> 00:44:54,440 kontroli la tipo de variabloj por vi. 806 00:44:54,440 --> 00:44:58,250 Sed se vi atribuas variabloj smartly, vi ne devus 807 00:44:58,250 --> 00:45:01,330 devos fari tion tro da en pset 7. 808 00:45:01,330 --> 00:45:02,780 Sed tiuj metodoj ja ekzistas. 809 00:45:02,780 --> 00:45:06,704 Kaj tio estas iu kiu Estas en la lingvo mem. 810 00:45:06,704 --> 00:45:08,370 Kaj mi ne memoras la precizan sintakson. 811 00:45:08,370 --> 00:45:09,930 Ni povus eĉ rigardi ĝin. 812 00:45:09,930 --> 00:45:11,974 Sed tempo estas de la esenco. 813 00:45:11,974 --> 00:45:13,890 havi Ĉu ajnulo havas demandon? 814 00:45:13,890 --> 00:45:14,660 Jes. 815 00:45:14,660 --> 00:45:15,951 >> Publiko: Mi havas nur unu pli. 816 00:45:15,951 --> 00:45:19,050 Do vi menciis la GET metodo, sed vi ne menciis la POST metodo. 817 00:45:19,050 --> 00:45:20,500 Ĉu ni revenos al tio? 818 00:45:20,500 --> 00:45:21,540 >> Parolanto: Jes, ni volas estos revenanta al tiu. 819 00:45:21,540 --> 00:45:24,840 Tio estas ĝuste kion mi serĉis ĉe mia telefono, kiu nun endormiĝis, 820 00:45:24,840 --> 00:45:26,960 sed mi trovos gxin. 821 00:45:26,960 --> 00:45:30,680 Ĝuste certigi ni trafis ĉiuj PHP notoj. 822 00:45:30,680 --> 00:45:35,640 Yep, ne elpuriganta versio. 823 00:45:35,640 --> 00:45:41,940 Jes, ni havas kelkajn pliajn aferojn ni volas fari nun ĉe tiu punkto. 824 00:45:41,940 --> 00:45:45,980 >> Do parolante pri POST, kiun vi menciis, 825 00:45:45,980 --> 00:45:49,630 la sola diferenco inter GET kaj POST estas 826 00:45:49,630 --> 00:45:53,150 memoras kiam ni rigardis ĉe tiu retadreso kaj ni vidis, ho, 827 00:45:53,150 --> 00:45:58,270 nomo egalas al kaj aĝo egalas yarp pravas la URL tie por ni. 828 00:45:58,270 --> 00:46:03,300 POST estas iom pli sekretema kun lia forpaso de informo. 829 00:46:03,300 --> 00:46:08,090 >> Do se vi ne volas ke uzanto scii, ekzemple, vi 830 00:46:08,090 --> 00:46:11,160 ne volis la uzantnomon kaj pasvorton de la persono 831 00:46:11,160 --> 00:46:15,080 aktuale ensalutinta por montra la URL, kio estas racia afero 832 00:46:15,080 --> 00:46:17,770 por ne deziras en la URL, ĉar iu povas vidi gxin. 833 00:46:17,770 --> 00:46:21,520 Se ili ligas iun al paĝo, vi ne volas ilia URL kalkis tie, 834 00:46:21,520 --> 00:46:27,850 ĉar tio permesus popolon ensaluti nur kun la interglui de URL anstataŭe 835 00:46:27,850 --> 00:46:29,670 de reale plenigante formularon. 836 00:46:29,670 --> 00:46:31,710 POST estas iomete pli sekretemaj. 837 00:46:31,710 --> 00:46:34,150 >> Kaj la nuraj aĵoj kiuj ni devos ŝanĝi 838 00:46:34,150 --> 00:46:38,550 estas tiu metodo, ŝanĝo de akiri sendi. 839 00:46:38,550 --> 00:46:42,367 Kaj tiam ene la HTTP, anstataŭ de aliranta la tabelo _GET 840 00:46:42,367 --> 00:46:43,950 ni tuj aliri la tabelo _POST. 841 00:46:43,950 --> 00:46:48,600 >> Kaj ni rimarkos ke, se ni malfermas ĉi reen supren denove, 842 00:46:48,600 --> 00:46:51,910 Jason malrapide malkreskas en aĝo. 843 00:46:51,910 --> 00:46:53,230 nomi Jason, aĝo 14. 844 00:46:53,230 --> 00:46:54,280 La saman materialon Popoj supren. 845 00:46:54,280 --> 00:46:57,190 Sed ni iru al la URL kaj tiuj variabloj ne estas tie. 846 00:46:57,190 --> 00:47:00,540 >> Kaj la vojon ke POST passes-- tiel memori 847 00:47:00,540 --> 00:47:02,750 kiamaniere rigardi la fonton de la paĝo. 848 00:47:02,750 --> 00:47:04,570 Ni iras al la reto. 849 00:47:04,570 --> 00:47:06,920 Ni refreŝigi. 850 00:47:06,920 --> 00:47:10,690 Kaj ĉi tio estas alia afero kiu POST donos vin avertoj pri. 851 00:47:10,690 --> 00:47:15,050 Vi eble vidis skatolo, teksto skatolon kiel tiun en via retumilo. 852 00:47:15,050 --> 00:47:18,170 Ĉu vi vere volas por sendi formo denove? 853 00:47:18,170 --> 00:47:21,170 POST estas kio estas sendanta tiuj formoj. 854 00:47:21,170 --> 00:47:24,680 >> Ĉar esence se vi sendis vian kreditkarto informo por iu, 855 00:47:24,680 --> 00:47:26,350 ke ne tuj aperas en la URL. 856 00:47:26,350 --> 00:47:28,180 Tio tuj estos POST peto. 857 00:47:28,180 --> 00:47:32,905 Do kiam vi refreŝigi la paĝon, ĝi estas resendi ke post peto. 858 00:47:32,905 --> 00:47:35,530 Do nun ni volas sendi la formi denove ĉar ĝi ne tuj 859 00:47:35,530 --> 00:47:37,340 krei ajna duplikatajn aĉetoj. 860 00:47:37,340 --> 00:47:41,160 >> Kaj ni rimarkos ke ĉi tie, la metodo ni uzas estas POST. 861 00:47:41,160 --> 00:47:43,065 Kaj ĝi ja translokigi bajtoj. 862 00:47:43,065 --> 00:47:45,460 Ĝi trapasis 401 el ili. 863 00:47:45,460 --> 00:47:47,190 Programo bela eta. 864 00:47:47,190 --> 00:47:51,600 Sed estas nenie ke ni povas vidi la valoroj kiuj estas pasita. 865 00:47:51,600 --> 00:47:59,540 La retpaĝoj mem povas vidi, sed ni kiel uzantoj ne povas vidi, 866 00:47:59,540 --> 00:48:01,650 krom se vi estas hacker. 867 00:48:01,650 --> 00:48:05,340 Se vi estas bona hacker, vi povas rigardi. 868 00:48:05,340 --> 00:48:09,360 >> Se vi konas la bazajn formato de la HTML, 869 00:48:09,360 --> 00:48:11,790 la valoroj faros sin konata en la paĝoj. 870 00:48:11,790 --> 00:48:13,160 Vi povos vidi. 871 00:48:13,160 --> 00:48:16,720 La valoroj estos tie, ili estas nur iom malpli evidenta por vi 872 00:48:16,720 --> 00:48:19,522 aliri, esence. 873 00:48:19,522 --> 00:48:23,620 >> Ĉu ni havas plu demandoj pri GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- kion ni sekve faros fakte serĉos iuj de la kodo 875 00:48:26,800 --> 00:48:30,837 ke vi donas en pset 7, paroli pri kiel uzas iu el tiuj konceptoj, 876 00:48:30,837 --> 00:48:32,670 kaj paroli pri la aferojn vi venas 877 00:48:32,670 --> 00:48:35,090 devi fari iomete en pset 7. 878 00:48:35,090 --> 00:48:36,760 Demandon antaŭ tio? 879 00:48:36,760 --> 00:48:38,047 Pli demandoj vi infanoj havas? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Granda. 882 00:48:41,840 --> 00:48:45,370 >> Bone, ni rigardu iomete ĉe pset 7, 883 00:48:45,370 --> 00:48:49,530 Sendube kio vi estas ĉiuj plej ekscitita pri. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Mi volas diri, tiu estas iu kiu Davido iras tra iomete. 886 00:48:54,750 --> 00:49:00,890 Sed ni havas tri dosierujojn en la supro, tiel kiel agorda dosiero. 887 00:49:00,890 --> 00:49:04,650 Tio por datumbazoj, kiuj ni raportas en proksimume kvin minutoj. 888 00:49:04,650 --> 00:49:07,220 Inkluzivas, vi neniam bezonos rigardi en ĉi dosierujo 889 00:49:07,220 --> 00:49:12,480 se vi ne volas sed estas agrable scias ekzistas ĉiuj specoj de helpantoj. 890 00:49:12,480 --> 00:49:14,210 Helpantoj estas kiel helpema funkcioj. 891 00:49:14,210 --> 00:49:18,120 Kaj tiam ni havas agord, kiu fiksas kelkajn aĵojn supren. 892 00:49:18,120 --> 00:49:24,590 >> Estas iuj funkcioj kiuj havas CS50 skribita ke estas en helpanto kaj config. 893 00:49:24,590 --> 00:49:27,250 Kaj iuj de la PHP kiu jam eliras en dosieroj 894 00:49:27,250 --> 00:49:30,880 faros multajn pli speco de obtuzaj kruro laboro por vi. 895 00:49:30,880 --> 00:49:35,250 Kiel se ni eniros publika login.php, kio estas kio 896 00:49:35,250 --> 00:49:38,350 Aperas pravas kiam vi iras en pset 7. 897 00:49:38,350 --> 00:49:40,580 Ni vidos ke estas ĉi postulas deklaron. 898 00:49:40,580 --> 00:49:43,420 Kaj ke ia kiel akraj inkluzivi, hashtag 899 00:49:43,420 --> 00:49:46,850 inkluzivas se vi estas de pli nova generacio. 900 00:49:46,850 --> 00:49:49,740 Sed ĉi resume diras ke mi necesas aliro 901 00:49:49,740 --> 00:49:52,260 por ĉiuj funkcioj en config.php. 902 00:49:52,260 --> 00:49:55,290 Kaj vi povus havi postulas por ĉiaj aliaj aferoj. 903 00:49:55,290 --> 00:49:59,670 >> agord fakte postulas helpantoj. 904 00:49:59,670 --> 00:50:02,490 Do kiam ajn vi postulas config, vi estas ankaŭ 905 00:50:02,490 --> 00:50:05,660 Inkluzivanta aŭ postulanta helpantoj ankaŭ. 906 00:50:05,660 --> 00:50:09,590 Por ke donas al vi aliron al ĉiuj malvarmeta funkcioj ke ni tuj uzi, 907 00:50:09,590 --> 00:50:10,420 Aĵoj kiel repagi. 908 00:50:10,420 --> 00:50:13,490 Mi fakte tuj mildigi tiun malsupren iomete. 909 00:50:13,490 --> 00:50:16,280 Do la funkcio tiam ni estas tuj trairu 910 00:50:16,280 --> 00:50:22,380 ĝuste antaŭ ni pluiru al SQL iom bito estas la login.php funkcio, nur 911 00:50:22,380 --> 00:50:26,586 ĉar ĝi uzas iun de la temoj ke ni ĵus raportis en PHP. 912 00:50:26,586 --> 00:50:30,840 >> Komprenu la unua afero estas se $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Tio estas alia tutmonda variablo kiu vi tuj estos kontraktanta kun. 914 00:50:34,500 --> 00:50:38,460 Estas kiel _GET kaj _POST, sed kion servilo enhavas estas ĉi povas lasi vin 915 00:50:38,460 --> 00:50:42,730 scii se la peto metodo Estis GET aŭ POST. 916 00:50:42,730 --> 00:50:47,250 Kiel antaŭe kion ni faris Estas ĝuste en nia kodo kiun ni skribis, 917 00:50:47,250 --> 00:50:51,880 ni nur ŝanĝi ĝin esti GET kaj POST depende kion la HTML havas. 918 00:50:51,880 --> 00:50:55,120 Sed estas paĝoj kiuj povas esti Montrita kun ambaŭ tipoj de petoj. 919 00:50:55,120 --> 00:50:57,410 Kaj vi volus fari malsamaj aferoj depende 920 00:50:57,410 --> 00:50:59,740 sur la tipo de peto, samkiel salutnomo faras. 921 00:50:59,740 --> 00:51:04,400 >> Do vi povas kontroli ke peto metodo tra aliranta ŝlosilojn, 922 00:51:04,400 --> 00:51:08,630 tra uzante ŝlosila kaj ekhavi la valoro de io en la vortaro 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Do jen alia tutmonda ŝanĝiĝema kiel _GET kaj _POST. 925 00:51:13,800 --> 00:51:16,990 >> Se ĝi estas GET, ni volas redonu la ensaluta formularo. 926 00:51:16,990 --> 00:51:21,920 Redonu estas funkcio kiu esence nur metas la taŭgan HTML 927 00:51:21,920 --> 00:51:24,500 kaj pasas iuj parametroj. 928 00:51:24,500 --> 00:51:28,740 Tiu titolo estas parametro tio uzata en montrado, strange sufiĉe, 929 00:51:28,740 --> 00:51:32,670 la titolo de la paĝo en demando, la afero ĉi tie, 930 00:51:32,670 --> 00:51:34,850 diri aŭ saluton en nia antaŭa ekzemplo. 931 00:51:34,850 --> 00:51:36,100 Nun ni havas malsaman aferon. 932 00:51:36,100 --> 00:51:38,570 Else se ĝi estas POST, ni fari iu alia materialo. 933 00:51:38,570 --> 00:51:40,790 Ni uzas ke malplena metodo. 934 00:51:40,790 --> 00:51:42,750 Ĝi ne ekzistas, ĝi estas malplena. 935 00:51:42,750 --> 00:51:45,440 Kaj ni vidis antaŭe, PHP havas justan kvanton de primitivaj 936 00:51:45,440 --> 00:51:52,370 en metodoj ke David will-- se estas metodoj kiuj estas utilaj al vi, 937 00:51:52,370 --> 00:51:55,560 ili estos alarmitaj por vi en la piediro tra tiu Davido 938 00:51:55,560 --> 00:51:59,770 donas ĉe la komenco superrigardon, kaj ankaŭ Zamyla la helpema bitoj. 939 00:51:59,770 --> 00:52:01,040 Ŝi dorso ĉiuj. 940 00:52:01,040 --> 00:52:03,100 Ni povas ĉiuj ĝojas. 941 00:52:03,100 --> 00:52:06,530 pardonpeti estas trafe nomita funkcio ke nur esence presas 942 00:52:06,530 --> 00:52:10,130 iuj erarmesaĝojn, ĉar CS50 estas tre gxentila. 943 00:52:10,130 --> 00:52:14,770 >> Kaj nun ĉi tiu estas delikata iom ĉar ĉi 944 00:52:14,770 --> 00:52:16,697 Tie estas kie ni informpeti la datumbazo. 945 00:52:16,697 --> 00:52:18,280 Nun ni ne parolis pri datumbazoj. 946 00:52:18,280 --> 00:52:22,220 Kaj ni tuj en la sekva kvin minutoj aŭ tiel, maksimumo. 947 00:52:22,220 --> 00:52:24,980 Sed tio estas funkcio ke CS50 skribis 948 00:52:24,980 --> 00:52:38,050 akiri tablo baze de datumbazo ke ni laboras kun en pset 7. 949 00:52:38,050 --> 00:52:40,860 Mi estas vere malbona kun mia nulo indeksado hodiaŭ. 950 00:52:40,860 --> 00:52:42,060 Sed jes, estas 7. 951 00:52:42,060 --> 00:52:46,340 >> Do konsulti ĝi tuj revenos al tabelo, esence estas la ŝlosilo iom. 952 00:52:46,340 --> 00:52:54,130 Kaj ĉar tio ne havas tajpadon, do vicoj estas tabelo de tabeloj. 953 00:52:54,130 --> 00:52:59,480 Ĉar kiam ni pensas tablon, kion ni tuj faros 954 00:52:59,480 --> 00:53:04,830 estas, kiel vi lernis en psets kiel la ludo de 15, ĉiuokaze 955 00:53:04,830 --> 00:53:06,990 kie vi devis uzi duobla tabelo, ni esence 956 00:53:06,990 --> 00:53:15,210 havi tabelo de aliaj arrays faras tablon. 957 00:53:15,210 --> 00:53:18,150 Kaj vi havas vicoj kaj kolumnoj. 958 00:53:18,150 --> 00:53:24,450 Kaj tiam vi povas aliri ilin kiel [0] [1], vi ricevas la [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Bazaj da tio. 960 00:53:26,900 --> 00:53:29,380 >> Do kion ni faras tie en tiu funkcio, 961 00:53:29,380 --> 00:53:35,070 ni petas la datumbazo se la uzanto tio 962 00:53:35,070 --> 00:53:40,200 provas ensaluti, kiu estos senditaj per poŝto metodo. 963 00:53:40,200 --> 00:53:43,950 Ni vidos estas duumaj la uzulnomo _POST. 964 00:53:43,950 --> 00:53:46,900 Oni devos sendita, la uzanto aŭ vi sendos valoro 965 00:53:46,900 --> 00:53:50,750 tra formo tra POST ĉar ĝi estas ensalutilojn stuff. 966 00:53:50,750 --> 00:53:54,830 Ni estas kontrolanta la uzantnomon vidi, estas ĉi en la tablo? 967 00:53:54,830 --> 00:53:58,070 Ĉar se uzanto estas elsaluti en, tiam ilia salutnomo 968 00:53:58,070 --> 00:54:03,320 devus esti stokita en la tablo de uzantoj kiuj ekzistas por tiu ejo. 969 00:54:03,320 --> 00:54:09,360 Do resume, se la uzanto estas en la datumbazo, 970 00:54:09,360 --> 00:54:16,400 query tuj revenos tiu vico, kiu estas tabelo. 971 00:54:16,400 --> 00:54:24,560 >> Sed la malfacila parto estas ke se eĉ se la duobla tabelo estas nur unu vico, 972 00:54:24,560 --> 00:54:31,900 eĉ se ĝi estas unu vico tabelo kiel vi hvas basically-- 973 00:54:31,900 --> 00:54:36,900 se vi hvas grandeco unu tabelo ke estas tenanta alia tabelo, 974 00:54:36,900 --> 00:54:38,940 vi vere pritraktas unu kolumno. 975 00:54:38,940 --> 00:54:41,420 Sed gxi ankoraux traktata kiel duobla tabelo. 976 00:54:41,420 --> 00:54:44,560 >> Kaj tiu estas kie povas kelkfoje atingi delikata, ĉar ni havas vicoj tie. 977 00:54:44,560 --> 00:54:46,440 Nia variablo estas vicoj. 978 00:54:46,440 --> 00:54:48,590 Kaj tiam ni kreas nova variablo nomata vico 979 00:54:48,590 --> 00:54:51,450 kaj fiksante ĝin egala al la unua vico de vicoj. 980 00:54:51,450 --> 00:54:55,150 Kaj vi rimarkos ke komenton diras ke estas la unua kaj nur vico. 981 00:54:55,150 --> 00:54:57,080 >> Do tiu estas la malfacila parto kie nun funkcias 982 00:54:57,080 --> 00:54:59,660 povas reveni tabeloj tre facile. 983 00:54:59,660 --> 00:55:01,270 Ekzistas ne mallocs. 984 00:55:01,270 --> 00:55:02,280 Vi ne vidos mallocs. 985 00:55:02,280 --> 00:55:03,940 Do vi ne vidos seg kulpoj. 986 00:55:03,940 --> 00:55:08,380 Sed funkciojn ankoraŭ estos pasanta ĉirkaŭ arrays kaj datumoj en grupoj. 987 00:55:08,380 --> 00:55:12,250 Kaj vi devi esti singarda de kion ĝuste via funkcioj revenos. 988 00:55:12,250 --> 00:55:15,160 Kaj eĉ se ĝi estas unu kolumno tiel, konsulti 989 00:55:15,160 --> 00:55:17,520 ankoraŭ tuj revenos duoblan tabelo. 990 00:55:17,520 --> 00:55:21,390 Do al aliro kiu column-- aŭ vi povas pensi pri ĉio ĉi, kiel renversita 991 00:55:21,390 --> 00:55:22,870 ekde ni parolas pri vicoj. 992 00:55:22,870 --> 00:55:26,810 Sed aliri ke unu vico, ne eblas simple diri vicoj. 993 00:55:26,810 --> 00:55:31,540 Eĉ kvankam ĝi estas unu vico, vi devas ĉu rowsrows [0] por ia forigi tiun 994 00:55:31,540 --> 00:55:37,360 ekstera bito de la tabelo kaj GXusta via unu vico. 995 00:55:37,360 --> 00:55:38,342 >> Ĉu iuj aliaj aferoj. 996 00:55:38,342 --> 00:55:40,050 Ekzistas funkcio nomata password_verify 997 00:55:40,050 --> 00:55:42,980 kiu kontrolas la Pasvorto ke estis poŝtita. 998 00:55:42,980 --> 00:55:48,500 Kaj tiam oni vidas alian tutmonda variablo tie, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Esence kunsido identigilo Tiel vi konservi trako 1000 00:55:51,340 --> 00:55:53,990 de se iu estas ensalutita aŭ ne. 1001 00:55:53,990 --> 00:55:58,590 Do ĝuste nun kun login.php, ni ensalutanta uzanto en. 1002 00:55:58,590 --> 00:56:01,920 Do kion ni volas fari estas ni volas diri la kunsido identigilo estas egala al la vico 1003 00:56:01,920 --> 00:56:05,890 identigilo, kiu nur havas sencon ĉar ĉiu vico havos malsaman identigilo 1004 00:56:05,890 --> 00:56:07,239 numeron kiel parto de la tablo. 1005 00:56:07,239 --> 00:56:09,280 Ni enir SQLa en dua, do se iu el tiu 1006 00:56:09,280 --> 00:56:13,500 ŝajnas iomete kiel bla, tiam ĉio estos klarigita. 1007 00:56:13,500 --> 00:56:18,450 Sed ni tuj starigis la identigilo egala al konvenas, tala la uzanto en. 1008 00:56:18,450 --> 00:56:20,530 Pardonpetas se io iras malbone. 1009 00:56:20,530 --> 00:56:27,600 Kaj tio estas ensalutoj celo en vivo kiel Profesoro Malan dirus. 1010 00:56:27,600 --> 00:56:29,130 >> Tiel estis login.php. 1011 00:56:29,130 --> 00:56:33,750 Kaj multe da la PHP kodo vi skribos en pset 7, ili devos esti iomete. 1012 00:56:33,750 --> 00:56:36,470 Ne forgesu chmod al la bonorda permesojn. 1013 00:56:36,470 --> 00:56:40,180 Estos iomete pri ke en la komenco de la specifon. 1014 00:56:40,180 --> 00:56:46,382 >> Sed la PHP kiu vi estas skribo tuj estos 1015 00:56:46,382 --> 00:56:47,840 fari aĵoj estas simila al tiu. 1016 00:56:47,840 --> 00:56:49,715 Vi tuj estos aliranta iuj aferoj 1017 00:56:49,715 --> 00:56:52,760 estas donitaj al vi en la mallokajn variablojn de PHP ke 1018 00:56:52,760 --> 00:56:56,105 estas kontraktanta kun la nuna ensalutinta uzanto, ĉu tie 1019 00:56:56,105 --> 00:57:00,460 havi estis petoj senditaj al tiu paĝo, malsamaj aĵoj tiel. 1020 00:57:00,460 --> 00:57:05,790 Kaj ĝi ankaŭ estos potenciale ripetanta tra vicoj da tiu afero. 1021 00:57:05,790 --> 00:57:09,010 >> En malsama funkcio, query does reveni ĉi duobla tabelo. 1022 00:57:09,010 --> 00:57:11,450 Kaj se estas pli ol vicoj en ĝi, 1023 00:57:11,450 --> 00:57:15,080 se are-- jes, se ekzistas Estas pli ol unu vicoj en ĝi, 1024 00:57:15,080 --> 00:57:16,870 tiam estos tablo. 1025 00:57:16,870 --> 00:57:20,500 Kaj vi eble volas persisti tra la vicoj de ĉi tabelo uzante 1026 00:57:20,500 --> 00:57:22,860 la foreach buklo kiun ni priskribis. 1027 00:57:22,860 --> 00:57:30,270 >> Do se vi faras foreach sur duobla tabelo, kion volas la word-- tie, 1028 00:57:30,270 --> 00:57:31,909 Mi vere skribos ĝin. 1029 00:57:31,909 --> 00:57:32,950 Mi skribos ĝin rapida tie. 1030 00:57:32,950 --> 00:57:44,280 >> Se ni havas foreach de vicoj kiel vico, kio estas la tipo de vico? 1031 00:57:44,280 --> 00:57:45,390 Ĉu iu scias? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Vi ricevis ĝin? 1034 00:57:54,500 --> 00:57:57,110 Do vicoj estas duobla tabelo. 1035 00:57:57,110 --> 00:58:02,810 Do kio estas foreach tuj konkludi ke ni deziras de tiu duobla tabelo 1036 00:58:02,810 --> 00:58:04,280 se ni ripetanta super ĝi? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Ni povas supozi ke esence ĝi tuj esti aŭ elementoj, 1039 00:58:10,770 --> 00:58:14,970 aŭ vicoj, aŭ kolumnoj, esence. 1040 00:58:14,970 --> 00:58:18,740 Kaj tiel vicoj kaj kolumnoj ni povas trakti kiel la sama afero. 1041 00:58:18,740 --> 00:58:23,880 >> Esence kion la foreach buklo tuj fari estas ĝi tuj revenos vicoj. 1042 00:58:23,880 --> 00:58:28,500 vico tuj estos de tipo vico, dum vicoj estas duobla tabelo. 1043 00:58:28,500 --> 00:58:32,290 Do se vi donos foreach duobla tabelo, estas 1044 00:58:32,290 --> 00:58:35,830 ne tuj persisti pli ol unu nivelo profunda. 1045 00:58:35,830 --> 00:58:44,464 Kiu estas esence diri se Estas ok ĉeloj en ĉi table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, 8-- la foreach buklo ne 1047 00:58:48,110 --> 00:58:51,880 tuj trairu ĉiu de tiuj ĉeloj. 1048 00:58:51,880 --> 00:58:56,390 Kion la foreach buklo faros estis ĝi trairos ĉi vico, 1049 00:58:56,390 --> 00:58:57,870 al vi tiun tutan vicon. 1050 00:58:57,870 --> 00:58:59,410 Kaj tiam ĝi iros tra tiu vico. 1051 00:58:59,410 --> 00:59:01,850 >> Do ĝi nur ripetas unu nivelo profunda. 1052 00:59:01,850 --> 00:59:05,310 Se vi aldonas nestitaj foreach buklo, tiam vi 1053 00:59:05,310 --> 00:59:16,280 povas trakti ĉiu vico revenis de vicoj, vi faras foreach vico kiel elementon, 1054 00:59:16,280 --> 00:59:17,640 diru. 1055 00:59:17,640 --> 00:59:22,750 Kaj poste vi povus eĥi la elemento. 1056 00:59:22,750 --> 00:59:24,930 Do jen mallonga iom aktualigo pri kiel 1057 00:59:24,930 --> 00:59:30,220 vi povus uzi foreach masxojn en la kunteksto de mendo. 1058 00:59:30,220 --> 00:59:32,840 >> Ĉu estas demandoj sur PHP? 1059 00:59:32,840 --> 00:59:36,520 Io ajn antaŭ ni pluiri al paroli pri SQLa 1060 00:59:36,520 --> 00:59:37,820 kaj la amuzo de datumbazo? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Sentante bona? 1063 00:59:42,110 --> 00:59:42,750 Sentante bona. 1064 00:59:42,750 --> 00:59:43,470 Bone. 1065 00:59:43,470 --> 00:59:49,130 >> Ni movi sur al la PowerPoint, kiujn vi probable maltrafi. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Homoj kiuj estas en miaj sekcio tipe scios ke subheadings de akronimoj 1068 00:59:57,900 --> 01:00:01,220 Estas ĉiam nur la unuaj vortoj Mi pensas de tiu turniro ke 1069 01:00:01,220 --> 01:00:02,690 algorithm-- ke akronimo. 1070 01:00:02,690 --> 01:00:04,090 Ĝi ne estas algoritmo. 1071 01:00:04,090 --> 01:00:08,050 >> Do SQL estas datumbazo. 1072 01:00:08,050 --> 01:00:11,060 Ĝi estas lingvo ke laboras kun datumbazoj. 1073 01:00:11,060 --> 01:00:14,440 Kaj ĉiuj datumbazoj estas tabloj, almenaŭ en la vojo 1074 01:00:14,440 --> 01:00:17,220 ke SQLa reprezentas ilin. 1075 01:00:17,220 --> 01:00:23,610 >> Alia maniero pensi pri datumbazoj estas datumbazoj estas aro de ŝlosiloj kaj valoroj 1076 01:00:23,610 --> 01:00:24,110 esence. 1077 01:00:24,110 --> 01:00:29,530 Vi povas pensi pri datumbazo kiel vortaron kaj ankaŭ kiel tablo. 1078 01:00:29,530 --> 01:00:34,300 Esence ĝi estas maniero asocii malsamajn datumojn kun aliaj datumoj, 1079 01:00:34,300 --> 01:00:36,270 ofte tra vicoj kaj kolumnoj. 1080 01:00:36,270 --> 01:00:38,470 Kaj tio estas la vojo jen SQLa bone funkcias. 1081 01:00:38,470 --> 01:00:40,880 >> Do tiu estas unu ekzemplo de tablo. 1082 01:00:40,880 --> 01:00:44,610 Mi havas kelkajn ekzemplojn de personoj en mia sekcio, kiu 1083 01:00:44,610 --> 01:00:45,970 Mi ne havis tempon por ŝanĝiĝi. 1084 01:00:45,970 --> 01:00:52,020 Sed ni havas aferojn kiel ID, nomo, superpotenco, kaj hejmurbo. 1085 01:00:52,020 --> 01:00:54,100 Mi ne scias kie ĉiu estas el mia sekcio, 1086 01:00:54,100 --> 01:00:56,266 do mi simple tuj supozi ĉies ajn el Novjorko 1087 01:00:56,266 --> 01:00:59,370 Urbo ĉar mi multe statistika verŝajneco de esti ĝentilaj. 1088 01:00:59,370 --> 01:01:04,200 >> SQLa aŭtomate prenas Zorgi pri la ID kolumno por vi. 1089 01:01:04,200 --> 01:01:07,560 Se vi enmetas nova vico en SQL datumbazo, 1090 01:01:07,560 --> 01:01:09,700 ĝi pliigo ke ID nombro kaj nur 1091 01:01:09,700 --> 01:01:14,890 esence algluita kiel kvin nomoj, superpotenco, hejmurbo, kiu ajn 1092 01:01:14,890 --> 01:01:16,430 sur la fino de tiu tablo. 1093 01:01:16,430 --> 01:01:19,160 Do ID estas kolumno vi neniam devas maltrankvili pri. 1094 01:01:19,160 --> 01:01:22,770 Sed, kiel en la kazo de login.php, kiam ni 1095 01:01:22,770 --> 01:01:26,610 estis akiranta la kunsido ID de tablo kaj nur uzanta ID, 1096 01:01:26,610 --> 01:01:30,320 ID estas maniero unike identigi ero de datumaro. 1097 01:01:30,320 --> 01:01:34,980 >> Do se ni havus du Sams, ambaŭ kiu instruis CS50, kaj ambaŭ de kiu 1098 01:01:34,980 --> 01:01:39,370 estis de Milvokio, tiuj farus ankoraŭ havas distingan ID nombroj 1099 01:01:39,370 --> 01:01:43,420 kaj tiel distinga en la kunteksto de la tablo. 1100 01:01:43,420 --> 01:01:48,700 Do jen kion SQLa pritraktas kun, laboras kun je la dorso fino. 1101 01:01:48,700 --> 01:01:54,160 >> Jen estas la kvar komandoj ke vi bezonos labori kun SQL. 1102 01:01:54,160 --> 01:01:56,390 Kaj mi ĵetis ilin ĉiuj supre sur unu glito. 1103 01:01:56,390 --> 01:01:59,530 Sed ni tuj iru tra ilin ĉiujn individue. 1104 01:01:59,530 --> 01:02:03,300 >> La unua komando estas UPDATE, kiu faras kion vi povus atendi. 1105 01:02:03,300 --> 01:02:07,240 Diru vi havas iujn datumojn en la tablon tio estas eksdata. 1106 01:02:07,240 --> 01:02:09,470 Kiel se vi tenanta aŭtoveturejo de popola nomoj 1107 01:02:09,470 --> 01:02:13,350 kaj aĝoj, se iu estas aĝo pliiĝas, tiam 1108 01:02:13,350 --> 01:02:18,590 vi tuj volas iri kaj ĝisdatigi ĝuste tiu persono aĝo. 1109 01:02:18,590 --> 01:02:21,902 Por ekzemplo kiu funkcias kun nia unua table-- 1110 01:02:21,902 --> 01:02:24,610 Ne zorgu pri skribado ĉiuj tiujn komandojn samtempe. 1111 01:02:24,610 --> 01:02:27,640 Sed se vi havas ĝisdatigon malsupren, ke estos bonaj por tiu parto, 1112 01:02:27,640 --> 01:02:29,790 ĉar ni tuj reiru al la tablo. 1113 01:02:29,790 --> 01:02:33,920 >> Do se ni reiru al la tablo, diru iu kiu okazis 1114 01:02:33,920 --> 01:02:38,480 estis tie estis tertremo aŭ de faŭlto ke disfendita rekte 1115 01:02:38,480 --> 01:02:39,920 tra Novjorko. 1116 01:02:39,920 --> 01:02:45,130 Kaj ni volis ĝisdatigi ĉiuj kiu vivis en Novjorko. 1117 01:02:45,130 --> 01:02:49,670 Ili ĉiuj devis movi al Pensilvanio. 1118 01:02:49,670 --> 01:02:51,130 Tio ne estas hejmurbo. 1119 01:02:51,130 --> 01:02:53,180 Ili ĉiuj devis moviĝi al New Haven. 1120 01:02:53,180 --> 01:02:54,030 Tie ni marŝos. 1121 01:02:54,030 --> 01:02:57,630 Do ĉiuj en Nov-Jorko movas al New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> Kaj tiel tio estas iu kiu estas redaktado tri vicoj en tiu tabelo. 1123 01:03:01,300 --> 01:03:04,716 Sed en SQL, vi povas fari ke en nur unu deklaron. 1124 01:03:04,716 --> 01:03:05,715 Do ni revenu al Update. 1125 01:03:05,715 --> 01:03:09,670 Lasu min rapidan viŝi ĉi tabulo denove. 1126 01:03:09,670 --> 01:03:14,570 Kiam ni parolas pri ĝisdatigo, estas 1127 01:03:14,570 --> 01:03:17,640 kelkaj partoj de la sintakso kiu estas kerna. 1128 01:03:17,640 --> 01:03:19,770 Nu, ĉiuj la sintakso estas ŝlosilo. 1129 01:03:19,770 --> 01:03:22,210 Sed la aĵoj en verda estas nedevigaj. 1130 01:03:22,210 --> 01:03:25,680 La blanka deviĝas, kiel antaŭdifinita nomoj. 1131 01:03:25,680 --> 01:03:30,750 Kaj la lumo blua estas aferoj kiuj varias depende de la tablo. 1132 01:03:30,750 --> 01:03:34,640 Do jen kio okazas kun la kolorskemon tie, tie supre. 1133 01:03:34,640 --> 01:03:40,250 >> Do se ni volas ĝisdatigi ĝuste tiuj vicoj de la personoj kiuj vivas en Nov-Jorko, 1134 01:03:40,250 --> 01:03:43,490 do kion ni farus se ni diris UPDATE? 1135 01:03:43,490 --> 01:03:46,320 Do tabelo estas kie ni metis la nomo de nia tablo. 1136 01:03:46,320 --> 01:03:49,170 Ni nur diras la nomo de nia tablo estas tablo unu. 1137 01:03:49,170 --> 01:03:52,515 Do ni volas ĝisdatigi tablo unu. 1138 01:03:52,515 --> 01:03:57,470 Kaj ni volas set-- Kion ni volas agordi? 1139 01:03:57,470 --> 01:04:05,160 Nu ni volas diri, tiel column-- PHP traktas vicoj kiel unika ensalutiloj. 1140 01:04:05,160 --> 01:04:07,930 Kaj tiam kolumnoj estas la malsamaj kampoj 1141 01:04:07,930 --> 01:04:09,940 el tiuj elementoj de la datumbazo. 1142 01:04:09,940 --> 01:04:14,210 >> Do la unua elemento de la datumbazo havas nomon de Sam, superpotenco de CS50, 1143 01:04:14,210 --> 01:04:16,210 kaj hejmurbo de Milvokio. 1144 01:04:16,210 --> 01:04:20,710 Do se ni diris enkadrigeblajn ni rigardu la parametroj denove ke aro prenas. 1145 01:04:20,710 --> 01:04:23,880 Ni havas kolumno egalas valoron. 1146 01:04:23,880 --> 01:04:27,290 Do ni volas diri iun column-- kiu memoras 1147 01:04:27,290 --> 01:04:31,850 Estas field-- ni volas vidi kampo egala al io nova. 1148 01:04:31,850 --> 01:04:42,340 >> Do se ni ĵus diris ĝisdatigo Tabelo 1, aro nomo egalaj Elliot. 1149 01:04:42,340 --> 01:04:46,310 Get iuj personoj el la nova sekcio en sur ĉi. 1150 01:04:46,310 --> 01:04:51,540 Sed se ni nur faris ĝisdatigon tablo 1 metis nomon egalaj Elliot, kion farus 1151 01:04:51,540 --> 01:04:55,530 la tablo aspektas poste? 1152 01:04:55,530 --> 01:04:56,410 Homoj havas neniun ideon? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Yeah. 1155 01:05:00,210 --> 01:05:03,195 >> Spektantaro: Ĉiu en tiu vico igus Elliot. 1156 01:05:03,195 --> 01:05:04,570 Parolanto: Ĉio en kiu vico? 1157 01:05:04,570 --> 01:05:06,067 Publiko: En la unua vico. 1158 01:05:06,067 --> 01:05:07,150 Parolanto: En la unua vico? 1159 01:05:07,150 --> 01:05:09,724 Kial la unua vico? 1160 01:05:09,724 --> 01:05:10,890 Mi ne intencas pluki sur vi. 1161 01:05:10,890 --> 01:05:13,287 >> Publiko: Eble ĉio en la tuta tablo? 1162 01:05:13,287 --> 01:05:15,120 Parolanto: Ĉio en la tutan tabelon, jes. 1163 01:05:15,120 --> 01:05:19,520 Kaj tio estas ĝuste dekstra because-- mi estis nur helpi vin ekstere iomete 1164 01:05:19,520 --> 01:05:22,650 there-- ĉar ni preterlasita la nedeviga KIE klaŭzo. 1165 01:05:22,650 --> 01:05:27,260 Se vi ne havas la KIE klaŭzo, kion tiu komando faros 1166 01:05:27,260 --> 01:05:32,240 Estas ĝi devos labori kun ĉiu ununura vico en la tablon. 1167 01:05:32,240 --> 01:05:35,430 Ĉies nomon fariĝi Elliott, esence, 1168 01:05:35,430 --> 01:05:37,360 kiun Elliot estas tre feliĉa pri. 1169 01:05:37,360 --> 01:05:40,070 Aŭ Yanni, unu el la du. 1170 01:05:40,070 --> 01:05:42,490 Sed ĉies nomo ŝanĝos. 1171 01:05:42,490 --> 01:05:47,880 >> Do la maniero kiun uzas la KIE clause-- kaj tio validas por ĉiuj WHEREs 1172 01:05:47,880 --> 01:05:51,410 kiuj estas en ĉiu de tiuj malsamaj aferoj. 1173 01:05:51,410 --> 01:05:54,380 Do vi rimarkos ke SET havas kolumnon egala valoro. 1174 01:05:54,380 --> 01:05:55,190 Kaj tiel faras KIE. 1175 01:05:55,190 --> 01:06:00,040 Sed ĉi tiuj estas diferencaj tipoj de deklaroj. 1176 01:06:00,040 --> 01:06:04,400 Do la kolumno egalas valoro en SET estas en asigno. 1177 01:06:04,400 --> 01:06:08,320 Kiel ni dirante ni volas agordi nomon egala al Elliot. 1178 01:06:08,320 --> 01:06:15,390 Sed en la KIE paragrafoj, tiuj estas egaleco deklaroj. 1179 01:06:15,390 --> 01:06:20,410 Do diru ni nur volis ŝanĝi la persono nomo Elliot 1180 01:06:20,410 --> 01:06:23,940 se ilia nomo estis Ryan, ni diru. 1181 01:06:23,940 --> 01:06:24,920 >> Do kiam ni diras 1182 01:06:24,920 --> 01:06:32,700 >> KIE nomo egalas Ryan, ke farus sukcese nur ŝanĝo 1183 01:06:32,700 --> 01:06:37,440 la name-- ĝi estus nur ŝanĝi la nomon de kampo en vicoj 1184 01:06:37,440 --> 01:06:40,770 kie la nomo kampo egalas al Ryan. 1185 01:06:40,770 --> 01:06:44,430 Do se ni havis plurajn homojn nomita Ryan, ĉiujn iliajn nomojn 1186 01:06:44,430 --> 01:06:45,730 ŝanĝus Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Tio estas simila al la ekzemplo de se faŭlto disdividas 1188 01:06:48,169 --> 01:06:50,960 Novjorko kaj ĉiu devas movi al New Haven, la maniero kiel ni povas 1189 01:06:50,960 --> 01:06:56,570 fari tion en unu deklaro estas UPDATE table1 SET hejmurbo = New Haven 1190 01:06:56,570 --> 01:07:00,210 kie hejmurbo egalas Novjorko. 1191 01:07:00,210 --> 01:07:03,410 Jen la potenco de La ĝisdatigo komunikaĵo. 1192 01:07:03,410 --> 01:07:10,530 Ni povas elekti ajnan nombron de vicoj tra veraj deklaroj 1193 01:07:10,530 --> 01:07:12,860 pri la kampoj en tiuj vicoj. 1194 01:07:12,860 --> 01:07:19,510 Ni ne povas diri UPDATE table1 aro nomo = Elliot KIE vico = 1, 1195 01:07:19,510 --> 01:07:24,820 krom ke ni povas se ni diras ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Do ni tuj esti laborante kun egaleco 1198 01:07:29,830 --> 01:07:32,830 de kampoj, egaleco de kolumnoj. 1199 01:07:32,830 --> 01:07:38,030 Sed uzante la ID kampo estas vojo elekti individuajn vicojn specife, 1200 01:07:38,030 --> 01:07:43,210 ĉar la ID kampo estas unika ensalutilo en SQL datumbazo. 1201 01:07:43,210 --> 01:07:45,860 Do kiel ĝisdatigi vico unu, ID egalas 1. 1202 01:07:45,860 --> 01:07:49,560 Ĝisdatigante vico du, nur ŝanĝi ke ID nombro. 1203 01:07:49,560 --> 01:07:51,610 Sed la povo de la KIE deklaro estas ke ni 1204 01:07:51,610 --> 01:07:57,480 povas ĝisdatigi aferoj bazita sur kio ilia nuna valoroj de certaj aferoj. 1205 01:07:57,480 --> 01:07:58,155 Jes Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> Publiko: Kaj kio se vi volas to-- denove, tio estas alia demando. 1207 01:08:02,678 --> 01:08:07,660 Sed mia unua demando estis, kie estas ĉi okazas? 1208 01:08:07,660 --> 01:08:09,130 Kie mi ĝisdatiganta ĉi? 1209 01:08:09,130 --> 01:08:11,100 Ĉu tio en PHP kodo? 1210 01:08:11,100 --> 01:08:13,379 >> Parolanto: Kie vi ĝisdatigas, jes. 1211 01:08:13,379 --> 01:08:15,170 Ni tuj paroli pri kie ĉiuj ĉi 1212 01:08:15,170 --> 01:08:18,729 okazas ia iam ni iras tra ĉiuj komandoj. 1213 01:08:18,729 --> 01:08:21,130 Sed kion vi bezonas scias de momento estas esence 1214 01:08:21,130 --> 01:08:26,279 ke via SQL datumbazo ekzistas kiel io 1215 01:08:26,279 --> 01:08:30,090 esti alirita de la query funkcio, kiu difinas CS50. 1216 01:08:30,090 --> 01:08:33,800 Do se vi uzas la konsulto funkcio, vi povas aliri ĉi tablo. 1217 01:08:33,800 --> 01:08:39,529 >> Do vi estos sendanta tiuj komandas al via tablo en PHP dosierojn 1218 01:08:39,529 --> 01:08:41,420 tra la konsulto funkcio. 1219 01:08:41,420 --> 01:08:45,410 Vi povas ankaŭ ludi tie kun via tablo rekte. 1220 01:08:45,410 --> 01:08:49,050 Kaj tio estas la plej bona maniero testi tiajn komandojn. 1221 01:08:49,050 --> 01:08:52,720 Kaj ni iros tra precize kiel fari tion en nur iomete. 1222 01:08:52,720 --> 01:08:54,910 >> Do jen UPDATE komando. 1223 01:08:54,910 --> 01:08:57,939 Kaj la resto de la komandoj tuj estos ia simila, 1224 01:08:57,939 --> 01:08:59,069 laboras pri similaj aferoj. 1225 01:08:59,069 --> 01:09:02,740 La INSERT INTO estas probable la plej malsamaj de UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Mi tuj lasos ke tie supre por nur iomete kaj laboro super tie. 1227 01:09:06,170 --> 01:09:10,215 Do enmeti en, vi vidos tiu tablo estas ankoraŭ la sama. 1228 01:09:10,215 --> 01:09:17,010 Vi volas enmeti en. 1229 01:09:17,010 --> 01:09:20,286 La capitalización, SQLa Estas kazo sensenta. 1230 01:09:20,286 --> 01:09:22,160 Do vi ne devas kapitaligi tion. 1231 01:09:22,160 --> 01:09:27,960 Por konvencio, la vortoj en blankaj majuskloj. 1232 01:09:27,960 --> 01:09:31,590 Sed mi ankaŭ koloro kodita ilin. 1233 01:09:31,590 --> 01:09:34,390 La nura kialo ke vi kapitaligi tiujn kiam vi tajpas ilin 1234 01:09:34,390 --> 01:09:36,609 Estas simple elstari ke tiuj estas konstantaj. 1235 01:09:36,609 --> 01:09:39,189 Kaj tiel vi povas aŭ rigardi la kapitaligo aŭ la fakto 1236 01:09:39,189 --> 01:09:40,740 ke mi koloraj ilin malsame. 1237 01:09:40,740 --> 01:09:44,910 >> Do ni hvas INSERT INTO, ni faru table1 denove. 1238 01:09:44,910 --> 01:09:45,930 Tio estas ĉio sur unu linio. 1239 01:09:45,930 --> 01:09:48,609 Mi simple disigi ĝin la malsamaj deklaroj. 1240 01:09:48,609 --> 01:09:52,399 Do ne zorgu pri la fakto ke table1 faris ĝin sur la dua linio. 1241 01:09:52,399 --> 01:09:56,130 >> Do ni volas enmeti INTO table1 iuj valoroj. 1242 01:09:56,130 --> 01:09:58,922 Kaj vi rimarkos la laŭvola bita, kiun mi ricevos por en dua. 1243 01:09:58,922 --> 01:09:59,755 Do ni havas valorojn. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Do diru ni volas aldoni Andi al nia tablo, ĉar ni maltrafos Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi estas malsana. 1247 01:10:09,390 --> 01:10:12,490 Do ni aldonu Andi al nia tablo. 1248 01:10:12,490 --> 01:10:15,150 Memoru ke la ID nombro estas ĝisdatigita aŭtomate. 1249 01:10:15,150 --> 01:10:17,320 Do la sola kampoj ni bezonas zorgi pri 1250 01:10:17,320 --> 01:10:20,230 estas nomo, superpotenco, kaj hejmurbo. 1251 01:10:20,230 --> 01:10:23,660 >> Kaj tial la maniero kiun ni fari tion, rigardante nia sintakso, estas ni 1252 01:10:23,660 --> 01:10:28,780 nur akirita krampoj, kun komo apartigitaj valoroj, ĉiu el kiuj 1253 01:10:28,780 --> 01:10:29,890 estas valoro. 1254 01:10:29,890 --> 01:10:35,530 Do se ni volis enmeti Andi en nian tablo, ĉiuj ni devas fari estas ĝuste Andi. 1255 01:10:35,530 --> 01:10:38,630 Kio Andi mondpotenco, homoj en Andi sekcio? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Ŝi ŝatas flugo, aŭ ŝatas rapido, aŭ ion. 1258 01:10:47,545 --> 01:10:48,920 Kion ni jam havas tie? 1259 01:10:48,920 --> 01:10:53,425 Ni havas CS50, flugo, rapido, forto. 1260 01:10:53,425 --> 01:10:54,850 >> Publiko: Tempo vojaĝoj. 1261 01:10:54,850 --> 01:10:56,180 >> Parolanto: Tempo vojaĝoj, mirinda. 1262 01:10:56,180 --> 01:11:04,280 Do ni hvas Andi, tempo vojaĝoj, kaj ŝia hejmurbo. 1263 01:11:04,280 --> 01:11:05,530 Tio estas vere bona demando. 1264 01:11:05,530 --> 01:11:09,210 Novjorko, se neniu scias. 1265 01:11:09,210 --> 01:11:13,600 Ĉies de Novjorko estas la leciono forpreni de hodiaŭ. 1266 01:11:13,600 --> 01:11:17,710 >> Do tiu aserto estus enmeti, kiel kvina vico, 1267 01:11:17,710 --> 01:11:21,900 kun la superpotenco tempo vojaĝado kaj hejmurbo de Novjorko. 1268 01:11:21,900 --> 01:11:25,660 Sed la laŭvola kampo Estas esence maniero 1269 01:11:25,660 --> 01:11:30,090 specifi ĝuste kio kolumnoj vi volas enigi aferoj. 1270 01:11:30,090 --> 01:11:33,710 >> La maniero ke ni faras ĝin nun, Andi, tempo vojaĝoj, Novjorko, 1271 01:11:33,710 --> 01:11:38,150 tuj en la ĝusta ordo de niaj table-- nomo, superpotenco, hejmurbo. 1272 01:11:38,150 --> 01:11:42,290 Kaj se vi volis fari io alia ol tio, 1273 01:11:42,290 --> 01:11:44,970 kiel diri vi ne sciis iu mondpotenco, 1274 01:11:44,970 --> 01:11:47,660 kiel kiom mi ne scias Andi La superpotenco komence. 1275 01:11:47,660 --> 01:11:50,450 Tiamaniere mi ekkonis estis ŝia Nomo kaj ŝia hejmurbo. 1276 01:11:50,450 --> 01:11:54,550 Kion mi povus fari estas mi povis do-- mi viŝas ĉi rapida. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Mi volas nur ĝisdatigi la kolumnoj. 1279 01:12:00,090 --> 01:12:04,100 Kaj tio estas kie la laŭvola kolumno listo havas rolon. 1280 01:12:04,100 --> 01:12:09,185 Mi nur volas ĝisdatigi nomon kaj hejmurbon. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 Kaj poste mi diros VALOROJ. 1283 01:12:16,480 --> 01:12:24,430 Mi faros Andi kaj Novjorko. 1284 01:12:24,430 --> 01:12:28,980 >> Se mi preterlasis la liston de kolumnoj kaj nur faris tiujn du aferojn, 1285 01:12:28,980 --> 01:12:32,450 kie estus Novjorko foriros? 1286 01:12:32,450 --> 01:12:35,900 Kiun kolumno farus Novjorko Urbo estis metitaj en? 1287 01:12:35,900 --> 01:12:38,950 Homoj havas neniun ideon? 1288 01:12:38,950 --> 01:12:40,160 Superpotenco, precize. 1289 01:12:40,160 --> 01:12:41,890 >> Do ĉi tio nur iras en ordo. 1290 01:12:41,890 --> 01:12:45,530 Kaj unufoje ĝi atingas la finon de la listo, ĝi estos simple ĉesi plenigante aferoj. 1291 01:12:45,530 --> 01:12:49,080 Kaj la valoroj kiujn ĝi malebligos algluita en ĉiuj kolumnoj simple esti NULL. 1292 01:12:49,080 --> 01:12:51,840 Do ĉar ni specifita nomo kaj hejmurbo, 1293 01:12:51,840 --> 01:12:56,110 ni tuj devas ID 5, nomi Andi, superpotenco NULL. 1294 01:12:56,110 --> 01:12:58,750 Do superpotenco estas uninitialized valoro. 1295 01:12:58,750 --> 01:13:01,340 Vi ne nepre akiros la sama Valgrind eraroj se vi provas 1296 01:13:01,340 --> 01:13:01,970 kaj aliri ĝin. 1297 01:13:01,970 --> 01:13:05,160 Ĉio estos bele zeroed ekstere, ĉar NULL estas valoro en SQL. 1298 01:13:05,160 --> 01:13:06,780 Ke estas konstanta. 1299 01:13:06,780 --> 01:13:08,980 Kaj tiam hejmurbo estos Novjorko. 1300 01:13:08,980 --> 01:13:11,860 Do jen la INSERT INTO komando. 1301 01:13:11,860 --> 01:13:13,610 Antaŭ ni movas, ekzistas du pliaj komandoj. 1302 01:13:13,610 --> 01:13:19,060 Ĉu homoj havas demandojn pri UPDATE, pri INSERT INTO, pri SQLa 1303 01:13:19,060 --> 01:13:21,556 ĝenerale antaŭ ni movas sur nia fina bitoj? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Homoj sentas bona, granda. 1306 01:13:26,910 --> 01:13:27,410 Amu ĝin. 1307 01:13:27,410 --> 01:13:29,480 Do ni parolu pri ELEKTU. 1308 01:13:29,480 --> 01:13:33,445 Irante fosaĵo UPDATE super tie. 1309 01:13:33,445 --> 01:13:35,720 >> Kaj ELEKTU tuj estos tre similaj. 1310 01:13:35,720 --> 01:13:38,790 La celo de SELECT, ELEKTU la celo en la vivo 1311 01:13:38,790 --> 01:13:45,910 estas doni al vi aron de kolumnoj kiuj kontentigas certajn kondiĉojn. 1312 01:13:45,910 --> 01:13:48,230 Kaj kiam mi diras kontentigi certaj kondiĉoj, 1313 01:13:48,230 --> 01:13:50,800 via menso povus tuj reiru al tiu KIE klaŭzo 1314 01:13:50,800 --> 01:13:52,090 kiuj eliris en ĝisdatigo. 1315 01:13:52,090 --> 01:13:54,880 Kaj ke propozicio estas ĝuste tie en ELEKTU. 1316 01:13:54,880 --> 01:14:06,020 >> Se ni ne metas la KIE klaŭzo kaj ni diru ELEKTU nomon 1317 01:14:06,020 --> 01:14:16,490 hometown-- literumita ke iom wrong-- nomo, hejmurbo EL table1. 1318 01:14:16,490 --> 01:14:19,690 Se ni simple diri ke, kion SELECT tuj donos nin trovas estas 1319 01:14:19,690 --> 01:14:23,730 tuj donos nin double-- tablo, prefere. 1320 01:14:23,730 --> 01:14:27,450 Duobla tabelo se ni estas pensante pri en PHP sencojn. 1321 01:14:27,450 --> 01:14:33,239 Sed ĝi estas nur tuj donos al ni duobla tabelo de du columns-- nomon 1322 01:14:33,239 --> 01:14:33,780 kaj hejmurbo. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 Kaj ĝi ignoros ID. 1325 01:14:38,130 --> 01:14:41,310 Kaj ĝi ignoros superpotenco. 1326 01:14:41,310 --> 01:14:44,696 Kaj ĝi simple donas al ni ĉiun sola vico de tiu tablo. 1327 01:14:44,696 --> 01:14:46,570 Do se ni ĵus enigita Andi, ni devos Andi. 1328 01:14:46,570 --> 01:14:48,605 Kaj ni havas la origina kvar. 1329 01:14:48,605 --> 01:14:53,720 Se ili is ĝisdatigita, ke volo reflektos, kaj tiel plu, kaj tiel plu. 1330 01:14:53,720 --> 01:14:56,520 >> Do tiu estas ĉar ni ne uzis la KIE klaŭzo. 1331 01:14:56,520 --> 01:14:59,200 Sed ni povas uzi ĝin en precize la Same ni uzis ĝin en ĝisdatigo. 1332 01:14:59,200 --> 01:15:05,310 Se ni nur volas tablon de la nomoj kaj súper povoj de homoj vivantaj 1333 01:15:05,310 --> 01:15:13,430 en Nov-Jorko, ni povas ekzekuti komunikaĵo kiel ELEKTU nomo, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Mi simple tuj forlasi that-- FROM table1 KIE hejmurbo = Novjorko. 1335 01:15:27,190 --> 01:15:33,370 >> Do ĉi iras montri ke vi povas akiri totalmente malsamaj kolumnoj, 1336 01:15:33,370 --> 01:15:36,920 kaj surmetu kolumnoj ke vi ne estas inkluzive alvenante reen en la KIE klaŭzo. 1337 01:15:36,920 --> 01:15:39,200 Ni eĉ ne volas la hejmurbo de ĉiuj. 1338 01:15:39,200 --> 01:15:41,920 Sed ni volas la nomon kaj la superpotencon de homoj 1339 01:15:41,920 --> 01:15:43,817 kies hejmurbo estas Novjorko. 1340 01:15:43,817 --> 01:15:45,650 Do jen io ni povas fari per la KIE 1341 01:15:45,650 --> 01:15:49,112 klaŭzo estas ni povas trakti kolumnoj ke ni ne nepre volas reen. 1342 01:15:49,112 --> 01:15:52,320 En la sama maniero en UPDATE, ni povas trakti kun kolumnoj kiuj ni ne nepre 1343 01:15:52,320 --> 01:15:53,270 volas ĝisdatigi. 1344 01:15:53,270 --> 01:15:58,890 Ni povas ĝisdatigi la urbo de ĉiuj kiu estas nomo estas Sam, ekzemple. 1345 01:15:58,890 --> 01:16:02,080 Ni povas ĝisdatigi la urbo de ĉiuj kies ID nombro estas 2. 1346 01:16:02,080 --> 01:16:04,960 Do simple ĝisdatigi la urbo de la dua vico 1347 01:16:04,960 --> 01:16:08,220 kie ni ne devas trakti necesa la komuna demando. 1348 01:16:08,220 --> 01:16:13,264 >> Kaj Delete estas, ke vi la atendi, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 Kaj tiam ni havas alian KIE klaŭzo. 1350 01:16:14,930 --> 01:16:17,940 Do ni povas diri kie ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Forigi la unua vico. 1352 01:16:18,950 --> 01:16:23,240 Kaj DELETE ĉiam forviŝi vico, aŭ ĝi viŝos iun numeron de vicoj. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM tablo KIE hejmurbo = Novjorko 1354 01:16:26,990 --> 01:16:28,740 viŝos ĉiuj en Novjorko. 1355 01:16:28,740 --> 01:16:30,985 Tio se estis subita tragika pesto 1356 01:16:30,985 --> 01:16:33,360 kaj vi nur volis forigi ĉiuj el la tablo, kiuj 1357 01:16:33,360 --> 01:16:35,760 vivis en certa urbo kiu estis trafita per la pesto. 1358 01:16:35,760 --> 01:16:38,050 Eble ili ripozas en paco. 1359 01:16:38,050 --> 01:16:43,849 >> Tiuj estas la kvar SQL komandojn ke vi bezonos uzi. 1360 01:16:43,849 --> 01:16:45,390 Vi eble eĉ ne bezonas uzi ĉiujn. 1361 01:16:45,390 --> 01:16:47,690 Sed jen estas la kvar ke CS50 atendas vin 1362 01:16:47,690 --> 01:16:53,630 esti komforta kun iranta en ambaŭ kvizo 1 kaj ankaŭ pset7 kaj pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Tie nur ke tablo denove. 1364 01:16:55,820 --> 01:16:58,930 En ĉi tiu, Roy mondpotenco havas estis ĝisdatigita al lasero traboj, kiuj 1365 01:16:58,930 --> 01:17:00,880 estas ekzemplo mi ne uzis. 1366 01:17:00,880 --> 01:17:05,480 Mi ne scias kiun el Roy preferas, sed forto. 1367 01:17:05,480 --> 01:17:07,670 Roy havas superpotenco de forto. 1368 01:17:07,670 --> 01:17:09,090 Katherine ne faris ĝin hodiaŭ. 1369 01:17:09,090 --> 01:17:10,260 Tio estas malfeliĉa. 1370 01:17:10,260 --> 01:17:11,260 Sed ŝi havas súper rapido. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Puto kiu estis PHP. 1373 01:17:14,670 --> 01:17:19,410 Antaŭ ni parolas pri MVC, faras iu havas demandojn pri PHP? 1374 01:17:19,410 --> 01:17:23,864 Nun SQL, aŭ PHP se vi subite havas supreniru kun demando pri PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Granda. 1377 01:17:28,460 --> 01:17:29,920 Bone, ni ĉiuj starigis tiam. 1378 01:17:29,920 --> 01:17:33,660 >> Do parolante iomete pri modelo vidpunkto controladores, 1379 01:17:33,660 --> 01:17:38,770 ni revenu al iuj de la havajxoj en pset7. 1380 01:17:38,770 --> 01:17:42,470 Do kio modelo vido regilo is-- mi ne 1381 01:17:42,470 --> 01:17:45,660 tuj savos mian ŝanĝoj ensaluti ĉar mi tute buĉ ĝin. 1382 01:17:45,660 --> 01:17:49,220 Sed baze ni havas du apartaj aferoj okazas. 1383 01:17:49,220 --> 01:17:52,390 Ni havas publikon dosierujo kiu enhavas 1384 01:17:52,390 --> 01:17:56,460 la kodo ke tuj estos ekzekutita kaj la retpaĝoj kiuj estos vizititaj. 1385 01:17:56,460 --> 01:17:58,780 Kaj ni ankaŭ havas tiun opinion dosierujo. 1386 01:17:58,780 --> 01:18:01,780 Kaj vidpunktojn enhavas ŝablonojn. 1387 01:18:01,780 --> 01:18:04,390 >> Jen kion la funkcio render-- ni vidis la redonu 1388 01:18:04,390 --> 01:18:08,240 funkcio en faskon de la PHP-kodo ke CS50 jam skribita por vi, 1389 01:18:08,240 --> 01:18:10,550 kiu portas en certaj parametroj. 1390 01:18:10,550 --> 01:18:14,510 Kio tiu kodo faras estas tio okazas en opinioj, 1391 01:18:14,510 --> 01:18:18,000 kiuj estas aroj de kiel prewritten HTML kodo, 1392 01:18:18,000 --> 01:18:20,720 kaj ĝin enmeto valoroj en certaj lokoj. 1393 01:18:20,720 --> 01:18:23,990 Jen kiel kiam vi iri en CS50 Financoj, 1394 01:18:23,990 --> 01:18:25,760 la sama surskribo estas sur ĉiu paĝo. 1395 01:18:25,760 --> 01:18:28,130 La sama piedlinio estas sur ĉiu paĝo. 1396 01:18:28,130 --> 01:18:31,880 Tiu estas ĉar la vojo ke redonu verkoj estas timige 1397 01:18:31,880 --> 01:18:36,720 aŭtomate fliki en tiu surskribo kaj spektanto kiun vi povas trovi en viditaj. 1398 01:18:36,720 --> 01:18:41,400 >> Ni fakte povas iri en kaploko, kaj rigardu, estas HTML dosiero kun kapo. 1399 01:18:41,400 --> 01:18:43,280 Ĝi havas kelkajn stylesheets. 1400 01:18:43,280 --> 01:18:48,450 Vi ne bezonas rigardi CSS por pset7 se vi ne volas. 1401 01:18:48,450 --> 01:18:50,560 Sed vi povas modifi ili se vi volas, fari 1402 01:18:50,560 --> 01:18:53,470 Via Financoj aspektas iom malsama. 1403 01:18:53,470 --> 01:18:57,560 >> Ĝi havas kelkajn PHP la kaplinio iom vidi 1404 01:18:57,560 --> 01:19:01,240 se estas malsama titolo ĝi devus meti en tiun kaplinion. 1405 01:19:01,240 --> 01:19:04,300 Sed nur iuj aliaj skriptoj, kaj ligiloj, kaj aliaj aferoj. 1406 01:19:04,300 --> 01:19:08,700 Kapo finiĝas, korpo komencas, kaj oops, ni havas tiun strangan iom fino iom. 1407 01:19:08,700 --> 01:19:14,730 Kaj estas div, samkiel a senforma speco de elemento 1408 01:19:14,730 --> 01:19:17,120 Kiu havas ideon de meza. 1409 01:19:17,120 --> 01:19:22,450 >> Kaj tiam, kiam ni vidas piedlinio, ni havas la finon de div. 1410 01:19:22,450 --> 01:19:25,000 Ni havas fundon, kiu estas kie la piedlinio teksto. 1411 01:19:25,000 --> 01:19:26,770 Fino de div, fino de korpo, fino de HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Do kio redonu estas faras estas render estas speco 1413 01:19:29,070 --> 01:19:33,150 de flikado supren kaplinion, a malsamaj PHP dosieron kiu 1414 01:19:33,150 --> 01:19:37,110 enhavos la fakta proprajxon vi vidi, kiel via tablo de akcioj 1415 01:19:37,110 --> 01:19:39,690 se vi aĉetas aŭ vendante trabon. 1416 01:19:39,690 --> 01:19:41,480 Kaj tiam ĝi aldonos en la piedlinio. 1417 01:19:41,480 --> 01:19:44,890 Kaj la modelo vido regilo ideo estas ke ni 1418 01:19:44,890 --> 01:19:49,590 volas disigi kiom aferojn rigardu de la kodo. 1419 01:19:49,590 --> 01:19:53,420 Estas ni volas disigi la fasado kaj la backend, kie la fasado estas 1420 01:19:53,420 --> 01:20:00,440 la aĵoj kiujn la uzanto vidas la belan visuals-- HTML, CSS, tiamaniere, ke 1421 01:20:00,440 --> 01:20:02,320 bildoj, kaj tiel plu. 1422 01:20:02,320 --> 01:20:05,780 Kaj la backend estas PHP. 1423 01:20:05,780 --> 01:20:07,710 Jen kodo kiun vi skribas. 1424 01:20:07,710 --> 01:20:10,240 Tio estas kie la kodo kiu estas faras faktaj operacioj. 1425 01:20:10,240 --> 01:20:12,400 Jen kiam vi aldono stokon al via tablo, 1426 01:20:12,400 --> 01:20:14,890 kiam vi aĉetas kaj vendado, jen backend. 1427 01:20:14,890 --> 01:20:20,210 >> Kaj ni povas, kiel vi vidis, Inkluzivanta PHP rekte en HTML. 1428 01:20:20,210 --> 01:20:23,210 Do kion ni povus fari por tiu tasko estas simple havis 1429 01:20:23,210 --> 01:20:26,200 HTML-dosiero por ĉiu paĝo, kiel saluto. 1430 01:20:26,200 --> 01:20:30,260 Kaj tiam en tiu paĝo, havis grandegan blokon de PHP kodo, 1431 01:20:30,260 --> 01:20:33,822 Inkluzivanta ĉiujn de la kodo kiu ke paĝo specife bezonus. 1432 01:20:33,822 --> 01:20:35,780 Kaj tiam ni povus havi farita ke por biletujo. 1433 01:20:35,780 --> 01:20:40,250 Ni povis fari ĉiujn la aĉetado kaj vendanta ene la individuaj paĝoj. 1434 01:20:40,250 --> 01:20:43,680 >> Sed ĉar ni desegnadon aparte de kie 1435 01:20:43,680 --> 01:20:46,660 ni skribas la backend kodo, ni povas facile 1436 01:20:46,660 --> 01:20:52,660 ŝanĝi kiom tion aspektas sen ŝanĝanta ĉiun unuope. 1437 01:20:52,660 --> 01:20:55,460 Ni fari aferojn kiel simple aldonu nova div al la malsupro 1438 01:20:55,460 --> 01:21:00,720 of-- Saluton Mi modifis la piedlinio. 1439 01:21:00,720 --> 01:21:03,710 Vi povas simple fari aĵoj kiel tiu. 1440 01:21:03,710 --> 01:21:07,250 Sed ankaŭ, oni povas ŝanĝi la tutan vidan aranĝon 1441 01:21:07,250 --> 01:21:09,290 sen tuŝi kio estas irante en la backend. 1442 01:21:09,290 --> 01:21:12,000 Kaj vi povas ŝanĝi la tuta backend kaj ankoraŭ 1443 01:21:12,000 --> 01:21:13,900 havi ĝin rigardi ĝuste kiel ĝi faris antaŭe. 1444 01:21:13,900 --> 01:21:14,400 Ĉi 1445 01:21:14,400 --> 01:21:16,170 >> Estas la ideo de modelo view adaptilo. 1446 01:21:16,170 --> 01:21:19,992 Kaj estas vere postulita paradigmo en iuj el la lingvoj de programado 1447 01:21:19,992 --> 01:21:21,700 vi eble deziras uzi por fina projektoj. 1448 01:21:21,700 --> 01:21:25,100 Se vi faras IOS disvolviĝo, ili havas opiniojn, 1449 01:21:25,100 --> 01:21:29,120 Kiu estas kio vi vidas sur la iPhone, kaj tiam backend kiel kiel aparta afero. 1450 01:21:29,120 --> 01:21:31,260 >> Vi povas pensi iomete. 1451 01:21:31,260 --> 01:21:35,190 Ekzistas multe de binaroj en komputiko, kiu estas amuza, 1452 01:21:35,190 --> 01:21:37,270 ĉar ĉio estas en duuma. 1453 01:21:37,270 --> 01:21:38,550 Mi ne planas tion. 1454 01:21:38,550 --> 01:21:41,590 Tio estis vortludo neintencita. 1455 01:21:41,590 --> 01:21:43,860 Jes, vortludo ne intencis. 1456 01:21:43,860 --> 01:21:49,070 >> Sed kiel .h dosierojn kaj c dosierojn, ekzistas multajn disigante de aferoj kiu ni 1457 01:21:49,070 --> 01:21:49,900 eble ne bezonos. 1458 01:21:49,900 --> 01:21:54,330 Do ni povas nur redakti la h dosieroj, aŭ iu povas simple vidi .h dosieron kaj scias 1459 01:21:54,330 --> 01:21:57,650 precize la funkciojn kiuj estas en la .c dosieron sen nepre sciante 1460 01:21:57,650 --> 01:21:58,870 ilia efektivigo. 1461 01:21:58,870 --> 01:22:02,800 Tiu ideo de disigi komponantoj kiuj dependas de ĉiu alia 1462 01:22:02,800 --> 01:22:06,990 sed povas ordigi de aliri reciproke tra malsamaj kanaloj, forpaso 1463 01:22:06,990 --> 01:22:09,310 de variabloj, ĵus inkluzivi komunikaĵojn, aferoj 1464 01:22:09,310 --> 01:22:14,440 kiel tio, tiu principo helpas krei aplikojn 1465 01:22:14,440 --> 01:22:17,080 kiu povas esti pli facile redaktataj de diversaj personoj, 1466 01:22:17,080 --> 01:22:20,440 povas pli facile ŝanĝita aŭ redaktita je granda skalo, 1467 01:22:20,440 --> 01:22:24,880 kaj estas pli facilaj elpurigi en multaj vojoj. 1468 01:22:24,880 --> 01:22:28,254 >> Vere rapida, mi havas kelkaj konsiletoj por pset7, 1469 01:22:28,254 --> 01:22:31,420 kiun mi faros tutekrana do vi ne nur rigardante the-- pinto pinto tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Ekzistas ne ke multaj pintoj. 1472 01:22:35,130 --> 01:22:38,060 >> Sed mi menciis PHP Malfacilas debug. 1473 01:22:38,060 --> 01:22:39,290 Duobla kaj triobla kontroli ĝin. 1474 01:22:39,290 --> 01:22:41,550 Se via kodo estas nur ne aperanta sur la paĝo, 1475 01:22:41,550 --> 01:22:46,240 ĝi estas probable PHP eraro, pardonon. 1476 01:22:46,240 --> 01:22:48,570 >> Vi neniam devas rigardi CSS se vi ne volas. 1477 01:22:48,570 --> 01:22:52,150 Sed iam vi finis, ĝi povas esti belan amuza afero nur iri en 1478 01:22:52,150 --> 01:22:54,770 kaj salaton kun la CSS parametroj. 1479 01:22:54,770 --> 01:22:58,700 CSS kaj HTML estas ekzemplo de modelo vido controlador stilo io estas, ĉu ne? 1480 01:22:58,700 --> 01:23:02,150 Vi povus havi stilo etikedoj ene de HTML elementoj. 1481 01:23:02,150 --> 01:23:04,800 Sed se vi ia subkontraktado ilin CSS, 1482 01:23:04,800 --> 01:23:08,180 ili estas pli facile redakti, kaj ludi ĉirkaŭe kun, kaj amuzi kun. 1483 01:23:08,180 --> 01:23:10,816 >> Trakti CS50 helper funkcioj kiel nigraj skatoloj. 1484 01:23:10,816 --> 01:23:12,940 Vi ne bezonas scii precize kion redonu faras, 1485 01:23:12,940 --> 01:23:16,770 Sed fidi ĝin ĉiam fari la dekstran afero depende kion vi pasi ĝin, 1486 01:23:16,770 --> 01:23:17,690 aferojn tiel. 1487 01:23:17,690 --> 01:23:21,040 Kaj mi rekomendus rigardante David walkthrough, 1488 01:23:21,040 --> 01:23:24,490 trapasis la tutan aĵoj, ne nur la todos, 1489 01:23:24,490 --> 01:23:26,960 sed vi vere povas trakti tiujn kiel nigraj skatoloj. 1490 01:23:26,960 --> 01:23:29,280 Ne iru en tiujn funkcioj serĉas cimojn. 1491 01:23:29,280 --> 01:23:33,510 >> Kaj bonvenigi la revenon de nia sinjoro Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Granda. 1493 01:23:34,010 --> 01:23:40,430 >> Ĉu estas fina demandojn antaŭ ni ia resalti por la tago? 1494 01:23:40,430 --> 01:23:42,610 Ĉu mi ankoraŭ vivos? 1495 01:23:42,610 --> 01:23:44,700 Granda. 1496 01:23:44,700 --> 01:23:47,120 Saluton Livestream personoj. 1497 01:23:47,120 --> 01:23:47,620 Granda. 1498 01:23:47,620 --> 01:23:50,260 Ĉu tie plu demandoj? 1499 01:23:50,260 --> 01:23:50,760 Neniu? 1500 01:23:50,760 --> 01:23:52,884 >> Kaj tiam mi pensas ni estas bona iri por hodiaŭ. 1501 01:23:52,884 --> 01:23:55,550 Mi persistos ĉirkaŭ iomete poste se homoj havis demandoj 1502 01:23:55,550 --> 01:23:57,480 ili timis demandi sur la rivereto. 1503 01:23:57,480 --> 01:23:59,790 Sed alie, havas bonan tagon. 1504 01:23:59,790 --> 01:24:01,933