1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Witamy Sekcja na ten tydzień. 3 00:00:08,440 --> 00:00:10,040 Nie jestem Andi. 4 00:00:10,040 --> 00:00:14,590 Andi zachorował ten dzień, a ja zostały rodzaju nazywa się w ostatniej chwili 5 00:00:14,590 --> 00:00:15,700 do przejęcia. 6 00:00:15,700 --> 00:00:20,920 To sezon grypowy, więc upewnij się, że przebywają czyste, mycie rąk, 7 00:00:20,920 --> 00:00:24,800 i zdrowe jedzenie, tak aby ty też nie jesteś przykuty do łóżka. 8 00:00:24,800 --> 00:00:26,870 >> Ale bez dalszego ado, zaczynajmy. 9 00:00:26,870 --> 00:00:29,970 Dziś będziemy mówić o PHP trochę bit-- jak 10 00:00:29,970 --> 00:00:33,900 PHP dotyczy HTML, jak go dotyczy CSS, a niektóre z żeberek 11 00:00:33,900 --> 00:00:36,100 rzeczy zrobiłeś ostatniego zadania. 12 00:00:36,100 --> 00:00:37,930 Zamierzamy porozmawiać Trochę o SQL 13 00:00:37,930 --> 00:00:41,360 i jak można pracować z bazami danych, który jest dość istotnym elementem P 14 00:00:41,360 --> 00:00:43,650 ustawić 8-- P zestaw 7. 15 00:00:43,650 --> 00:00:44,480 P zestaw 7. 16 00:00:44,480 --> 00:00:48,400 >> A potem będziemy rozmawiać trochę nieco o tym, jak działa widok kontrolerów 17 00:00:48,400 --> 00:00:54,640 i dlaczego to jest filozofia, za niektórymi nowoczesne strony internetowe i inna konstrukcja. 18 00:00:54,640 --> 00:00:58,760 Prawie wiele rodzajów aplikacji i aplikacje można wysyłać 19 00:00:58,760 --> 00:01:01,120 używania tego modelu, Widok sterownik ramy, 20 00:01:01,120 --> 00:01:02,890 , że będzie za pomocą w P zestaw 7, więc będę 21 00:01:02,890 --> 00:01:05,220 powiedzieć trochę o tym, dlaczego to się stać 22 00:01:05,220 --> 00:01:07,970 popularne, dlaczego jest to ważne i miłe. 23 00:01:07,970 --> 00:01:12,052 A potem w końcu przenieść się do kilka porad na temat przeciwdziałania P zestaw 7. 24 00:01:12,052 --> 00:01:13,760 A jeśli mamy czas pozostały na końcu, 25 00:01:13,760 --> 00:01:17,320 faktycznie możemy zrobić kilka pracować nad tym razem. 26 00:01:17,320 --> 00:01:20,380 >> Więc, PHP. 27 00:01:20,380 --> 00:01:23,790 W rzeczywistości, można zauważyć this-- tak naprawdę nie mają do nurkowania w it-- 28 00:01:23,790 --> 00:01:27,880 ale P set 6 miał jakiś PHP Kod, który się dzieje. 29 00:01:27,880 --> 00:01:34,710 A ponieważ PHP jest C-jak język PHP, w przeciwieństwie do HTML i CSS, 30 00:01:34,710 --> 00:01:39,030 to język programowania, podczas gdy HTML i CSS są statyczne. 31 00:01:39,030 --> 00:01:44,050 Są języki znaczników zajmujące o stylu i układu wzrokowego. 32 00:01:44,050 --> 00:01:46,230 PHP jest real deal. 33 00:01:46,230 --> 00:01:51,590 >> PHP ma pętli, ma conditions-- wszystkie rzeczy, że to zabawa o C 34 00:01:51,590 --> 00:01:56,190 Jest kilka rzeczy, które są trochę nieco lepiej niż C, co zobaczymy, 35 00:01:56,190 --> 00:01:59,760 ale myślę, że to najprostszy sposób, aby porozmawiać o PHP jest po prostu zanurzyć się. 36 00:01:59,760 --> 00:02:04,087 Więc mam zamiar iść w prawo w IDE w tym punkcie. 37 00:02:04,087 --> 00:02:06,170 Pierwszą rzeczą, którą będziemy zrobić, to rzeczywiście wygląda 38 00:02:06,170 --> 00:02:10,169 trochę na niektóre Kod PHP, który był w P zestaw 6. 39 00:02:10,169 --> 00:02:13,600 Więc sposób, że robimy that-- przed, w ten sposób, że my biegaliśmy 40 00:02:13,600 --> 00:02:18,550 serwer dla urządzenia było to, że musielibyśmy type-- 41 00:02:18,550 --> 00:02:21,750 albo wykorzystać realizacji lub wdrożenie personelu Wykonawcy 42 00:02:21,750 --> 00:02:27,059 z server.c przechodząc do katalogu i działa server.c z albo nie 43 00:02:27,059 --> 00:02:30,100 arguments-- tak właśnie nazywają to na hosta lokalnego, co jest, co prawdopodobnie 44 00:02:30,100 --> 00:02:31,849 zrobiłem większość time-- a następnie wprowadzenie go 45 00:02:31,849 --> 00:02:35,380 directory-- z które używać jako nasady 46 00:02:35,380 --> 00:02:38,310 gdzie strona będzie będzie działać, w zasadzie. 47 00:02:38,310 --> 00:02:42,180 >> Ten tydzień dla P zestaw 7, jak wielki jak nasz kod do server.c 48 00:02:42,180 --> 00:02:47,580 to, że są ludzie, którzy mają już napisane te drobne rzeczy, na co CS50 49 00:02:47,580 --> 00:02:49,630 które mają trochę więcej funkcji, 50 00:02:49,630 --> 00:02:52,920 program serwera, który jest w stanie radzenia sobie z nieco bardziej 51 00:02:52,920 --> 00:02:56,350 zawiłości, że będziesz zobaczyć zarówno P zestaw 7 i P zestaw 8. 52 00:02:56,350 --> 00:03:01,410 A sposób, że po uruchomieniu Serwer jest poprzez wpisanie "apache50." 53 00:03:01,410 --> 00:03:03,960 >> I zanim zrobisz cokolwiek, chcesz się upewnić, 54 00:03:03,960 --> 00:03:06,070 że Apache 50 nie jest już działa, jak to jest 55 00:03:06,070 --> 00:03:08,130 na moim komputerze, co zrobiłem, aby go przetestować. 56 00:03:08,130 --> 00:03:10,320 I to zrobić dzwoniąc apache50. 57 00:03:10,320 --> 00:03:14,070 Zatrzymaj, a zobaczysz, że to zatrzymanie serwer WWW, czy można tam zajrzeć 58 00:03:14,070 --> 00:03:16,340 w dolnej części okna zaciskowej. 59 00:03:16,340 --> 00:03:21,090 A potem po prostu zacząć, jesteśmy zamiar zadzwonić, "apache50 zacząć." 60 00:03:21,090 --> 00:03:23,150 A potem idziemy żeby go nakarmić katalogu. 61 00:03:23,150 --> 00:03:26,950 >> Teraz, ponieważ chcemy wyglądać na niektóre P ustaw 6 kod 62 00:03:26,950 --> 00:03:32,850 że mieliśmy wdrożone, tak naprawdę kopiowane trochę P 63 00:03:32,850 --> 00:03:37,090 ustaw 6 kod do własnego folderu, które można zobaczyć na tam w lewo. 64 00:03:37,090 --> 00:03:40,170 To się nazywa "SeCtIoN8" wielkimi literami 65 00:03:40,170 --> 00:03:44,510 bo jestem tak podekscytowany, być transmitowane na żywo dziś. 66 00:03:44,510 --> 00:03:47,330 >> Więc jeśli prowadzimy tego, jak powinno wszystko działa bardzo skutecznie. 67 00:03:47,330 --> 00:03:52,350 To mówi, OK, nasza strona jest teraz dostępna pod adresem IDE, 68 00:03:52,350 --> 00:03:57,710 w zasadzie, co jest, co uzywasz dokładnie tak, jak to było w P ustawić 7-- P zestaw 6. 69 00:03:57,710 --> 00:04:00,899 Wszystkie moje dziś indeksy są jednym indeksu. 70 00:04:00,899 --> 00:04:02,940 Tak więc możemy przejść do adres, jeśli będziesz pamiętać, 71 00:04:02,940 --> 00:04:05,710 klikając przycisk ten mały przycisk w prawym górnym rogu. 72 00:04:05,710 --> 00:04:14,200 >> A ty sobie przypomnieć ten kod, który stało się, gdy wszedł do hello.php. 73 00:04:14,200 --> 00:04:18,000 A co do kodu jest przeznaczony do zrobić, to po wpisaniu nazwy 74 00:04:18,000 --> 00:04:20,550 here-- jeśli powiesz Sam bo to moja name-- 75 00:04:20,550 --> 00:04:23,620 i kliknij przywitać, gdy poszliśmy do następnej strony, 76 00:04:23,620 --> 00:04:25,270 nazwa miała być wyświetlane. 77 00:04:25,270 --> 00:04:28,550 To powiedzieć: "Cześć, Sam" lub "Witaj", bez względu na nazwę, 78 00:04:28,550 --> 00:04:32,470 umieścić w nim chociaż udaliśmy do zupełnie nowej strony internetowej. 79 00:04:32,470 --> 00:04:36,610 >> I to jest coś takiego że PHP może zrobić dla Ciebie. 80 00:04:36,610 --> 00:04:42,840 PHP jest w stanie przekazać dane między dwoma stron internetowych. 81 00:04:42,840 --> 00:04:44,390 To jest zupełnie inna strona. 82 00:04:44,390 --> 00:04:46,990 Zobaczysz, tytuł jest "cześć" tutaj. 83 00:04:46,990 --> 00:04:49,080 Faktycznie, mają taki sam tytuł, ale 84 00:04:49,080 --> 00:04:52,560 Obiecujemy, że są różne internetowej strony, jeśli spojrzymy na źródła. 85 00:04:52,560 --> 00:04:55,890 I można przekazać dane, które jest wprowadzone w tym polu tekstowym, 86 00:04:55,890 --> 00:04:59,830 go przesłać do następnego Strona, która jest jest powołany, 87 00:04:59,830 --> 00:05:02,490 a następnie, że dane są w stanie być tam w jego obecnej formie. 88 00:05:02,490 --> 00:05:04,810 >> Teraz jeszcze nie zrealizowane to sami, które 89 00:05:04,810 --> 00:05:08,710 jest to, co mamy zamiar zrobić już teraz, aby Sortuj uzyskać smak dla jak PHP działa, 90 00:05:08,710 --> 00:05:15,070 ale klucz pomysłem jest to, że PHP-- można rodzaj myśleć o tym, jak funkcja. 91 00:05:15,070 --> 00:05:18,570 Coś, że PHP może pozwolić ci nie jest to może przyjmować parametry 92 00:05:18,570 --> 00:05:24,710 , że wybierzemy się na stronie HTML dzięki zastosowaniu PHP i form 93 00:05:24,710 --> 00:05:29,960 i to może przekazać te jako parametry do następnej strony, że ładuje się. 94 00:05:29,960 --> 00:05:35,110 >> W tym przypadku mamy do załadunku to Strona przyciskiem "Say hello". 95 00:05:35,110 --> 00:05:38,960 Ale teraz, tak naprawdę usunięte niektóre z tym kodem 96 00:05:38,960 --> 00:05:44,850 w hello.php który był prowadzony że faktycznie wyświetlając "cześć, 97 00:05:44,850 --> 00:05:49,680 świat "albo" cześć, Sam "lub "hello", co było tylko wejście. 98 00:05:49,680 --> 00:05:53,620 Więc na razie, jesteśmy zamiar to zrobić, po prostu. 99 00:05:53,620 --> 00:05:56,570 Zamierzamy odtworzyć, że i również dodać trochę więcej funkcji, 100 00:05:56,570 --> 00:06:00,210 zrobić trochę więcej z nim, patrz PHP, co jest naprawdę zdolny. 101 00:06:00,210 --> 00:06:04,870 >> Więc po pierwsze, porozmawiajmy o tym ten plik, hello.php. 102 00:06:04,870 --> 00:06:07,440 Jeśli więc przybliżyć w sposób Trochę bit-- a teraz jestem 103 00:06:07,440 --> 00:06:10,520 jakby próbując przejść wszystkie sposób around-- tam idziemy. 104 00:06:10,520 --> 00:06:14,220 Zobaczysz, to się nazywa hello.php, ale składnia to 105 00:06:14,220 --> 00:06:16,880 wygląda pliku HTML. 106 00:06:16,880 --> 00:06:20,380 Dzieje się tak dlatego Rzeczywista PHP w pliku 107 00:06:20,380 --> 00:06:25,220 wszystko jest utknął między nimi question mark-bloki daszka. 108 00:06:25,220 --> 00:06:28,610 Wszystko tutaj uważany jest za kod PHP. 109 00:06:28,610 --> 00:06:32,040 >> I można zauważyć, że kiedy nie komentarz, 110 00:06:32,040 --> 00:06:35,320 zobaczysz znajomy dwa ukośniki. 111 00:06:35,320 --> 00:06:38,440 A jeśli będziesz sobie przypomnieć, w HTML, jeśli wpisz komentarz, 112 00:06:38,440 --> 00:06:42,540 wygląda na coś bliżej to, co jest komentarz w języku HTML. 113 00:06:42,540 --> 00:06:46,570 Tak naprawdę wszystko pomiędzy te dwa nawiasy 114 00:06:46,570 --> 00:06:50,060 jest kod PHP, który odzwierciedla fakt 115 00:06:50,060 --> 00:06:53,270 że ten mały komentarz symbol zamienia się w komentarzu. 116 00:06:53,270 --> 00:06:58,420 >> Dlatego za każdym razem piszesz kod PHP, nawet jeśli nie ma kodu HTML poza nim, 117 00:06:58,420 --> 00:07:02,720 to zawsze będzie zamknięty w tych nawiasach kątowych 118 00:07:02,720 --> 00:07:04,080 ze znakami zapytania. 119 00:07:04,080 --> 00:07:08,260 Jakby można pomyśleć o it-- jak wszystkie kodu, który biegł w programach C 120 00:07:08,260 --> 00:07:13,950 został ujęty w int main, pustki, nawias klamrowy, koniec kręcone stwierdzenie nawiasów. 121 00:07:13,950 --> 00:07:17,100 I zobaczysz, nawiasy klamrowe w PHP, też, ale to jest coś w rodzaju 122 00:07:17,100 --> 00:07:20,490 jak główny metody PHP. 123 00:07:20,490 --> 00:07:25,630 >> Tak teraz, jak możemy nic zrobić w PHP? 124 00:07:25,630 --> 00:07:29,190 Teraz PHP jest programowanie język, który jest bardzo podobny do C, 125 00:07:29,190 --> 00:07:30,970 ale to działa w internecie. 126 00:07:30,970 --> 00:07:33,270 Więc jedna rzecz, która będziesz immediately-- jednego 127 00:07:33,270 --> 00:07:38,130 z pierwszych rzeczy, które naprawdę się C można wydrukować rzeczy, prawda? 128 00:07:38,130 --> 00:07:42,290 Więc w C to zrobiliśmy z funkcją printf. 129 00:07:42,290 --> 00:07:46,430 Daliśmy mu ciąg, Prawdopodobnie z nowej linii, 130 00:07:46,430 --> 00:07:49,850 a następnie zakończone to średnikiem. 131 00:07:49,850 --> 00:07:53,790 >> Tak więc sposób, w jaki mamy zamiar zrobić w PHP-- ponieważ nie dość printf. 132 00:07:53,790 --> 00:07:55,940 To trochę inną składnią. 133 00:07:55,940 --> 00:08:02,580 Sposób, w jaki możemy drukować rzeczy w PHP jest powiedzieć, "echo hello" 134 00:08:02,580 --> 00:08:04,180 lub "echo" dowolne słowo. 135 00:08:04,180 --> 00:08:09,830 I to ma wpływ na ten printf sznurkiem, "hello". 136 00:08:09,830 --> 00:08:11,990 I dodaje nową linię do niego. 137 00:08:11,990 --> 00:08:16,000 >> Więc teraz, aby sure-- Będę pomniejszyć trochę bit-- 138 00:08:16,000 --> 00:08:18,250 upewnijmy się, że że kod działa 139 00:08:18,250 --> 00:08:21,030 bo nie może bardzo dobrze być błąd w tym kodzie 140 00:08:21,030 --> 00:08:22,880 że będziemy mieli do rozwiązania. 141 00:08:22,880 --> 00:08:25,860 Więc serwer jest już uruchomiony. 142 00:08:25,860 --> 00:08:30,630 Jeśli więc przejść z powrotem do dołu, yup, serwer nadal działa. 143 00:08:30,630 --> 00:08:34,510 Więc jeśli po prostu dotknij tego Trochę w prawo here-- 144 00:08:34,510 --> 00:08:37,620 welcome-- powinniśmy get-- świetnie. 145 00:08:37,620 --> 00:08:39,930 >> Wciąż przynoszą zna "Przywitaj się" dialog, 146 00:08:39,930 --> 00:08:45,750 ale po wpisaniu w "cześć", zobaczymy że tekst "hello" był rzeczywiście 147 00:08:45,750 --> 00:08:50,080 drukowane, które jest dokładnie tak, jak spodziewaliśmy, ponieważ echo w PHP 148 00:08:50,080 --> 00:08:53,190 jest jak instrukcji printf. 149 00:08:53,190 --> 00:09:01,410 Wracając do kodu, jak w P set 6 zrobił kod dystrybucji to są 150 00:09:01,410 --> 00:09:05,920 zrobić to tak, że PHP będzie Wyjście rzecz, która cię 151 00:09:05,920 --> 00:09:07,920 wpisany na poprzednim ekranie? 152 00:09:07,920 --> 00:09:10,350 >> I rodzaj badania dlaczego tak się dzieje, że jesteśmy 153 00:09:10,350 --> 00:09:15,510 zamiaru iść do index.html, który jest oryginalny plik, plik, który 154 00:09:15,510 --> 00:09:18,710 pokazuje się na ekranie za pomocą przycisku "Say hello". 155 00:09:18,710 --> 00:09:20,950 Można zauważyć, że istnieje wszystkie klasyczne rzeczy 156 00:09:20,950 --> 00:09:26,910 mamy oczekują od HTML tak jak te rzeczy, te znaczniki zamknięty 157 00:09:26,910 --> 00:09:31,080 w nawiasach ostrych, takich jak PHP ale bez znaków zapytania, 158 00:09:31,080 --> 00:09:34,650 co wskazuje na specjalne rzeczy do HTML. 159 00:09:34,650 --> 00:09:36,895 Mamy tytuł, który jest "cześć". 160 00:09:36,895 --> 00:09:41,010 I można zauważyć, że jak widzieliśmy, tytuł jest "cześć" w obu przypadkach. 161 00:09:41,010 --> 00:09:43,260 Zmieńmy ten jeden do "powiedzenia" tak więc 162 00:09:43,260 --> 00:09:48,170 można odróżnić się, gdzie jesteśmy. 163 00:09:48,170 --> 00:09:49,600 >> Ale mamy ciało. 164 00:09:49,600 --> 00:09:52,690 A potem interesujące bitowa, bit, który pojawia się w kodzie HTML, 165 00:09:52,690 --> 00:09:54,530 Jest to element formularza. 166 00:09:54,530 --> 00:09:56,370 I tak mamy formę. 167 00:09:56,370 --> 00:09:58,330 I to jest klucz. 168 00:09:58,330 --> 00:10:00,530 W ten sposób pracy z PHP. 169 00:10:00,530 --> 00:10:05,790 Parametr działanie Formularz mówi, że hello.php 170 00:10:05,790 --> 00:10:09,310 jest to, co mamy zamiar wysłać wartości w tej formie do. 171 00:10:09,310 --> 00:10:13,830 To jest, gdy przekazujemy parametry, że tak powiem. 172 00:10:13,830 --> 00:10:18,680 >> Zauważysz coś innego tutaj jest to, że metoda ta jest "się". 173 00:10:18,680 --> 00:10:24,450 Istnieją dwa podstawowe metody, które będą 174 00:10:24,450 --> 00:10:28,750 za pomocą PHP do przekazywania danych między websites-- stron internetowych, 175 00:10:28,750 --> 00:10:30,500 rather-- się tego zadania. 176 00:10:30,500 --> 00:10:34,070 A te metody są "get" i "post." 177 00:10:34,070 --> 00:10:37,010 Istnieją pewne subtelne Różnice pomiędzy get i post 178 00:10:37,010 --> 00:10:40,520 że będziemy mieli into-- mamy będzie "dostać" się, jeśli będzie. 179 00:10:40,520 --> 00:10:44,030 >> Ale dla wszystkich zamiarów i cele, get i post 180 00:10:44,030 --> 00:10:47,120 znajdują się w odległości sposoby można przekazać parametry 181 00:10:47,120 --> 00:10:49,500 z nieco różnych wykonaniach. 182 00:10:49,500 --> 00:10:53,500 Na razie mamy zamiar używać dostać, ponieważ dostać to, co było pierwotnie używane 183 00:10:53,500 --> 00:10:57,340 w pliku PHP P zestaw 6. 184 00:10:57,340 --> 00:11:00,850 I rzeczywiście, jeśli mamy iść i szukać zanim cokolwiek innego były edytowane, 185 00:11:00,850 --> 00:11:03,090 Idę się przywitać to-- jak masz na imię? 186 00:11:03,090 --> 00:11:03,812 >> PUBLICZNOŚCI: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: O, Boże. 188 00:11:04,770 --> 00:11:05,600 Nie wiem, jak się pisze, że. 189 00:11:05,600 --> 00:11:06,766 Czy mógłby Pan pisze to dla mnie? 190 00:11:06,766 --> 00:11:08,710 PUBLICZNOŚCI: E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> PUBLICZNOŚCI: Tak. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Perfect. 194 00:11:10,960 --> 00:11:11,210 OK. 195 00:11:11,210 --> 00:11:12,751 Myślę, że nie wiem, jak się pisze, że. 196 00:11:12,751 --> 00:11:13,510 Przepraszam za to. 197 00:11:13,510 --> 00:11:16,560 Ale jeśli mówimy "przywitać," to nie jest to nie będzie pojawiać się na ekranie 198 00:11:16,560 --> 00:11:18,476 ale dlatego, że zmodyfikowana kod trochę. 199 00:11:18,476 --> 00:11:21,290 Ale jeśli mamy "Say hello" - OK, więc "cześć" jest tutaj. 200 00:11:21,290 --> 00:11:24,137 Ale jeśli weźmiemy bliżej spojrzeć na samego adresu URL, 201 00:11:24,137 --> 00:11:26,220 zobaczymy, że to się skończy Nazwa z hello.php? = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Tak więc, jest to droga komunikacji do następnej strony WWW 204 00:11:37,180 --> 00:11:39,240 parametry, które mamy minął. 205 00:11:39,240 --> 00:11:40,870 Powiedzieliśmy name = Elliot. 206 00:11:40,870 --> 00:11:46,290 I to jest w końcu, jak P zestaw 6 obejrzano zmienną, że przeszedł w 207 00:11:46,290 --> 00:11:47,520 przez formę. 208 00:11:47,520 --> 00:11:51,470 I to jest coś, co jest charakterystyczne dla żądania GET. 209 00:11:51,470 --> 00:11:57,480 Żądanie GET sprawia, że ​​parametry znany w adresie URL strony internetowej. 210 00:11:57,480 --> 00:12:01,190 >> I będziesz przypomnieć też, w P zestaw 6, który Ciebie 211 00:12:01,190 --> 00:12:04,450 miałem napisać funkcję która zajmuje się faktem 212 00:12:04,450 --> 00:12:09,700 że ten ciąg kwerendy może istnieć po pliku. 213 00:12:09,700 --> 00:12:14,684 Nie może być Pytajnik o zasadniczo dowolnej liczby znaków. 214 00:12:14,684 --> 00:12:16,350 I to jest dokładnie to, co się tutaj dzieje. 215 00:12:16,350 --> 00:12:21,280 A powód trzeba było analizować, że w realizacji server.c w P 216 00:12:21,280 --> 00:12:27,570 zestaw 6 jest tak, że można powiedzieć, kod PHP, który nazwać = Elliot. 217 00:12:27,570 --> 00:12:30,460 Potrzebne do móc analizowania, że ​​z adresu URL 218 00:12:30,460 --> 00:12:35,900 tak, że plik PHP w pytaniu wiedział, co to do czynienia. 219 00:12:35,900 --> 00:12:39,350 >> Więc mam nadzieję, że to daje motywacja do server.c 220 00:12:39,350 --> 00:12:43,900 teraz, że idziemy na poza C do PHP. 221 00:12:43,900 --> 00:12:48,240 Więc właściwie skupić się na temat dostępu do rzeczy przechodzi przez zamówienie Pobierz teraz 222 00:12:48,240 --> 00:12:48,880 w tym momencie. 223 00:12:48,880 --> 00:12:50,157 Mam zamiar zapisać to. 224 00:12:50,157 --> 00:12:51,240 Nie zmienia niczego. 225 00:12:51,240 --> 00:12:56,080 Wygląda na to, że mamy pole wprowadzania. 226 00:12:56,080 --> 00:12:58,550 >> Jesteśmy także ustawić właściwości, jak możemy zrobić HTML. 227 00:12:58,550 --> 00:12:59,550 Są to proste rzeczy. 228 00:12:59,550 --> 00:13:00,580 Nie potrzebujemy ich. 229 00:13:00,580 --> 00:13:03,750 Ale mamy autouzupełnianie off, które zasadniczo says-- wiesz, 230 00:13:03,750 --> 00:13:05,710 po wpisaniu rzeczy w internecie, czasami 231 00:13:05,710 --> 00:13:07,355 stara się wypełnić, że dla Ciebie. 232 00:13:07,355 --> 00:13:08,230 Tak więc jest to miła rzecz. 233 00:13:08,230 --> 00:13:11,700 Chcemy, aby go wyłączyć na ten cel. 234 00:13:11,700 --> 00:13:13,970 To była decyzja CS50. 235 00:13:13,970 --> 00:13:15,640 Więc możemy usuwać, że gdybyśmy chcieli. 236 00:13:15,640 --> 00:13:19,510 >> Autofokus prostu przykleja kursor w prawej formularza na początku. 237 00:13:19,510 --> 00:13:21,060 Ponownie, nie jest zbyt ważne. 238 00:13:21,060 --> 00:13:26,220 >> Ale name = "nazwa" - to trochę trudne, ponieważ jest to imię i nazwisko. 239 00:13:26,220 --> 00:13:28,730 Ale możemy się zmieniłam to coś innego. 240 00:13:28,730 --> 00:13:30,563 A w rzeczywistości, to co zrobimy teraz. 241 00:13:30,563 --> 00:13:34,830 Powiemy, "osoba", która to coś w rodzaju nazwy 242 00:13:34,830 --> 00:13:36,790 jeżeli osoba jest określony przez ich nazwy. 243 00:13:36,790 --> 00:13:41,480 >> Więc zamknąć tego, ponownie otworzyć się na naszej stronie internetowej 244 00:13:41,480 --> 00:13:46,110 ponieważ nasz serwer nadal działa Apache 50, a my powiedzieć, cześć, tu jest 245 00:13:46,110 --> 00:13:47,200 Elliot ponownie. 246 00:13:47,200 --> 00:13:48,460 Dlaczego nie? 247 00:13:48,460 --> 00:13:49,220 Halo. 248 00:13:49,220 --> 00:13:52,880 A jeśli idziemy tutaj, zobaczymy to zamiast nazwy = Elliot, 249 00:13:52,880 --> 00:13:55,200 mówi osoba = Elliot. 250 00:13:55,200 --> 00:14:00,060 I to jest bezpośrednim wynikiem faktu, że po prostu zmienił name = "osoba". 251 00:14:00,060 --> 00:14:06,840 >> Zatem w elemencie wejściowym formularz HTML, w polu Nazwa 252 00:14:06,840 --> 00:14:10,590 jest identyfikatorem dla Parametr, który jest jej podjęcia. 253 00:14:10,590 --> 00:14:14,250 To jak, jeśli tworzysz funkcję "dodatek", która odbyła się w dwóch liczb całkowitych 254 00:14:14,250 --> 00:14:16,670 i powiedział int a, int b. 255 00:14:16,670 --> 00:14:22,680 To byłaby nazwa a, a jeśli chcesz inną formę, która 256 00:14:22,680 --> 00:14:27,800 możemy to zrobić tylko przez kopiowanie i wklejanie, musielibyśmy nazwisko b. 257 00:14:27,800 --> 00:14:31,030 >> Teraz będziemy mieli dwa parametry które są przekazywane za pośrednictwem 258 00:14:31,030 --> 00:14:36,970 dostać się do następnego website-- następna strona, hello.php. 259 00:14:36,970 --> 00:14:39,770 I rzeczywiście możemy zobaczyć to jeszcze raz, jeśli chcemy. 260 00:14:39,770 --> 00:14:44,830 Jest to najprostszy sposób na radzenie sobie z kod internetowej w IDE, w zasadzie. 261 00:14:44,830 --> 00:14:47,940 Uruchomieniu serwera, rozumiem uruchomiony, a następnie za każdym razem kiedy 262 00:14:47,940 --> 00:14:50,649 wprowadzić pewne zmiany, tak blisko że plik dla pewności. 263 00:14:50,649 --> 00:14:52,440 Naciśnięcie przycisku Wstecz jest trochę trudne 264 00:14:52,440 --> 00:14:55,800 ponieważ może załadować wcześniejszy wersja, nie najbardziej uaktualnionych. 265 00:14:55,800 --> 00:14:59,200 >> A potem po prostu kliknij żądany przycisk ponownie, pop prawo up-- oh, 266 00:14:59,200 --> 00:15:00,510 a teraz istnieją dwie formy. 267 00:15:00,510 --> 00:15:10,440 I tak, jeśli wpisać jedno w siebie jedno- "Jason Hirshhorn" dla instance-- 268 00:15:10,440 --> 00:15:11,590 możemy przywitać. 269 00:15:11,590 --> 00:15:12,840 Patrzymy na naszych parametrów. 270 00:15:12,840 --> 00:15:18,910 Wygląda na to, że mamy, jak Oczekuje, a = b = Jason i Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 co stanowi dwa parametry które przeszły do ​​tej funkcji. 272 00:15:23,760 --> 00:15:27,900 >> Więc teraz niech rzeczywiście dostać się do realizacji tej funkcjonalności, które 273 00:15:27,900 --> 00:15:30,840 miał w P zestaw 6. 274 00:15:30,840 --> 00:15:32,490 Więc teraz jesteśmy po prostu echo cześć. 275 00:15:32,490 --> 00:15:34,310 I nie jest to bardzo przydatne. 276 00:15:34,310 --> 00:15:38,530 Chcemy echo jakąś zmienną który został przekazany do nas. 277 00:15:38,530 --> 00:15:40,320 I wiemy, że nazwę tej zmiennej. 278 00:15:40,320 --> 00:15:41,770 Mamy i mamy b. 279 00:15:41,770 --> 00:15:43,500 Więc możemy zdecydować się echo jedn. 280 00:15:43,500 --> 00:15:45,470 >> Ale w jaki sposób z niego korzystać? 281 00:15:45,470 --> 00:15:48,820 Cóż, są pewne zmienne globalne w PHP. 282 00:15:48,820 --> 00:15:51,240 I mam zamiar napisać je w komentarzach tutaj. 283 00:15:51,240 --> 00:15:59,910 Dwa najważniejsze to get i dodawać do naszych celów w tej chwili. 284 00:15:59,910 --> 00:16:05,350 Są to tablice lub, Technicznie, słowniki 285 00:16:05,350 --> 00:16:10,540 gdzie nasze zmienne, że jesteśmy przejściu do następnej strony WWW Live. 286 00:16:10,540 --> 00:16:14,520 A wkrótce zobaczymy jak z nich korzystać. 287 00:16:14,520 --> 00:16:19,720 >> Kolejna krótka notatka na temat kodu PHP i niektóre specyfiki it-- w C, 288 00:16:19,720 --> 00:16:23,260 zadeklarować zmienną lub używać zmiennych, 289 00:16:23,260 --> 00:16:24,570 najpierw musiał je zadeklarować. 290 00:16:24,570 --> 00:16:30,860 I to, co trzeba było zrobić, gdy oświadczył im było powiedzieć char int a lub b. 291 00:16:30,860 --> 00:16:35,630 Trzeba było zadeklarować typy tych zmiennych przed ich stworzył. 292 00:16:35,630 --> 00:16:38,800 PHP-- nie trzeba robić żadnej z tych rzeczy. 293 00:16:38,800 --> 00:16:42,522 PHP nie poprosić o typ zmiennej. 294 00:16:42,522 --> 00:16:44,480 A sposób, że cię stworzyć zmienna-- raczej 295 00:16:44,480 --> 00:16:49,930 nie mówiąc int, char, string-- co jest naprawdę char *, jak know-- 296 00:16:49,930 --> 00:16:52,180 zamiast robić wszystko że ponieważ wszystko 297 00:16:52,180 --> 00:16:54,620 jest tego samego typu, typeless, możemy po prostu 298 00:16:54,620 --> 00:16:59,210 wykorzystywać jeden znak, który jest znak dolara. 299 00:16:59,210 --> 00:17:03,700 A zobaczysz, że już pojawiały w górę, trochę autouzupełniania rzeczy. 300 00:17:03,700 --> 00:17:11,380 I to mówiąc, że _GET i _POST Są dwie opcje, które mam dostępne 301 00:17:11,380 --> 00:17:11,900 dla mnie. 302 00:17:11,900 --> 00:17:16,430 Niektóre z tych rzeczy są inne inne zmienne globalne w PHP 303 00:17:16,430 --> 00:17:18,430 że będziesz używać na przebieg P zestaw 7. 304 00:17:18,430 --> 00:17:20,569 Na razie będziemy skupić się na get i post. 305 00:17:20,569 --> 00:17:22,910 Ale to jest pomocne rzeczą, że IDE robi 306 00:17:22,910 --> 00:17:24,980 gdzie po wpisaniu w tym znak dolara, 307 00:17:24,980 --> 00:17:28,760 będzie ona rozpocząć wypełnianie zmiennych globalnych lub zmienne już zdefiniowane. 308 00:17:28,760 --> 00:17:34,360 >> Więc jeśli chcesz, aby zdefiniować zmienna o nazwie "string" 309 00:17:34,360 --> 00:17:38,290 można po prostu ustawić go równa "cześć". 310 00:17:38,290 --> 00:17:40,100 I to w zasadzie tak proste. 311 00:17:40,100 --> 00:17:44,720 A potem możemy zrobić coś w stylu "echo $ string." 312 00:17:44,720 --> 00:17:48,524 IDE należy rzucać niektóre błędy, jeśli robię coś nie tak, 313 00:17:48,524 --> 00:17:50,190 więc mam nadzieję, że wszystko robię dobrze. 314 00:17:50,190 --> 00:17:52,060 Ale błędy zawsze się pojawiają. 315 00:17:52,060 --> 00:17:56,670 >> Innym trudne rzeczą PHP jest to, że to nie jest skompilowany. 316 00:17:56,670 --> 00:18:00,640 Więc z programów w C, zrobiłbyś codzienność of-- zasadzie, 317 00:18:00,640 --> 00:18:02,710 chcesz wprowadzić zmiany do Twój kod, można go zapisać, 318 00:18:02,710 --> 00:18:04,460 i wtedy będzie sprawiają, że, w przypadku gdy jest to 319 00:18:04,460 --> 00:18:08,830 krok, który nazywa kompilator, Clang, aby kod, ten tekst 320 00:18:08,830 --> 00:18:10,570 pliku, do pliku wykonywalnego. 321 00:18:10,570 --> 00:18:15,550 PHP jest C-jak, ale jest wykonywana w locie przez przeglądarkę internetową. 322 00:18:15,550 --> 00:18:17,640 Więc nie ma sposobu, aby wiedzieć. 323 00:18:17,640 --> 00:18:19,790 >> Sprawdź, rzucał tych Liczba osób błędy, prawda? 324 00:18:19,790 --> 00:18:22,190 To tak, jakby, ciebie nie deklarują tej zmiennej 325 00:18:22,190 --> 00:18:23,320 przed próbował go użyć. 326 00:18:23,320 --> 00:18:29,120 Zrobiłeś to wszystko złe stuff-- segfault, wysypać, wszystkie tego rodzaju zabawy razy 327 00:18:29,120 --> 00:18:31,000 który przyszedł z marki. 328 00:18:31,000 --> 00:18:33,920 PHP jest miecz obosieczny bo nie dostaniesz tych błędów, 329 00:18:33,920 --> 00:18:37,770 ale to oznacza również, że nie będziesz wiedział naprawdę to, co się stało z programem 330 00:18:37,770 --> 00:18:39,840 jeśli po prostu uruchom go i to nie działa. 331 00:18:39,840 --> 00:18:45,130 Ale debugger należy podkreślić, niektóre z nadzieją pomocna małe rzeczy 332 00:18:45,130 --> 00:18:47,950 składniowo, które można naprawić. 333 00:18:47,950 --> 00:18:52,850 >> Więc teraz, jeśli mamy iść na to-- powiedzieć, niech zamknąć to. 334 00:18:52,850 --> 00:18:54,522 Otworzyć na nowo. 335 00:18:54,522 --> 00:18:55,480 I jesteśmy z powrotem tutaj. 336 00:18:55,480 --> 00:18:57,210 Więc mamy zmienną i zmiennej b. 337 00:18:57,210 --> 00:18:58,626 A to nie będzie ostatecznie znaczenia. 338 00:18:58,626 --> 00:19:01,850 Zadzwonimy im h i g bez powodu. 339 00:19:01,850 --> 00:19:03,120 >> A my przywitać. 340 00:19:03,120 --> 00:19:07,480 Teraz wygląda na to, naszego łańcucha "hi" jest rzeczywiście drukowanie. 341 00:19:07,480 --> 00:19:10,460 Stworzyliśmy zmienną "ciąg" ustawiony jest równa "cześć". 342 00:19:10,460 --> 00:19:15,520 Zauważ, że nie musisz zrobić, malloc lub zrobić tablicę znaków. 343 00:19:15,520 --> 00:19:19,110 >> W PHP, ponieważ zmiennych są typeless, ciąg 344 00:19:19,110 --> 00:19:22,230 jest takie samo jak dla char wszystkich zamiarów i celów. 345 00:19:22,230 --> 00:19:23,570 To może być "cześć". 346 00:19:23,570 --> 00:19:26,340 Może to być po prostu postać k. 347 00:19:26,340 --> 00:19:29,290 Może to być liczba 1. 348 00:19:29,290 --> 00:19:30,300 I to nie obchodzi. 349 00:19:30,300 --> 00:19:33,560 PHP nie obchodzi typ zmiennej. 350 00:19:33,560 --> 00:19:34,390 Albo, że nie obchodzi. 351 00:19:34,390 --> 00:19:36,240 Dba podczas próby i robić rzeczy z nim, 352 00:19:36,240 --> 00:19:38,790 ale to nie obchodzi, w krok oświadczenie. 353 00:19:38,790 --> 00:19:46,960 >> I tak jak można w C, można Oświadczam, łańcuchy na stosie jak ten 354 00:19:46,960 --> 00:19:51,130 choć mówiąc "stos" jest trochę nieco potencjalnego mylące, gdy 355 00:19:51,130 --> 00:19:52,230 mówimy o PHP. 356 00:19:52,230 --> 00:19:54,020 Ale nie musimy się o to martwić. 357 00:19:54,020 --> 00:19:55,936 Więc dostaliśmy ciąg "cześć", a echo ciąg. 358 00:19:55,936 --> 00:19:58,880 Więc teraz mamy omówione zmienne. 359 00:19:58,880 --> 00:20:06,060 Więc teraz musimy mówić o GET i pisać i wykonywać ostateczną rzeczą, która jest 360 00:20:06,060 --> 00:20:12,660 potrzebne do naprawdę to z powrotem w górę w stosunku do funkcji P zestaw 6. 361 00:20:12,660 --> 00:20:14,990 Więc teraz jesteśmy echo ciąg, ale 362 00:20:14,990 --> 00:20:17,080 mają się te zmienne i post. 363 00:20:17,080 --> 00:20:19,430 A ponieważ używamy sposób uzyskać, to 364 00:20:19,430 --> 00:20:24,810 wydaje się naturalne, że nasza zmienna jesteśmy zainteresowani, A i B, 365 00:20:24,810 --> 00:20:29,870 znajdzie się w tablicy lub słownika, technicznie dostać. 366 00:20:29,870 --> 00:20:33,510 >> Jeśli więc ustawić się tak z groups-- Nacisnąłem wejść 367 00:20:33,510 --> 00:20:36,770 i to nie podoba it-- ale tutaj mamy dostać. 368 00:20:36,770 --> 00:20:38,000 I tak się już istnieje. 369 00:20:38,000 --> 00:20:41,380 Tak więc możemy już zacząć dostępu niektóre z elementów get. 370 00:20:41,380 --> 00:20:45,000 Jeśli rozumiesz, to składnia tablice w PHP jest bardzo C-jak. 371 00:20:45,000 --> 00:20:47,900 Mamy dwa nawiasy kwadratowe. 372 00:20:47,900 --> 00:20:53,440 >> Więc jeśli mówimy dostać w normalnym tablica, możemy uzyskać dostęp do 373 00:20:53,440 --> 00:20:55,600 indeks zerowego, pierwszy indeks. 374 00:20:55,600 --> 00:20:56,840 PHP jest wskaźnik zera. 375 00:20:56,840 --> 00:21:00,550 Można powiedzieć, zero, jeden, two-- rzeczy tak. 376 00:21:00,550 --> 00:21:03,420 A mówiłem, że się jest technicznie słownik. 377 00:21:03,420 --> 00:21:08,290 Więc co robi PHP pod maską, która jest trochę ładniejszy niż C, 378 00:21:08,290 --> 00:21:12,760 Jest to już daje ci pewne Słownik funkcjonalność, która 379 00:21:12,760 --> 00:21:16,240 Stoły naprawdę jest hash, lub stara się, podobno. 380 00:21:16,240 --> 00:21:19,360 Albo, technicznie to może być spróbować również. 381 00:21:19,360 --> 00:21:25,500 Ale PHP realizuje tabeli mieszania, która tworzy skuteczną słownika. 382 00:21:25,500 --> 00:21:28,400 >> I tak wiemy, nazwę naszej zmiennej, prawda? 383 00:21:28,400 --> 00:21:32,440 To są przekazywane w ciąg kwerendy na PHP. 384 00:21:32,440 --> 00:21:37,290 Mamy = H i B = g, gdzie aib są nazwy zmiennych. 385 00:21:37,290 --> 00:21:41,580 Tak więc sposób możemy uzyskać dostęp do wartość, która odpowiada kluczowi 386 00:21:41,580 --> 00:21:45,055 w naszym słowniku jest po prostu mówiąc _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Więc teraz mamy _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 A jeśli po prostu wymienić wewnątrz nasz echa, jeśli echo _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 i zobaczymy, czy debugger wyrzuca żadnych błędów o this-- 391 00:22:02,410 --> 00:22:05,620 że będziemy zapisać i zamknąć to. 392 00:22:05,620 --> 00:22:07,130 Go otworzyć. 393 00:22:07,130 --> 00:22:10,390 Więc jesteśmy po prostu robi prawo teraz, więc nie powinno mieć znaczenia, b. 394 00:22:10,390 --> 00:22:12,980 "jej" i "go" - "szum." "jej" i "buczenie". 395 00:22:12,980 --> 00:22:14,810 Brzmi dobrze. 396 00:22:14,810 --> 00:22:18,040 >> I to wydrukowane "jej", który jest szalony. 397 00:22:18,040 --> 00:22:21,920 Ale to właśnie dzieje się w P zestaw 6. 398 00:22:21,920 --> 00:22:27,240 Zasadniczo, co P zestaw 6 był doing-- echo hello, 399 00:22:27,240 --> 00:22:31,580 name-- gdzie miał nazwa zmiennej i po prostu 400 00:22:31,580 --> 00:22:35,520 prosi, aby pisać w tym trochę tekstu. 401 00:22:35,520 --> 00:22:37,380 Nie było również niektóre Dodatkowy kod gdzie 402 00:22:37,380 --> 00:22:40,550 wliczone w przypadku stwierdzenia, które możemy teraz zrobić. 403 00:22:40,550 --> 00:22:50,120 >> Można powiedzieć, jeśli istnieje, które Jest to funkcjonalność w ramach PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Z podkreśleniem, "nazwa" - która jest w zasadzie mówiąc: 405 00:22:55,110 --> 00:22:58,760 "jeśli nazwa została wypełniona", ponieważ mogliśmy po prostu kliknięciu przycisku 406 00:22:58,760 --> 00:23:02,580 przesłać formularz bez wpisywania do tej dziedzinie. 407 00:23:02,580 --> 00:23:07,760 A my zawinąć, że w naszym Przyjazne nawiasy klamrowe. 408 00:23:07,760 --> 00:23:09,175 Możemy mieć oświadczenie innego. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 I to wszystko w kąt PHP Uchwyt, znak zapytania, kątownik, 411 00:23:18,820 --> 00:23:20,040 Jeśli będziesz. 412 00:23:20,040 --> 00:23:21,750 >> A teraz zobaczymy, czy to działa. 413 00:23:21,750 --> 00:23:26,300 Wciąż czeka na niego do debugowania i srać na mnie, w zasadzie, 414 00:23:26,300 --> 00:23:28,410 ale nie ma jeszcze. 415 00:23:28,410 --> 00:23:30,830 Może to będzie teraz bo rozmawialiśmy. 416 00:23:30,830 --> 00:23:31,330 Tak. 417 00:23:31,330 --> 00:23:32,510 To nie w rzeczywistości. 418 00:23:32,510 --> 00:23:34,610 Więc nic nie jest wyświetlane. 419 00:23:34,610 --> 00:23:38,750 To dlatego, że coś złego że napisałem w kodzie PHP. 420 00:23:38,750 --> 00:23:42,844 I wspomniałem debugowanie jest trudne, ponieważ w PHP, możemy 421 00:23:42,844 --> 00:23:45,260 nie skompilować go wcześniej i kompilator nie podoba, 422 00:23:45,260 --> 00:23:46,710 oto gdzie błędy są. 423 00:23:46,710 --> 00:23:49,690 >> Ale co możemy zrobić, jest-- ludzie pamiętają 424 00:23:49,690 --> 00:23:57,010 jak szukać w innej sieci domaga się, aby PHP-- lub że na stronach internetowych 425 00:23:57,010 --> 00:23:57,620 wysłać? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Zrobił to w wykład raz lub dwa razy. 427 00:24:00,290 --> 00:24:05,830 Pamiętasz, gdzie go znaleźć różne długi i 200 OKS, 428 00:24:05,830 --> 00:24:09,780 wszystkie te kody, które są wysyłane za pośrednictwem protokołu HTTP od strony do strony internetowej? 429 00:24:09,780 --> 00:24:12,514 Czy ktoś pamięta gdzie idziemy, aby to zrobić? 430 00:24:12,514 --> 00:24:13,787 >> PUBLICZNOŚCI: Źródło strony. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: źródło Page. 432 00:24:14,870 --> 00:24:15,890 Dokładnie. 433 00:24:15,890 --> 00:24:19,230 Jeśli pójdziesz do strony Source-- Perfect. 434 00:24:19,230 --> 00:24:21,630 Tak Źródło strony ciągnie się inspektor. 435 00:24:21,630 --> 00:24:23,140 >> I używam Safari. 436 00:24:23,140 --> 00:24:25,790 Wielu z was będzie prawdopodobnie się za pomocą Chrome lub Firefox. 437 00:24:25,790 --> 00:24:27,750 Ale tak długo, jak jesteś w każdym nowoczesnym browser-- 438 00:24:27,750 --> 00:24:29,500 i zachęcamy do naśladowania razem, jeśli chcesz. 439 00:24:29,500 --> 00:24:32,560 Można wpisać ten kod lub po prostu zajrzeć do zbioru P 6 440 00:24:32,560 --> 00:24:35,820 katalog z jakiegoś podobnego materiału. 441 00:24:35,820 --> 00:24:41,020 hello.php jest to, co jesteśmy Obecnie pracuje nad emulacji. 442 00:24:41,020 --> 00:24:42,476 >> Tak więc istnieje wiele kart. 443 00:24:42,476 --> 00:24:43,850 Możemy spojrzeć na wszystkich zasobów. 444 00:24:43,850 --> 00:24:45,810 Możemy zobaczyć kod źródłowy. 445 00:24:45,810 --> 00:24:49,900 Tak więc wygląda na to, że nie ominąć ciało w końcu. 446 00:24:49,900 --> 00:24:54,890 Stwierdzono błąd w PHP i nim zatrzymał ładowania całej strony internetowej. 447 00:24:54,890 --> 00:24:58,320 My nawet nie mieć końca tag HTML, czy cokolwiek. 448 00:24:58,320 --> 00:25:07,189 >> A jeśli spojrzymy na sieć, możemy zobaczyć, że jesteśmy wysyłane żądanie. 449 00:25:07,189 --> 00:25:07,980 To jest domena. 450 00:25:07,980 --> 00:25:09,270 To jest adres. 451 00:25:09,270 --> 00:25:10,070 Jest to dokument. 452 00:25:10,070 --> 00:25:14,310 Używamy metody GET. 453 00:25:14,310 --> 00:25:15,760 >> I to jest czerwony. 454 00:25:15,760 --> 00:25:19,030 Albo, że był czerwony, kiedy nie wybierając go. 455 00:25:19,030 --> 00:25:22,680 Jak mogę odznaczyć go? 456 00:25:22,680 --> 00:25:23,980 Cóż, to był czerwony. 457 00:25:23,980 --> 00:25:25,201 Pozwól mi odświeżyć. 458 00:25:25,201 --> 00:25:25,700 Tutaj jest. 459 00:25:25,700 --> 00:25:26,640 Teraz jest czerwony. 460 00:25:26,640 --> 00:25:30,530 >> Więc to jest czerwony, co oznacza, nie udało, co jest złe. 461 00:25:30,530 --> 00:25:32,280 Warto więc zbadać, dlaczego zawiódł. 462 00:25:32,280 --> 00:25:37,070 Więc wszystko, co strony źródłowej można w zasadzie powiedzieć, to twoja sprawa 463 00:25:37,070 --> 00:25:38,720 nie działa, które możemy już zobaczyć. 464 00:25:38,720 --> 00:25:42,100 Więc najlepiej nie będzie być bardziej przydatne narzędzia. 465 00:25:42,100 --> 00:25:45,710 I są pewne rozszerzenia przeglądarki które pozwala na debugowanie PHP, 466 00:25:45,710 --> 00:25:50,490 ale my nie zamierzamy pisać mnóstwo PHP, 467 00:25:50,490 --> 00:25:53,190 tak, to chyba po prostu najlepsza patrzeć przez kod 468 00:25:53,190 --> 00:25:56,760 ostrożnie i tylko upewnić się, że nie robi nic innego. 469 00:25:56,760 --> 00:26:03,876 >> Zobaczmy więc, czy format tego if jest, gdzie jest problem. 470 00:26:03,876 --> 00:26:07,420 Chcę, aby załadować, że z powrotem tutaj. 471 00:26:07,420 --> 00:26:09,830 Cześć. 472 00:26:09,830 --> 00:26:11,350 Więc nie jest to problem istnieje. 473 00:26:11,350 --> 00:26:15,130 >> Więc dla poprawnej składni PHP, PHP będzie 474 00:26:15,130 --> 00:26:17,369 być jak w C, które zobaczysz pętle. 475 00:26:17,369 --> 00:26:18,410 Zobaczysz, czy sprawozdania. 476 00:26:18,410 --> 00:26:20,920 Zobaczysz wszystkie te znajomych że już zaznajomić 477 00:26:20,920 --> 00:26:24,820 w ciągu tego semestru CS50. 478 00:26:24,820 --> 00:26:29,960 Jednak najlepszym sposobem, aby dowiedzieć się, jak zrobić coś w PHP jest to Google 479 00:26:29,960 --> 00:26:33,170 lub spojrzeć na kilka przykładów kodu PHP bo wiesz funkcjonalności. 480 00:26:33,170 --> 00:26:35,080 >> Wiesz, co się da zrobić z programu. 481 00:26:35,080 --> 00:26:35,976 Możesz pętli. 482 00:26:35,976 --> 00:26:37,600 Pętla tyle razy, ile chcesz, możesz. 483 00:26:37,600 --> 00:26:39,433 Możesz pętli w ogóle rodzaje sposobów. 484 00:26:39,433 --> 00:26:40,700 Możesz tworzyć funkcje. 485 00:26:40,700 --> 00:26:43,241 Możesz tworzyć funkcje wywołać inne funkcje, funkcje 486 00:26:43,241 --> 00:26:44,150 które nazywają siebie. 487 00:26:44,150 --> 00:26:45,733 I masz nazwy dla tych pojęć. 488 00:26:45,733 --> 00:26:49,860 Masz rekurencji, pętle, jeśli inne strumienie kontroli. 489 00:26:49,860 --> 00:26:51,300 I tak Google jest twoim najlepszym przyjacielem. 490 00:26:51,300 --> 00:26:53,540 Nawet powiedzieć, "PHP, jeśli Stwierdzenie "i nie będziesz 491 00:26:53,540 --> 00:26:57,740 jest mnóstwo postów z Odpowiedzi na innych ludzi 492 00:26:57,740 --> 00:27:02,090 który miałem podobne pytania do Ciebie, którzy dopiero zaczynają się w PHP 493 00:27:02,090 --> 00:27:03,820 i są ciekawi rzeczy składni. 494 00:27:03,820 --> 00:27:08,480 >> Ponieważ mamy luksus bycia w stanie spojrzeć na kod w P zestaw 6, 495 00:27:08,480 --> 00:27:14,980 faktycznie pociągnąć do góry i zobaczyć, że OK, tu jest coś ciekawego. 496 00:27:14,980 --> 00:27:18,070 Więc to jest to, co go rzeczywiście wyglądał jak w P zestaw 6. 497 00:27:18,070 --> 00:27:20,340 Jeśli więc przejść przez to, widzimy, że mamy 498 00:27:20,340 --> 00:27:27,150 ale kilka z nich trochę Bity PHP-jak znak zapytania. 499 00:27:27,150 --> 00:27:29,050 >> I nie są nawiasy klamrowe. 500 00:27:29,050 --> 00:27:30,250 Istnieje dwukropki. 501 00:27:30,250 --> 00:27:32,340 I są kręcone szelki w PHP, ale to 502 00:27:32,340 --> 00:27:38,700 Jest to format i sposób prowadzenia PHP, który działa dobrze z HTML 503 00:27:38,700 --> 00:27:43,830 bo jak zobaczysz, mamy do zamknięcia od tych PHP bits-- elses 504 00:27:43,830 --> 00:27:49,770 oraz IFS i cały that-- i jesteśmy przeplatając HTML wewnątrz nich 505 00:27:49,770 --> 00:27:54,640 podczas gdy jeszcze w następstwie przepływ sterowania określone przez PHP. 506 00:27:54,640 --> 00:27:58,480 >> Więc jestem po prostu będzie szybki spacer przez to 507 00:27:58,480 --> 00:28:01,740 bo to dużo to samo koncepcje, które robiliśmy wcześniej. 508 00:28:01,740 --> 00:28:07,280 Mamy, jeśli nie jest pusta, nawiasy, _GET_GET ["name"]. 509 00:28:07,280 --> 00:28:08,500 To wszystko jest takie same rzeczy. 510 00:28:08,500 --> 00:28:15,430 Używamy słownika _GET, że PHP wysyła na żądanie form, 511 00:28:15,430 --> 00:28:20,720 Ponieważ jest to parametry akcji, a metoda jest uzyskać. 512 00:28:20,720 --> 00:28:22,110 A potem, że kończy się to. 513 00:28:22,110 --> 00:28:27,420 Dwukropek jest znaczącym po prostu to zrobić jeśli if wartość true. 514 00:28:27,420 --> 00:28:29,490 To jak nawias klamrowy. 515 00:28:29,490 --> 00:28:33,320 A w rzeczywistości, jest to nawias klamrowy w innych językach, takich jak Python, 516 00:28:33,320 --> 00:28:37,070 które mogą wystąpić, jeśli tylko zrobić dla ostatecznego projektu. 517 00:28:37,070 --> 00:28:40,170 >> A potem ta linia, cześć. 518 00:28:40,170 --> 00:28:41,510 Następnie mamy tę dziwną rzecz. 519 00:28:41,510 --> 00:28:43,190 Mamy wsporników. 520 00:28:43,190 --> 00:28:46,140 Nie ma HTTP there-- lub PHP, przepraszam. 521 00:28:46,140 --> 00:28:47,250 Ale jest znak równości. 522 00:28:47,250 --> 00:28:50,625 A potem mamy funkcję, htmlspecialchars (_GEThtmlspecialchars (_GET ["nazwa"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 To jest coś w rodzaju bardziej zaawansowana wersja echo. 525 00:28:58,040 --> 00:29:01,450 Jak mieliśmy echo jako sposób wydrukować rzeczy w PHP. 526 00:29:01,450 --> 00:29:03,890 Jest to funkcja, która jest zdefiniowane w PHP, który 527 00:29:03,890 --> 00:29:08,160 zajmie się trochę więcej paskudne znaków i wartości bajtów 528 00:29:08,160 --> 00:29:09,540 że można ją przejść. 529 00:29:09,540 --> 00:29:11,070 To zawsze najbezpieczniej używać. 530 00:29:11,070 --> 00:29:14,930 Ale echo będzie wykonać zadanie dobrze, jeśli nie jesteśmy 531 00:29:14,930 --> 00:29:17,620 do czynienia z czymś zbyt paskudny. 532 00:29:17,620 --> 00:29:20,340 >> A więc ten ma taką samą Efekt w zasadzie, 533 00:29:20,340 --> 00:29:26,360 te rzeczy między pytanie Znaki jest oceniany przez PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars zwraca piękny HTML drukowane wartość _GET_GET ["name"], to znaczy 535 00:29:34,490 --> 00:29:36,010 cokolwiek wpisane w formularzu. 536 00:29:36,010 --> 00:29:40,025 A potem to się przywitać, przecinek przestrzeń, a następnie, że. 537 00:29:40,025 --> 00:29:42,910 Że cała sprawa między nawiasy ostre 538 00:29:42,910 --> 00:29:47,390 zostanie zastąpiony przez co htmlspecialchars gasi. 539 00:29:47,390 --> 00:29:49,390 Więc to jest w zasadzie podobna do tego, co robimy. 540 00:29:49,390 --> 00:29:54,760 I mamy oświadczenie innego, który jest hello world, która ma sens. 541 00:29:54,760 --> 00:29:58,070 A teraz wróćmy do naszego Kod i zobaczyć exactly-- och. 542 00:29:58,070 --> 00:30:02,200 Powiedziałem istnieje, co nie jest coś, co chcieliśmy zrobić. 543 00:30:02,200 --> 00:30:05,370 Chcieliśmy powiedzieć, nie jest pusta. 544 00:30:05,370 --> 00:30:10,020 >> I tak to powinno działać trochę nieco lepiej, a nie pusta _GET_GET ["name"]. 545 00:30:10,020 --> 00:30:12,710 I że nawias klamrowy odpowiada, że ​​nawias klamrowy. 546 00:30:12,710 --> 00:30:15,210 Mamy nasze nawiasy klamrowe tutaj. 547 00:30:15,210 --> 00:30:17,790 echo hello _GET ["name"]. 548 00:30:17,790 --> 00:30:19,912 Zobaczymy, czy to działa trochę lepiej. 549 00:30:19,912 --> 00:30:21,350 Nadal działa nasz serwer. 550 00:30:21,350 --> 00:30:23,910 Witam Jason. 551 00:30:23,910 --> 00:30:24,780 Witam Jason. 552 00:30:24,780 --> 00:30:25,810 I udało się tym razem. 553 00:30:25,810 --> 00:30:29,860 A więc to jest dowód że można rzeczywiście 554 00:30:29,860 --> 00:30:35,180 używać nawiasów klamrowych, że znamy i kochamy w kodzie PHP w HTML. 555 00:30:35,180 --> 00:30:41,100 Kod PHP przekazane jesteś w pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 zapewnia inny sposób robi to samo. 557 00:30:44,760 --> 00:30:49,220 >> Więc teraz mamy moc. 558 00:30:49,220 --> 00:30:55,740 Mamy funkcjonalności do wdrożenia kod PHP, który widzieliśmy w pset 6 559 00:30:55,740 --> 00:30:57,390 przez siebie, w zasadzie. 560 00:30:57,390 --> 00:31:01,350 Zanim przejdę dalej, jakie są jednymi z pytania, które masz w tym momencie? 561 00:31:01,350 --> 00:31:02,066 Tak [niesłyszalne]. 562 00:31:02,066 --> 00:31:06,512 >> PUBLICZNOŚCI: Więc w wersji pset6, gdy go uruchomić, nie ma miejsca. 563 00:31:06,512 --> 00:31:09,330 I widzę, gdzie przestrzeń jest po przecinku. [Niesłyszalne] początek 564 00:31:09,330 --> 00:31:10,700 otwarty uchwyt. 565 00:31:10,700 --> 00:31:15,420 Jak można włączyć przestrzeń w tak, jak napisał własne kody? 566 00:31:15,420 --> 00:31:17,910 >> GŁOŚNIK: To jest dobre pytanie. 567 00:31:17,910 --> 00:31:21,650 A więc niech to postać, która obecnie. 568 00:31:21,650 --> 00:31:24,450 Więc to jest bardzo dobre pytanie a jeden, że nie uważają. 569 00:31:24,450 --> 00:31:25,950 Ale zróbmy to razem. 570 00:31:25,950 --> 00:31:30,280 >> Tak więc przede wszystkim, co Robię z echa 571 00:31:30,280 --> 00:31:33,690 Wtedy po prostu echo witam, wyprowadza komentarzy. 572 00:31:33,690 --> 00:31:41,310 Jeśli echo teraz to dostać się na oddzielnym Linia, zbadajmy, co się dzieje. 573 00:31:41,310 --> 00:31:43,740 Więc kliknij w tym. 574 00:31:43,740 --> 00:31:45,220 Trzymamy mówiąc hi Jason. 575 00:31:45,220 --> 00:31:48,690 Więc jeszcze raz, że nie mamy tego miejsca. 576 00:31:48,690 --> 00:31:53,090 >> A to dlatego, że w PHP, gdy mamy echo, 577 00:31:53,090 --> 00:31:55,820 nie ma znaczenia ile spaces-- nope, nie V-- 578 00:31:55,820 --> 00:32:01,770 bez względu na to, ile miejsca możemy umieścić w here-- jeśli teraz załadować, że ponownie, 579 00:32:01,770 --> 00:32:03,010 hi Jason. 580 00:32:03,010 --> 00:32:05,770 Tak, widać, wszystkie te przestrzenie został zjedzony. 581 00:32:05,770 --> 00:32:08,020 I to jest coś, co funkcja echo robi. 582 00:32:08,020 --> 00:32:11,110 >> Tak więc zadbać o tej przestrzeni, co jest 583 00:32:11,110 --> 00:32:14,960 jeden z powodów dlaczego nie użyć echo 584 00:32:14,960 --> 00:32:18,200 i używasz htmlspecialchars zamiast. 585 00:32:18,200 --> 00:32:22,140 Jestem ciekaw, co by stanie, jeśli to zrobił 586 00:32:22,140 --> 00:32:26,700 gdzie zamknięta przestrzeń w łańcuchu. 587 00:32:26,700 --> 00:32:29,720 Szczerze mówiąc, nie jestem pewien, co będzie się działo, kiedy to zrobić. 588 00:32:29,720 --> 00:32:30,790 >> Więc to jest jeden sposób. 589 00:32:30,790 --> 00:32:32,210 To jest jeden sposób, aby się tym zająć. 590 00:32:32,210 --> 00:32:34,840 Jeśli owinąć miejsce w ciąg, to przestrzeń 591 00:32:34,840 --> 00:32:36,920 będzie wyjście ładnie przez echo. 592 00:32:36,920 --> 00:32:41,930 Najbezpieczniejszym rozwiązaniem jest zrobić htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 To zawsze bezpieczny zakład. 594 00:32:43,800 --> 00:32:47,050 Ale teraz mamy sposób to zrobić to echo, jeśli to konieczne. 595 00:32:47,050 --> 00:32:50,700 I w podobny sposób, możemy echo nowych linii, tym rodzaju 596 00:32:50,700 --> 00:32:53,550 rzeczy znasz robi w PHP. 597 00:32:53,550 --> 00:32:57,460 >> Ktoś jeszcze, jakie są bardziej Pytania, które inni ludzie mają 598 00:32:57,460 --> 00:33:01,090 w tym momencie o PHP? 599 00:33:01,090 --> 00:33:04,620 Jeśli ludzie pojawili się trochę późno, Jestem szczęśliwy z pobytu po odrobinie 600 00:33:04,620 --> 00:33:06,420 i porozmawiać o niektórych początku. 601 00:33:06,420 --> 00:33:10,380 I to również wszystkich livestreamed, i archiwizowane, co jest szalone. 602 00:33:10,380 --> 00:33:13,960 >> W każdym razie, więc teraz zróbmy pewne bardziej zaawansowane rzeczy z PHP. 603 00:33:13,960 --> 00:33:18,790 I jedna z pierwszych rzeczy, które zostały wprowadzone w C był dla pętli. 604 00:33:18,790 --> 00:33:24,060 I PHP ma mocniejszy dla pętli zwanej pętli foreach. 605 00:33:24,060 --> 00:33:37,940 I wygląda na to this-- dla każdego puste jako puste, kręcone nawiasach, zrobić coś. 606 00:33:37,940 --> 00:33:41,500 Więc to jest po prostu skrótem. 607 00:33:41,500 --> 00:33:45,380 >> Zobacz, do pętli w postaci składniowej konstrukcji 608 00:33:45,380 --> 00:33:50,590 został opracowany w C i montażu język i rzeczy lubią. 609 00:33:50,590 --> 00:33:56,300 Opracowany w C, właśnie, jako skrót dla wielu rodzajów pętli 610 00:33:56,300 --> 00:33:57,750 że ludzie nie zobaczy. 611 00:33:57,750 --> 00:34:01,230 Jak wtedy, kiedy napisał pętlę, nie często etap inicjalizacji 612 00:34:01,230 --> 00:34:04,700 wykonywane na samym początku, a Stan, w którym pętla będzie stop-- 613 00:34:04,700 --> 00:34:07,030 i to jest funkcja to tylko w pętli while, 614 00:34:07,030 --> 00:34:10,040 lub, że gdy ma dokładnie tylko, że feature-- a następnie 615 00:34:10,040 --> 00:34:12,320 etap inkrementacji na końcu. 616 00:34:12,320 --> 00:34:16,489 I tak, że często można znaleźć się pisania kodu jak poniżej. 617 00:34:16,489 --> 00:34:19,780 Mam zamiar usunąć niektóre z tych. 618 00:34:19,780 --> 00:34:23,850 >> Ale jeśli mamy iteracji znaki w tablicy, 619 00:34:23,850 --> 00:34:26,960 na przykład, jak mamy dostał tablicę znaków. 620 00:34:26,960 --> 00:34:29,400 Niestety, aby przywrócić C. Wiem, Ci się, że zostały wykonane. 621 00:34:29,400 --> 00:34:31,900 Ale to tylko w celu nauki PHP, obiecuję. 622 00:34:31,900 --> 00:34:38,880 Więc jeśli masz str char o długości 8, i niech 623 00:34:38,880 --> 00:34:46,760 powiedzieć, że mówi Hellooo z pustym spływu. 624 00:34:46,760 --> 00:34:48,270 Świetnie, więc to nasz łańcuch. 625 00:34:48,270 --> 00:34:51,469 >> I wtedy mieliśmy pętli for. 626 00:34:51,469 --> 00:34:53,730 Mamy int i jest równa 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 I chcemy, aby wyjść, gdy Str o ja nie równa równa null, 629 00:35:09,110 --> 00:35:11,590 bo wyjść, gdy jest równa NULL. 630 00:35:11,590 --> 00:35:19,170 A potem robimy i ++ na siebie Temperatura w pętli for. 631 00:35:19,170 --> 00:35:30,480 Uprawiając z ul z i. 632 00:35:30,480 --> 00:35:34,950 >> Tak więc podstawowy wzór był, mieliśmy tę tablicę, że 633 00:35:34,950 --> 00:35:37,910 chciał traktować jako oddzielne elementy. 634 00:35:37,910 --> 00:35:45,170 Ale to, co musieliśmy zrobić, to musieliśmy w zasadzie utworzyć osobne całkowitą 635 00:35:45,170 --> 00:35:50,530 zmienną, że liczy się każdy razem udaliśmy się przez pętlę. 636 00:35:50,530 --> 00:35:55,240 A potem trzeba by następnie zadzwonić strstr [i], kiedy to, co naprawdę chciał zrobić 637 00:35:55,240 --> 00:35:57,280 jest po prostu pójść charakter po znaku, prawda? 638 00:35:57,280 --> 00:36:00,185 Nie chcemy, aby zwiększyć całkowitą, a następnie użyć tej liczby całkowitej 639 00:36:00,185 --> 00:36:02,780 aby uzyskać dostęp do każdego znaku z osobna. 640 00:36:02,780 --> 00:36:04,410 Naprawdę chcemy znak po znaku. 641 00:36:04,410 --> 00:36:08,600 >> I tak dla każdego inteligentnie oblicza, że ​​dla nas. 642 00:36:08,600 --> 00:36:11,875 Jeśli mamy tablicę, która możemy zadeklarować w PHP 643 00:36:11,875 --> 00:36:15,900 jak just-- jeśli mamy zmienną nazywa, nazwijmy to tablica. 644 00:36:15,900 --> 00:36:19,840 Cuda bez pisania, to podobnie jak każdej innej zmiennej. 645 00:36:19,840 --> 00:36:20,730 To tylko tablicą. 646 00:36:20,730 --> 00:36:26,890 I mamy trochę [niesłyszalne] jak 1, 2, 3, tylko pewnego rodzaju zainicjowany tablicy. 647 00:36:26,890 --> 00:36:29,680 To jest OK, to nie podoba mi foreach. 648 00:36:29,680 --> 00:36:33,120 >> Ale jeśli mamy foreach-- rzeczywistości Napisałem, że trochę źle. 649 00:36:33,120 --> 00:36:34,840 Istnieją dwa sposoby wykonywania pętli foreach. 650 00:36:34,840 --> 00:36:37,400 Jest w składni, jak i składni. 651 00:36:37,400 --> 00:36:40,580 A my zamierzamy zrobić w pierwszej składni, nie tak. 652 00:36:40,580 --> 00:36:41,780 To mój błąd. 653 00:36:41,780 --> 00:36:53,785 >> Więc foreach num w tablicy, echo num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 I PHP jest krzyczeć na mnie z jakiegoś powodu. 656 00:36:59,500 --> 00:37:03,520 To znalezieniem nieoczekiwane w czymś, 657 00:37:03,520 --> 00:37:05,820 co jest trochę niepokoić. 658 00:37:05,820 --> 00:37:09,105 Ale dowiemy się dlatego, że jest w jednej chwili. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Więc nie tak. 661 00:37:13,610 --> 00:37:15,040 Spróbujmy za pomocą tak. 662 00:37:15,040 --> 00:37:17,310 To preferuje jak składnia wydaje. 663 00:37:17,310 --> 00:37:22,550 Więc zróbmy foreach tablicy jako num. 664 00:37:22,550 --> 00:37:24,520 >> Więc trochę wyjaśnienie z tego, co się stało 665 00:37:24,520 --> 00:37:30,670 Składnia jest, jak dobrze jest saying-- pierwszy, spójrzmy na to, co wypisuje. 666 00:37:30,670 --> 00:37:32,260 Więc otwieramy nasze IDE. 667 00:37:32,260 --> 00:37:33,110 Chodziliśmy tam. 668 00:37:33,110 --> 00:37:35,845 Mówimy: Witam Jason. 669 00:37:35,845 --> 00:37:41,390 I to nie 123, które były zawartość tablicy, że stworzył się szczyt. 670 00:37:41,390 --> 00:37:45,500 >> Więc nurkowanie w tej pętli foreach, mamy zmienną o nazwie tablicy 671 00:37:45,500 --> 00:37:47,470 która jest tablica z trzech liczb. 672 00:37:47,470 --> 00:37:52,120 A potem robimy foreach Tablica jak num, num echa. 673 00:37:52,120 --> 00:37:54,990 I to jest więcej intuicyjne niż dla lop. 674 00:37:54,990 --> 00:38:02,380 Mówimy, traktując każdy z rzeczy w tablicy jako num, 675 00:38:02,380 --> 00:38:05,180 Chcę, żebyś dał mi num. 676 00:38:05,180 --> 00:38:06,640 I to jest dokładnie to, co robi. 677 00:38:06,640 --> 00:38:12,000 >> PHP jest obliczenie, że kiedy mówisz tablicy foreach, 678 00:38:12,000 --> 00:38:16,080 i masz do czynienia z tablicy, co będziesz chciał iteracyjnego 679 00:38:16,080 --> 00:38:19,950 to postacie w tej tablicy, jest int w tej tablicy, 680 00:38:19,950 --> 00:38:21,920 to elementy w tej tablicy. 681 00:38:21,920 --> 00:38:26,110 I to co pozwala przechowywać te zmienne jak num, 682 00:38:26,110 --> 00:38:29,360 a potem po prostu wyjście num od razu, a nie mówiąc, 683 00:38:29,360 --> 00:38:34,090 Mam zmienną i, i Następnie chcę wyjściowego strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> I tak, że pozwala nam robić fajne rzeczy. 685 00:38:39,130 --> 00:38:43,330 Podobnie jak w zasadzie nie musimy tworzyć te zmienne, takie jak ja i zrobić wszystko 686 00:38:43,330 --> 00:38:45,090 to inkrementacja rzeczy na końcu. 687 00:38:45,090 --> 00:38:48,290 PHP dba o wszystko to dla Ciebie. 688 00:38:48,290 --> 00:38:54,470 >> Więc teraz porozmawiajmy o foreach jako ma ona zastosowanie do naszego słownika _GET. 689 00:38:54,470 --> 00:38:57,170 Więc będziemy komentować tego szybko. 690 00:38:57,170 --> 00:39:02,030 Więc mamy naszą tablicę _GET. 691 00:39:02,030 --> 00:39:04,361 Mamy tę zmienną. 692 00:39:04,361 --> 00:39:05,610 I jest tam kilka rzeczy w nim. 693 00:39:05,610 --> 00:39:10,275 >> W tej chwili mamy tylko jedną zmienną są przekazywane do tego, co jest nazwa. 694 00:39:10,275 --> 00:39:13,420 Ale jeśli klawisz Enter, teraz możemy mieć dwie zmienne. 695 00:39:13,420 --> 00:39:17,910 Możemy mieć imię i wiek, na przykład, jeśli chcemy, aby wiek, a także 696 00:39:17,910 --> 00:39:20,960 nazwisko osoby, na tyle zabawnie. 697 00:39:20,960 --> 00:39:25,690 >> Więc teraz _GET jest będzie słownik z dwoma elementami 698 00:39:25,690 --> 00:39:27,980 dwie pary wartości klucza. 699 00:39:27,980 --> 00:39:33,490 I pierwszy key-- Zamierzam napisać ten jeden się na płycie też. 700 00:39:33,490 --> 00:39:37,136 Mamy w naszym słowniku jest _GET. 701 00:39:37,136 --> 00:39:39,520 Niestety, to jest trochę trudne do zobaczenia. 702 00:39:39,520 --> 00:39:46,690 Ale wewnątrz naszego słownika mamy Nazwa, która ma być czymś 703 00:39:46,690 --> 00:39:47,680 że mamy podane. 704 00:39:47,680 --> 00:39:53,040 I będziemy mieli wiek, który jest również będzie coś, co nam dano. 705 00:39:53,040 --> 00:39:56,020 I to jest całość naszego słownika. 706 00:39:56,020 --> 00:39:57,730 >> Więc to ma dwa elementy w nim. 707 00:39:57,730 --> 00:40:01,310 I tak, bo foreach Pętle są inteligentne, mamy 708 00:40:01,310 --> 00:40:04,900 może myśleć, i poprawnie mogą pomyśleć, że foreach 709 00:40:04,900 --> 00:40:08,080 może iterację to Słownik, drukowanie 710 00:40:08,080 --> 00:40:10,850 wartości podane przez imię i wiek. 711 00:40:10,850 --> 00:40:14,510 >> Więc w rzeczywistości nie tylko to. 712 00:40:14,510 --> 00:40:17,520 Miejmy budowy pętli foreach. 713 00:40:17,520 --> 00:40:23,351 I mamy zamiar zrobić dla _GET jak. 714 00:40:23,351 --> 00:40:24,850 I mamy zamiar wykonać następujące czynności. 715 00:40:24,850 --> 00:40:34,186 Zobaczmy więc, co się stanie, jeśli typ tylko słowo, a potem mówią echo słowa. 716 00:40:34,186 --> 00:40:40,540 Mamy również zamiar echo nową linię po prostu zrobić to trochę jaśniejsze, 717 00:40:40,540 --> 00:40:41,260 co się dzieje. 718 00:40:41,260 --> 00:40:42,890 >> Więc zobaczymy. 719 00:40:42,890 --> 00:40:44,390 To nie daje mi żadnych błędów. 720 00:40:44,390 --> 00:40:46,810 A my zamknąć to. 721 00:40:46,810 --> 00:40:51,020 Na naszej stronie masz zamiar robić dużo, że w trakcie pset7. 722 00:40:51,020 --> 00:40:53,890 Tak więc możemy powiedzieć, nazywam się Sam. 723 00:40:53,890 --> 00:40:58,560 Mój wiek to 45. 724 00:40:58,560 --> 00:41:01,060 To nie jest. 725 00:41:01,060 --> 00:41:05,640 Ale to wypisuje, jak oczekiwano, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> I tak, można zauważyć, że Pętla foreach did-- co tu 727 00:41:08,930 --> 00:41:12,360 wróćmy do tego, więc jest to na board-- mamy _GET jako słowa. 728 00:41:12,360 --> 00:41:15,130 I były cztery rzeczy w _GET. 729 00:41:15,130 --> 00:41:17,410 Ale to tylko wydrukować dwie rzeczy. 730 00:41:17,410 --> 00:41:21,290 foreach, będąc jego inteligencji siebie, Zakłada się, że to, co naprawdę chciał 731 00:41:21,290 --> 00:41:24,100 to wartości, a nie klucze. 732 00:41:24,100 --> 00:41:27,800 >> Ale jest na to sposób, że możemy drukować z klawiszy, a także, jeśli chcieliśmy. 733 00:41:27,800 --> 00:41:30,810 Gdybyśmy chcieli także wiedzieć, co zmienne te były nazywane, 734 00:41:30,810 --> 00:41:33,540 istnieje sposób, że Można uzyskać dostęp do tego również. 735 00:41:33,540 --> 00:41:36,840 A droga do rodzaju tego zrobić, więc można, powiedzieć, pozwala naprawdę 736 00:41:36,840 --> 00:41:39,485 podzielić go na par wartości kluczowych. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Zobaczmy więc, co się dzieje teraz. 739 00:41:47,580 --> 00:41:50,550 >> Tak więc mamy klucza. 740 00:41:50,550 --> 00:41:52,290 Mamy wartość. 741 00:41:52,290 --> 00:41:56,650 Mamy kolejny nowy Linia dla czytelności. 742 00:41:56,650 --> 00:42:00,540 I zobaczmy, co się stanie, kiedy to zrobić teraz. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Nie wiem, jak stary Jason. 745 00:42:06,720 --> 00:42:09,180 Jason 15. 746 00:42:09,180 --> 00:42:11,650 Mamy więc imię Jason, lat 15. 747 00:42:11,650 --> 00:42:15,830 Więc byliśmy w stanie uzyskać dostęp do klucza i pary wartości tego słownika 748 00:42:15,830 --> 00:42:18,590 po prostu mówiąc, jako kluczowych punktów do wartości. 749 00:42:18,590 --> 00:42:23,350 I to jest składniowym foreach nieco cukru, który umożliwia 750 00:42:23,350 --> 00:42:25,960 dostęp do rzeczy w słowniku. 751 00:42:25,960 --> 00:42:31,190 >> Więc mam nadzieję, że tego rodzaju podkreśla, moc pętli foreach. 752 00:42:31,190 --> 00:42:35,690 Można prawie rzut coś, co wydaje iterable, 753 00:42:35,690 --> 00:42:38,922 jak nic, że ma wielokrotność Elementy takie jak tablica, 754 00:42:38,922 --> 00:42:41,880 jak dictionary-- to są dwa podstawowe rzeczy będziesz pracujących z 755 00:42:41,880 --> 00:42:45,630 zarówno w życiu, jak iw pset 7. 756 00:42:45,630 --> 00:42:49,350 Tak więc można rzucać takie rzeczy na to, i będzie dowiedzieć się, 757 00:42:49,350 --> 00:42:51,030 co chcesz z nim zrobić. 758 00:42:51,030 --> 00:42:54,250 To będzie powiedzieć, OK, będę się te rzeczy z danych, które 759 00:42:54,250 --> 00:42:55,680 został przekazany do mnie. 760 00:42:55,680 --> 00:43:02,470 I to jest coś, że jesteś zamiar używać dużo w pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Idę do szybkiego przewijania w dół, by zobaczyć, gdzie jestem. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Czy ludzie mają pytania w tym momencie? 764 00:43:13,070 --> 00:43:13,778 Pytania w ogóle? 765 00:43:13,778 --> 00:43:14,400 Tak? 766 00:43:14,400 --> 00:43:18,320 >> PUBLICZNOŚCI: Więc z klucza i wartości, można to nazwać coś innego 767 00:43:18,320 --> 00:43:20,507 i to jeszcze działa? 768 00:43:20,507 --> 00:43:21,090 GŁOŚNIK: Ups. 769 00:43:21,090 --> 00:43:22,820 Wow, całkowicie usunięte całej linii. 770 00:43:22,820 --> 00:43:23,380 Świetna robota. 771 00:43:23,380 --> 00:43:26,502 Tak więc, a. 772 00:43:26,502 --> 00:43:30,109 Klucz i wartość jest tylko konwencja. 773 00:43:30,109 --> 00:43:30,650 Jest to pomocne. 774 00:43:30,650 --> 00:43:34,010 Można by trochę projekt punktów, może kilka punktów stylu 775 00:43:34,010 --> 00:43:36,970 za to, że z powodu tego naprawdę oddaje intencję. 776 00:43:36,970 --> 00:43:39,650 Ale mówimy i yarp. 777 00:43:39,650 --> 00:43:42,476 >> PUBLICZNOŚCI: Nie musisz się zmienić coś w pliku HTML 778 00:43:42,476 --> 00:43:43,607 w celu odzwierciedlenia, że? 779 00:43:43,607 --> 00:43:44,440 GŁOŚNIK: Wcale nie. 780 00:43:44,440 --> 00:43:47,260 PUBLICZNOŚCI: I to po prostu wie, że ze względu na równe większą than-- 781 00:43:47,260 --> 00:43:47,801 GŁOŚNIK: Tak. 782 00:43:47,801 --> 00:43:49,489 PUBLICZNOŚCI: --that wskaźnik, który that's-- 783 00:43:49,489 --> 00:43:50,030 GŁOŚNIK: Tak. 784 00:43:50,030 --> 00:43:52,260 To składni foreach, ale tak. 785 00:43:52,260 --> 00:43:53,720 >> PUBLICZNOŚCI: Nie są typy. 786 00:43:53,720 --> 00:43:57,230 Więc co, jeśli chcesz wiek będzie tylko numer? 787 00:43:57,230 --> 00:43:59,510 Czy istnieje sposób to zrobić? 788 00:43:59,510 --> 00:44:04,550 >> GŁOŚNIK: Istnieją sposoby, aby sprawdzić, czy Zmienne spełniać pewne typy. 789 00:44:04,550 --> 00:44:08,482 Więc PHP pyta trochę więcej od Ci, bo nie ma żadnych typów w. 790 00:44:08,482 --> 00:44:09,440 Niektóre sposoby prosi mniej. 791 00:44:09,440 --> 00:44:11,070 W pewnym sensie to pyta dalej. 792 00:44:11,070 --> 00:44:13,320 Bo jeśli masz tylko coś w zmiennej, 793 00:44:13,320 --> 00:44:14,960 nie masz pojęcia, jakiego rodzaju to jest. 794 00:44:14,960 --> 00:44:19,310 Ale jeśli jesteś mądry o zmiennych że przypisanie typów do i upewnić się, 795 00:44:19,310 --> 00:44:22,750 który funkcjonuje tylko return-- was chcą tylko powrotu do funkcji 796 00:44:22,750 --> 00:44:26,210 jeden rodzaj wartości, tak że można w zasadzie 797 00:44:26,210 --> 00:44:31,090 Spodziewam się, że zmienna wrócisz z funkcji będzie od rodzaju 798 00:44:31,090 --> 00:44:32,780 , że myślisz, że to będzie, w zasadzie. 799 00:44:32,780 --> 00:44:36,550 >> Ale jest kilka sposobów przez które można sprawdzić. 800 00:44:36,550 --> 00:44:39,801 Ja ich nie pamiętam przy mojej głowie. 801 00:44:39,801 --> 00:44:43,300 Czekam na to, aby włączyć niebieskie. 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 Istnieją metody wbudowane w PHP, które mogą 805 00:44:52,000 --> 00:44:54,440 sprawdzić typ zmiennych dla Ciebie. 806 00:44:54,440 --> 00:44:58,250 Ale jeśli przypisać zmienne elegancko, nie należy 807 00:44:58,250 --> 00:45:01,330 trzeba zrobić zbyt wiele w pset 7. 808 00:45:01,330 --> 00:45:02,780 Ale istnieją te metody. 809 00:45:02,780 --> 00:45:06,704 I to jest coś, co w tym samym języku. 810 00:45:06,704 --> 00:45:08,370 A ja nie pamiętam dokładnej składni. 811 00:45:08,370 --> 00:45:09,930 Możemy jeszcze sprawdzić. 812 00:45:09,930 --> 00:45:11,974 Ale czas jest najważniejszy. 813 00:45:11,974 --> 00:45:13,890 Czy mam nikogo masz więcej pytań? 814 00:45:13,890 --> 00:45:14,660 Tak. 815 00:45:14,660 --> 00:45:15,951 >> PUBLICZNOŚCI: Mam tylko jeden. 816 00:45:15,951 --> 00:45:19,050 Więc wymienione metody GET, ale nie wspomniałeś metody POST. 817 00:45:19,050 --> 00:45:20,500 Czy my wracamy do tego? 818 00:45:20,500 --> 00:45:21,540 >> GŁOŚNIK: Tak, będziemy wrócimy do tego. 819 00:45:21,540 --> 00:45:24,840 To jest dokładnie to, czego szukałem w moim telefonie, który teraz zasnął, 820 00:45:24,840 --> 00:45:26,960 ale będę go znaleźć. 821 00:45:26,960 --> 00:45:30,680 Wystarczy upewnić się, że uderzył wszystkie notatki PHP. 822 00:45:30,680 --> 00:45:35,640 Tak, nie ma wersji debugowania. 823 00:45:35,640 --> 00:45:41,940 Tak, mamy jeszcze kilka rzeczy, które chcemy teraz zrobić w tym momencie. 824 00:45:41,940 --> 00:45:45,980 >> Więc mówisz POST których wspomniałeś, 825 00:45:45,980 --> 00:45:49,630 jedyna różnica między GET i POST jest 826 00:45:49,630 --> 00:45:53,150 że pamiętam, kiedy patrzyliśmy pod tym adresem URL i widzieliśmy, oh, 827 00:45:53,150 --> 00:45:58,270 Nazwa równa ai wiek wynosi yarp w samym URL tam na nas. 828 00:45:58,270 --> 00:46:03,300 POST jest trochę bardziej skryty z upływem informacji. 829 00:46:03,300 --> 00:46:08,090 >> Więc jeśli nie chce użytkownika wiedzieć, na przykład, 830 00:46:08,090 --> 00:46:11,160 nie chciał nazwę użytkownika i hasło osoby 831 00:46:11,160 --> 00:46:15,080 aktualnie zalogowany, aby być wyświetlane w URL, co jest uzasadnione, co 832 00:46:15,080 --> 00:46:17,770 Nie chcą, aby w adresie URL, dlatego, że ktoś może go zobaczyć. 833 00:46:17,770 --> 00:46:21,520 Jeśli odwołuje się kogoś do stronie nie chcę ich URL otynkowany tam, 834 00:46:21,520 --> 00:46:27,850 dlatego, że pozwalają ludziom się zalogować tylko z wklejenia adresu URL zamiast 835 00:46:27,850 --> 00:46:29,670 faktycznie wypełnienie formularza. 836 00:46:29,670 --> 00:46:31,710 POST jest trochę bardziej tajemniczy. 837 00:46:31,710 --> 00:46:34,150 >> I tylko rzeczy, które będziemy musieli zmienić 838 00:46:34,150 --> 00:46:38,550 to ta metoda, zmiana z dostać się pisać. 839 00:46:38,550 --> 00:46:42,367 A następnie wewnątrz HTTP, zamiast uzyskiwania dostępu do _GET tablicy, 840 00:46:42,367 --> 00:46:43,950 mamy zamiar otworzyć _POST tablicy. 841 00:46:43,950 --> 00:46:48,600 >> A my zauważyć, że jeśli otwieramy to z powrotem się ponownie, 842 00:46:48,600 --> 00:46:51,910 Jason powoli zmniejsza się z wiekiem. 843 00:46:51,910 --> 00:46:53,230 imię Jason, wiek 14. 844 00:46:53,230 --> 00:46:54,280 Ten sam materiał wyskakuje. 845 00:46:54,280 --> 00:46:57,190 Ale idziemy do adresu URL i te zmienne nie są tam. 846 00:46:57,190 --> 00:47:00,540 >> A sposób, że POST passes-- więc pamiętać, 847 00:47:00,540 --> 00:47:02,750 jak patrzeć na źródła strony. 848 00:47:02,750 --> 00:47:04,570 Idziemy do sieci. 849 00:47:04,570 --> 00:47:06,920 Mamy odświeżyć. 850 00:47:06,920 --> 00:47:10,690 I to jest inna sprawa, że POST daje ostrzeżenia o. 851 00:47:10,690 --> 00:47:15,050 Być może już okno, tekst box jak to w przeglądarce. 852 00:47:15,050 --> 00:47:18,170 Jesteś pewny że chcesz aby wysłać formularz ponownie? 853 00:47:18,170 --> 00:47:21,170 POST to co się wysyłanie tych formularzy. 854 00:47:21,170 --> 00:47:24,680 >> Bo w zasadzie, jeśli wysłałeś dane karty kredytowej do kogoś, 855 00:47:24,680 --> 00:47:26,350 że nie będzie pojawiać się w adresie URL. 856 00:47:26,350 --> 00:47:28,180 To będzie żądanie POST. 857 00:47:28,180 --> 00:47:32,905 Więc kiedy odśwież stronę, to ponownie wysłać ten wniosek post. 858 00:47:32,905 --> 00:47:35,530 Więc teraz my chcemy wysłać tworzą ponownie, ponieważ to nie będzie 859 00:47:35,530 --> 00:47:37,340 tworzyć żadnych duplikatów zakupów. 860 00:47:37,340 --> 00:47:41,160 >> A my zauważyć, że tu na dole, metoda używamy jest POST. 861 00:47:41,160 --> 00:47:43,065 I rzeczywiście przenieść bajtów. 862 00:47:43,065 --> 00:47:45,460 Przekazywało 401 z nich. 863 00:47:45,460 --> 00:47:47,190 Program jest dość mały. 864 00:47:47,190 --> 00:47:51,600 Ale nie ma nigdzie, że możemy zobaczyć wartości, które są przekazywane. 865 00:47:51,600 --> 00:47:59,540 Strony internetowe sami widzą, ale my jako użytkownicy nie są w stanie zobaczyć, 866 00:47:59,540 --> 00:48:01,650 chyba że jesteś hakerem. 867 00:48:01,650 --> 00:48:05,340 Jeśli jesteś dobrym hackerem, można spojrzeć. 868 00:48:05,340 --> 00:48:09,360 >> Jeśli znasz podstawowe Format HTML, 869 00:48:09,360 --> 00:48:11,790 wartości będzie ujawnią się stron. 870 00:48:11,790 --> 00:48:13,160 Będziesz mógł zobaczyć. 871 00:48:13,160 --> 00:48:16,720 Wartości będzie tam, że są tylko trochę mniej oczywiste dla Ciebie 872 00:48:16,720 --> 00:48:19,522 dostępu, w zasadzie. 873 00:48:19,522 --> 00:48:23,620 >> Czy mamy więcej pytania o GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- co będziemy robić dalej jest rzeczywiście spojrzeć na niektóre z kodem 875 00:48:26,800 --> 00:48:30,837 że dajesz w pset 7, mówić o w jaki sposób wykorzystuje niektóre z tych pojęć, 876 00:48:30,837 --> 00:48:32,670 i mówić o rzeczy, które masz zamiar 877 00:48:32,670 --> 00:48:35,090 musiał zrobić trochę w pset 7. 878 00:48:35,090 --> 00:48:36,760 Więcej pytań wcześniej? 879 00:48:36,760 --> 00:48:38,047 Więcej pytań macie? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Wielki. 882 00:48:41,840 --> 00:48:45,370 >> Dobrze, spójrzmy trochę na pset 7, 883 00:48:45,370 --> 00:48:49,530 nie ma wątpliwości, kim jesteś wszystkie najbardziej podekscytowani. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 To znaczy, to jest coś, David przechodzi trochę. 886 00:48:54,750 --> 00:49:00,890 Ale mamy trzy katalogi w góry, jak również plik konfiguracyjny. 887 00:49:00,890 --> 00:49:04,650 To dla baz danych, które będziesz rozmawiać na około pięć minut. 888 00:49:04,650 --> 00:49:07,220 Zawiera, nigdy nie trzeba szukać w katalogu 889 00:49:07,220 --> 00:49:12,480 jeśli nie chcesz, ale to miło wiem, że są różnego rodzaju pomocników. 890 00:49:12,480 --> 00:49:14,210 Pomocnicy jest jak przydatnych funkcji. 891 00:49:14,210 --> 00:49:18,120 A potem mamy config, która określa pewne rzeczy się. 892 00:49:18,120 --> 00:49:24,590 >> Istnieje kilka funkcji, które CS50 ma napisane, że są w pomocnika i config. 893 00:49:24,590 --> 00:49:27,250 A niektóre z PHP, które już istnieje w plikach 894 00:49:27,250 --> 00:49:30,880 będzie zrobić wiele z bardziej rodzaju Noga z rozwarty pracy dla Ciebie. 895 00:49:30,880 --> 00:49:35,250 Podobnie jak w przypadku idziemy do publicznej wiadomości login.php, która jest co 896 00:49:35,250 --> 00:49:38,350 pokazuje się w prawo, gdy idziesz do pset 7. 897 00:49:38,350 --> 00:49:40,580 Zobaczymy, że nie wymaga to oświadczenie. 898 00:49:40,580 --> 00:49:43,420 A to coś w rodzaju ostre obejmują, hashtag 899 00:49:43,420 --> 00:49:46,850 to jeśli jesteś z nowszej generacji. 900 00:49:46,850 --> 00:49:49,740 Ale to w zasadzie mówi, że muszę dostęp 901 00:49:49,740 --> 00:49:52,260 do wszystkich funkcji w config.php. 902 00:49:52,260 --> 00:49:55,290 I można mieć wymagają dla wszelkiego rodzaju inne rzeczy. 903 00:49:55,290 --> 00:49:59,670 >> config rzeczywiście wymaga pomocników. 904 00:49:59,670 --> 00:50:02,490 Jeśli więc wymagają config, jesteś również 905 00:50:02,490 --> 00:50:05,660 w tym lub wymagających, jak również pomocników. 906 00:50:05,660 --> 00:50:09,590 Tak, że daje dostęp do wszystkich fajne funkcje, które mamy zamiar używać, 907 00:50:09,590 --> 00:50:10,420 rzeczy, jak czynią. 908 00:50:10,420 --> 00:50:13,490 Jestem rzeczywiście zamierza złagodzić to w dół trochę. 909 00:50:13,490 --> 00:50:16,280 Więc funkcji czym jesteśmy zamiar przejść przez 910 00:50:16,280 --> 00:50:22,380 zanim przejdziemy do SQL trochę bit jest funkcja login.php, po prostu 911 00:50:22,380 --> 00:50:26,586 ponieważ wykorzystuje niektóre z tematów że po prostu mówi się w PHP. 912 00:50:26,586 --> 00:50:30,840 >> Widzisz pierwszą rzeczą jest, jeśli $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Jest to kolejna zmienna globalna, że idziesz do czynienia. 914 00:50:34,500 --> 00:50:38,460 To jak _GET i _POST, ale co Serwer zawiera się to może niech cię 915 00:50:38,460 --> 00:50:42,730 wiedzieć, czy metoda żądania Był to GET lub POST. 916 00:50:42,730 --> 00:50:47,250 Podobnie jak wcześniej, co robimy jest tylko w naszym kodzie, które pisaliśmy, 917 00:50:47,250 --> 00:50:51,880 my właśnie to się zmienia i GET POST w zależności od tego, co HTML ma. 918 00:50:51,880 --> 00:50:55,120 Ale są strony, które mogą być dostępne z obu rodzajów wniosków. 919 00:50:55,120 --> 00:50:57,410 A może chcesz zrobić różne rzeczy w zależności 920 00:50:57,410 --> 00:50:59,740 od typu żądania, tak jak robi login. 921 00:50:59,740 --> 00:51:04,400 >> Więc można sprawdzić ten wniosek Metoda dostępu za pośrednictwem klawiszy, 922 00:51:04,400 --> 00:51:08,630 za pomocą klucza i uzyskiwanie wartość czegoś w słowniku 923 00:51:08,630 --> 00:51:10,260 _SERWER. 924 00:51:10,260 --> 00:51:13,800 Tak to już inna globalna Zmienna jak _GET i _POST. 925 00:51:13,800 --> 00:51:16,990 >> Jeśli to GET, chcemy renderowanie formularza logowania. 926 00:51:16,990 --> 00:51:21,920 Czynią to funkcja, która w zasadzie po prostu umieszcza się odpowiedni kod HTML 927 00:51:21,920 --> 00:51:24,500 i przekazuje mu pewne parametry. 928 00:51:24,500 --> 00:51:28,740 Ten tytuł to parametr, który jest stosowane w wyświetlaniu, co dziwne, 929 00:51:28,740 --> 00:51:32,670 tytuł strony w Pytanie, rzecz się tutaj, 930 00:51:32,670 --> 00:51:34,850 powiedzieć lub komentarzy w naszym poprzednim przykładzie. 931 00:51:34,850 --> 00:51:36,100 Teraz mamy inną rzecz. 932 00:51:36,100 --> 00:51:38,570 Else if to POST, możemy zrobić kilka innych rzeczy. 933 00:51:38,570 --> 00:51:40,790 Używamy tego pustą metodę. 934 00:51:40,790 --> 00:51:42,750 To nie istnieje, to jest puste. 935 00:51:42,750 --> 00:51:45,440 I widzieliśmy wcześniej, PHP ma sporo zbudowany 936 00:51:45,440 --> 00:51:52,370 w metodach, że David will-- jeśli istnieje to metody, które są przydatne dla Ciebie, 937 00:51:52,370 --> 00:51:55,560 będą powiadamiani o Ciebie na spacer po tym Dawida 938 00:51:55,560 --> 00:51:59,770 Przegląd daje na początku, a także osób bitów Zamyla jest. 939 00:51:59,770 --> 00:52:01,040 Wróciła każdy. 940 00:52:01,040 --> 00:52:03,100 Wszyscy możemy się radować. 941 00:52:03,100 --> 00:52:06,530 Przepraszamy jest trafnie nazwany funkcji że tak w zasadzie drukuje 942 00:52:06,530 --> 00:52:10,130 Niektóre komunikaty o błędach, bo CS50 jest bardzo uprzejmy. 943 00:52:10,130 --> 00:52:14,770 >> A teraz, że jest to trudne nieco bo to 944 00:52:14,770 --> 00:52:16,697 gdzie jesteśmy, przeglądając bazę danych. 945 00:52:16,697 --> 00:52:18,280 Teraz nie rozmawiałem na temat baz danych. 946 00:52:18,280 --> 00:52:22,220 I będziemy w następnym pięć minut lub tak, maksymalna. 947 00:52:22,220 --> 00:52:24,980 Jest to jednak czynność że CS50 napisał 948 00:52:24,980 --> 00:52:38,050 aby dostać stolik w zasadzie z bazy danych że pracujesz w pset 7. 949 00:52:38,050 --> 00:52:40,860 Jestem naprawdę źle z moim Indeksowanie zera dziś. 950 00:52:40,860 --> 00:52:42,060 Ale tak, to jest 7. 951 00:52:42,060 --> 00:52:46,340 >> Więc zapytanie to będzie zwracać liczbę tablica, w zasadzie jest kluczem nieco. 952 00:52:46,340 --> 00:52:54,130 A ponieważ te rzeczy nie mają pisania, więc wierszy jest tablicą tablic. 953 00:52:54,130 --> 00:52:59,480 Bo kiedy myślimy o stół, co będziemy robić 954 00:52:59,480 --> 00:53:04,830 jest, jak dowiedzieliśmy się w psets jak w grze z 15, w każdym razie 955 00:53:04,830 --> 00:53:06,990 gdzie trzeba było użyć podwójna tablica, w zasadzie 956 00:53:06,990 --> 00:53:15,210 mają szereg innych tablice sprawia, że ​​stół. 957 00:53:15,210 --> 00:53:18,150 I masz wiersze i kolumny. 958 00:53:18,150 --> 00:53:24,450 I wtedy można z nich korzystać, jak [0] [1], pojawi się [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Podstawowe rzeczy w tym stylu. 960 00:53:26,900 --> 00:53:29,380 >> Więc co robimy tutaj, w tej funkcji, 961 00:53:29,380 --> 00:53:35,070 pytamy bazy danych jeżeli użytkownik to 962 00:53:35,070 --> 00:53:40,200 próby logowania, które będą wysłane za pomocą metody POST. 963 00:53:40,200 --> 00:53:43,950 Zobaczymy, jesteśmy coraz nazwa użytkownika z _POST. 964 00:53:43,950 --> 00:53:46,900 Oni Wysłano użytkownik lub, wyśle ​​wartość 965 00:53:46,900 --> 00:53:50,750 za pośrednictwem formularza przez POST, ponieważ to nazwa użytkownika i hasło rzeczy. 966 00:53:50,750 --> 00:53:54,830 Sprawdzamy nazwę użytkownika zobaczyć, czy to w tabeli? 967 00:53:54,830 --> 00:53:58,070 Bo jeśli użytkownik loguje w, a następnie jego nazwę 968 00:53:58,070 --> 00:54:03,320 powinien być przechowywany w tabeli użytkowników, które istnieją w tym miejscu. 969 00:54:03,320 --> 00:54:09,360 Więc w zasadzie wtedy, gdy użytkownik znajduje się w bazie danych, 970 00:54:09,360 --> 00:54:16,400 zapytanie będzie chciał wrócić że wiersz, który jest tablicą. 971 00:54:16,400 --> 00:54:24,560 >> Ale trudne jest to, że jeśli nawet jeśli podwójna tablica jest tylko jeden wiersz, 972 00:54:24,560 --> 00:54:31,900 nawet jeśli jest to jeden wiersz array-- jak masz basically-- 973 00:54:31,900 --> 00:54:36,900 jeśli masz rozmiar jednej tablicy że trzyma kolejną tablicę, 974 00:54:36,900 --> 00:54:38,940 jesteś naprawdę do czynienia z jednej kolumnie. 975 00:54:38,940 --> 00:54:41,420 Ale to wciąż traktowane jak podwójne tablicy. 976 00:54:41,420 --> 00:54:44,560 >> I to jest, gdzie może czasami trudne, bo mamy wiersze tutaj. 977 00:54:44,560 --> 00:54:46,440 Nasza zmienna jest wierszy. 978 00:54:46,440 --> 00:54:48,590 A następnie tworzymy zmienna nazywa się nowy wiersz 979 00:54:48,590 --> 00:54:51,450 i ustawienie go równa pierwszy wiersz wiersze. 980 00:54:51,450 --> 00:54:55,150 A zauważysz, że komentarz mówi, że to pierwszy i jedyny wiersz. 981 00:54:55,150 --> 00:54:57,080 >> Więc jest to trudne części, w której obecnie działa 982 00:54:57,080 --> 00:54:59,660 może powrócić tablice bardzo łatwo. 983 00:54:59,660 --> 00:55:01,270 Nie ma mallocs. 984 00:55:01,270 --> 00:55:02,280 Nie zobaczysz mallocs. 985 00:55:02,280 --> 00:55:03,940 Tak więc nie będzie widać SEG usterek. 986 00:55:03,940 --> 00:55:08,380 Ale funkcjonuje nadal będzie przejściu wokół tablic i danych w grupach. 987 00:55:08,380 --> 00:55:12,250 I trzeba uważać na to, co dokładnie swoje funkcje powróci. 988 00:55:12,250 --> 00:55:15,160 I nawet jeśli jest to jeden kolumny tak, zapytania 989 00:55:15,160 --> 00:55:17,520 jest jeszcze wrócić podwójną tablicę. 990 00:55:17,520 --> 00:55:21,390 Tak, aby uzyskać dostęp do column-- lub można myśleć o tym wszystkim, jak odwrócony 991 00:55:21,390 --> 00:55:22,870 ponieważ mówimy o wierszach. 992 00:55:22,870 --> 00:55:26,810 Ale aby uzyskać dostęp do jednego wiersza, nie można po prostu powiedzieć, wiersze. 993 00:55:26,810 --> 00:55:31,540 Mimo, że jest to jeden wiersz, trzeba nie rowsrows [0], aby wyeliminować tego rodzaju 994 00:55:31,540 --> 00:55:37,360 zewnętrzna nieco tablicy i mamy tylko swój jeden wiersz. 995 00:55:37,360 --> 00:55:38,342 >> Zrobić kilka innych rzeczy. 996 00:55:38,342 --> 00:55:40,050 Jest to funkcja nazywa password_verify 997 00:55:40,050 --> 00:55:42,980 które weryfikuje hasło, że został wysłany. 998 00:55:42,980 --> 00:55:48,500 A potem widzimy kolejny globalny Zmienna tutaj, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Zasadniczo Session ID sposób można śledzić 1000 00:55:51,340 --> 00:55:53,990 od tego, czy ktoś jest zalogowany, czy nie. 1001 00:55:53,990 --> 00:55:58,590 Więc teraz z login.php, jesteśmy zalogowaniu użytkownika w. 1002 00:55:58,590 --> 00:56:01,920 Więc to, co chcemy zrobić, to chcemy twierdzą, że identyfikator sesji wynosi rzędu 1003 00:56:01,920 --> 00:56:05,890 id, która po prostu ma sens, ponieważ każdy wiersz będzie miał inny identyfikator 1004 00:56:05,890 --> 00:56:07,239 ilość w części tabeli. 1005 00:56:07,239 --> 00:56:09,280 Zajmiemy się SQL w sekund, więc jeśli to 1006 00:56:09,280 --> 00:56:13,500 Wygląda trochę jak bla, wtedy wszystko się wyjaśni. 1007 00:56:13,500 --> 00:56:18,450 Ale mamy zamiar ustawić identyfikator równy właściwą rzeczą, zalogowaniu użytkownika w. 1008 00:56:18,450 --> 00:56:20,530 Przepraszam, jeśli coś pójdzie nie tak. 1009 00:56:20,530 --> 00:56:27,600 I to jest loginy celem w życie jako profesor Malan powie. 1010 00:56:27,600 --> 00:56:29,130 >> Tak to było login.php. 1011 00:56:29,130 --> 00:56:33,750 I wiele kodu PHP piszesz w pset 7, będą trochę. 1012 00:56:33,750 --> 00:56:36,470 Nie zapomnij chmod do odpowiednie prawa. 1013 00:56:36,470 --> 00:56:40,180 Będzie trochę o że na początku spec. 1014 00:56:40,180 --> 00:56:46,382 >> Ale PHP, który jesteś pisanie będzie 1015 00:56:46,382 --> 00:56:47,840 robi rzeczy, który jest podobny do tego. 1016 00:56:47,840 --> 00:56:49,715 Będziesz się dostępu do pewnych rzeczy, które 1017 00:56:49,715 --> 00:56:52,760 są wam dane w zmienne globalne PHP, które 1018 00:56:52,760 --> 00:56:56,105 do czynienia z prądem zalogowany użytkownik, czy istnieje 1019 00:56:56,105 --> 00:57:00,460 zostały żądań wysyłanych do tego Strona, różne takie rzeczy. 1020 00:57:00,460 --> 00:57:05,790 I będzie potencjalnie iteracja rzędami tej rzeczy. 1021 00:57:05,790 --> 00:57:09,010 >> W innej funkcji, zapytania nie zwraca tę podwójną tablicę. 1022 00:57:09,010 --> 00:57:11,450 A jeśli nie są niż jednego wierszy w nim, 1023 00:57:11,450 --> 00:57:15,080 Jeśli nie are-- tak, jeśli istnieją więcej niż jeden rzędy w nim 1024 00:57:15,080 --> 00:57:16,870 to będzie stół. 1025 00:57:16,870 --> 00:57:20,500 A może chcesz iteracji przez rzędy tej tablicy przy użyciu 1026 00:57:20,500 --> 00:57:22,860 pętli foreach, które opisaliśmy. 1027 00:57:22,860 --> 00:57:30,270 >> Więc jeśli nie foreach na podwójne tablica, co będzie się word-- tutaj, 1028 00:57:30,270 --> 00:57:31,909 Ja właściwie pisać. 1029 00:57:31,909 --> 00:57:32,950 Ja to napisać szybkie tutaj. 1030 00:57:32,950 --> 00:57:44,280 >> Jeśli mamy foreach wierszy w rzędzie, co rodzaj wiersza? 1031 00:57:44,280 --> 00:57:45,390 Czy ktoś wie? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Masz to? 1034 00:57:54,500 --> 00:57:57,110 Więc wierszy jest podwójna tablica. 1035 00:57:57,110 --> 00:58:02,810 Więc co jest foreach będzie wnioskować że chcemy z tego podwójnego tablicy 1036 00:58:02,810 --> 00:58:04,280 jeśli mamy iteracji nad nim? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Możemy po prostu założyć, że to będzie być albo elementy, 1039 00:58:10,770 --> 00:58:14,970 lub wiersze lub kolumny, w zasadzie. 1040 00:58:14,970 --> 00:58:18,740 I tak wierszy i kolumn my można traktować jako samo. 1041 00:58:18,740 --> 00:58:23,880 >> Zasadniczo co pętli foreach będzie zrobić, to to będzie zwracać wierszy. 1042 00:58:23,880 --> 00:58:28,500 wiersz będzie typu rzędu, natomiast wierszy jest podwójna tablica. 1043 00:58:28,500 --> 00:58:32,290 Więc jeśli dasz foreach podwójna tablica, to 1044 00:58:32,290 --> 00:58:35,830 nie będzie iteracji więcej niż jeden poziom głębokości. 1045 00:58:35,830 --> 00:58:44,464 Która jest w zasadzie powiedzieć, czy istnieje osiem komórek w tym table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, 8-- Pętla foreach nie jest 1047 00:58:48,110 --> 00:58:51,880 zamiar przejść przez każdy z tych komórek. 1048 00:58:51,880 --> 00:58:56,390 Co pętla foreach zrobi został on będzie przejść przez ten rząd, 1049 00:58:56,390 --> 00:58:57,870 daje ten cały rząd. 1050 00:58:57,870 --> 00:58:59,410 A następnie będzie ona przejść przez ten rząd. 1051 00:58:59,410 --> 00:59:01,850 >> Więc to tylko iteracje jeden poziom głęboki. 1052 00:59:01,850 --> 00:59:05,310 Jeśli dodać zagnieżdżone Pętla foreach, to 1053 00:59:05,310 --> 00:59:16,280 może traktować każdy wiersz zwrócony z wiersze, zrobić foreach wiersz jako elementu, 1054 00:59:16,280 --> 00:59:17,640 powiedzmy. 1055 00:59:17,640 --> 00:59:22,750 A potem można echo elementu. 1056 00:59:22,750 --> 00:59:24,930 Więc to jest krótka trochę odświeżające, w jaki sposób 1057 00:59:24,930 --> 00:59:30,220 być może używasz foreach pętli w kontekście zapytania. 1058 00:59:30,220 --> 00:59:32,840 >> Czy są jakieś pytania dotyczące PHP? 1059 00:59:32,840 --> 00:59:36,520 Cokolwiek, zanim przejść do rozmowy o SQL 1060 00:59:36,520 --> 00:59:37,820 i zabawy z bazy danych? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Czuję się dobrze? 1063 00:59:42,110 --> 00:59:42,750 Czuję się dobrze. 1064 00:59:42,750 --> 00:59:43,470 W porządku. 1065 00:59:43,470 --> 00:59:49,130 >> Przejdźmy z powrotem do PowerPoint, które prawdopodobnie przegapić. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Ludzie, którzy są w moim dziale zwykle będzie wiedział, że Podpozycje akronimów 1068 00:59:57,900 --> 01:00:01,220 zawsze są tylko pierwsze słowa Myślę, że tego meczu, który 1069 01:00:01,220 --> 01:00:02,690 algorithm-- ten skrót. 1070 01:00:02,690 --> 01:00:04,090 To nie jest algorytm. 1071 01:00:04,090 --> 01:00:08,050 >> Więc jest to baza danych SQL. 1072 01:00:08,050 --> 01:00:11,060 Jest to język, w którym współpracuje z bazami danych. 1073 01:00:11,060 --> 01:00:14,440 I wszystkie bazy danych są to tabele, przynajmniej w drodze 1074 01:00:14,440 --> 01:00:17,220 że SQL reprezentuje je. 1075 01:00:17,220 --> 01:00:23,610 >> Inny sposób myślenia o bazach danych jest Bazy danych to zestaw kluczy i wartości 1076 01:00:23,610 --> 01:00:24,110 gruntownie. 1077 01:00:24,110 --> 01:00:29,530 Możesz pomyśleć o bazie danych jako słownikiem, a także w tabeli. 1078 01:00:29,530 --> 01:00:34,300 Zasadniczo jest to sposób skojarzyć różne dane z innymi danymi, 1079 01:00:34,300 --> 01:00:36,270 Często przez rzędy i kolumny. 1080 01:00:36,270 --> 01:00:38,470 I to jest sposób to SQL działa najlepiej. 1081 01:00:38,470 --> 01:00:40,880 >> Więc to jest jeden z przykładów tabeli. 1082 01:00:40,880 --> 01:00:44,610 Mam kilka przykładów ludzie w mojej sekcji, która 1083 01:00:44,610 --> 01:00:45,970 Nie miałem czasu na zmianę. 1084 01:00:45,970 --> 01:00:52,020 Ale mamy takie rzeczy jak ID, Nazwa, supermocarstwem i rodzinnym. 1085 01:00:52,020 --> 01:00:54,100 Nie wiem, gdzie każdy jest ze w moim dziale, 1086 01:00:54,100 --> 01:00:56,266 tak, jestem po prostu założyć, każdy jest z Nowego Jorku 1087 01:00:56,266 --> 01:00:59,370 Miasto, ponieważ mam wysoki statystyczna prawdopodobieństwo jest prawidłowe. 1088 01:00:59,370 --> 01:01:04,200 >> SQL automatycznie zrobi obchodzi kolumny ID dla Ciebie. 1089 01:01:04,200 --> 01:01:07,560 Jeśli wstawić nowy wiersz do bazy danych SQL, 1090 01:01:07,560 --> 01:01:09,700 że będzie zwiększać Numer ID i po prostu 1091 01:01:09,700 --> 01:01:14,890 w zasadzie trzymać jak pięć nazwisk, supermocarstwem, rodzinnym, kto 1092 01:01:14,890 --> 01:01:16,430 na końcu tabeli. 1093 01:01:16,430 --> 01:01:19,160 Tak Identyfikator jest kolumna będziesz Nigdy nie musisz się martwić. 1094 01:01:19,160 --> 01:01:22,770 Jednak, podobnie jak w przypadku z login.php, kiedy 1095 01:01:22,770 --> 01:01:26,610 były coraz ID sesji z tabeli i tylko przy użyciu identyfikatora, 1096 01:01:26,610 --> 01:01:30,320 ID jest sposobem jednoznacznej identyfikacji element bazy danych. 1097 01:01:30,320 --> 01:01:34,980 >> Więc jeśli mieliśmy dwa Sams, obie który nauczył CS50, a obie kto 1098 01:01:34,980 --> 01:01:39,370 były z Milwaukee, tym będzie wciąż mają różne numery identyfikacyjne 1099 01:01:39,370 --> 01:01:43,420 a tym samym być różne w kontekst tabeli. 1100 01:01:43,420 --> 01:01:48,700 Więc to jest to, co SQL zajmuje w, pracy z na tylnym końcu. 1101 01:01:48,700 --> 01:01:54,160 >> Teraz są to cztery polecenia że trzeba pracować z SQL. 1102 01:01:54,160 --> 01:01:56,390 I wrzuciłem je wszystkie na jednym slajdzie. 1103 01:01:56,390 --> 01:01:59,530 Ale mamy zamiar przejść przez je indywidualnie. 1104 01:01:59,530 --> 01:02:03,300 >> Pierwsza komenda UPDATE która robi to, co można się spodziewać. 1105 01:02:03,300 --> 01:02:07,240 Powiedzmy, że masz jakieś dane w stół to nieaktualne. 1106 01:02:07,240 --> 01:02:09,470 Jak jeśli utrzymanie utwór nazwisk ludzi 1107 01:02:09,470 --> 01:02:13,350 i wieku, jeśli ktoś jest Wzrost wieku, a następnie 1108 01:02:13,350 --> 01:02:18,590 będziesz chciał iść i Wystarczy, że aktualizować wiek osoby. 1109 01:02:18,590 --> 01:02:21,902 Na przykład, który pracuje z naszym pierwszym table-- 1110 01:02:21,902 --> 01:02:24,610 nie martw się o pisanie wszystkich te polecenia w tym samym czasie. 1111 01:02:24,610 --> 01:02:27,640 Ale jeśli masz aktualizacji dół, to będzie dobre dla tej części, 1112 01:02:27,640 --> 01:02:29,790 bo mamy zamiar wrócić do stołu. 1113 01:02:29,790 --> 01:02:33,920 >> Tak więc, jeśli wrócimy do stołu, powiedzmy, że coś, co się stało 1114 01:02:33,920 --> 01:02:38,480 było nie było trzęsienie ziemi lub wina, że ​​linia podziału bezpośrednio 1115 01:02:38,480 --> 01:02:39,920 przez New York City. 1116 01:02:39,920 --> 01:02:45,130 I chcieliśmy aktualizacji wszystkich który mieszkał w Nowym Jorku. 1117 01:02:45,130 --> 01:02:49,670 Wszyscy mieli przenieść się do Pensylwanii. 1118 01:02:49,670 --> 01:02:51,130 To nie jest miasto rodzinne. 1119 01:02:51,130 --> 01:02:53,180 Wszyscy mieli przenieść się do New Haven. 1120 01:02:53,180 --> 01:02:54,030 No to jedziemy. 1121 01:02:54,030 --> 01:02:57,630 Więc wszyscy w Nowym Jorku przenosi się do New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> A więc to jest coś, co jest edycji trzy wiersze w tabeli. 1123 01:03:01,300 --> 01:03:04,716 Ale w SQL, można to zrobić że tylko w jednym oświadczeniu. 1124 01:03:04,716 --> 01:03:05,715 Więc wracamy do aktualizacji. 1125 01:03:05,715 --> 01:03:09,670 Pozwól mi szybkie usunąć tę płytę ponownie. 1126 01:03:09,670 --> 01:03:14,570 Gdy mówimy o aktualizowanie istnieją 1127 01:03:14,570 --> 01:03:17,640 kilka części składni, które są kluczowe. 1128 01:03:17,640 --> 01:03:19,770 Cóż, składni jest kluczem. 1129 01:03:19,770 --> 01:03:22,210 Ale rzeczy w kolorze zielonym jest opcjonalne. 1130 01:03:22,210 --> 01:03:25,680 Białe są wymagane, jak predefiniowane nazwy. 1131 01:03:25,680 --> 01:03:30,750 I niebieski są rzeczy które różnią się w zależności od stołu. 1132 01:03:30,750 --> 01:03:34,640 Więc to, co się dzieje z program tutaj, tam kolor. 1133 01:03:34,640 --> 01:03:40,250 >> Więc jeśli chcesz zaktualizować tylko te wiersze ludzi, którzy mieszkają w Nowym Jorku, 1134 01:03:40,250 --> 01:03:43,490 więc co byśmy zrobili, gdybyśmy powiedział UPDATE? 1135 01:03:43,490 --> 01:03:46,320 Więc tabela jest gdzie umieścić nazwa naszej tabeli. 1136 01:03:46,320 --> 01:03:49,170 Powiedzmy, nazwę naszej tabeli jest tabela jeden. 1137 01:03:49,170 --> 01:03:52,515 Dlatego chcemy, aby zaktualizować tabelę jeden. 1138 01:03:52,515 --> 01:03:57,470 I chcemy set-- co chcemy ustawić? 1139 01:03:57,470 --> 01:04:05,160 Cóż chcemy powiedzieć, więc column-- PHP Traktuje wiersze jako niepowtarzalne identyfikatory. 1140 01:04:05,160 --> 01:04:07,930 A następnie kolumny są różne pola 1141 01:04:07,930 --> 01:04:09,940 z tych elementów danych. 1142 01:04:09,940 --> 01:04:14,210 >> Tak więc pierwszym elementem bazy danych ma imię Sam, supermocarstwa CS50, 1143 01:04:14,210 --> 01:04:16,210 i rodzinnym mieście Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Jeśli więc wspomniany zestaw, spójrzmy na parametry jeszcze, że zestaw ma. 1145 01:04:20,710 --> 01:04:23,880 Mamy kolumny jest równa wartości. 1146 01:04:23,880 --> 01:04:27,290 Dlatego chcemy, aby powiedzieć, niektóre column-- które pamiętam 1147 01:04:27,290 --> 01:04:31,850 jest field-- chcemy zobaczyć pola równa czegoś nowego. 1148 01:04:31,850 --> 01:04:42,340 >> Jeśli więc tylko, że aktualizacja tabela 1, nazwa zestawu równa Elliot. 1149 01:04:42,340 --> 01:04:46,310 Trochę ludzi z Nowa sekcja w tej sprawie. 1150 01:04:46,310 --> 01:04:51,540 Ale jeśli po prostu nie aktualizacji tabeli 1 nazwa zestawu równa Elliot, co by 1151 01:04:51,540 --> 01:04:55,530 wygląd tabeli, jak po tym? 1152 01:04:55,530 --> 01:04:56,410 Osób ma jakiś pomysł? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Tak. 1155 01:05:00,210 --> 01:05:03,195 >> PUBLICZNOŚCI: Wszystko w które Rząd stałby się Elliot. 1156 01:05:03,195 --> 01:05:04,570 GŁOŚNIK: Wszystko w którym wiersz? 1157 01:05:04,570 --> 01:05:06,067 AUDIENCE W pierwszym rzędzie. 1158 01:05:06,067 --> 01:05:07,150 GŁOŚNIK: W pierwszym rzędzie? 1159 01:05:07,150 --> 01:05:09,724 Dlaczego pierwszy wiersz? 1160 01:05:09,724 --> 01:05:10,890 Nie chcę, aby wybrać się na Ciebie. 1161 01:05:10,890 --> 01:05:13,287 >> PUBLICZNOŚCI: Może wszystko w całej tabeli? 1162 01:05:13,287 --> 01:05:15,120 GŁOŚNIK: Wszystko w cały stół, tak. 1163 01:05:15,120 --> 01:05:19,520 I to jest dokładnie tuż because-- I po prostu pomaga się trochę 1164 01:05:19,520 --> 01:05:22,650 there-- ponieważ pominięte opcjonalny WHERE. 1165 01:05:22,650 --> 01:05:27,260 Jeśli nie masz WHERE Klauzula, co to polecenie zrobi 1166 01:05:27,260 --> 01:05:32,240 jest to będzie działać z każdym Pojedynczy wiersz w tabeli. 1167 01:05:32,240 --> 01:05:35,430 Nazwa każdego z nas będzie stać Elliott, w zasadzie, 1168 01:05:35,430 --> 01:05:37,360 które Elliot jest bardzo zadowolony. 1169 01:05:37,360 --> 01:05:40,070 Lub Yanni, jeden z tych dwóch. 1170 01:05:40,070 --> 01:05:42,490 Ale nazwa każdego z nas zmieni. 1171 01:05:42,490 --> 01:05:47,880 >> Więc sposób używamy GDZIE clause-- i dotyczy to wszystkich wheres 1172 01:05:47,880 --> 01:05:51,410 które są w każdym z te różne rzeczy. 1173 01:05:51,410 --> 01:05:54,380 Tak więc można zauważyć, że SET ma kolumny równą wartość. 1174 01:05:54,380 --> 01:05:55,190 I tak nie gdzie. 1175 01:05:55,190 --> 01:06:00,040 Ale to są różne rodzaje sprawozdań. 1176 01:06:00,040 --> 01:06:04,400 Więc kolumna jest równa wartości w komplecie znajduje się w zadania. 1177 01:06:04,400 --> 01:06:08,320 Jak mówimy chcemy aby ustawić nazwę równą Elliot. 1178 01:06:08,320 --> 01:06:15,390 Ale w klauzulach WHERE, są to stwierdzenia równości. 1179 01:06:15,390 --> 01:06:20,410 Więc powiedzmy, że tylko chciał zmienić nazwisko osoby do Elliot 1180 01:06:20,410 --> 01:06:23,940 jeśli ich nazwa była Ryan, powiedzmy. 1181 01:06:23,940 --> 01:06:24,920 >> Więc, gdy mówimy, 1182 01:06:24,920 --> 01:06:32,700 >> WHERE nazwa równa Ryan, które Jedyną zmianą będzie sukcesem 1183 01:06:32,700 --> 01:06:37,440 name--, że będzie tylko zmienić pole nazwy w wierszach 1184 01:06:37,440 --> 01:06:40,770 gdzie pole Nazwa jest równa Ryan. 1185 01:06:40,770 --> 01:06:44,430 Więc jeśli mieliśmy wielu ludzi imieniem Ryan, wszystkie ich nazw 1186 01:06:44,430 --> 01:06:45,730 zmieni się Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Jest to podobne do przykładu od tego, czy linia wina dzieli 1188 01:06:48,169 --> 01:06:50,960 Nowy Jork i każdy ma do przenieść się do New Haven, sposób możemy 1189 01:06:50,960 --> 01:06:56,570 zrobić to w jednej instrukcji UPDATE tabela1 SET rodzinnym = New Haven 1190 01:06:56,570 --> 01:07:00,210 gdzie rodzinnym równa Nowy Jork. 1191 01:07:00,210 --> 01:07:03,410 To zasilanie UPDATE. 1192 01:07:03,410 --> 01:07:10,530 Możemy wybrać dowolną liczbę wiersze przez prawdziwych zdań 1193 01:07:10,530 --> 01:07:12,860 o pól w tych wierszach. 1194 01:07:12,860 --> 01:07:19,510 Nie możemy powiedzieć, zestaw UPDATE Table1 name = Elliot GDZIE wiersz = 1, 1195 01:07:19,510 --> 01:07:24,820 oprócz tego, że możemy jeśli powiemy ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Tak więc mamy zamiar być pracy z równości 1198 01:07:29,830 --> 01:07:32,830 pól, równość kolumn. 1199 01:07:32,830 --> 01:07:38,030 Ale korzystając z pola ID jest sposobem na wybrać poszczególne wiersze specjalnie, 1200 01:07:38,030 --> 01:07:43,210 ponieważ pole ID jest unikalnym identyfikator w bazie danych SQL. 1201 01:07:43,210 --> 01:07:45,860 Więc jak aktualizacja wiersz jeden, ID wynosi 1. 1202 01:07:45,860 --> 01:07:49,560 Aktualizacja wiersz dwa, po prostu zmienić ten numer. 1203 01:07:49,560 --> 01:07:51,610 Ale moc WHERE jest to, że 1204 01:07:51,610 --> 01:07:57,480 może aktualizować rzeczy w oparciu o to, co ich bieżące wartości niektórych rzeczy są. 1205 01:07:57,480 --> 01:07:58,155 Tak Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> PUBLICZNOŚCI: A co, jeśli chcesz to-- jeszcze raz, to jest inna sprawa. 1207 01:08:02,678 --> 01:08:07,660 Ale moim pierwszym pytaniem było, gdzie tak się dzieje? 1208 01:08:07,660 --> 01:08:09,130 Gdzie jestem aktualizację tego? 1209 01:08:09,130 --> 01:08:11,100 Czy to w kodzie PHP? 1210 01:08:11,100 --> 01:08:13,379 >> GŁOŚNIK: Gdzie można aktualizować, tak. 1211 01:08:13,379 --> 01:08:15,170 Mamy zamiar rozmawiać o tym, gdzie wszystko 1212 01:08:15,170 --> 01:08:18,729 dzieje się jakby po raz idziemy przez wszystkie polecenia. 1213 01:08:18,729 --> 01:08:21,130 Ale to, co trzeba wiem, na razie jest w zasadzie 1214 01:08:21,130 --> 01:08:26,279 że bazy danych SQL istnieje jako coś 1215 01:08:26,279 --> 01:08:30,090 być dostępne dla zapytania Funkcja, która CS50 definiuje. 1216 01:08:30,090 --> 01:08:33,800 Więc jeśli używasz funkcji zapytania, można uzyskać dostęp do tej tabeli. 1217 01:08:33,800 --> 01:08:39,529 >> Więc będzie przesłanie tych Polecenia do stolika w plikach PHP 1218 01:08:39,529 --> 01:08:41,420 poprzez funkcję zapytania. 1219 01:08:41,420 --> 01:08:45,410 Możesz też bawić z tabeli bezpośrednio. 1220 01:08:45,410 --> 01:08:49,050 I to jest najlepszy sposób na przetestować tego rodzaju poleceń. 1221 01:08:49,050 --> 01:08:52,720 A my przejść dokładnie jak to zrobić w tylko trochę. 1222 01:08:52,720 --> 01:08:54,910 >> Więc to polecenie UPDATE. 1223 01:08:54,910 --> 01:08:57,939 A reszta poleceń będą jakby podobna, 1224 01:08:57,939 --> 01:08:59,069 działa na podobnych rzeczy. 1225 01:08:59,069 --> 01:09:02,740 Wkładki do prawdopodobnie najbardziej różni się od aktualizacji. 1226 01:09:02,740 --> 01:09:06,170 Mam zamiar wyjechać, że się tam tylko trochę i pracy tutaj. 1227 01:09:06,170 --> 01:09:10,215 Więc INSERT INTO, zobaczysz że stół jest wciąż ten sam. 1228 01:09:10,215 --> 01:09:17,010 Chcesz wstawić. 1229 01:09:17,010 --> 01:09:20,286 Kapitalizacja SQL nie uwzględnia wielkości liter. 1230 01:09:20,286 --> 01:09:22,160 Więc nie musisz się wykorzystać te rzeczy. 1231 01:09:22,160 --> 01:09:27,960 Zgodnie z konwencją, słowa w bieli są kapitalizowane. 1232 01:09:27,960 --> 01:09:31,590 Ale też kolorami im. 1233 01:09:31,590 --> 01:09:34,390 Jedynym powodem, aby wykorzystać tych, kiedy ich wpisywania 1234 01:09:34,390 --> 01:09:36,609 jest po prostu podkreślić, że są stałymi. 1235 01:09:36,609 --> 01:09:39,189 I tak można albo spojrzeć na kapitalizacja lub fakt 1236 01:09:39,189 --> 01:09:40,740 że mam kolorowe je inaczej. 1237 01:09:40,740 --> 01:09:44,910 >> Więc mamy INSERT INTO, niech jeszcze raz zrobić tabela1. 1238 01:09:44,910 --> 01:09:45,930 To wszystko jest w jednej linii. 1239 01:09:45,930 --> 01:09:48,609 Mówię tylko, oddzielając go od różne wypowiedzi. 1240 01:09:48,609 --> 01:09:52,399 Więc nie martw się o tym, że tabela1 trafił na drugiej linii. 1241 01:09:52,399 --> 01:09:56,130 >> Dlatego chcemy, aby INSERT DO Table1 pewne wartości. 1242 01:09:56,130 --> 01:09:58,922 A zauważysz opcjonalny nieco, co dostanę w sekundę. 1243 01:09:58,922 --> 01:09:59,755 Mamy więc wartości. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Więc powiedzmy, że chcemy dodać Andi do naszego stolika, ponieważ brakuje nam Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi jest chory. 1247 01:10:09,390 --> 01:10:12,490 Warto więc dodać Andi do naszego stolika. 1248 01:10:12,490 --> 01:10:15,150 Pamiętaj, że numer ID jest aktualizowany automatycznie. 1249 01:10:15,150 --> 01:10:17,320 Tak niewielu dziedzinach możemy trzeba się martwić o 1250 01:10:17,320 --> 01:10:20,230 to nazwa, supermocarstwem i rodzinnym. 1251 01:10:20,230 --> 01:10:23,660 >> I tak droga, że ​​to zrobimy, patrząc na naszej składni, to mamy 1252 01:10:23,660 --> 01:10:28,780 Właśnie dostałem nawiasów, z przecinkami Oddzielone wartości, z których każda 1253 01:10:28,780 --> 01:10:29,890 jest wartością. 1254 01:10:29,890 --> 01:10:35,530 Więc jeśli chcemy wstawić Andi do naszego stół, wszystko co musisz zrobić, to prawda Andi. 1255 01:10:35,530 --> 01:10:38,630 Co znajduje się supermocarstwem Andi, ludzie w sekcji Andi? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Lubi lot, lub jak prędkość, czy coś. 1258 01:10:47,545 --> 01:10:48,920 Co mamy już tam? 1259 01:10:48,920 --> 01:10:53,425 Mamy CS50, lot, szybkość i siłę. 1260 01:10:53,425 --> 01:10:54,850 >> PUBLICZNOŚCI: Podróże w czasie. 1261 01:10:54,850 --> 01:10:56,180 >> GŁOŚNIK: Podróże w czasie, niesamowite. 1262 01:10:56,180 --> 01:11:04,280 Więc mamy Andi, czas podróże, a jej rodzinnym mieście. 1263 01:11:04,280 --> 01:11:05,530 To bardzo dobre pytanie. 1264 01:11:05,530 --> 01:11:09,210 Nowy Jork, chyba że ktoś wie. 1265 01:11:09,210 --> 01:11:13,600 Wszyscy z Nowego Jorku jest Lekcja na wynos od dzisiaj. 1266 01:11:13,600 --> 01:11:17,710 >> Więc to oświadczenie będzie włóż, jako piątego rzędu, 1267 01:11:17,710 --> 01:11:21,900 z podróży w czasie supermocarstwa i rodzinnym Nowym Jorku. 1268 01:11:21,900 --> 01:11:25,660 Ale pole opcjonalne to sposób 1269 01:11:25,660 --> 01:11:30,090 które kolumny dokładnie określić chcesz wstawić rzeczy. 1270 01:11:30,090 --> 01:11:33,710 >> Sposób, w jaki robimy to teraz, Andi, podróże w czasie, Nowy Jork, 1271 01:11:33,710 --> 01:11:38,150 będzie w takiej kolejności naszego table-- nazwa, supermocarstwo, rodzinnym. 1272 01:11:38,150 --> 01:11:42,290 A jeśli chcesz zrobić coś innego niż to, 1273 01:11:42,290 --> 01:11:44,970 jak powiedzieć, że nie wiedział, czyjaś supermocarstwem, 1274 01:11:44,970 --> 01:11:47,660 jak, jak nie wiedziałem, Andi supermocarstwem na początku. 1275 01:11:47,660 --> 01:11:50,450 Więc wszystko, co wiedziałem, to jej nazwa i jej rodzinnym mieście. 1276 01:11:50,450 --> 01:11:54,550 Co mogłem zrobić, to mogłem do-- będę usunąć to szybko. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Chcę tylko zaktualizować kolumny. 1279 01:12:00,090 --> 01:12:04,100 I to jest, gdy opcja Lista kolumn wchodzi w grę. 1280 01:12:04,100 --> 01:12:09,185 Chcę tylko, aby uaktualnić nazwę i rodzinnym. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 I wtedy powiem wartości. 1283 01:12:16,480 --> 01:12:24,430 Zrobię Andi i Nowy Jork. 1284 01:12:24,430 --> 01:12:28,980 >> Gdybym pominięte listę kolumn i po prostu zrobić te dwie rzeczy, 1285 01:12:28,980 --> 01:12:32,450 gdzie Nowy Jork poszły? 1286 01:12:32,450 --> 01:12:35,900 Która kolumna będzie Nowy Jork Miasto zostało umieszczone w? 1287 01:12:35,900 --> 01:12:38,950 Osób ma jakiś pomysł? 1288 01:12:38,950 --> 01:12:40,160 Supermocarstwem, dokładnie. 1289 01:12:40,160 --> 01:12:41,890 >> Więc będzie to po prostu pójść w porządku. 1290 01:12:41,890 --> 01:12:45,530 A kiedy osiągnie koniec czasu lista, to będzie po prostu przestać napełniania rzeczy. 1291 01:12:45,530 --> 01:12:49,080 I wartości, że będzie to trzymać w wszystkie kolumny będzie tylko NULL. 1292 01:12:49,080 --> 01:12:51,840 Więc dlatego, że podano nazwa i rodzinnym, 1293 01:12:51,840 --> 01:12:56,110 będziemy mieć identyfikator 5, wymienić Andi, supermocarstwa NULL. 1294 01:12:56,110 --> 01:12:58,750 Więc supermocarstwem jest wartością odinicjowany. 1295 01:12:58,750 --> 01:13:01,340 Nie muszą uzyskać same błędy Valgrind Jeśli spróbujesz 1296 01:13:01,340 --> 01:13:01,970 i uzyskać do niego dostęp. 1297 01:13:01,970 --> 01:13:05,160 Wszystko będzie dobrze wyzerowany się, ponieważ NULL jest wartością w SQL. 1298 01:13:05,160 --> 01:13:06,780 Jest to stała. 1299 01:13:06,780 --> 01:13:08,980 A potem rodzinnym mieście będzie Nowy Jork. 1300 01:13:08,980 --> 01:13:11,860 Więc to jest INSERT INTO polecenia. 1301 01:13:11,860 --> 01:13:13,610 Zanim przejdziemy, nie dwa kolejne polecenia. 1302 01:13:13,610 --> 01:13:19,060 Czy ludzie mają jakieś pytania dotyczące UPDATE o INSERT INTO, o SQL 1303 01:13:19,060 --> 01:13:21,556 ogólnie zanim przejdziemy na naszych ostatnich bitów? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Ludzie czują się dobrze, świetnie. 1306 01:13:26,910 --> 01:13:27,410 Kocham to. 1307 01:13:27,410 --> 01:13:29,480 Więc porozmawiajmy o SELECT. 1308 01:13:29,480 --> 01:13:33,445 Idąc rów UPDATE tutaj. 1309 01:13:33,445 --> 01:13:35,720 >> I wybierz będzie bardzo podobna. 1310 01:13:35,720 --> 01:13:38,790 Celem SELECT, Celem SELECT w życiu 1311 01:13:38,790 --> 01:13:45,910 jest, aby dać Ci kilka kolumn że spełniają określone warunki. 1312 01:13:45,910 --> 01:13:48,230 I kiedy mówię zaspokoić pewne warunki, 1313 01:13:48,230 --> 01:13:50,800 twój umysł może zaraz wrócić do klauzuli WHERE 1314 01:13:50,800 --> 01:13:52,090 które pojawiły się w aktualizacji. 1315 01:13:52,090 --> 01:13:54,880 I że klauzula jest dokładnie tam w SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Jeśli nie umieścić WHERE Klauzula i mówimy SELECT nazwisko, 1317 01:14:06,020 --> 01:14:16,490 hometown-- napisane, że trochę wrong-- nazwa, rodzinnym Z tabela1. 1318 01:14:16,490 --> 01:14:19,690 Jeśli tylko powiedzieć, że to, co SELECT ma dać nam to, że to 1319 01:14:19,690 --> 01:14:23,730 da nam double-- stół, raczej. 1320 01:14:23,730 --> 01:14:27,450 Podwójna tablica czy jesteśmy myśląc o w PHP wyczuwa. 1321 01:14:27,450 --> 01:14:33,239 Ale to tylko zamiar dać nam podwójna tablica z dwóch columns-- nazwy, 1322 01:14:33,239 --> 01:14:33,780 i rodzinnym. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 I będzie ignorować ID. 1325 01:14:38,130 --> 01:14:41,310 I będzie ignorować supermocarstwa. 1326 01:14:41,310 --> 01:14:44,696 A ja po prostu dać nam każdego Pojedynczy wiersz tej tabeli. 1327 01:14:44,696 --> 01:14:46,570 Więc jeśli tylko włożona Andi, musimy Andi. 1328 01:14:46,570 --> 01:14:48,605 I będziemy mieć oryginalny cztery. 1329 01:14:48,605 --> 01:14:53,720 Czy zostały zaktualizowane, że będzie odbicie, et cetera, et cetera. 1330 01:14:53,720 --> 01:14:56,520 >> Tak to jest, bo my nie korzystać z klauzuli WHERE. 1331 01:14:56,520 --> 01:14:59,200 Ale możemy używać go w dokładnie sam sposób wykorzystaliśmy go w aktualizacji. 1332 01:14:59,200 --> 01:15:05,310 Jeśli chcemy tylko spis nazwisk i super moce ludzi żyjących 1333 01:15:05,310 --> 01:15:13,430 w Nowym Jorku, możemy wykonać instrukcję jak SELECT nazwisko, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Idę do opuszczenia that-- Z tabela1 GDZIE rodzinnym = Nowy Jork. 1335 01:15:27,190 --> 01:15:33,370 >> Więc to pokazuje, że można uzyskać zupełnie inne kolumny, 1336 01:15:33,370 --> 01:15:36,920 a następnie umieścić kolumny, że nie jesteś nawet powrót w klauzuli WHERE. 1337 01:15:36,920 --> 01:15:39,200 My nawet nie chcemy, rodzinnym każdego. 1338 01:15:39,200 --> 01:15:41,920 Ale chcemy, nazwę i supermocarstwo ludzi 1339 01:15:41,920 --> 01:15:43,817 których rodzinnym miastem jest Nowy Jork. 1340 01:15:43,817 --> 01:15:45,650 Więc to jest coś, czego można zrobić z WHERE 1341 01:15:45,650 --> 01:15:49,112 Klauzula jest może mamy do czynienia z kolumnami że nie zawsze chcą z powrotem. 1342 01:15:49,112 --> 01:15:52,320 W ten sam sposób w aktualizacji, może mamy do czynienia z kolumnami, które nie koniecznie 1343 01:15:52,320 --> 01:15:53,270 chcesz zaktualizować. 1344 01:15:53,270 --> 01:15:58,890 Możemy aktualizować miasto każdego kto na imię Sam, na przykład. 1345 01:15:58,890 --> 01:16:02,080 Możemy aktualizować miasto każdy, którego ID numer jest 2. 1346 01:16:02,080 --> 01:16:04,960 Więc po prostu zaktualizować miasto w drugim rzędzie 1347 01:16:04,960 --> 01:16:08,220 gdzie nie mamy do czynienia z konieczne częste pytanie. 1348 01:16:08,220 --> 01:16:13,264 >> I usuwać to, jak to, że spodziewać, DELETE FROM Tabela1. 1349 01:16:13,264 --> 01:16:14,930 A potem mamy kolejną klauzulę WHERE. 1350 01:16:14,930 --> 01:16:17,940 Można więc powiedzieć, gdzie id = 1. 1351 01:16:17,940 --> 01:16:18,950 Usuń pierwszy wiersz. 1352 01:16:18,950 --> 01:16:23,240 I DELETE zawsze usunąć wiersz, lub usunie trochę liczbę wierszy. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM tabela WHERE Miasto = Nowy Jork 1354 01:16:26,990 --> 01:16:28,740 spowoduje usunięcie wszystkich w Nowym Jorku. 1355 01:16:28,740 --> 01:16:30,985 To, czy istnieje Nagle tragiczna plaga 1356 01:16:30,985 --> 01:16:33,360 i po prostu chciałem, aby usunąć każdy z tabeli, która 1357 01:16:33,360 --> 01:16:35,760 żył w pewnym mieście że został potrącony przez zarazy. 1358 01:16:35,760 --> 01:16:38,050 Niech odpoczywają w pokoju. 1359 01:16:38,050 --> 01:16:43,849 >> Są to cztery SQL polecenia że będziesz musiał użyć. 1360 01:16:43,849 --> 01:16:45,390 Możesz nawet nie trzeba używać ich wszystkich. 1361 01:16:45,390 --> 01:16:47,690 Ale to są cztery że CS50 oczekuje was 1362 01:16:47,690 --> 01:16:53,630 być wygodne z wchodząc zarówno Quiz 1, a także pset7 i pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Nie tylko że znów tabeli. 1364 01:16:55,820 --> 01:16:58,930 W tym jednym, supermocarstwem Roy ma została zaktualizowana do wiązek laserowych, które 1365 01:16:58,930 --> 01:17:00,880 Jest to przykład nie korzystać. 1366 01:17:00,880 --> 01:17:05,480 Nie wiem, który z nich Roy woli, ale siła. 1367 01:17:05,480 --> 01:17:07,670 Roy ma supermocarstwa siły. 1368 01:17:07,670 --> 01:17:09,090 Katherine nie zrobić to dzisiaj. 1369 01:17:09,090 --> 01:17:10,260 To niefortunne. 1370 01:17:10,260 --> 01:17:11,260 Ale ona ma super-szybkość. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Dobrze, że był w PHP. 1373 01:17:14,670 --> 01:17:19,410 Przed mówimy o MVC, robi ktoś ma pytania dotyczące PHP? 1374 01:17:19,410 --> 01:17:23,864 Teraz SQL, lub PHP, jeśli nagle wystąpienia z pytaniem o PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Wielki. 1377 01:17:28,460 --> 01:17:29,920 W porządku, mamy wszystko ustawione wtedy. 1378 01:17:29,920 --> 01:17:33,660 >> Tak rozmawiając trochę o modelu widoku kontrolerów, 1379 01:17:33,660 --> 01:17:38,770 wróćmy do niektórych z rzeczy w pset7. 1380 01:17:38,770 --> 01:17:42,470 Więc jaki model view Kontroler jest-- nie jestem 1381 01:17:42,470 --> 01:17:45,660 uratuje moje zmiany, aby zalogować się bo całkowicie zmasakrowany go. 1382 01:17:45,660 --> 01:17:49,220 Ale w zasadzie mamy dwa różne rzeczy się dzieje. 1383 01:17:49,220 --> 01:17:52,390 Mamy do publicznej wiadomości katalog, który zawiera 1384 01:17:52,390 --> 01:17:56,460 kod, który będzie wykonywany i strony internetowe, które będą odwiedzane. 1385 01:17:56,460 --> 01:17:58,780 I mamy też ten katalog poglądów. 1386 01:17:58,780 --> 01:18:01,780 I widoki zawiera szablony. 1387 01:18:01,780 --> 01:18:04,390 >> To, co funkcja render-- widzieliśmy tynku 1388 01:18:04,390 --> 01:18:08,240 Funkcja w kilka kodu PHP że CS50 napisał już dla ciebie, 1389 01:18:08,240 --> 01:18:10,550 że ma w niektórych parametrów. 1390 01:18:10,550 --> 01:18:14,510 Co to jest kod robi jest to jedzie do widoków, 1391 01:18:14,510 --> 01:18:18,000 które to zestawy jak prewritten Kod HTML, 1392 01:18:18,000 --> 01:18:20,720 i to wstawienie wartości w niektórych miejscach. 1393 01:18:20,720 --> 01:18:23,990 W ten sposób, gdy przejść do CS50 Finansów, 1394 01:18:23,990 --> 01:18:25,760 Nagłówek jest taki sam na każdej stronie. 1395 01:18:25,760 --> 01:18:28,130 Stopka jest taki sam na każdej stronie. 1396 01:18:28,130 --> 01:18:31,880 To dlatego, że sposób które czynią prace jest to będziesz 1397 01:18:31,880 --> 01:18:36,720 automatycznie dodaje w tym nagłówku i Widz, który można znaleźć w widokach. 1398 01:18:36,720 --> 01:18:41,400 >> My rzeczywiście może przejść do nagłówka, i wygląda, że ​​jest to plik HTML z głową. 1399 01:18:41,400 --> 01:18:43,280 Jest tam kilka arkuszy stylów. 1400 01:18:43,280 --> 01:18:48,450 Nie musisz patrzeć na CSS dla pset7 jeśli nie chcesz. 1401 01:18:48,450 --> 01:18:50,560 Ale można modyfikować je, jeśli chcesz, aby 1402 01:18:50,560 --> 01:18:53,470 Twoje Finanse wyglądać nieco inaczej. 1403 01:18:53,470 --> 01:18:57,560 >> Jest tam niektóre PHP w nagłówek nieco zobaczyć 1404 01:18:57,560 --> 01:19:01,240 jeśli jest inny tytuł należy umieścić w tym cel. 1405 01:19:01,240 --> 01:19:04,300 Ale tylko niektóre inne skrypty, oraz linki i inne rzeczy. 1406 01:19:04,300 --> 01:19:08,700 Szef kończy, organizm zaczyna i ups, mamy to dziwne trochę koniec trochę. 1407 01:19:08,700 --> 01:19:14,730 I jest div, podobnie jak bezładem rodzaj elementu 1408 01:19:14,730 --> 01:19:17,120 że ma pomysł na środku. 1409 01:19:17,120 --> 01:19:22,450 >> A potem, kiedy widzimy, stopki, mamy koniec div. 1410 01:19:22,450 --> 01:19:25,000 Mamy dno, które jest gdzie tekst stopka jest. 1411 01:19:25,000 --> 01:19:26,770 Koniec div, koniec ciała, koniec HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Więc to, co czyni to robi się uczynić to rodzaj 1413 01:19:29,070 --> 01:19:33,150 od łatanie heder, inny plik PHP, który 1414 01:19:33,150 --> 01:19:37,110 będzie zawierać rzeczywiste rzeczy, które będziesz zobaczyć, jak spisie zapasów 1415 01:19:37,110 --> 01:19:39,690 jeśli kupujesz lub sprzedaży akcji. 1416 01:19:39,690 --> 01:19:41,480 A potem dodamy w stopce. 1417 01:19:41,480 --> 01:19:44,890 I widok modelu Kontroler pomysłem jest to, że 1418 01:19:44,890 --> 01:19:49,590 chcą oddzielić, jak wszystko wygląda od kodu. 1419 01:19:49,590 --> 01:19:53,420 To chcemy oddzielić frontend i zaplecza, w którym nakładka jest 1420 01:19:53,420 --> 01:20:00,440 rzeczy, które widzi użytkownik, ładne visuals-- HTML, CSS, takie rzeczy, 1421 01:20:00,440 --> 01:20:02,320 obrazy, et cetera. 1422 01:20:02,320 --> 01:20:05,780 I backend jest w PHP. 1423 01:20:05,780 --> 01:20:07,710 Jest to kod, który piszesz. 1424 01:20:07,710 --> 01:20:10,240 To gdzie kod to robi rzeczywiste operacje. 1425 01:20:10,240 --> 01:20:12,400 To jest, gdy dodajesz stado do stolika, 1426 01:20:12,400 --> 01:20:14,890 gdy kupujesz i sprzedaży, to backend. 1427 01:20:14,890 --> 01:20:20,210 >> I możemy, jak widzieliście, w tym PHP bezpośrednio w HTML. 1428 01:20:20,210 --> 01:20:23,210 Więc to, co mogliśmy zrobić dla to zadanie jest po prostu miał 1429 01:20:23,210 --> 01:20:26,200 plik HTML dla każdej strony, jak login. 1430 01:20:26,200 --> 01:20:30,260 A następnie na tej stronie, po prostu miał ogromny blok kodu PHP, 1431 01:20:30,260 --> 01:20:33,822 w tym cały kod, który że strona specjalnie musiałby. 1432 01:20:33,822 --> 01:20:35,780 I wtedy możemy mieć zrobić, że dla portfela. 1433 01:20:35,780 --> 01:20:40,250 Mogliśmy zrobić wszystko kupna i sprzedaży w ramach poszczególnych stron. 1434 01:20:40,250 --> 01:20:43,680 >> Ale ponieważ jesteśmy renderowania oddzielnie skąd 1435 01:20:43,680 --> 01:20:46,660 piszemy backend Kod, możemy łatwo 1436 01:20:46,660 --> 01:20:52,660 zmienić, jak sprawy wyglądają bez zmienia się każdego pojedynczego pliku. 1437 01:20:52,660 --> 01:20:55,460 Robimy takie rzeczy po prostu dodaj nowa div do dołu 1438 01:20:55,460 --> 01:21:00,720 of-- Witam zmodyfikowany stopkę. 1439 01:21:00,720 --> 01:21:03,710 Możesz po prostu zrobić takie rzeczy. 1440 01:21:03,710 --> 01:21:07,250 Ale również, możesz zmienić cały układ wizualny 1441 01:21:07,250 --> 01:21:09,290 bez wpływu na to, co jest dzieje w backend. 1442 01:21:09,290 --> 01:21:12,000 I można zmienić Cały zaplecza i nadal 1443 01:21:12,000 --> 01:21:13,900 mają wyglądać tak jak to miało miejsce wcześniej. 1444 01:21:13,900 --> 01:21:14,400 To 1445 01:21:14,400 --> 01:21:16,170 >> Jest idea modelu widoku kontrolera. 1446 01:21:16,170 --> 01:21:19,992 I to jest rzeczywiście nałożone paradygmat W niektórych z języków programowania 1447 01:21:19,992 --> 01:21:21,700 Może chcesz używać dla projektów końcowych. 1448 01:21:21,700 --> 01:21:25,100 Jeśli zrobisz rozwoju iOS, mają poglądy, 1449 01:21:25,100 --> 01:21:29,120 co jest, co można zobaczyć na iPhone, i następnie backend tak jak oddzielny rzeczy. 1450 01:21:29,120 --> 01:21:31,260 >> Możesz myśleć o tym trochę. 1451 01:21:31,260 --> 01:21:35,190 Jest wiele plików binarnych w informatyka, który jest zabawny, 1452 01:21:35,190 --> 01:21:37,270 bo wszystko jest w formacie binarnym. 1453 01:21:37,270 --> 01:21:38,550 Nie planowałem tego. 1454 01:21:38,550 --> 01:21:41,590 To gra słów niezamierzona była. 1455 01:21:41,590 --> 01:21:43,860 Tak, gra słów nie przeznaczonych. 1456 01:21:43,860 --> 01:21:49,070 >> Ale jak .h plików i plików .c, nie wiele rzeczy, które oddzielających nas 1457 01:21:49,070 --> 01:21:49,900 może nie trzeba. 1458 01:21:49,900 --> 01:21:54,330 Więc może po prostu edytować pliki H lub ktoś może po prostu zobaczyć .h plik i wiedzieć 1459 01:21:54,330 --> 01:21:57,650 dokładnie te funkcje, które są w plik .c niekoniecznie wiedząc, 1460 01:21:57,650 --> 01:21:58,870 ich realizacja. 1461 01:21:58,870 --> 01:22:02,800 Ta idea elementów rozdzielających które są od siebie zależne 1462 01:22:02,800 --> 01:22:06,990 ale może rodzaj dostępu sobą poprzez różne kanały, przechodzącej 1463 01:22:06,990 --> 01:22:09,310 zmiennych, po prostu obejmują oświadczenia, rzeczy 1464 01:22:09,310 --> 01:22:14,440 tak, ta zasada przyczynia się do tworzenia aplikacji 1465 01:22:14,440 --> 01:22:17,080 które mogą być łatwiej edytowany przez wielu ludzi, 1466 01:22:17,080 --> 01:22:20,440 można łatwiej zmieniane lub zmian na wielką skalę, 1467 01:22:20,440 --> 01:22:24,880 i są łatwiejsze debugować na wiele sposobów. 1468 01:22:24,880 --> 01:22:28,254 >> Bardzo szybkie, mam kilka porad dla pset7, 1469 01:22:28,254 --> 01:22:31,420 które zrobię pełnego ekranu, więc nie patrząc na the-- Porada Porada Tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Nie ma zbyt wielu wskazówek. 1472 01:22:35,130 --> 01:22:38,060 >> Ale wspomniałem PHP jest trudne do debugowania. 1473 01:22:38,060 --> 01:22:39,290 Podwójne i potrójne sprawdzić. 1474 01:22:39,290 --> 01:22:41,550 Jeżeli kod nie jest tylko wyświetlane na stronie, 1475 01:22:41,550 --> 01:22:46,240 to chyba błąd PHP, przepraszam. 1476 01:22:46,240 --> 01:22:48,570 >> Nie musisz patrzeć na CSS, jeśli nie chcesz. 1477 01:22:48,570 --> 01:22:52,150 Ale kiedy skończysz, to może być ładny mały zabawne rzeczy po prostu pójść w 1478 01:22:52,150 --> 01:22:54,770 i bałagan z parametrów CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS i HTML są przykładem modelu Widok sterownik styl rzeczy, prawda? 1480 01:22:58,700 --> 01:23:02,150 Można mieć tagów stylu wewnątrz elementów HTML. 1481 01:23:02,150 --> 01:23:04,800 Ale jeśli coś w rodzaju zlecanie ich do CSS, 1482 01:23:04,800 --> 01:23:08,180 są łatwiejsze do edycji i odtwarzania wokół z, i zabawy z. 1483 01:23:08,180 --> 01:23:10,816 >> Traktuj CS50 pomocnika funkcjonuje jako czarnych skrzynek. 1484 01:23:10,816 --> 01:23:12,940 Nie musisz wiedzieć dokładnie, co renderowania robi, 1485 01:23:12,940 --> 01:23:16,770 ale uwierzcie go zawsze prawo rzecz, w zależności od tego, co je przekazać, 1486 01:23:16,770 --> 01:23:17,690 takie rzeczy. 1487 01:23:17,690 --> 01:23:21,040 A ja polecam oglądanie instruktażu Dawida, 1488 01:23:21,040 --> 01:23:24,490 Przejście wszystkich rzeczy, nie tylko todos, 1489 01:23:24,490 --> 01:23:26,960 ale naprawdę można traktować te, jak czarne skrzynki. 1490 01:23:26,960 --> 01:23:29,280 Nie idź do nich Funkcje szuka błędów. 1491 01:23:29,280 --> 01:23:33,510 >> I zapraszamy do zwrotu naszego overlord Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Wielki. 1493 01:23:34,010 --> 01:23:40,430 >> Czy są jakieś ostateczne pytania przed my rodzaju odbić na dzień? 1494 01:23:40,430 --> 01:23:42,610 Ja nadal żyje? 1495 01:23:42,610 --> 01:23:44,700 Wielki. 1496 01:23:44,700 --> 01:23:47,120 Hi LiveStream ludzie. 1497 01:23:47,120 --> 01:23:47,620 Wielki. 1498 01:23:47,620 --> 01:23:50,260 Czy są już pytania? 1499 01:23:50,260 --> 01:23:50,760 Nie? 1500 01:23:50,760 --> 01:23:52,884 >> I wtedy myślę, że jesteśmy dobry, aby przejść na dzisiaj. 1501 01:23:52,884 --> 01:23:55,550 Będę trzymać się trochę potem, gdy ludzie mieli pytania 1502 01:23:55,550 --> 01:23:57,480 bali się zapytać w strumieniu. 1503 01:23:57,480 --> 01:23:59,790 Ale poza tym, mam dobry dzień. 1504 01:23:59,790 --> 01:24:01,933