[MUZYKA GRY] ALLISON Buchholtz-AU: W porządku, każdy, witamy z powrotem do sekcji. Mam nadzieję, że wszyscy świetnie się Halloween weekend lub Halloweekend, jak chciałbym powiedzieć wszystkim wypoczęty i odzyskane. I na szczęście nie pada śnieg już. To rzeczywiście słoneczny zewnątrz. Byłem zadowolony, że prawdziwe. Nie jest gotowy, aby przeciągnąć moje zimowe buty. Mamy nadzieję, że pset6 poszedł całkiem dobrze. Jeśli jesteś zmęczony C, jestem szczęśliwy powiedzieć, skończysz z C do teraz. Mamy w pełni przeniesione do programowania stron internetowych, tak będziesz pracować w HTML, PHP, może trochę JavaScriptu. Nie wiem, co w przyszłym tygodniu na pset jest, więc nie mogę zagwarantować, co będzie twój następny pset być, ale w tym tygodniu pset jest CS50 Finance, która jest w zasadzie realizacji rodzaj strony internetowej który pozwala kupować i sprzedawać zapasy i śledzić je. I to jest bardzo fajne, bo wszystko z nich jest generowana dynamicznie. Możesz mieć różnych użytkowników, którzy mają swoje własne informacje, i masz zamiar być wdrażanie wszystko. To zajmuje trochę czasu. Zdecydowanie uważam, że jest to łatwiejsze niż psets C, ale trwa to dłużej. Uczysz się nowego języka, PHP, która jest bardzo podobna do C, ale oczywiście będzie wymagać zajrzeć do składni i zrozumieć jak konwertować między językami. Ale nie sądzę, jest coś bardzo ciężko o tym koncepcyjnie Pset. To się po prostu nauczyć Nowy język i coraz przez te wszystkie kawałki. Jeśli macie przeczytać spec, to dość długo. Myślę, że ten jest jak 21 strony, jeśli dobrze pamiętam. To długa Spec. Więc jeśli nie przeczytałeś it-- 22. 32. Wow. Więc ja się tam o 50%. Tak więc, 32 strony. Więc jest to długo. Istnieje wiele elementów, ale żaden z elementów powinno być tak źle. To jest po prostu dużo. Więc na pewno zacząć wcześnie Jeżeli to możliwe, jak zwykle, ale myślę, że powinien czuć się trochę ładniejszy niż zwłaszcza psets jak odzyskać i zmienić rozmiar, że to tylko bardzo trudno owinąć głowę. Więc z tym, będziemy nurkować w. Nie mam swój program przesuń dzisiaj, ale jesteśmy będzie mówić o PHP. Będę dając rodzaj Crash Course na pewne rzeczy które warto wiedzieć o PHP. Składni, różne rzeczy rzeczy zwrócić uwagę. Mamy zamiar rozmawiać Trochę o SQL. Tylko bardzo proste rzeczy tam, a następnie również MVC Widok modelu jest kontroler, który to, w jaki sposób pset jest ustawiony, więc zrozumienie, w jaki sposób Prace będą bardzo przydatne. Dobrze. Więc PHP. Powinniście zrobić coś bardzo, bardzo prosta PHP, co jest to co tu na dole, gdzie można złożyć na jakąś formę top tutaj, że miał jakieś imię, które Cię wejście, i to powiedzieć, jak cześć, Ben, lub komentarzy, Allison, i to będzie pop-up. Więc to jest rzeczywiście to, co go powinien już wyglądał jak z Pset, w przypadku chłopaki chcieli wiedzieć lub nie całkiem zrozumieć. Ale mamy te znaki zapytania tutaj, które wskazują, że jest to php. Oni zawinąć go, a następnie htmlspecialcharge, pamiętaj, to tylko, upewnij się, że jesteś bezpieczny z dowolnego szalonym ataku wtrysku lub jeśli ktoś próbuje włożyć szalone złośliwe znaków do swojej nazwy pola, nie robi podoba się serwer lub etażerka. A potem, jeśli zauważymy, to HTML Formularz miał metody $ _GET, który, jeśli pamiętamy nasze superglobals z PHP $ _GET, $ _POST, będziemy wchodząc tych, w trochę. Ale wiemy, że mamy jakąś nazwę tutaj odnosi się do nazwy że złożone. Więc jest to tylko coś w rodzaju bardzo prosty HTML, PHP, współpraca że chłopaki mieli z Pset sześć. Ale to naprawdę nie ma odpowiedzieć na to, co jest PHP. Oczywiście jest to język, ale tak naprawdę nie ma Rozmawialiśmy o tym w tej części, więc jest trochę bardziej o tym, co rzeczywiście jest w PHP. Tak jest właśnie w PHP PHP preprocesor hipertekstu. To rzeczywiście uważane Język programowania dlatego, że ma układ logiczny, natomiast kiedy Wspominamy tu o HTML, nazwaliśmy że język znaczników w porównaniu HTML język programowania, ponieważ jest ściśle modyfikacji sposobu wszystko wygląda na stronie. To tylko modyfikacja czy coś jest pogrubiony, lub czy jest to forma, elementem, czy coś takiego. Nie ma żadnej logiki. To nie ma pętli lub warunków. Nie można sprawdzić błędów rzeczy. Będziesz albo wyświetlić rzeczy w określony sposób lub prosić o rzeczy od użytkownika. To wszystko. Więc z PHP, to faktycznie nie pozwala nam zrobić wszystkie z tych logicznych rzeczy, jak sprawdzić poprawność danych wejściowych lub manipulować w jakiś sposób. Możemy połączyć je z kodu HTML, jak tylko zobaczył w ostatniej Pset i teraz, i to pozwala nam na stworzenie Te dynamiczne strony internetowe. Więc jeśli macie ever-- Nie wiem, czy jesteś jak ja, ale w gimnazjum oni nam zabrać ją tam, gdzie tej klasy stworzyliśmy tylko HTML stron internetowych, i były statyczne i kliknij ok do innych rzeczy, ale nigdy nie zmieniło. Z tych dynamicznych, co możemy, zrobić to, jak z CS50 Finansów, będziesz mieć różnych użytkowników. W zależności od tych użytkowników " preferencje, i co kupują lub co oni sprzedają do swoich zapasów, idziesz do wyświetlenia różne rzeczy. Więc, czy jest jakiś Charakterystyczną identyfikacji dla Twojego użytkownika za pomocą tego strona internetowa, możemy dynamicznie zdecydować, co do wyświetlania na nich. To nie jest to samo dla każdego osoba, która, jeśli mieliśmy tylko HTML, strona będzie taka sama dla każda osoba, która odwiedziła. PHP pozwala na personalizację stron. A potem możemy albo umieścić je w same plików, który, podobnie jak w przypadku zanim tutaj, widzieliśmy, że mamy tu wszystko HTML a potem mamy to trochę PHP. Możemy zrobić tak, lub CS50 Finansów, jeśli faceci spojrzał na files-- i powinniśmy mieć czas aby przejść przez kilka z nich razem na końcu section-- my Można zobaczyć, jak można rzeczywiście należy przechowywać je oddzielnie, co jest rzeczywiście lepsze rzeczy do zrobienia. So. Crash Course. Wszystkie szybkie proste rzeczy możesz wiedzieć o PHP. Deklarowanie zmiennych. Że niebieski to trochę irytujące, ale miejmy nadzieję, że chłopaki mogą go zobaczyć. Jeśli nie, to będę pisać na tablicy kredą. Do deklarowania zmiennych. Jedną rzeczą jest wiedzieć, że w przeciwieństwie do C, PHP jest luźno lub dynamicznie wpisany, co oznacza, że ​​nie trzeba powiedzieć zmiennej jej typ. Możesz po prostu powiedzieć, niektóre zmienne jest równa co chcesz go, i będzie decydować rodzaj zmienna w czasie wykonywania dla Ciebie. Jak zobaczysz, może to stworzyć kilka bardzo ciekawych rzeczy. Ale dla większości zastosowań, to nie trzeba określić typ. Możesz, możesz wpisać oddać rzeczy jak ty normalnie nie patrz, jeśli chcesz zmusić go do być pewien typ, ale nie muszą. To nie będzie na ciebie krzyczeć jeśli po prostu zadeklarować zmienną i nie określisz typ dla niego. Tak więc w przypadku, gdy nie można odczytać this-- Wiem, że to nie jest najlepszy. Myślałem, że pojawi się better-- sposób zainicjować dowolną zmienną jest tylko ze znakiem dolara, co chcesz to nazwać, a następnie co masz przypisanie go. Tak więc w tym przypadku jest to około $ var = 3. Więc jeśli kiedykolwiek użyć $ zmienna gdzieś, że tak po prostu być takie same, jak umieszczenie trzech tam. OK? Tak więc, każda zmienna, po prostu znak dolara, co chcesz zadzwonić do zmiennej, i co chcesz je równe. Trochę chłodniej. Mniej pisać do inicjalizacji zmienna, prawda? Czy to ma sens dla każdego? Wystarczy szybkie różnica składnia między C i PHP. Tablice są znacznie chłodniejsze w PHP. Możemy dać im klucze. Tak więc sposób myślenia o jest to, że jeżeli kiedykolwiek chciał, aby uzyskać dostęp elementem wewnątrz tablicy, musimy wiedzieć indeks, prawda? Wiemy, że z C, my może uzyskać dostęp do pierwszego elementu wykonując wspornik tablicy zera, czy my ma pierwszy element, wspornik tablicy jeden. A jeśli chcieliśmy coś tam, że może po prostu mają do iteracji, chyba faktycznie wiedział indeks. Jedna rzecz, która jest naprawdę fajne z tablicami PHP jest to, że są one co nazywamy asocjacyjne. Tak więc możemy powiązać jakiś klucz do pewnej wartości, i jesteśmy naprawdę dzieje to-- pokażę jak możemy wykorzystać to w sekundę. Ale w zasadzie, jeśli kiedykolwiek chcesz zainicjować tablicę takiego, masz jakieś $ array. Tak więc w taki sam sposób, to po prostu niektóre zmienne, które tworzymy. Może to być nazywane co tylko chciał. Może to być $ przykładów. Tylko kolejna zmienna. Co sprawia, że ​​tablica jest Uchwyt składnia, że ​​mamy tutaj. Podobnie jak w normalnym C, a my jakiś klucz do pewnej wartości. Więc klucz1 idzie wartosc1, klucz2 dwa idzie do wartość2. Te pary są oddzielone przecinek, tak jak normalnych tablic. Jednak. Duży. Klawisze są opcjonalne. Nie musisz z nich korzystać. A jeśli nie, to jest po prostu normalne. Pytanie? Albo, och. Publiczność: Cóż, o prawo. Gdzie pamięć pochodzących z? Może to być również samo jak [Niesłyszalne] i ze stosu? Jest to, że także za pomocą PHP? Jak wtedy, gdy jesteśmy ich łączenia? ALLISON Buchholtz-AU: PHP, Nie wydają się martwić, gdzie nasze Pamięć to pochodzi. Nie spędzają dużo Czas mówić o tym, więc to naprawdę nie jest nic musisz się martwić. Tak Klawisze są opcjonalne. W taki sam sposób, jeśli nie chcą, aby ten powiązany, chcesz po prostu w miarę normalną tablicę Tablica zero pierwszy element Tablica jedno i drugie jest elementu, można to zrobić dokładnie jak można w C Masz jakiś zmienna, która będzie macierzy, i jest równa te wsporniki tutaj. Tak. Publiczność: Czy ma sam punkt do notacji. Jak mogę zrobić, jak tablicy ++, i wskazuje na drugiej. ALLISON Buchholtz-AU: Możesz do-- Cóż, może masz jakieś iterator, I, że można zrobić i ++ i zrobić Tablica I w taki sam sposób. Ale to wszystko. Tak, jak w tym przypadku, Tablica 1 będzie równa 20. Sam rodzaj notacji indeksowania. Jest to w zasadzie tylko ukryte rzeczy tu, gdy mówi się do zera, zero do 10, do 1 do 20, od 2 do 30. To tylko klucze ukryte dla niego. Jakie zmiany w PHP jest że masz teraz moc aby przypisać te klucze robić, co chcesz. Więc jedno jest tutaj. Więc mam tylko kilka przykładów tutaj, że ja napisałem dla was bo czuję się jak zawsze przykładów pomóc więcej niż tylko abstrakcyjny. Tak więc, w tym przypadku Tu jakieś asocjacyjną to jest moje imię, moje nazwisko, a ja jestem echo, które jest po prostu do wszystkich celów tutaj zamiar wydrukować do wyjścia tutaj. I mówi, OK. Wydrukować wartość odpowiada tablicy w kluczowych Allison. Mogę również wysłać wam cały ten kod po klasie. Tak więc, kiedy uruchomić to, co zrobić, myślisz, że się wydarzy? Co się wydrukować? Publiczność: Twoje nazwisko. ALLISON Buchholtz-AU: Moje nazwisko. To nie. Tutaj. Wydrukować. Jeśli więc były to zmienić, a my były, aby dodać kogoś do naszego list-- Więc powiedzmy, że mamy Emmę tutaj, i kojarzy nam ostatnią name-- Zobaczymy, czy ja pisze to prawo. Publiczność: Tak. ALLISON Buchholtz-AU: Tak. Publiczność: Dobra robota. ALLISON Buchholtz-AU: Lovely. Więc teraz, jeśli mamy to tu i Chcieliśmy, aby znaleźć swoje nazwisko, masz go tam. Więc może po prostu myśleć o tym jak wymiana tego klucza tutaj. Jesteś po prostu zastąpienie indeksu. Więc pozwala Ci tylko szukaj poprzez szereg znacznie łatwiejsze. Nie musisz wiedzieć, indeks. Tak długo, jak tego klucza, którego szukasz dla uprawiania gdzieś w tablicy PHP będzie go znaleźć i powróci wartości z nim związane. Więc to daje dużo więcej Moc z waszych tablicach. Tak. Publiczność: Jeśli masz dwa klawisze na sam, to daje błąd? ALLISON Buchholtz-AU: To powinno dać błąd, tak. Czy to ma niewiele więcej sensu dla was? W ten sam sposób, mamy macierz tutaj, że nie ma żadnych przycisków. Też jest składnia że warto być świadomi, bo będziesz użyć tego w Pset. Zawsze, gdy robisz echo, masz te cytaty, i kiedy masz na myśli do części tablicy, trzeba mieć te nawiasy klamrowe wokół nich. To trochę irytujące, ale po prostu trzeba to zrobić. Więc po prostu coś pamiętać. Jeśli używasz do błędów, Wiem, że to nie istnieje w moim tablicy ale to rzucanie błędy na mnie, spróbuj umieścić nawiasy wokół niego i to powinno działać. Tak więc w tym przypadku tutaj, to jest normalnie tablica C, że jesteśmy przyzwyczajeni. Ma trzy, pięć, sześć, a my po prostu chcesz wydrukować pierwszy element, tak to powinno wydrukować trzy. A ja nie uruchomić wszystkie te, tak mam nadzieję, że nic się nie zmieniło. Widzimy tu na dole, po prostu drukuje trzy. Fajne. To ma sens dla wszystkich? Tablice asocjacyjne. Znacznie chłodniej niż w normalnych tablic. To why-- Czy Dawid pokazać Realizacja PHP pset6 podczas wykładu w ogóle? OK. Tak, to ci pokażę. Nie znam go t-- Publiczność: Zrobił w zeszłym tygodniu. ALLISON Buchholtz-AU: Czy to w zeszłym tygodniu? Publiczność: Tak. ALLISON Buchholtz-AU: Tak. Tak speller może odbywać się, jak sześciu liniach PHP i części władzy, że Jest to tablica asocjacyjna, gdzie można po prostu załadować każde słowo, i masz to równa true lub false. A więc można powiedzieć, oh. Powrót słownika w jakimś słowie, i jeśli to nie, to zwróci true. W przeciwnym razie, nie znajdzie będzie to i to return false. Więc rodzaj chłodnym drobiazg. Dobrze. To są tablice asocjacyjne. Są bardzo fajne. Bardzo je lubię. I oczywiście this-- Ah. OK. Teraz to działa. Być może. OK. Inną rzeczą. Tak, z równości, tylko fajna rzecz, aby pamiętać. W PHP, ponieważ to jest dynamicznie wpisany, Typ można zmienić w zależności od przypadku go uruchomić, jak używasz go. I rzeczywiście niektóre fajne przykłady, że pokażę wam. Ale == tylko sprawdza Równość po typu żonglerki. Więc jeśli masz coś, co jest jak postać 1 i numer 1, PHP będzie powiedzieć, że te są równe, ponieważ to może żonglować typy dwa z nich, aż będzie równa, które być może w Twoim przypadku jest w porządku. Jeśli potrzebujesz, aby sprawdzić, czy są one samego rodzaju i tej samej wartości typu, chcesz to ===. I nie sądzę, masz jakieś przypadek, gdy trzeba użyć, że w Pset, ale za dużo Ci, którzy będą dalej robić strony internetowe dla ostatecznych projektów i rzeczy, to dobrze wiedzieć, że == i === są różne, a to dobre rozróżnienie zrozumieć. OK. So. Pętle foreach. Są one sposobem na iterację tablicy. Więc, tak jak stało się tablice tak dużo chłodniej w PHP, Twoja droga do iteracji przez tablicę, myślę, staje się również dużo chłodniej i znacznie bardziej wydajne. Tak więc, zamiast konieczności tworzenia niektórzy dla i wynosi 0, a co, a następnie zaktualizować, że i jak przejść przez, mamy ten wspaniały pętli foreach. Więc tutaj jest ogólnie standard Struktura tych dwóch. Więc trzeba albo foreach jakąś tablicę jako wartość chcesz iteracji jak. Więc to jest nazwa tablicy zmienna, że ​​chcesz się odwołać, i to jest to, co chcesz nazwać to w pętli. OK? Więc to odpowiada każdy element tablicy, i korzystania z tej wartości w tej pętli. Mam przykład. Znam przykłady są o wiele lepsze. A więc, gdy nie ma ma klucze, tak to jest jak jeśli tylko mają jeden, gdzie klucze są normalne wskaźniki dla macierzy. Albo jest to również w przypadku, jeżeli nie masz zastosowanie dla klawiszy. Jeśli nie obchodzi klucze i po prostu chcesz iterację z wartościami dla każdego z tych, w dowolnej kolejności, to jest w porządku. Możesz użyć struktury. W przeciwnym razie, jeżeli to klucze, nasze $ Zmienia się tylko wartość $ wartości klucza. Więc po prostu zmienia się w parę kluczowych wartości. A potem możemy odnieść się do $ klucz i $ value w naszej pętli. OK? So. Przykład. Zrób to ładniejszy. OK. Mamy więc ten jeden tu, które mamy pewne are-- Można również utworzyć tablicę tak poprzez niektóre zmienne równe na tablicy z nawiasów, albo po prostu zrobić wspornik. Należy zrobić wspornik, ale Jest to kolejny sposób, aby to zrobić. Mamy tu więc pewną tablicę trzech Elementy jeden, dwa i trzy, i mamy foreach. Zauważ, ten odpowiada Tablica, że ​​mamy iteracji po, i to jest to, co dzwonisz każda rzecz w naszej tablicy. A wszystko to robi jest to zamiar wydrukować każdą wartość. Jeśli więc go uruchomić, możemy zauważyć, że my mają wartość jeden, dwa, wartość wartość trzech. W ten sam sposób, typowo macierze muszą być jednego typu, tablice nie muszą wszystkie być tego samego typu tutaj. Więc teraz mamy trochę int. Mamy dwa ciągi. Więc może twoje tablice się znacznie bardziej wydajne i może trochę trochę bałaganu, w zależności na sposób, w jaki chcesz na to patrzeć. Więc możemy to zmienić do tego, co chcemy. Używamy wartość. To tylko standardowe rzeczy używamy. Ale, tak ważne jest, aby wiedzieć, że możemy Nazywamy to jak licznik, jeśli chcieliśmy. I pod warunkiem, że zgodne, oczywiście wszyscy są szczęśliwi. Jeśli kiedykolwiek chcesz uruchomić PHP uruchomić coś takiego polecenia Wiesz to linia tutaj, po prostu zrobić w PHP, a następnie, co plik, który chcesz uruchomić. Więc jeśli chcesz, żeby poeksperymentować z PHP, a więcej logiki i naprawdę nie trzeba zobaczyć, jak w przeglądarce internetowej, możesz po prostu uruchomić go w tak z linii poleceń i echo drukuje się, co chcesz. OK. Inny sposób, że mamy to tak. Więc jest to przypadek, w którym może chcesz używać zarówno klucz i wartość, Wiem, że są to jak Super wymyślonych przykłady ale mam nadzieję, że oni to trochę jaśniejsze. Mamy tu więc pewną tablicę ponownie, ale tym razem, a nie tylko o wiesz, że nie ma klucza. Mamy klucze do każdego z nich. Więc to będzie jeden, b będzie odpowiadać do dwóch, i C odpowiadają trzy. I w tym przypadku, jeżeli piszemy to w ten sposób, mamy dostęp do obu klucz i wartość dla każdego z nich. Kiedy więc uruchomić to, otrzymujemy każdego z nich. Więc to wypisuje klucze i odpowiadające im wartości. Inną rzeczą jest to, że fajne i wiem, powiedział, jak ten jeden nie miał kluczy, ale zawsze w domyśle ma klucz, bo jeśli nie delegować Klucz, oczywiście, swoje Klawisze są tylko indeksów lub indeksów, więc mogliśmy zawsze też zrobić tego. Tak. Będę wydrukować. Więc w tym przypadku, jeśli zauważysz, mamy klucze ukryte zero, jeden i dwa tutaj. I tak samo z tym jednym, zawsze można po prostu powiedzieć, r jako wartość, i po prostu mieć dostęp do wartości. Nie dbasz o swoje klucze, nawet jeśli ma klucze, jeśli nie obchodzi je, nie koniecznie należy umieścić je w pętli foreach. Czy to ma sens dla każdego? Publiczność: można po prostu zadzwonić klawiszy, też? ALLISON Buchholtz-AU: Tak cię może całkowicie zrobić też. Właściwie, poczekaj. Trzymaj się. Nie będzie it-- Jeśli chcesz, a następnie przycisk co musisz zrobić, klucz do wartości. Publiczność: Dodaj wartość. ALLISON Buchholtz-AU: Tak. I nigdy nie wystarczy użyć wartość wszystkich. Publiczność: OK. ALLISON Buchholtz-AU: Jeśli po prostu umieścić tam jedną rzecz, to będzie zakładać, że jesteś mówi o wartości, a nie klucza. Świetne pytanie. Dobrze. Fajne. Właściwie, trzymaj się. Pokaż mi, co mam. Więc zanim przejdziemy do postu i się, że po prostu chcę pokazać chłopaki trochę o tym, jak to się dynamicznie maszynie, która jest całkiem ciekawie. Mam wszystko. Mam jak cztery przykłady tutaj, a ja wyślę Ci wszystkie tego kodu po zajęciach. Mamy tu więc pewną zmienną a. To tylko 1 plus 1, prawda? I mamy zamiar wydrukować, co to jest równe, a następnie mamy jakiś rodzaj. A ktoś ma jakieś domysły o jakiego typu to będzie? Publiczność: int. ALLISON Buchholtz-AU: Tak, to int. Więc to po prostu dodaje je razem. To int. Wszystko dobrze. Więc to następny, mamy co wygląda jak struny. Kiedy uruchomić to, że myśli, oh. Jesteś rzeczywiście próbuje tylko dodać rzeczy. Po prostu irytować. Więc jestem po prostu będzie naprawić go dla Ciebie. Masz na myśli int. Wiem, że masz na myśli int. Więc to jest jeden ze sposobów, można can zobaczyć, PHP ma własny rozum. Mimo że wyraźnie powiedział, patrzeć, te są łańcuchami. Mam na myśli ciąg jeden. Ale mówi, oh, ale starasz się je dodać, więc musisz oznacza to całkowitą. Zaufaj mi. Więc to mówi, że to liczba całkowita, i dodaje je jak normalne. Więc niby fajne, jeśli masz zamiar dostać leniwy ze swoich rzeczy, lub chcesz coś dodać. Wspaniałą rzeczą jest to, że jeśli myślisz, że z powrotem do pset2, coś, co było użytkownika wprowadzane, prawda, że ​​myślimy jest znak lub ciąg znaków na początku. Teraz nie musimy jawnie powiedzieć, och, zrobić to int. PHP będzie tylko jak, oh yeah. Wiem, że masz na myśli int. Głupi jesteś. Nie oznacza ciąg. Więc w tym przypadku, teraz że mamy to, co myślicie, że będzie to zrobić tutaj? Mamy ciąg i int teraz. Publiczność: To wciąż int. ALLISON Buchholtz-AU: To wciąż int. A powód is-- chciałbym umieścić więcej przykładów, ale ten jest zabawa. Przyczyną tego, że robi to dlatego, to jak próbujesz dodać rzeczy. Więc jeśli próbujesz dodać rzeczy, mam zamiar założyć, rozsądnie, masz coś uzasadnione, że można dodać. Idę zrobić to int, i jesteśmy po prostu będzie je dodać, jak zwykle. A następnie w ten sam sposób, że że uda wam się pomysł. Posiadamy również ten jeden tutaj, co jest tylko zwęgla, a to nie to samo. To jak, ty głupi użytkownik. wiesz, że chcesz int. Publiczność: Jeśli zbierzemy do nas, będzie to zrobić [niesłyszalne] wartość, czy nie? ALLISON Buchholtz-AU: O, to jest dobre pytanie. Zobaczmy. Nie, nadal jest int. Więc to jest trochę szalony. To tylko rodzaj pokazać PHP może czasem zachowywać się w irrational-- Nie całkowicie irracjonalne, ale to może się zachowywać w sposób, że tak naprawdę nie oczekują. Tak więc, w razie wątpliwości, należy sprawdzić rodzaje rzeczy. Ta funkcja gettype może być bardzo przydatna. Zazwyczaj, jeśli robisz coś z plusy lub jakichkolwiek działań matematycznych, to będzie zakładać coś uzasadnione jest tylko int. Tak, masz char 1 lub ciąg 1, lub rzeczywiste int 1, to będzie założyć, że. Jeśli chcesz typecast cokolwiek, to całkowicie możliwe. Można zrobić coś jak dwukrotnie tutaj, jak sądzę. I w tym przypadku, to będzie powiedzieć, oh. Zrobię to podwójnie, ponieważ jawnie mówi, że to podwójne. Możesz zawsze wyraźnie aby coś zrobić w PHP, ale. Publiczność: Czekaj, dlaczego jest plus 1 nie? ALLISON Buchholtz-AU: Och. Nie. To było tylko echo. To była moja wina. Tak, można go wyraźnie powiedzieć zrobić coś z pewnego typu, ale przez większość czasu, to będzie dynamicznie zdecydować, że w czasie wykonywania. Tak to się nie poddawać się przez i to będzie jak, OK. Co sprawia, że ​​większość Poczucie tego być? Powinna ona być w rzeczywistości ciąg? Powinno być int? Powinno być pływak? Powinno być podwójne? I zdecydować, że dla Ciebie. Możesz to zrobić na siłę co chcesz, ale- Publiczność: Czy to czyni to wolniej? ALLISON Buchholtz-AU: No, To znaczy, C jest bardzo wydajny. Myślę, że to zdecydowanie wolniej, ponieważ to ma się do procesu, jak to się dzieje. C, jestem prawie pewien, jest szybszy. Ale oczywiście nie ma wiele fajnych rzeczy w tutaj że nie musimy się martwić. Tak więc, jeśli szukasz poprzez szereg, mamy nie trzeba rzeczywiście stworzyć niektóre wyszukiwanie w tablicy. Możemy tylko prosić o klucz i PHP będzie zająć. Fajne. Niesamowite. Wygląda na to, do końca moich przykładów. Wy nigdy nie będą zapomnieć, że teraz. Masz zamiar być jak, och, to tylko PHP jak to mama, która jest jak, nie, nie, nie. Wiem, co masz na myśli. Wiem, że to, co chcesz. OK. Tak to jest, mam nadzieję, przydatne dla pset, przynajmniej na początku bo jesteś wszystkim o kontaktach w formach i miejscach od użytkownika. Tak więc istnieją dwa sposoby, które przejść wokół informacji z PHP i HTML gdy przekazujemy między tymi dwoma rzeczami. Więc mamy $ _GET, który przeszedł przez URL i mamy $ _POST, które jest przekazywane w komunikacie ciała, i tak uważamy, że ukryte. Ale jedna rzecz, aby zrozumieć, jest to, że żaden z nich nie są uważane za bezpieczne. Jeśli masz kogoś, kto jest przechwytywanie wiadomości wykraczających się między tobą a serwer, mogą jeszcze dostać te dane. Oni po prostu muszą wyglądać trochę trudniej. To nie jest naprawdę that-- tylko ukryte URL. To wciąż w treści wiadomości, choć, więc jeśli mają dostęp do, że, to naprawdę tylko like-- To jak różnica między czymś zapisywane na zewnątrz koperty i coś istota napisane na kartce papieru w środku. To nie jest takie trudne, aby otworzyć kopertę i dostać kawałek papieru w środku. To prawda, że ​​to będzie o wiele łatwiej po prostu czytać na zewnątrz. Ale to, jak można rodzaj myśleć o nich. Żadna z nich nie są Naprawdę uważa bezpieczne. OK? To prawda, nie bardzo znaczenia dla Pset dlatego, że nie mamy do czynienia tajemnic handlowych, ale jest to zazwyczaj jeden rzeczą, że naprawdę Podkreślam, ponieważ ludzi myślę, oh, dobrze, że to ukryty. To musi być bardzo bezpieczne. Nie. To nie jest bezpieczne. To tylko nieznacznie mniej niebezpieczne, myślę. Lub niezabezpieczone. Więc rzeczywiście przykład. Jak wiecie, kocham nauczyć się więcej przykładów. Czuję, że to pomaga lepiej. Tak więc, mamy tu jakiś prosty formularz które w rzeczywistości, jeśli faceci są zawsze mylić o PHP, to jest naprawdę mały, ale php.net jest rzeczywiście bardzo dobra dokumentacja. Naprawdę go lubię. Używałem go do tego przygotować sekcja, więc mogę to dla Ciebie weterynarz. Jest to przykład z nimi na jak $ _POST i $ _GET pracy. Jedyna różnica między dwoma z nich, poza tym, gdy informacja jest wyświetlany, czy to w adresie URL lub w organizmie, jest co metoda jest. Więc w formularzu dla HTML-- This Jest to bardzo prosty formularz HTML. Czy ktoś może mi powiedzieć, co to robi? PUBLICZNOŚCI: Zapytaj o imię i nazwisko oraz wiek. ALLISON Buchholtz-AU: Dokładnie. Mamy więc pewne działania formularza. To mówi nam, że to jakaś forma aktu. A co się stanie, jest, gdy trafić Zatwierdź, to się nazywają action.php, co jest, co to jest, i to będzie to nazwać z metodą $ _ POST. Więc w tym przypadku, twój informacja jest ukryta. i to tylko imię i nazwisko, niektóre Typ wejścia nazwie nazwa, niektóre wiek, input type = "text", które również nazywamy wiek. A potem, jeśli uderzymy Zatwierdź, Prześlij zadzwoni action.php. Więc jeśli rzeczywiście trafiliśmy Prześlij nam wiem, że to pisał, per se, a my rzeczywiście zobaczyć to w swoim Problem, który mam nadzieję, że zestaw będziesz nas się na spacer po trochę. A wszystko to robi tutaj jest POST pewne zmienne superglobalną że rozmawialiśmy o czasie wykładu. I jak można myśleć o $ _POST jest że to tylko tablica asocjacyjna. OK? Więc to jest jakiś klucz, to jest jakiś klucz, a co Użytkownik staje się wejście wartość dla każdego z nich. OK? Tak jakbyśmy byli napisać, co tę tablicę rzeczywiście wyglądało zaraz po złożyć formularz, by nas mają, to jest nasz $ _POST, a niektóre tablica, gdzie mamy trochę nazwę. Powiedzmy, że zrobimy moje imię, i wtedy mamy trochę wiek, 21. Woo. Więc to wszystko $ _POST jest. $ _POST tylko asocjacyjna, OK? To po prostu mówi, OK. Jakie są rzeczy, jakie poprosił o od użytkownika? Czym są zmienne że jesteśmy przechodząc wokół że mamy poprosił w tej formie? I to jakie są Wartości związane z tym? Więc w tym przypadku, jeśli przekazała go z nazwą Ally i 21 roku życia, to co $ _POST wygląda. OK? I to jest to, co ten Plik PHP ma dostęp. Wszystko w porządku? Tak więc w tym przypadku jest to, podobnie jak uzyskanie jakichkolwiek innych rzeczy z naszej tablicy. Zamiast indeksu w naszym tablica, mamy pewne klucz. Więc to ma dać mnie wartość w nazwie klucza. Więc to będzie Ally i To właśnie tutaj jest da mnie wartość na $ _POST, gdzie Kluczem jest wiek, który będzie 21. Masz zamiar być robi to całkiem sporo. Tak, z których część? Publiczność: Kiedy byłeś wskazując na części dolnej. ALLISON Buchholtz-AU: Ta dolna część? OK. Więc rozumiem, to jest nasz HTML tworzyć i mamy pewne metody $ _POST, które liczy. To może być również $ _GET, jednak w tym celu, jesteśmy po prostu powiedzieć, że to $ _POST. Kiedy przesłać ten formularz, to jest część pliku PHP, który się nazywa. Więc ten plik PHP jest obecnie na wykonanie biorąc pod uwagę informacje z naszej HTML Formularz. Więc co robi to, gdy uderzył Wyślij na naszego formularza HTML, to przechodzi ci to superglobalną, który jest tylko tablica asocjacyjna. Jest to. To tak, jak mimochodem, że do pliku. A to co mówi jest OK, oto $ _POST. To Twoja tablica asocjacyjna. Z nim zrobić co chcesz. A my mówimy, OK. Daj mi wartość w nazwie, i daj mi wartość na wiek. Więc to tylko klucze, i to jest nasza tablica. Czy to ma sens? Publiczność: Mhmm. ALLISON Buchholtz-AU: Awesome. Publiczność: Jeśli musisz ponownie forma to po prostu napisz na danych? ALLISON Buchholtz-AU: Tak. Mhmm? Publiczność: Dlaczego masz aby określić, że jest to int? ALLISON Buchholtz-AU: W tym przypadku, użytkownik po prostu zmuszając go być int. Publiczność: OK. ALLISON Buchholtz-AU: Nie wiem czy rzeczywiście trzeba, że ale do swoich celów, postanowili że chcą, że jest int. Oni tylko rzutowania go. Być może, że używają go jako coś jeszcze później. To tylko jeden fragment. Tak? Publiczność: Co, jeśli wpisany 12, T-W-PL-L-V-E, do wieku? ALLISON Buchholtz-AU: Jeśli starał się wpisać, że jako int? Publiczność: Tak. ALLISON Buchholtz-AU: I zapomnieć, co to jest. Myślę, że to może spróbuj konwersji Pierwszy znak na int, lub wybrać wartości i konwersji to, ale nie pamiętam dokładnie, co to. Być zabawne rzeczy pisać Program i spróbować. Zrobić kilka linii. OK, więc jest jednym z głównym rzeczy, które masz zamiar robić. Mam zamiar iść z nadzieją przez kilka plików z Pset z was. Wygląda na to, że będziemy mam czasu, więc możemy to zrobić. Ale masz zamiar być robi wiele rzeczy jak to, dokąd się wybierasz, przechodząc rzeczy z formularza HTML w tej formie, że będzie to w PHP wykonać jakiś zestaw instrukcji na danych, które zostały przekazane. To dosłownie sedno swojej Pset. Tak. Publiczność: type = "submit", że sprawia, że ​​przycisk na formularzu HTML. Czy istnieje sposób, aby zadzwonić że przycisk coś? Więc chcesz być jak name = "submit"? Albo po prostu jest, że przycisk będzie opróżnić teraz, bo tylko dał jej typ, a nie nazwa. ALLISON Buchholtz-AU: Myślę, że to tylko będzie pusta teraz. Możemy na pewno wyglądać w pset, bo na pewno patrząc na zarejestruj typu rzeczy. Ale tak, na pewno można określić tekst, który chcesz na przycisku. OK, więc SQL. Kiedy kupna i sprzedaży akcji, musisz śledzić te. Tak więc sposób mamy zamiar zrobić to z SQL, który jest tylko w bazie. Pomyśl o tym jak o stół, gdzie jesteś utrzymując wszystkie te informacje o swoich różnych użytkowników. I chłopaki są naprawdę zamierza stworzyć jeden z nich. To całkiem fajne. A tam są tylko cztery główne rzeczy które musisz wiedzieć o tym Pset, i są one aktualizacji, więc w zasadzie aktualizacji danych. Który zakłada, że ​​on już tam jest. Jeśli go tam nie ma, to będzie uderzy cię z błędu, więc może chcesz sprawdzić. I będzie aktualizować on-- I powinny actually- mam czas, Napiszę kilka z nich. Ja rzeczywiście daje faceci Kilka próbki, pełne polecenia SQL, ponieważ są to tylko główne z nich, ale można połączyć je ze sobą. Więc zrobię to i wyślę że się do was z tych notatek. Więc jeśli chcesz zaktualizować coś, trzeba powiedzieć to, co masz aktualizacji i gdzie masz aktualizację. Tak typowe polecenia SQL będzie aktualizacja ID, gdzie coś jest równa coś. Albo jak adres aktualizacja gdzie ID jest równy 3, i będzie to zaktualizować pole adresu swojego użytkownika, który ma identyfikator z trzech. OK? Więc jeśli się do SQL i W3Schools, mają niesamowite przykłady. W rzeczywistości, mogę wyciągnąć niektórzy się trochę. A następnie wstawić do, jesteś po prostu wstawianie pewnych wartości nie. Więc jeśli próbujesz stworzyć jakiś nowy wpis, więc tworzysz nowego użytkownika, można wkładać do niezależnie od bazy danych nazywa, i trzeba wszystkie te wartości. Następnie trzeba wybrać, wybrać wartości obejrzeć. Więc jeśli starasz się sprawdzić sprawdzić, czy użytkownik istnieje lub jesteś próbując złapać specyficzne Informacje o użytkowniku masz zamiar używać wybierz. A następnie usunąć, myślę, tam jest dość prosta. Jesteś po prostu usuwanie coś ze stołu. I rzeczywiście, niech rzeczywiście wyciągnąć się kilka przykładów dla was. Och, spójrz, to moja 61 strona. Więc jeśli idziemy do W3Schools, miejmy nadzieję, że to się znowu. Tak, Kocham go. Idziemy do SQL. Tak, to jest coś tutaj. Tak, to jest bardzo proste SELECT. Człowiek, kocham tę funkcję. Tak, można mieć SELECT niektóre pola z klientami. W tym przypadku odnosi się do klientów w Internecie bazy danych, które używasz, więc cokolwiek tabela nazywa, i gwiazda po prostu oznacza, wybierz wszystko. Daj mi każdy. Tak, po prostu chcę, aby dać Ci faceci Kilka przykładów, gdzie to jest. Więc mamy SELECT, UPDATE. Więc tutaj jest rodzaj ogólnej składni. Więc aktualizacji, niezależnie od Nazwa tabeli jest, a następnie SET gdzie jesteś rzeczywiście dzieje za jakie dane masz zmienia. Więc może to być: Let mi zrobić tu przykład. Więc to będzie być: OK. Więc stworzyłem małą bazę dla nas. Mamy zamiar mieć jakiś identyfikator, kilka lat, a niektóre nazwiska. Więc jeden identyfikator będzie rok '15, i jesteśmy po prostu zamiar zrobić to mnie. Kto chce być drugi osoba w naszym stole? Każdy. Idę do wyboru Emma bo twoje imię na szybkie. Emma, ​​co roku jesteś? Publiczność: Co roku? ALLISON Buchholtz-AU: Tak. Publiczność: '16. ALLISON Buchholtz-AU: '16. Jesteś po prostu będzie moja świnka morska na dziś. OK, więc mamy te dwie osoby. Właściwie, pozwól mi to zrobić. Powiedzmy, że słyszałem jej źle, a ja rzeczywiście powiedział, że jest rok młodszy. Ona '17. Co chcemy zrobić tutaj, jeśli chciał zaktualizować roku Emmy za prawidłowe pomocą tego, co my zrobić, to chcemy powiedzieć, aktualizacji danych tutaj. A wszystko to może być w jednej linii, ale ponieważ jestem tu skompresowane do przestrzeni, Mam zamiar napisać tutaj. I chcemy ustawić. Więc to jest tabela aktualizujemy. SET będzie co kolumna lub jakie dane są nam rzeczywiście się zmienia. Co mamy do zmieniających się rok, więc mamy zamiar powiedzieć SET rok = 16, a następnie GDZIE mówi nam, który użytkownik lub co rząd są rzeczywiście aktualizacji tego. Więc gdzie? Mamy tu dwie możliwości. Jakie dwie? Są wyjątkowe, prawda? Więc nasze imiona są wyjątkowe i nasz ID jest unikalny, więc jakie są dwie opcje dla których możemy to zrobić? Dam ci jedno. Moglibyśmy zrobić WHERE ID = 2, lub możemy zrobić to, co jeśli będziemy się ten paradygmat tutaj. PUBLICZNOŚCI: [niesłyszalne]. ALLISON Buchholtz-AU: Dokładnie. Więc możemy również zrobić name = Emmę. I jeden z nich będzie działać. I wpadliśmy to, że to będzie jak, OK. Możemy ją zmienić. Jesteś w rzeczywistości 16, więc teraz masz rację ponownie. OK więc byłoby bardzo przydatne w Pset gdzie może ktoś postanowił kupić 100 akcji Apple, a następnie były one podobne, tylko żartowałem. Chcę tylko 90 akcji. I tak sprzedają 10 z nich, więc należy zaktualizować ilości zapasów że mają. Tak, aktualizacja zapasów, aktualizacja tabeli. OK. Więc to jest jeden przykład nie. To składnia aktualizacja. DELETE. Och. Włóż w to nasz drugi. Tak, ten tutaj jest bardzo podobna. Możemy tylko powiedzieć, w tym Sprawa dodajmy kogoś. Możemy dodać Bena ten czas. Mamy INSERT INTO, a my ma nazwę naszej tabeli. W tym przypadku jest to dane. A potem po prostu chcesz, masz zamiar powiedzieć, wartości, a co masz zamiar zrobić jest, rzeczywiście należy się upewnić, że masz coś dla każdego wiersza że chcesz. Wystarczy umieścić je w kolejności. Więc w tym przypadku, to mówimy, trzy. Jesteś 18, prawo Ben? Grupa docelowa: 19. ALLISON Buchholtz-AU: 19? Grupa docelowa: 19. ALLISON Buchholtz-AU: Twoja roku '19? Przejściu w '18, prawda? Publiczność: Och. ALLISON Buchholtz-AU: rok Graduation. Publiczność: OK. ALLISON Buchholtz-AU: Ja na to, czy jesteś już planuje wziąć rok wolnego tutaj? Tak, '18, mamy Ben. Więc w tym przypadku, to przejść, byłoby utworzyć nowy wpis. Fajne. Nie jest tak źle, prawda? Dużo to będzie być składnia dla was. Koncepcje powinny pochodzić, miejmy nadzieję, że stosunkowo łatwo. Składnia jest jedyną rzeczą, że może być trochę trudne. A potem jest nasz ostatni DELETE, i, jak można zauważyć, Gorąco polecam tę stronę. To wspaniałe. Jest mnóstwo rzeczy. Tak, w ten sam sposób, że mieliśmy niektóre UPDATE, DELETE jest bardzo podobny. Zamiast tego mamy Usuń z danych. Więc w tym przypadku, nasz ostatni jeden napiszę tutaj. Powiedzmy, że chciał mnie usunąć. Nie mogę napisać dziś. Usuń z co jesteśmy w tabeli danych. A tak naprawdę są trzy sposoby możemy wybrać, aby mnie usunąć. Może wy mi powiedzieć, co trzy sposoby są, jak można mnie usunąć? Identyfikator jest równa 1, gdzie ID jest równa 1. Możemy zrobić, gdy rok wynosi 15, lub gdy nazwa równa Allison. Oczywiście, istnieje tylko trzy różne sposoby, bo to wszystko jest wyjątkowe. Zazwyczaj w tabeli, a zwłaszcza w Pset, masz zamiar ustawić jedną kolumny te być unikalne. To prawdopodobnie będzie jakiś unikatowy identyfikator liczba, bo jeśli have-- rzeczywiście, to może rzeczywiście pozwalają mieć dwa. Nie pamiętam, czy będzie to pozwolić masz dwa z tej samej rzeczy. Publiczność: Wtedy będzie zmienić swoje zachowanie. ALLISON Buchholtz-AU: To będzie. To będzie powodować nieoczekiwane zachowanie, które jest, że tak naprawdę nie można przewidzieć. Więc to na pewno ma jedną kolumnę w bazie danych, że będzie wyjątkowy, i to zazwyczaj można ustawić to tak, że to jest jak unikatowy identyfikator, i będzie to po prostu aktualizować co Czas wstawić do tabeli. Za każdym razem tworzyć nowe wiersz, to automatycznie zwiększyć i nadać mu jakiś unikatowy identyfikator. Więc wskazówka dla Pset. OK. Więc to jest SQL. Więc teraz będziemy mówić o Ostatnią rzeczą, która łączy w rzeczywiście bardzo dobrze z pset, czy to iść do przodu. Tak MVC, widok modelu sterownika. To jest tak naprawdę sposób utrzymać wszystko zorganizowane. W ten sam sposób z C pytamy was tworzyć funkcje i oddzielne rzeczy na zewnątrz, to jest po prostu sposobem na oddzielenie Kod kiedy robisz tworzenie stron internetowych. Więc to sprawia, że ​​rzeczy o wiele bardziej elegancki i uproszczone, i to jest rzeczywiście droga że pset jest rzeczywiście skonfigurować tak, czy wam się podoba czy nie, masz zamiar się tego nauczyć, nawet jeśli uważasz, że nie uczysz go. I jedno jest, ale również pozwala na znacznie więcej jak współpracy użytkowników. Więc kiedy wziąłem CS50, zrobiłem strona mojego ostatniego projektu, a ja na to, będę obsłużyć rzeczy bazy danych. Zrobię z powrotem koniec rzeczy, a my współlokator, który robiłem z nim był bardzo artystyczną. Robi scenografię, a ona chciał, aby to wszystko dość. Więc jestem jak, OK. Możesz zadbać o przedni koniec wszystkich rzeczy. I jest to, jak zobaczymy bardzo szybko, że kontroler pozwala Ci widok modelu całkowicie oddzielić ten kod tak że mogę pracować na realizacji naszych stron, Informacje i manipulacji w naszych bazach danych, a może po prostu zrobić rzeczy ładna, i oboje byliśmy bardzo zadowoleni, bo mamy co robić oboje chcieli, a my nie mieć do czynienia z drugim. Więc trzymaliśmy się razem. Lubimy spędzać czas. Ja po prostu nie chciałem mieć do czynienia z wszystkie rzeczy CSS i HTML. Byłem jak, zrobisz to całkiem. Zajmę się w bazie danych. Tak naprawdę to mamy fajne, bardzo mały stół. Uwielbiam tabele. A w zasadzie, model można myśleć to tylko baza danych. Jestem osoba model dla mojego projektu. To wszystko na temat przechowywania Informacje i organizowania tych danych. Więc to, co lubimy oddzwonić koniec. Więc chłopaki będą mieć do czynienia z bazy danych SQL i pliki danych. To model. Twój widok, a może po myślę, rodzaj ma sens, jest to, co w rzeczywistości widzi użytkownik. To interfejs użytkownika. Jest to komponent, który stoi z przodu. Więc to, co mój współlokator ma pracować cały czas. Była bardzo szczęśliwa. Więc to wszystko w HTML, i jest bardzo mało PHP. Jeśli chodzi tylko o to, co jest wyświetlane użytkownikowi, mówimy o hipertekstu. Mówimy o tym, jak to wygląda. Nie mówimy o logice, lub warunki, lub cokolwiek. Wszystko to zostaje obsługiwane przez sterownik, OK? Więc, który obsługuje żądania użytkownika i dostaje informacje. Więc jedna rzecz, należy wiedzieć o Twój pset jest to, że w swoich poglądów, wszystko, co jest w rzeczywistości wyświetlanie informacji nigdy nie powinny być co wzywa do modelu. Wszystko to jest obsługiwane w kontrolerze. Kontroler jest jeden mediacji między tymi dwoma. Zwróci się do modelu do pewnych informacji. To może iteracyjnego, że informacje, dowiedzieć się, co rzeczywiście trzeba z to, co z nim zrobić, a następnie będzie on przekazać tylko informacji potrzebne do widoku, aby go wydrukować się lub wyświetlić go do użytkownika, OK? Ponieważ widzimy widok jak co jest w stronę użytkownika, więc będzie to znacznie łatwiejsze dla nich, aby dowiedzieć się, oh, jeśli robisz niektóre połączenia do modelu i pytasz dla wszystkich użytkowników którzy zaczynają się na literę A, i robisz, że w świetle, Każdy, kto może zobaczyć swoją stronę może potencjalnie uzyskać dostęp do tego. Nie koniecznie chcemy. Nie chcesz, aby ludzie widzieli bardziej do bazy danych niż to, co należy je zobaczyć. Tylko ich konkretne preferencje. Więc sterownik obsługuje wszystko. Więc wszystkie swoje pliki .php, że zobaczymy można rozważyć pliki sterownika. I to, gdzie jesteś naprawdę będzie prosząc o rzeczy z bazy danych, i iteracji lub manipulowania za konieczne przed przekazania go do oglądania. To naprawdę fajne pset, w mojej opinii. Myślę, że to trochę więcej jak natychmiastowej gratyfikacji, ponieważ wdrożenie Wiele maleńkie rzeczy, i każda rzecz powinna działać na własną rękę. Nie podoba, zrobić wszystko a następnie sprawdzić, czy to działa. Podobnie jak z oprogramowaniem gdzie jesteś jak, jestem naprawdę nadzieję, że to jest rację, bo jeśli nie, istnieje wiele stawia to może być źle. Dobrze. Wystarczy upewnić się, że powiedziałem wszystko, co potrzebne, aby powiedzieć o MVC. Tak. Fajne. Więc w CS50 Finansów, mamy nasz model, jak właśnie powiedziałem tutaj. To będzie MySQL i phpMyAdmin. Mogę z pewnością ci się tak ciągnąć macie szansę na to patrzeć. Tak jak mówiłem wcześniej, to twój SQL Baza danych działa jako modelu, i można wysłać co zapytań zadzwonić, które są tylko te rodzaje rzeczy. Są to tak zwane zapytania. Jest to zapytanie, w którym jesteś tylko prosząc o coś do bazy danych, lub jesteś Zmiana Baza danych w jakiś sposób. To wszystko to jest. I zrobić z Funkcje jakie wam tutaj. Można również manipulować je ręcznie za pomocą phpMyAdmin, które mogą zdecydowanie przyjrzeć. Będę tworzyć próbkę Baza danych z wami. OK. Tak, sterownik. Tak więc w tym przypadku, jeśli Ogłoszenie, to wszystko jest w PHP. Zauważ, że to rodzaj Twojego Najważniejsze z kontrolera jest to, że powinny być prawie php. Jeśli masz kod HTML w kontrolerze, naprawdę nie wiesz, co się tam dzieje. W ten sam sposób, jak powiedziałem, jeśli Ciebie udało się [niesłyszalne] z HTML, Jestem prawdziwym zainteresowany. Tak więc to, co mamy tutaj to masz jakieś zapytania. Zapytanie jest funkcja stworzyliśmy dla was. To jak opakowaniu dokonania zapytania do bazy danych trochę łatwiej. Jeśli nie masz, że składnia rzeczywiście mówić do bazy danych SQL będzie się różnić, dlatego tylko dostarczyć go dla was. Chcemy ułatwić życie. Więc w tym przypadku, może wy powiedz mi, co ta linia robi? SELECT * z jakiejś tabeli. Odbiorcy: Wybierz wszystko z tej tabeli. ALLISON Buchholtz-AU: Dokładnie. Więc to mówi, daj mi wszystko z tej tabeli. I to jest przechowywanie go w część zmienna wynik. I to mówi, jeśli wynik nie jest równy false, następnie robimy każdy o tym. Więc jeśli nie ma nic tutaj, jeśli twój tabela jest pusta lub po prostu nie istnieje, to będzie return false. Tak więc w tym przypadku mamy tylko co upewnić się, że rzeczywiście coś było wrócił do nas. I to tutaj, mamy nasza wielka pętla foreach że mamy do iteracji po naszym wynik, a my nazywając go rzędu, i mówimy, czynią ten szablon gdzie dane jest ten wynik. OK? Więc to tylko przetwarzania wiersz wyniku. W przeciwnym razie, to krzyczy. Tak więc, jest przykładem sterownika. Jak widać, jest to place-- tylko Tak, przepraszam? Publiczność: Dlaczego nie ma ampersand przed rzędu? ALLISON Buchholtz-AU: Ampersand przed rzędu. Jesteśmy po prostu iteracji. To także adres of-- Publiczność: Tak to jest jak C referowania. ALLISON Buchholtz-AU: To upewniając się, że jesteś w rzeczywistości modyfikując oryginalny i nie kopia. Jest w ten sam sposób jak C, przy czym przekazujemy poprzez odniesienie, po prostu aby upewnić się. Publiczność: Czy nie == zamiast nie = w PHP? ALLISON Buchholtz-AU: To nie jest ==. PUBLICZNOŚCI: Ponieważ równa jest just-- w C ALLISON Buchholtz-AU: To nie tylko =. Tak, nie. To nie jest ==. Ponieważ == w PHP sprawdza równość z przełączaniem, udzielone, ale ekstra jakość. Tak, to nie jest == w PHP. To jeden z mało Różnice składniowe. Tak. Więc my tylko iteracji za każdym rzędzie i uczynić, jeśli was przeczytać swojej specyfikacji, tylko kilka innych funkcji, które jest rzeczywiście będzie przetwarzać wszystkie HTML i wyświetlić go w przeglądarka internetowa dla Ciebie. OK. Tak, lubimy myśleć o kontrolerach jak to, co obsługuje logikę biznesową. Jak widać tutaj, to gdzie jesteśmy przy nasze dane z tabeli mamy do przetwarzania go w jakiś sposób, a następnie przekazujemy je. Kiedy robimy wykonywać pewne szablonu jakiś szablon jest nasz pogląd, i przekazujemy go tylko Dane, które powinny dostać. Nie wszystkie dane. Tylko dane, które chcemy uzyskać. OK? Zasadniczo dane po przetworzeniu. Więc to jest widok, to jest Szablon suma, że ​​mamy, a wszystko to robi jest, można mieć trochę PHP w widoku. To nie tak, to nie PHP w widoku. Należy po prostu bardzo minimalne PHP w widoku i nigdy nie powinno być zapytań w widoku. Nigdy nie powinno się mówić do bazy danych w widoku. To duża różnica. Więc co tu się dzieje jest, mamy PHP, który jest iteracja rzędu. W tym wypadku, ponieważ były iteracja każdego wiersza i czyniąc coś, to był pewnie jak dwuwymiarowej tablicy gdzie mamy kilka wierszy, które jest sama w sobie, tablica, bo mamy iteracji przez to ponownie. A my po prostu drukowanie Nazwa wiersz, a następnie zakończyć ją. Nie ma potrzeby to w foreach. Nigdy nie widziałem, że przed faktycznym. Ja po prostu nie foreach. OK, więc to widok. Zobaczmy, czy możemy przejść przez trochę swojej Pset. Mamy 15 minut, więc jestem pewien, że faceci chcieliby, że więcej niż tylko kończące wcześnie. Pozwól mi zobaczyć, czy mogę to wywołać. Więc nie wiem, jak wielu z was pobraniu go i jeszcze cokolwiek, ale tutaj mamy nazwę użytkownika, i mamy pewne hasło. I niestety, prawo Teraz baza danych jest pusta, więc tak naprawdę potrzebują w celu utworzenia bazy danych. Dobrze, że to dziwne. Nie spodziewałem się, że. Błędy techniczne. Trudności techniczne. Mamy pewne pset7. Fajne. Tak więc, jedno można zrobić, to, z query-- będę utworzyć tabelę. Więc to będzie users-- co można zrobić, o to, czy mamy some-- Naprawdę teraz? OK. Oczywiście nie robię tak gorąco. Och. Wiem dlaczego. Bo nigdy nie stworzył moje aktualne tabele. Więc przy pierwszym uruchomieniu z w bazie, to oczywiście zdecydować, jakie są rzeczy muszę mieć tutaj? Więc jeśli po prostu gaśnie nasz stół tutaj dane, mieliśmy jakiś identyfikator, który może po prostu zostać int. A jeśli przyjrzymy się tutaj, nie fajne that-- indeksu So. Jeśli nie podstawowym, pozwoli on rzeczą, że tabela jest organizowana przez, i będzie to również uczynić go wyjątkowym. Więc w tym przypadku, zrobimy to podstawowa, i idę do tej nazwy, następnie musimy po prostu zrobić to varchar jakby 26 liter, bo dlaczego nie? A następnie można przejść do zapisania, a następnie jeśli widzisz, mamy tu kilku użytkowników. Więc jeśli chcemy zrobić włożyć, możemy to zrobić w ten sposób, lub jeśli chcesz praktyki z queries-- rany. Nie używałem tego na zawsze. Biorę to z powrotem. Możesz ją zmodyfikować, na własną rękę, albo tylko ręcznie umieszczania informacji z czymś, ciebie może zmienić każdy z nich jeśli chcesz make-- Jeśli chcesz nagle pozbyć się nazwą, można upuścić, możesz zrobić wszystkie te rzeczy. Jeśli potrzebujesz, aby kiedykolwiek ręcznie zmienić tabelę, Proponuję robić to w phpMyAdmin porównaniu próbuje dowiedzieć się, SQL zapytania w ogóle. Podczas pierwszego uruchomienia Pset, masz zamiar pracować tutaj, tak się do tego przyzwyczaić. I wtedy, gdy rzeczywiście chcesz włożyć rzeczy do swojej table-- Naprawdę zastanawiam się, gdzie to jest, bo there's-- Oto ona. To jest to, co chciałem. Więc jeśli się do SQL, można rzeczywiście zobaczyć, jak widzimy tutaj, mamy zapytań SQL. Więc jeśli chcemy wybrać coś lub jeśli chcemy wstawić coś, możemy zrobić wkładkę do użytkowników, prawda? Myślę, że trzeba backslash. Jedną rzeczą jest wiedzieć, czy jesteś zawsze przy użyciu tego, musisz użyć ich z powrotem apostrof, które są typowo, jeśli jesteś na komputerze Mac, tuż nad karcie. Więc dobrze wiedzieć. Można wstawić do użytkowników, a my mamy nasze wartości, prawda? Mamy więc wartości, a nasze wartości w tym przypadku po prostu być mamy tylko identyfikator więc może zrobić jeden, jeśli chcieliśmy. To dziwne. OK. Więc to jest tak jak w skrócie maleństwo z SQL, ale to może być bardziej przydatne do rzeczywistości spojrzeć na niektóre pliki tutaj. Więc idź do pobrania. Och, nie do pobrania. Tak, tylko krótki przegląd co jest w każdym z tych folderów. Obejmuje ona, musimy po prostu rzeczy że skonfigurować przeglądarkę, mamy te stałe, i mamy te funkcje. Jeśli jesteś zainteresowany w żadnym z nich, Polecam patrząc na funkcje. Jeden z nich, który jest bardzo przydatny, w rzeczywistości jest to jeden tutaj, wysypisko. Więc jeśli używasz tego, to będzie właściwie tylko wydrukować cokolwiek zmienną że lubisz go. Więc jeśli masz problem na zastanawianie co ta tablica wygląda, lub co dane faktycznie, jak jest sformatowany, to jest wielka rzecz, aby użyć. Zwłaszcza, gdy masz Użytkownik z wieloma magazynie, to będzie coś wielkiego w użyciu. Ponieważ może to być formatted-- Wiem, przynajmniej dla mnie, kiedy ja to zbior, została sformatowana w sposób że nie dość się spodziewać. Więc starałem się przejść przez wszystkie to i próbuje manipulować, ale tak naprawdę nie zrozumieć, co robię. Więc jeśli po prostu zrzucić, to będzie wydrukować go do przeglądarki, i można zobaczyć dokładnie, jak jest sformatowana. Będzie to zazwyczaj wydrukować jako tablica z jego kluczy i jej wartości. Więc może to nie pomóc. Może to również pomóc, aby upewnić się, że jesteś w rzeczywistości chwytając dane myśleliście, że jesteście. Więc jeśli były podobne, na pewno moim stole mówi, że jest z tym ID użytkownika, ale kiedy go zrzucić zmienna, to nie istnieje, to oczywiście wiemy, że to gdzie błąd będzie. Jest to jedno z najlepszych narzędzi do debugowania, w mojej opinii. A wtedy nie Kilka innych rzeczy tutaj, jednak w przeważającej części, to jest jedno chcę zwrócić uwagę na, bo to jest bardzo pomocne. Publicznego, co mamy tutaj jest, to wszystkie nasze CSS rzeczy. Więc CSS, czcionki, nasze zdjęcia, cokolwiek. To wszystko rzeczy, które nie trzeba modyfikować. Czy myślicie o tym, czy to ma takie rzeczy jak CSS w czcionek, będzie to model, lub widoku lub kontroler? PUBLICZNOŚCI: [niesłyszalne] ALLISON Buchholtz-AU: To, że być bardziej myślą, prawda? To jest obsługa wszystkich rzeczy, jak wyglądają rzeczy. Jeśli więc otworzyć to tutaj widzimy, że wszystko, co się tutaj dzieje renderowania jest coś mamy. OK? Więc to będzie bardzo zakwalifikować jako widok do tego. Więc to jest tylko przy niektórych, że dzwoni jakiś portfolio.php które mamy, i to przechodzi w tytule i portfela. I to jest właśnie renderingu,. W zasadzie robię to z powrotem. To jest regulator, ponieważ render, pamiętaj, renderuje widok. Więc portfolio.php w tym Sprawa będzie twój widok. Niestety, chłopaki. Portfolio.php będzie Twój widok, a to po prostu być kontroler do tego. A jeśli spojrzeć na to ostatni tutaj, szablony, szablony są wszystkie Twoje poglądy tutaj. Więc jeśli spojrzymy, oczywiście widzimy dużo HTML tutaj. Więc to jest tylko jeden, co pokazuje strona logowania powinien wyglądać. Można zauważyć, mamy pewne tworzą grupy, mają złożyć. Oto, w jaki sposób zdecydować, co jest wyświetlane na nie. Masz jakiś typ przycisku = "submit", i masz to, czego chcesz wyświetlić w przycisku. Więc to, jak można zrobić to pokazać się w co chcesz. I widzimy tutaj mamy pewne nazwę użytkownika, hasło operatora, i kiedy rzeczywiście trafiliśmy Zatwierdź, to będzie jakiś słupek, i to będzie dodawać do czego? Co znajduje się sterownik dla tego widoku? Kiedy uderzył Zatwierdź, co dzieje się nazywać? Czy wiemy? To właśnie tutaj, więc login.php. Coś chłopaki są zamiar wykonania. Więc zawsze można powiedzieć, co będzie zwany po trafieniu Zatwierdź od tej pierwszej linii tutaj. Co to jest działanie formą. Gdy ten formularz jest składany, jakie działania możemy podjąć? Nazywamy login.php, a my nazywają go z tej metody o stanowisku, które ma ukryte informacje. OK? Więc to jest twój pogląd, a to oczywiście jeśli poszliśmy do login.php-- mamy go jeszcze? Tak. Tak więc, jak widzimy tutaj, to ma dużo więcej logiki. To wszystko nasza PHP tutaj. Staramy się, aby zobaczyć, czy to $ _GET, czy to $ _POST, sprawdzanie rzeczy, zapytań, wszystkie te rzeczy. To są tylko trzy różne rzeczy tutaj. nie musisz coś zmienić. Będziesz tworzenia rzeczy w matrycy, ewentualnie ale jeśli chodzi o HTML lub stylizacja nic z tego idzie, można zostawić go jako zwykły lub jak skomplikowane, jak chcesz. Niektórzy ludzie naprawdę się do niego i zrobić kilka dość niesamowite stron internetowych. Nie musisz tego robić. Jeśli masz czas, to naprawdę fajna rzecz. Możesz poeksperymentować z CSS i HTML i dużo lepiej czuć na nim, ale nie czuje się zmuszony do. Jest dużo, aby zrobić na back-end z realizacją zalogować, i zarejestrować się, a wszystkie te rzeczy. Więc mam nadzieję, że pomaga trochę. czy macie jakieś pytania o niczym posunęliśmy się, wszelkie inne środki? Na pewno będę wysyłać wszystkich mój przykład kodu PHP do was, i zachęcamy do podjęcia zdjęcia lub cokolwiek z tego. Także to jest online. Zawsze można po prostu obejrzeć ponownie. Więc jeśli o to chodzi, każdy dobry? Tak. Publiczność: Chcę tylko w celu potwierdzenia, kiedy jesteśmy robi select w SQL, gwiazda oznacza wszystko, prawda? ALLISON Buchholtz-AU: Tak. Grupa docelowa: I wtedy, jeśli nie ma gwiazdy, jeśli chcesz wziąć ze specyficznych wiersz, a następnie po prostu umieścić nazwę of-- ALLISON Buchholtz-AU: Nazwa rzędu i co chcesz chcesz wartość. Grupa docelowa: I wtedy data. ALLISON Buchholtz-AU: Cokolwiek szukasz, tak. W ten sam sposób, jeśli nie DELETE * od niektóre tabeli, będzie to usunąć wszystko. Więc, * to tylko dzikie karta do wszystkiego. Publiczność: OK. ALLISON Buchholtz-AU: Fajne. Niesamowite. Cóż, mają wielki poniedziałek, chłopaki. Zobaczymy się w przyszłym tygodniu. Powodzenia w Pset.