>> SAM Levatich: Hoşgeldiniz Bu hafta bölüm.
Ben Andi değilim.
Andi bu gün hasta düştü ve ben vardır tür son dakikada denilen edilmiştir
devralmaya.
Bu grip sezonu, bu yüzden emin olun siz Temiz kalıyorsun, ellerini yıkamak,
ve sağlıklı beslenme, böylece Sen de, yatalak değildir.
>> Ama daha olmadan ado, hadi başlayalım.
Bugün, biz konuşacağız PHP hakkında biraz nasıl Kişilik Sokak
PHP nasıl, HTML ile ilgilidir CSS ile ilgilidir ve web bazı
şeyler son atama yaptı.
Biz konuşacağız SQL hakkında biraz
ve veritabanları ile çalışmak nasıl, hangi P oldukça önemli bir bileşenidir
set 8-- P 7 ayarlayın.
P 7 ayarlayın.
>> Ve sonra biz biraz konuşacağız görünüm denetleyicileri nasıl çalıştığı hakkında biraz
ve bazı arkasında bir felsefe neden Modern web sayfaları ve farklı tasarım.
Apps türleri Hemen hemen bir çok ve uygulamalar gemi olabilir
Bu modeli kullanan, görünümü denetleyicisi çerçevesi,
Kullandığınız olacağını P 7 set, bu yüzden olacak
biraz konuşmak Bu hale geldi neden
popüler, önemli ve güzel neden.
Ve sonra nihayet hareket edeceğiz P mücadele konusunda bazı ipuçları 7 ayarlayın.
Ve biz zamanınız varsa sonunda arta kalan,
biz aslında bazı yapabiliriz Birlikte o çalışır.
>> Yani, PHP.
Aslında, bu-- fark etmişsinizdir Eğer gerçekten bu-- dalmak yoktu
ancak P 6 set bazı PHP vardı gidiyordu kodu.
Ve PHP çünkü C-gibi dil, PHP, HTML ve CSS aksine,
bir programlama dilidir, HTML ve CSS ise statik bulunmaktadır.
Onlar uğraşan biçimlendirme dilleri konum stil ve görsel düzen.
PHP gerçek anlaşma olduğunu.
>> PHP conditions-- vardır, döngüler vardır C hakkında eğlenceli tüm bu şeyler
Bu biraz bir kaç şey vardır biz göreceğiz C daha iyi bit,
ama en kolay yolu konuşmak düşünüyorum PHP hakkında sadece dalış.
Yani doğru gidiyorum Bu noktada IDE içine.
Biz gidiyoruz ilk şey aslında bakmak yapmak için
bazı biraz P oldu PHP kodu 6 olarak ayarlayın.
Bu yüzden ki- yapmak yoludur Biz çalışan edildi şekilde, daha önce
Cihazın sunucu Biz type-- olurdu oldu
Ya da uygulama kullanmak veya personelin uygulama
dizine giderek server.c arasında ve hiçbir ile ya server.c çalıştıran
arguments-- yüzden sadece onu aramak ne muhtemelen yerel ana bilgisayar,
olan Zamanın çoğunu yaptım ve daha sonra besleme
bir directory-- hangi kendi kök olarak kullanmak için
nerede web sitesi olur temelde, koşmak olacak.
>> P Bu hafta olarak, 7 set server.c için kod gibi büyük
ise, zaten insanlar var CS50 de bu ince şeyleri üzerine yazılmış
Bu biraz var Daha fazla işlevsellik,
yetenekli bir sunucu programı biraz daha başa
inceliklerini biz edeceğiz Her iki P görmek 7 set ve P 8 ayarlayın.
Ve başlatmak yolu Sunucu sadece yazarak olduğunu "apache50."
>> Ve sen bir şey yapmadan önce, Eğer emin olmak
Apache 50 olmadığını Olduğu gibi zaten çalışıyor
Bunu test etmek için yaptım benim makinede üzerinde.
Ve apache50 arayarak bunu.
Dur, ve bunu durduran görürsünüz web sunucusu, eğer orada bakabilirsiniz
Terminal penceresinin alt kısmında.
Ve sonra sadece biz değil, başlatmak için , arayacağım "start apache50."
Ve sonra biz gidiyoruz bunu bir dizin beslemek için.
>> Şimdi, çünkü bakmak istiyorum P bazı 6 kod set
Biz aslında hayata ettiğini P biraz kopyalanamaz
Kendi klasöre 6 kodunu ayarlamak, hangi orada solda görebilirsiniz.
Bu, "SECTION8" denir harflerle
Ben sadece bu kadar heyecanlıyım çünkü Bugün canlı akış olmak.
>> Biz bu çalıştırırsanız, gerektiği Yani tüm oldukça verimli çalışmasını.
Tamam, sitemiz artık diyor IDE adresinde mevcuttur,
temelde, hangi kullandığınız ne P 7-- set içinde öyleydi aynen P 6 olarak ayarlayın.
Bütün endeksleri, bir indeks bugün.
Yani biz o gidebilirsiniz adres, sen hatırlayacağım eğer,
Sadece bu küçük tıklayarak sağ üst düğmesini tıklayın.
>> Ve bu kodu, Hatırlayacaksınız ki Eğer merhaba.php girdiğinde oldu.
Ve kod için tasarlanmıştır ne Eğer bir isim yazdığınız zaman do
Eğer Sam demek var-- eğer bu benim aşkına-- çünkü
ve ben Say Hello tıklayın zaman Biz sonraki sayfaya gittik,
Bu adı görüntülenir gerekiyordu.
Bu, derdi "Merhaba Sam" ya da "Merhaba" adı ne olursa olsun size
gittik olsa bile içine koymak tamamen yeni bir web sayfasına.
>> Ve bu tür bir şey olduğunu PHP Senin için yapabileceğim söyledi.
PHP veri geçmek mümkün iki web sayfaları arasında.
Bu tamamen farklı bir sayfası.
Sen başlığı "merhaba" burada göreceksiniz.
Aslında, onlar Aynı başlık, ama ben
Onlar farklı web söz veriyorum sayfaları biz kaynak bakarsanız.
Ve sen bu veri geçirebiliriz Bu metin alanına girilen,
sonraki gönderebilirsiniz tıklandı ediliyor sayfa,
ve daha sonra bu verileri edebilmektedir Mevcut haliyle orada olacağım.
>> Şimdi henüz uygulanmadı var Bu kendimizi, hangi
şu an için yapacağımız budur sıralama, PHP nasıl çalıştığını bir tat almak
ancak anahtar fikir yapabilirsiniz PHP-- olduğunu çeşit bir fonksiyonu gibi düşün.
PHP size sağlayabilirsiniz şey bu parametre olduğunu alabilir do
Bu bir HTML sayfası içine girdi size PHP ve formların kullanımı yoluyla,
ve parametre olarak bu iletebilirsiniz o kadar yükler sonraki sayfaya.
>> Bu durumda, biz bu yüklüyoruz "merhaba deyin" butonu ile sayfa.
Ama şimdi, ben aslında Bu kodun bazı silindi
merhaba.php o run ediliyordu aslında, "Merhaba görüntüleniyor oldu
dünya "ya da" merhaba, Sam "ya da "Merhaba," adil girdi neyse.
Şu an için yüzden, sen Temelde, böyle yapacaksın.
Biz yeniden gidiyoruz ve Ayrıca, biraz daha işlevsellik eklemek
daha onunla biraz yapmak, bakın Ne PHP gerçekten yetenekli olduğunu.
>> Yani ilk, en bahsedelim Bu dosya, merhaba.php.
Biz yakınlaştırmak Yani eğer Şimdi ben Kişilik Sokak küçük ve
sıralama tüm ilerlemek için çalışıyor yolu var etrafta gidiyoruz.
Bunu denir görürsünüz merhaba.php, ancak sözdizimi bunun
Bir HTML dosyası gibi görünüyor.
Bunun nedeni ise, Bu dosyada gerçek PHP
Tüm bu arasına sıkışmış soru işareti-şapka blokları.
Burada her şey PHP kodu olarak kabul edilir.
>> Ve bunu fark edeceksiniz Ben bir yorum yaptım,
Tanıdık görürsünüz İki eğik.
Ve sen, Hatırlayacaksınız eğer HTML, ben bir yorum yazarsanız,
o yakın bir şey görünüyor HTML bir yorumdur olan bu.
Arasında Yani gerçekten her şey Bu iki açılı ayraçlar
Şimdi PHP kodu, hangi Aslında yansıtıyor
Bu küçük açıklama sembolü olduğunu Bir açıklama dönüştü.
>> Yani her zaman bile, PHP kod yazmak HTML kodunu bunun dışında varsa,
her zaman olacak Bu Açılı ayraçlar
soru işaretleri ile.
Nasıl all tür dökersin-- hakkında aklınıza gelebilecek C programlarında koştu kod
Bir int main, boşlukta kapatılmıştır, kaşlı ayraç, son kaşlı ayraç ifadesi.
Ve sen küme parantezi görürsünüz PHP, çok, ama bu tür bir
PHP'nin ana yöntemi gibi.
>> Yani şimdi, nasıl PHP şey yapmak?
Şimdi, PHP programlama Çok C-gibi dil,
ancak web üzerinde çalışır.
Yani bir şey birini immediately-- edeceğiz
Eğer gerçekten birlikte yaptığımız ilk şeylerden C doğru, şeyler dışarı basıldı?
Yani C biz bunu yaptık Bir printf fonksiyonu ile.
Biz bunu bir dize verdi Muhtemelen yeni bir hat ile,
ve sonra sonlandırıldı o bir noktalı virgül ile.
>> Yani biz bunu yapmak için gidiyoruz yolu PHP-- o oldukça printf çünkü.
Farklı sözdizimi biraz öyle.
Biz şeyler yazdırmak yolu PHP biz "Merhaba echo" demek olduğunu
ya da herhangi bir kelime "echo".
Ve bunu yaparken etkisi vardır bir dize ile printf "merhaba."
Ve buna yeni bir çizgi ekler.
>> Yani sure-- Hemen şimdi yapalım Ben yine biraz uzaklaştırmak edeceğiz Kişilik Sokak
en emin olalım bu kod çalışıyor
Orada çok olabilir çünkü da bu kodda bir hata
biz mücadele olacak.
Yani sunucu zaten çalışıyor.
Bu yüzden geri aşağı kaydırma eğer, yup, sunucu hala çalışıyor.
Biz sadece bu dokunun Yani biraz sağa burada--
welcome-- biz büyük get-- gerekir.
>> Biz hala yaşıyorsanız tanıdık "merhaba deyin" diyalog,
Ben yazarken ama "Merhaba," göreceğiz Metnin bu "merhaba" gerçekten oldu
Tam olarak hangi çıktısı PHP echo çünkü biz bekleniyor
Sadece bir printf ifadesi gibidir.
Böylece geri koduna nasıl P 6 yaptım set Eğer sağlanan dağıtım kodu
PHP olur ki bunu yapmak şey çıktı size
Bir önceki ekranda yazdığınız?
>> Ve bir çeşit incelemek bu gerçekleşirse neden biz konum
, index.html içine gidecek olan Özgün dosya, dosya olduğunu
Bu ekranda gösterir "merhaba deyin" düğmesi ile.
Sen orada olduğunu fark tüm klasik şeyler
Biz HTML gibi beklemek için geldim Bunlardan olarak, bu etiketleri kapalı
açılı parantez içinde, PHP gibi ama soru işaretleri olmadan,
hangi HTML özel bir şey olduğunu gösterir.
Biz ise başlık var "Merhaba."
Ve sen, gördüğümüz gibi olduğunu fark edeceksiniz başlık her iki durumda da "merhaba" dır.
Şimdi bu bir değiştirelim sadece bu yüzden "demek" biz
Nerede kendimizi ayırt edebilir.
>> Ama biz bir ceset var.
Ve sonra ilginç biraz HTML gösterir bit,
Bu formu unsurdur.
Ve böylece biz bir form var.
Ve bu anahtarıdır.
PHP ile çalışıyoruz nasıl budur.
Eylem parametresi Form diyor merhaba.php
Biz göndermek için gidiyoruz ne Bu formda değerler.
Biz geçiyoruz budur parametreler, tabiri caizse.
>> Burada başka bir şey fark edeceksiniz yöntem olduğunu "olsun."
İki primer vardır yöntemler olacak hangi
veri geçmek için PHP kullanarak olacak websites-- web sayfaları arasında,
Bu atama rather--.
Ve bu yöntemler "get" ve "yazı".
Bazı ince vardır get ve post arasındaki farklar
biz into-- alacak eğer sen, içine "get" olacaktır.
>> Ama tüm niyet ve amaçları, almak ve sonrası
her ikisi de sadece yolları olduğunu Eğer parametreleri geçirmek
biraz farklı infazlar ile.
Şimdilik, biz olsun çünkü kullanmak için gidiyoruz olsun başlangıçta kullanılan neydi
P PHP dosyasında 6 olarak ayarlayın.
Biz gitmek ve eğer Ve aslında, bak biz başka bir şey düzenlenmiş ettik önce,
Ben merhaba demek için gidiyorum adın ne ki--?
>> HEDEF KİTLE: Elliot.
SAM Levatich: Oh, Tanrım.
Bunu büyü nasıl bilmiyorum.
Bunu benim için yazım olabilir?
İZLEYİCİ: E-L-L-I-O-T.
>> SAM Levatich: I-O-T?
>> HEDEF KİTLE: Evet.
>> SAM Levatich: Mükemmel.
TAMAM.
Ben o büyü nasıl biliyor muydunuz sanırım.
Bunun için üzgünüm.
Ama biz "merhaba deyin," öyle değil diyorsan ekranda göstermek için gitmiyor
henüz biz modifiye çünkü Kod biraz.
Ama biz "merhaba deyin" yoksa - Tamam, "merhaba" burada.
Ama biz daha yakından alırsak URL'ye kendisine bakmak,
biz biter görürsünüz ile merhaba.php? name = Elliot.
>> Yani, bu bir yoludur Bir sonraki web sayfasına iletişim
biz geçtik parametreler.
Biz name = Elliot söyledi.
P 6 set nasıl ve sonuçta var Biz geçti değişken erişilen
formu ile.
Ve bu bir şey olduğunu Bir get isteği mahsustur.
Bir get isteği parametrelerini yapar web sitesinin URL da bilinir.
>> Ve sen de Hatırlayacaksınız, P size o 6 set
bir işlevi yazmak zorunda Aslında ele olduğunu
Bu sorgu dizesi olduğunu Bir dosya sonra var olabilir.
Takip soru işareti var olabilir karakter temelde herhangi sayısına göre.
Ve bu tam olarak burada neler neler.
Ve yaşadığınız nedeni ayrıştırmak için P server.c sizin uygulanmasında
Eğer söyleyebilirdi ki 6 ayarlayın = Elliot adını PHP kodu.
Sen edebilmek için gerekli URL üzerinden bu ayrıştırma
Böylece söz konusu PHP dosyası onunla ilgili ne biliyordu.
>> Yani umarım bu verir server.c için motivasyon
Üzerinde gidiyoruz şimdi PHP içinde C'nin dışında.
Yani aslında erişme odaklanalım işler artık bir get isteği geçti
Bu noktada.
Ben bu kurtarmak için gidiyorum.
Biz bir şey değişmedi.
Biz giriş alanını var gibi görünüyor.
>> Biz bazı özelliklerini ayarlayarak ediyoruz, olarak biz HTML yapabiliriz.
Bu basit şeylerdir.
Biz bunlara ihtiyacınız yok.
Ama biz, otomatik tamamlama kapalı var hangi temelde, bilirsin dedi ki--
şeyleri yazarken ağ-yapı halinde, bazen
Senin için de doldurmak için çalışır.
Yani güzel bir şey.
Bu amaçla kapatmak istiyorum.
Bu bir CS50 karardı.
Yani biz istedik eğer silebilirsiniz.
>> Otofokus sadece imleci sopalarla başında formu sağ.
Yine, çok önemli değil.
>> Ama name = "name" - Biraz var o isim ve ad çünkü zor.
Ama biz değiştirdik olabilir başka bir şeye bu.
Ve aslında, işte şu an ne yapacağız.
Biz, "kişiyi" diyeceğim ki çeşit ismi gibi
Bir kişinin kendi ismi ile tanımlanır eğer.
>> Yani bu kapatalım, Web sitemizi kadar yeniden
Bizim sunucu hala çalışıyor beri Apache 50 ve biz merhaba, burada, söyleyeceğim
Elliot yine.
Neden olmasın?
Merhaba.
Biz buraya giderseniz, biz göreceğiz Daha sonra isim yerine = Elliot,
o kişinin Elliot = söylüyor.
Ve aslında doğrudan bir sonucudur var biz sadece name = "kişiyi." değişti
>> Bir giriş elemanı Yani bir HTML formu, adı alanı
belirleyicisidir geçirilen ediliyor parametresi.
Eğer bir işlev oluştururken eğer Sanki İki tamsayı aldı o "add"
ve int a ve b int dedi.
Bu isim bir olacak ve eğer olur Eğer başka bir form, istedim hangi
Biz kopyalayarak sadece yapabilirsiniz ve yapıştırma, o zaman adı b olurdu.
>> Yani şimdi iki parametre olacak Bu geçirilir edilmektedir
Bir sonraki website-- olsun Bir sonraki web sayfası, merhaba.php.
Ve biz aslında görebilirsiniz O yine biz isterseniz.
Bu başa kolay yoludur temelde IDE web kodu.
Sunucuyu başlatmak, bunu elde Her zaman size çalışan ve daha sonra
Sadece yakın bazı değişiklikler yapmak Bu dosya sadece güvenli olması için.
Geri düğmesine basıldığında biraz zor
daha önceki bir yükleme olabilir çünkü sürüm değil, en güncel biri.
>> Ve sonra sadece tıklayın senin düğmesine tekrar pop sağ oh up--
ve şimdi iki şekli vardır.
Ve biz her birine bir şey yazın eğer öyleyse instance-- için bölgesi varış "Jason Hirshhorn"
merhaba diyorum.
Biz bizim parametrelerine bakmak.
Elimizdeki gibi gibi görünüyor beklenen, a = Jason ve b = Hirshhorn,
hangi iki parametreyi temsil Bu işleve geçti.
>> Yani şimdi en doğrusu başlayalım Bu işlevselliği uygulama biz
P vardı 6 olarak ayarlayın.
Yani şu anda biz sadece Merhaba yankılanan ediyoruz.
Ve bu çok kullanışlı değil.
Biz bazı değişken echo istiyorum bize geçildi.
Ve biz bu değişkenin adını biliyorum.
Biz var ve biz b var.
Bu yüzden ikisinden biri yankı seçebilirsiniz.
>> Ama nasıl bunu ulaşabilirim?
Peki, bazı vardır PHP global değişkenler.
Ve ben yazmaya gidiyorum Buradaki yorumların onları.
Iki en önemli olanları şunlardır olsun Şu anda bizim amaçlı yazı.
Bu diziler ya vardır, teknik, sözlükler
nerede sen bizim değişkenler Bir sonraki web sayfası canlı geçerek.
Ve yakında bunları nasıl kullanacağınızı göreceğiz.
>> PHP kodu hakkında başka kısa bir not ve C dökersin-- bazı özelliklerini,
Bir değişken bildirmek için veya değişkenleri kullanmak için,
İlk onları bildirmek zorunda.
Ne zaman ve ne vardı yapmak Onları int a veya b karakter demek olduğunu ilan etti.
Bu türlerini bildirmek zorunda Sizden önce değişkenler olarak yarattı.
PHP-- Bunu birini yapmak gerekmez.
PHP sormuyor değişken türü.
Ve yol olduğunu yerine variable-- oluşturmak
diyerek daha int, char, string-- Biz biliyorsun-- olarak hangi * gerçekten char
yerine tüm yaparken daha bu, çünkü her
Aynı tipte typeless, biz sadece can
Bir karakteri, kullandığınız Dolar işareti olduğunu.
Ve zaten haşhaş göreceksiniz küçük otomatik tamamlama şeyler, yukarı.
Ve o GETin ve POST 'diyor Ben mevcut olan iki seçenek vardır
bana göre.
Bu diğer şeyler bazıları PHP diğer global değişkenler
Eğer üzerinde kullanılarak olacağım P kurs 7 ayarlayın.
Şimdi biz gidiyoruz İçin get ve post odaklanın.
Ama bu yararlı IDE yaptığı şey
Nereye yazdığınız kez Bu dolar işareti,
küresel değişkenler doldurarak başlayacağız veya değişkenler zaten tanımlanmış var.
>> Tanımlamak istedim Yani eğer adında bir değişken "string"
Sadece eşit olarak ayarlanmış olabilir "Merhaba."
Ve o kadar basit temelde.
Ve sonra biz yapabiliriz gibi bir şey "echo $ dizesi."
IDE bazı atma olmalıdır Ben yanlış bir şey yapıyorum hatalar,
bu yüzden umarım her şeyi doğru yapıyorum.
Ama hatalar hep ortaya çıkar.
>> Ilgili bir diğer zor bir şey PHP derlenmiş olması.
C programları ile Peki, yapardın günlük rutin temelde of--,
Eğer düzenlemeler yapacak kod, bunu kaydetmek istiyorum,
ve daha sonra yapacağınız o marka oldu, nerede yapmak
derleyici denilen adım, kodunuzu yapmak için, tınlamak, bu metin
Bir yürütülebilir dosyaya.
PHP C gibi, ancak idam var web tarayıcınız tarafından anında.
Yani bilmek hiçbir yolu yoktur.
>> Bu atmak olun yararlı hataları, değil mi?
Senin gibi olurdu Bu değişken bildirmek vermedi
bunu kullanmak için çalıştı önce.
Siz, bütün bu kötü stuff-- segfault yaptım segfault, bütün bu tür eğlenceli zamanlar
O make ile geldi.
PHP iki ucu keskin bir kılıç Eğer bu hataları almazsınız, çünkü
ama o da bilmiyor demektir Gerçekten programı nesi var
Sadece çalıştırın ve bu çalışma değilse.
Ama debugger işaret etmelidir Bazı umarım yararlı küçük şeyler
Eğer çözebilirsiniz sözdizimsel.
>> Yani şimdi biz aşağıdaki amaçlara üzerinde giderseniz en yakın o edelim, diyorum.
Yeniden açın.
Ve biz buraya döndük.
Yani biz bir değişken var ve değişken, b.
Ve bunlar nihayetinde önemli değildir.
Onlara h ve g arayacağım özel bir nedeni yok.
>> Ve biz selam.
Şimdi bizim dize gibi görünüyor "Merhaba" aslında baskı yapıyor.
Biz denilen bir değişken yarattı "dizesi," eşit olarak ayarlanmış "merhaba."
Yapmamız yoktu fark malloc veya karakter dizisi yapmak.
>> PHP, değişkenlere çünkü bir dize typeless vardır
için bir char aynıdır Tüm niyet ve amaçlar.
Bu "merhaba." Olabileceğini
Bu sadece karakter k olabilir.
Bu sayı 1 olabilir.
Ve bu umurunda değil.
PHP umurunda değil senin değişken türü.
Veya, bakım yapar.
Eğer denemek zaman umurunda ve onunla bir şeyler yapmak,
ama içinde umursamıyor beyan adım.
>> Sadece C yapabilirsiniz gibi Ve yapabilirsiniz Böyle yığını stringler
"yığın" diyerek biraz olsa potansiyel bir yanlış isim olduğunda bit
Biz PHP bahsediyoruz.
Ama biz bu konuda endişelenmenize gerek yok.
Bu yüzden bizim dize var "Merhaba," biz dize echo.
Yani şimdi biz değişkenleri ele ettik.
Yani şimdi biz get hakkında konuşmalıyız ve gönderebilir ve bu son şey yapmak
Gerçekten bu yedekleme almak için gerekli P işlevselliği 6 olarak ayarlayın.
Yani şimdi biz konum dize yankılanan, ama biz
Bu değişkenler almak ve sonrası var.
Ve biz kullanıyoruz, çünkü yöntem olsun,
doğal görünüyor bizim değişken o Biz a ve b, hem ilgilendiğiniz
dizide yer alacak veya sözlük, teknik olsun.
>> Biz kurmak Yani eğer böyle olsun senin groups-- I girmek preslenmiş
ve Durdur-- gibi değildi ama burada olsun var.
Ve böylece zaten var olsun.
Yani biz zaten erişime başlayabilirsiniz get elemanlarının bazılarıdır.
Aldığımız takdirde, bu sözdizimi için PHP diziler çok C-gibi.
Biz bizim iki köşeli parantez var.
>> Yani eğer biz normal olsun demek Dizi, biz erişebilir
sıfırıncı endeksi, ilk endeks.
PHP sıfır endeksidir.
Biz, sıfır, bir söyleyebiliriz Böyle iki-- şeyler.
Ve ben o olsun diyerek oldum teknik olarak bir sözlüktür.
Yani PHP kaputun altında ne yaptığını, hangi C'den biraz daha güzel,
o zaten bazı veriyor Sözlük işlevsellik, burada
Gerçekten hash tabloları olduğunu ya güya, çalışır.
Ya da, teknik olarak o Bir de deneyebilirsiniz olabilir.
Ama PHP karma tablo uyguluyor, bu etkili bir sözlük oluşturur.
>> Ve böylece biz adını biliyor Bizim değişken, değil mi?
Bu geçirilen ediliyor PHP ile sorgu dizesi.
Biz = h ve b var = g b değişkenlerin isimlerdir.
Yani şekilde biz erişebilmesi anahtara karşılık gelen değer
Bizim sözlükte olduğunu Sadece ["a"] _GET_GET diyerek.
>> Yani şimdi biz GETin ["a"] var.
Ve biz sadece içeride değiştirirseniz Bizim yankı, biz _GET_GET yankı eğer ["a"] -
ve biz hata ayıklayıcı olmadığını görürsünüz bu-- hakkında herhangi bir hata atar
biz kaydetmek ve bunu kapatmak gerekir.
O kadar aç.
Yani biz sadece bir hak yapıyoruz Şimdi, bu yüzden b önemli olmamalı.
"Onu" ve "onu" - "hum". "Onu" ve "hum".
Kulağa iyi geliyor.
>> Ve o dışarı basılabilir "Onu," hangi deli.
Ama bu tam olarak ne var P oluyordu 6 olarak ayarlayın.
Temelde, ne P 6 set oldu doing-- echo hello,
aşkına-- o vardı nerede Değişken adı ve sadece
metnin o biraz yazmanız sorar.
Orada da bazı ek kod nerede
ifadeleri eğer dahil hangi şu anda yapabiliriz.
>> , Varsa diyebiliriz ki PHP içindeki bir işlevsellik,
Çizgi ile _GET, "isim" - temelde hangi söyleyerek,
Çünkü "adı doldurulmuş olması halinde" biz sadece düğmeye tıklandığında olabilir
olmadan formu göndermek için Bu alana bir şey yazarak.
Ve biz bu sarın bizim dost kaşlı.
Biz başka bir bildirimde bulunmamış olabilir.
Ve tüm PHP açı içinde var aparatı, soru işareti, açı aparatı,
eğer sen.
>> Bu işe yararsa Ve şimdi göreceğiz.
Ben hata ayıklama bunun için beklemeye devam ve temelde, beni dışarı bok
ama henüz değil vardır.
Belki şimdi olacak Ben konuştuk çünkü.
Aynen.
Aslında, yaptım.
Yani, hiçbir şey gösteriyor.
Bunun nedeni yanlış bir şey var PHP kodunda yazdı.
Ve ben hata ayıklama söz Biz nedeniyle PHP zor
önceden derlemek vermedi ve derleyici, gibi değildi
senin hataları nerede burada.
>> Ama biz ne yapabilirim Bu-- insanlar hatırlıyorum
Farklı bir ağa bakmak için nasıl PHP-- veya web siteleri bu istekleri
göndermek?
[? Malin?] Bu yaptığımız bir veya iki kez ders.
Biz bulmak için nereye hatırlıyor Farklı borçlar ve 200 Okeyledi,
gönderilen bütün bu kodları web sayfası web sayfasından HTTP?
Herkes hatırlıyor mu nerede biz bunu gidilir?
>> HEDEF KİTLE: Sayfa Kaynağı.
SAM Levatich: Sayfa kaynağı.
Kesinlikle.
Eğer sayfa Source-- de mükemmel gidin.
Yani Page Source müfettiş yukarı çeker.
>> Ve ben Safari kullanıyorum.
Size bir sürü muhtemelen olacaktır Chrome ya da Firefox kullanıyor.
Ama sürece konum olarak herhangi bir modern browser-- içinde
ve takip etmek çekinmeyin İstersen birlikte.
Bu kodu yazabilirsiniz veya Sadece P seti 6 içine bakmak
bazı benzer şeyler için dizin.
merhaba.php we 'ne Şu anda taklit üzerinde çalışıyor.
>> Yani sekmelerin çeşitli vardır.
Biz bütün kaynaklara bakabilirsiniz.
Biz kaynak kodunu görebilirsiniz.
Öyle değil mi gibi görünüyor Yani Sonunda geçmişte vücut olsun.
PHP ve ona bir hata buldum tüm web sayfasının yüklenmesini durdu.
Biz bile bir sonu yok HTML veya herhangi bir şey için etiket.
>> Biz ağa bakarsanız, biz biz bir isteği gönderiliyor olduğunuzu görüyoruz.
Bu etki alanıdır.
Bu adres.
Bu bir belge var.
Biz get yöntemi kullanılarak ediyoruz.
>> Ve bu kırmızı.
Ya da kırmızı zaman ben seçerek değildi.
Bunu nasıl seçimini kaldırabilirsiniz mı?
Peki, bu kırmızı oldu.
Beni tazeleyelim.
İşte burada.
Şimdi kırmızı.
>> Bu yüzden, yani kırmızı var kötü olan, başarısız oldu.
Bu yüzden başarısız neden en inceleyelim.
Böylece tüm Page Source olabilir ki temelde size bir şey olduğunu söyleyebilirim
biz zaten görebileceğiniz, hangi işe yaramadı.
Yani ideal orada olur Bir daha yararlı bir araç olabilir.
Ve bazı tarayıcı uzantıları vardır Bu, PHP hata ayıklama için izin
ama biz gitmiyoruz PHP bir ton yazılı,
bu yüzden muhtemelen sadece en iyi kodunuzu bakmak
dikkatli ve adil olduğundan emin olun o başka bir şey yapmıyor.
>> Yani görelim eğer bu formatı ifadesi ise sorun olduğu.
Ben burada tekrar yüklemek istiyor.
Merhaba Merhaba.
Yani bir sorun var var.
>> Doğru sözdizimi Yani PHP, PHP gidiyor
C-gibi döngüleri görürsünüz olmak.
Sen ifadeleri olmadığını görürsünüz.
Tüm bu arkadaşlar göreceksiniz Eğer aşina olduğunuz
boyunca birlikte Bu CS50 dönem.
Ama en iyi yolu nasıl anlamaya do PHP şey Google'dan için
ya da PHP kod bazı örneklere bakmak için işlevselliğini biliyorum çünkü.
>> Sen ne olabilir biliyor programı ile yapmak.
Sen döngü yapabilirsiniz.
İstediğiniz kadar döngü birçok kez olabilir.
Tüm yapabilirsiniz döngü Farklı şekillerde türlü.
Siz fonksiyonları oluşturabilirsiniz.
Siz fonksiyonları oluşturabilirsiniz diğer fonksiyonlar, arama işlevleri
kendilerini diyoruz.
Ve bu kavramların isimler var.
Sen, döngüler, özyineleme var diğer kontrol akımları, eğer.
Ve böylece Google senin en iyi arkadaşın olduğunu.
Hatta PHP eğer "derler Açıklamada "ve orada olacak
ile mesajların ton diğer insanlara cevaplar
kim, sana benzer sorular yaşadım kim sadece PHP ile başlayan
ve bir sözdizimi şey hakkında merak ediyoruz.
>> Biz olma lüksüne sahip olduğundan P seti 6 koduna bakmak mümkün,
biz aslında yukarı çekin ve görmek Tamam, burada ilginç bir şey var.
Yani bu aslında nedir o P 6 set benziyordu.
Yani biz bu geçmesi durumunda, biz ettik görebilirsiniz
got bu küçük birkaç PHP-benzeri bir soru işareti bit.
>> Ve kaşlı yoktur.
Kolonlar vardır.
Ve kıvırcık vardır PHP parantez, ancak bu
bir biçim ve yapmanın bir yoludur HTML ile iyi çalışır PHP
sizin de göreceğiniz gibi, çünkü biz kapatıyoruz birinin bits-- bu PHP kapalı
IFS ve daha sonra ki- ve tamamı ve Biz içlerinde HTML interspersing ediyoruz
Hala takip ederken kontrol akışı PHP tarafından yola çıktı.
>> Ben sadece gidiyorum Bu aracılığıyla hızlı bir yürüyüş
aynı bir sürü çünkü Daha önce yaptıklarını kavramlar.
Boş değil eğer biz var Parantez, _GET_GET ["name"].
Bu aynı şeyler.
Biz _GET sözlüğü kullanmakta olduğunuz PHP, formlar talebi üzerine gönderir
Bu parametreleri olduğu eylem ve yöntem olsun.
Sonra o sona erer.
Kolon, sadece bunu yapmak için bir signifier olduğunu if ifadesi true olursa.
Bir küme ayracı gibi.
Ve aslında, bu bir kaşlı ayraç olduğunu Python gibi diğer dillerde,
Sadece eğer hangi karşılaşabileceğiniz final proje için bunu.
>> Ve sonra bu hat, merhaba.
Sonra bu garip bir şey var.
Biz daha fazla parantez var.
Üzgünüm, hiçbir HTTP orada-- veya PHP var.
Ama eşit işareti var.
Ve sonra bir işlevi vardır, htmlspecialchars (_GEThtmlspecialchars (_GET ["ad"]).
Bu gibi daha fazla çeşit olduğunu yankı gelişmiş versiyonu.
Biz bir yol olarak yankı vardı gibi PHP şeyler yazdırmak için.
, Bu bir fonksiyonudur PHP tanımlanan
Biraz daha kötü ile ilgileneceğiz karakterleri ve bayt değerleri
Bunu geçebileceği.
Bu kullanmak için her zaman en güvenli değil.
Ama iş yapacak yankı biz eğer sadece iyi
Çok kötü bir şey ile ilgili.
>> Ve böylece aynı sahiptir temelde etkisi
Söz arasında bu şeyler işaretleri PHP tarafından değerlendirilir.
htmlspecialchars'ın güzel bir HTML döndürür _GET_GET ["name"], yani basılı değeri
ne olursa olsun biz formda yazdınız.
Ve sonra, merhaba diyeceğim virgül uzay ve o.
Arasındaki her şey açılı ayraçlar
ile değiştirilir ne olursa olsun htmlspecialchars'ın ortaya koyar.
Bu temelde benzer Yani biz ne yapıyoruz için.
Ve biz bu bir başka bildirimde bulunmamış mantıklı merhaba dünya.
Yani şimdi en geri dönelim bizim Kod ve oh tam olarak-- bakın.
Ben değil, hangi var dedi yapmak istediğim bir şey.
Biz boş değil demek istedim.
>> Ve böylece bu biraz çalışması gerekir biraz daha iyi, değil boş _GET_GET ["name"].
Ve bu kaşlı ayraç Bu küme ayracı eşleşir.
Biz burada bizim küme parantezi var.
echo hello _GET ["name"].
Bu biraz daha iyi çalışır Bakalım.
Biz hala bizim sunucusu çalıştıran ediyoruz.
Jason Merhaba.
Ve bu sefer çalıştı.
Ve böylece bir kanıtı var Eğer gerçekten olabilir ki
kıvırcık parantez kullanmak olduğunu sen biliyorum ve HTML PHP kodu aşk.
Verilen PHP kodu pset size 6-- pset 6--
Başka bir yol sağlar aynı şeyi yapıyor.
>> Yani şimdi biz güce sahip.
Biz uygulamak özelliğe sahip Biz pset 6 gördüğümüz PHP kodu
kendimiz, temelde.
Ben hareket etmeden önce, bazıları nelerdir Bu noktada gereken sorular?
Evet [duyulamaz].
>> HEDEF KİTLE: pset6 sürüm Yani Bunu çalıştırdığınızda, bir boşluk var.
Uzay nerede olduğunu görebilirsiniz virgülden sonra. [Duyulamaz] başlangıç
açık destek.
Eğer boşluk dahil nasıl Kendi kodlarını yazdı yolu?
>> KONUŞMACI: Bu iyi bir soru.
Ve bu yüzden anlamaya edelim.
Yani gerçekten iyi bir soru ve ben dikkate almadı biri.
Ama beraber yapalım.
>> Bütün Yani ilk ne Ben echo ile yapıyorum
biz sadece echo zaman olduğu Merhaba, bu merhaba çıktılar.
Şimdi echo Eğer bu ayrı bir olsun çizgi, en ne inceleyelim.
Yani biz bu tıklatın.
Biz Jason merhaba diyerek devam edin.
Yani yine, biz bu alanı yok.
>> Ve ki, çünkü bu Biz yankı var PHP,
olursa olsun kaç spaces-- hayır değil V--
ne kadar çok alanlarda biz koymak Şimdi tekrar yüklemek var-- eğer,
Jason merhaba.
Evet, bunların hepsini görmek alanlarda kadar yemiş.
Ve bu bir şey olduğunu yankı işlev yapar.
>> Yani dikkat çekmek için uzay ve bu
nedenlerinden biri Eğer yankı kullanmayın neden
ve bunun yerine htmlspecialchars kullanın.
Ne olurdu merak ediyorum Bunu yaptım ne
nerede bir dize bir boşluk içine.
Ben dürüst emin değilim Bunu yapmak zaman ne olacak.
>> Yani tek yolu bu.
Yani bunu dikkat çekmek için tek yoldur.
Eğer boşluk sarın ise Daha sonra bir dize, boşluk
yankı güzel çıktı olacaktır.
Yapılacak en güvenli şey htmlspecialchars yapmak.
Bu her zaman güvenli bir bahis.
Ama şimdi yapmamız gereken bir yol var o Gerekirse yankı ile.
Ve benzer şekilde, biz yeni hatlar eko, her tür
şeyler PHP yapıyor aşina.
>> Başkasının, bir daha ne Diğer insanların sahip olduğu sorular
PHP ile ilgili bu noktada?
Insanlar biraz geç geldi ise, Ben biraz sonra kalmak için çok mutluyum
ve başından bazıları hakkında konuşmak.
Ve aynı zamanda, tüm livestreamed var ve çılgın olan arşivlenmiş.
>> Neyse, şimdi Biraz yapalım PHP ile daha gelişmiş şeyler.
Ve ilk şeylerden biri size C döngüler için olduğu içinde tanıtıldı.
Ve PHP için daha güçlü var loop foreach döngüsü denir.
Ve her boş için paha gibi görünüyor Boş, kıvırcık parantez gibi şey.
Yani bu temelde bir kısaltmadır.
>> Bir şekilde döngü Bakınız sözdizimsel yapı
C ve montaj icat edildi dil ve işler gibi.
Bir kısaltma olarak, tam C tasarladı ilmeklerin tip bir çok
insanlar görürdünüz.
Orada, bir döngü yazdı gibi genellikle başlatma adımdı
başlangıç, a doğru idam döngü stop-- nerede şart
ve bu özellik Bu, sadece bir süre döngü var
ya da bir süre tam olarak sahip olduğu Sadece bu feature-- ve sonra
sonunda bir çoğaltıcı bir adım.
Ve böylece sık sık kendinizi bulmak istiyorum aşağıdaki gibi kod yazma.
Ben bu biraz silmek için gidiyorum.
>> Ama biz yineleme eğer Bir dizideki karakterler,
Örneğin, gibi biz ettik karakterleri bir dizi var.
Biliyorum C geri getirmek için üzgünüm, Eğer bitmiş sanmıştım.
Ama amaç sadece var PHP öğrenme, söz veriyorum.
Yani eğer bir karakter str var uzunluğu 8 ve atalım
o Hellooo diyor ki sonunda bir null.
Büyük, böylece bizim dize var.
>> Ve sonra for döngüsü vardı.
I 0 eşittir int Biz var.
Ve biz str zaman çıkmak istiyor i null eşit değildir eşittir,
null eşit olduğunda biz çıkmak çünkü.
Ve sonra biz ben her birinde ++ yapmak for döngüsünde nokta.
I str ile bir şey yapıyor.
>> Yani temel formülü oldu Bu dizi vardı biz
ayrı unsurları tedavi etmek istedim.
Ama biz yapmak zorunda ne biz vardı temelde ayrı bir tamsayı oluşturmak
değişkeni kadar her sayma olduğunu kez döngü geçti.
Ve sonra biz sonra aramak olurdu strstr [i] biz gerçekten yapmak istediği zaman
Sadece karakteri gitmek olduğunu karakteri ile, değil mi?
Biz artırmak istemiyoruz tamsayı ve o tamsayı kullanın
tek tek her karaktere erişmek için.
Biz gerçekten karakter karakter istiyorum.
>> Ve böylece her akıllıca için Bizim için bu hesaplar.
Biz bir dizi varsa hangi Biz PHP ilan edebilir
sadece- gibi biz bir değişken varsa denilen, en dizi diyelim.
Hiçbir yazarak mucizeler, bu kadar tıpkı diğer değişken gibi.
Bu sadece bir dizi var.
Ve biz, biraz [duyulamaz] 1 gibi var Başlatılan bir dizi 2, 3, sadece bir tür.
Tamam, benim foreach sevmez.
>> Ama biz aslında foreach-- yoksa Biraz yanlış olduğunu yazdınız.
Bir foreach döngüsü yapmak için iki yol vardır.
Sözdizimi gibi sözdizimi var.
Ve biz yapacağız İlk sözdiziminde, değil.
Bu benim hatam.
>> Dizideki Yani foreach num, eko num.
Ve PHP bağırıyor nedense bana.
Bu beklenmedik bulgu var bir şey olarak,
hangi bir zahmet biraz olduğunu.
Ama biz çözeriz neden bir an olduğunu.
Yani öyle değil.
En olarak kullanarak deneyelim.
Bu sözdizimi görünüyor gibi tercih ediyor.
Yani num olarak foreach dizi yapalım.
>> Yani biraz açıklama Sadece ne oldu
olarak sözdizimi ilk sıra saying-- edilir, Şimdi bu yazdırır ne olduğuna bakalım.
Yani bizim IDE açın.
Biz buraya gidin.
Biz Merhaba Jason, söylüyorlar.
Ve bu içerikleri hangi, 123 yaptım Biz kontör oluşturulan dizinin.
>> Bu foreach döngü içine Yani dalış, Biz değişken olarak adlandırılan bir dizi var
hangi üç sayı dizisidir.
Ve sonra foreach yapıyoruz num olarak dizi yankı num.
Ve bu daha var lop için daha sezgisel.
Biz her tedavi, söylüyorsun num olarak dizideki şeyler,
Bana num vermek istiyorum.
Ve o ne yaptığını tam olarak budur.
>> PHP bu hesaplarken Eğer foreach dizi derken,
ve bir dizi ile uğraşıyoruz ne Eğer üzerinde yineleme yapmak istiyorum gidiyoruz
Bu dizide karakterden bu dizide int olduğu
Bu dizinin elemanları.
Ve saklamak izin verdi num sıra bu değişkenler
ve sonra sadece çıkış num hemen yerine söyleyerek daha,
Ben i adında bir değişken var ve Sonra çıktı strstr [i] istiyoruz.
>> Ve böylece bize güzel şeyler yapmanızı sağlar.
Temelde gibi biz oluşturmak zorunda değilsiniz Ben en ve yapılacak gibi tüm bu değişkenler
sonunda bu incrementation şeyler.
PHP sizin için tüm önemser.
>> Şimdi en olarak foreach konuşalım Bizim _GET sözlüğe de geçerlidir.
Yani biz hızla bu açıklama olacak.
Bu yüzden bizim _GET dizi var.
Bu değişken var.
Ve o bazı şeyler var.
>> Şu anda, biz sadece bir değişkene sahip adı, bu da geçirilmektedir.
Ama artık, Enter tuşuna basın eğer Biz iki değişken olabilir.
Biz, örneğin, isim ve yaş olabilir Biz de yaş almak ve isterseniz
tuhaftır, bir kişinin adı.
>> Yani şimdi _GET bir olacak iki eleman ile sözlük,
İki anahtar değer çiftleri.
Ve ilk key-- ben gidiyorum Çok gemide bu bir yazma.
Biz bizim Sözlük _GET olduğunu var.
Üzgünüm, bu kadar görmek biraz zor.
Ama sözlüğe içinde biz bir şey olacak ki, isim
biz verildi ediyoruz.
Ve biz hangi da, yaş olacak Biz verilen konum şey olacak.
Bu bütünüdür Bizim Sözlük.
>> Yani o iki öğe var.
Ve böylece çünkü foreach döngüler biz akıllı
düşünmek ve doğru olabilir Bu foreach düşünebilir
Bu yineleyebilirsiniz Sözlük, dışarı baskı
değerler adına ve yaşa göre verilen.
>> Yani aslında Sadece yapalım.
En bir foreach döngüsü inşa edelim.
Ve biz _GET yapmak için gidiyoruz.
Ve biz aşağıdakileri yapmak için gidiyoruz.
Bu yüzden biz yazarsanız ne olacağını görelim Daha sonra, sadece kelime ve yankı kelimeyi söyleyin.
Biz de yeni bir satır yankı gidiyoruz Sadece biraz daha net hale getirmek için,
nasıl gidiyor.
>> Yani görelim.
Bana herhangi bir hata vermiyor.
Ve biz bu yakın olacağım.
Web sitemizde, sen yapıyor olması gidiyoruz pset7 boyunca bu bir sürü.
Bu yüzden benim adım Sam olduğunu söylüyorlar.
Benim yaş 45 olduğunu.
Bu değil.
Ama, beklendiği gibi, Sam 45 yazdırır.
>> Ve böylece fark edeceksiniz Ne foreach döngüsü, burada did--
o kadar yani en o geri dönelim board-- biz sözcük olarak GETin olsun.
Ve _GET dört şey vardı.
Ama sadece iki şey yazdırılır.
foreach, istihbarat kendini olma, kabul biz gerçekten ne istediğini o
değerleri değil, anahtarlar oldu.
>> Ama biz yazdırmak ki bir yolu var tuşları üzerinden, hem de eğer biz istedik.
Biz de ne bilmek istiyorsa Bu değişkenler çağrıldı,
bir yol var biz de bu erişebilirsiniz.
Ve yol bir çeşit yapmak, biz gerçekten sağlar söyleyebiliriz
anahtar değer çiftleri bölmek.
Yani şimdi ne olduğunu görelim.
>> Bu yüzden anahtar var.
Biz değere sahip.
Biz yeni bir var okunabilir olması için hattı.
Ve en ne olacağını görelim Şimdi bu ne zaman.
Ben Jason kaç yaşında olduğunu bilmiyorum.
Jason 15.
Bu yüzden adı Jason yaş 15 var.
Bu yüzden anahtar erişebilir Bu sözlük ve değer çiftleri
Sadece değer gibi kilit noktaları söyleyerek.
Ve bu foreach sözdizimsel var izin veren şeker bit
Eğer sözlükte şeyler erişmek için.
>> Yani umarım bu tür vurgular foreach döngüsü gücü.
Hemen hemen atmak can iterable görünüyor şey,
bir şey gibi o birden sahip Bir dizi benzeri elemanlar,
Bir dictionary-- gibiler iki vardır Eğer çalışma olacak birincil şeyler
hayatında ve pset 7 hem de.
Yani o şeyi atabilir ona ve o anlamaya
Onunla ne yapmak istediğinizi.
Tamam, ben alacağım, söyleyeceğim veri bu işler o
Bana geçildi.
Ve bu sen bir şey var pset 7 bir sürü kullanarak olacak.
>> Ben hızlı kaydırma gidiyorum Nerede olduğumu aşağı sadece görmek için.
Insanlar bu noktada sorunuz var mı?
Hiç sorularınız mı var?
Evet?
>> HEDEF KİTLE: anahtar ve değer Yani bunu başka bir şey sayabilirim
ve hala çalışmaya devam eder?
KONUŞMACI: Oops.
Vay be, ben tamamen bütün çizgi silindi.
Harika iş.
Bu nedenle a, a.
Anahtar ve değer sadece bir kuralıdır.
Bu yararlı olur.
Bazı tasarım alacağı puan, belki biraz stil noktaları
Bunun nedeni bunu yaparken için Gerçekten niyeti taşır.
Ama biz a ve yarp söylüyorlar.
>> HEDEF KİTLE: Sen zorunda değilsiniz HTML dosyasındaki herhangi bir değişiklik
sırayla yansıtmak için?
KONUŞMACI: Hiç de değil.
HEDEF KİTLE: Ve sadece bunu biliyor daha edemememden eşittir nedeniyle
KONUŞMACI: Evet.
HEDEF KİTLE: bu- -Öyle göstergesi
KONUŞMACI: Evet.
Evet ama, bir foreach sözdizimi.
>> HEDEF KİTLE: tipleri yoktur.
Yani isterseniz neler yaş sadece bir sayı olmak?
Bunu yapmanın bir yolu var mı?
>> KONUŞMACI: olmadığını kontrol etmek için yolu vardır değişkenler belirli türleri için uygundur.
Yani PHP biraz daha sorar Eğer herhangi bir türü vardır çünkü.
Bazı yollar daha az sorar.
Bazı yönlerden daha sorar.
Sadece varsa Çünkü Bir değişkenin bir şey,
Eğer bunun ne tür bir fikrim yok.
Ama değişkenlere ilişkin akıllı iseniz sen türlerini atamak ve emin olun
fonksiyonları sadece return-- olduğunu Sadece dönüş fonksiyonları istiyorum
değeri bir tür bu nedenle temelde olabilir ki
Değişken geri almak bekliyoruz Bir işlevden tip olacaktır
Sizce o temelde olacaktır.
>> Ancak bazı yöntemler vardır hangi kontrol edebilirsiniz.
Onları hatırlamıyorum Kafamın üst kapalı.
Mavi açmak için bekliyorum.
isint?
isstr?
Yöntem vardır PHP yerleşik olduğu can
Sizin için değişkenlerin türünü denetleyin.
Ama değişkenleri atarsanız akıllıca, sen olmamalı
pset 7 çok fazla yapmak zorunda.
Ama bu yöntemler mevcut.
Ve bu bir şey olduğunu dilin kendisi olduğunu.
Ve ben kesin sözdizimi hatırlamıyorum.
Hatta o kadar bakmak olabilir.
Fakat zaman hakikatın.
sahip başkasının mı Başka sorunuz var mı?
Evet.
>> İZLEYİCİ: Ben sadece bir tane daha var.
Yani GET yöntemini söz, ancak Eğer POST yöntemini söz etmedi.
Biz geri o geliyor musun?
>> HOPARLÖR: Evet, biz olacak geri o geliyor olabilir.
Ben aradığım tam olarak ne Şimdi uykuya daldı benim telefon, at,
ama onu bulacaksınız.
Biz vurmak emin Sadece yapım PHP notları hepsi.
Evet, hiçbir hata ayıklama sürümü var.
Evet, biz birkaç şey daha var Bu noktada hemen yapmak istiyorum.
>> Yani POST bahsediyoruz, hangi söz,
Tek fark, GET ve POST arasındaki
Biz baktığında unutmayın ve bu adresten biz, oh, gördüm
adı eşittir ve yaş yarp eşittir Doğru bizim için URL bulunmaktadır.
POST biraz daha ketum olduğunu bilgi onun geçmesiyle.
>> Eğer bir kullanıcı istemiyordu Yani bilmek, mesela,
adını istemedi ve kişinin şifresi
Şu anda görüntülenecek giriş makul bir şey URL
URL istemiyor, Birisi görebilirsiniz çünkü.
Onlar bir sayfaya birisi bağlantı varsa, Onların URL orada sıvalı istemiyorum,
insanların giriş için izin verecek, çünkü yerine sadece bir URL yapıştırma ile
aslında bir form doldurarak.
POST biraz daha ketum olduğunu.
>> Ve tek şey bu biz değiştirmek gerekecek
Bu yöntem, değişim vardır dan göndermek için olsun.
Sonra HTTP içinde yerine Dizi GETin erişme,
Biz dizi 'POST erişmek için gidiyoruz.
>> Ve biz eğer, fark edeceksiniz Biz yine bu geri açmak
Jason yavaş yavaş yaş azalır.
Jason, yaş 14 adlandırın.
Aynı şeyler açılır.
Ama biz URL'ye gidin ve Bu değişkenler yok.
>> Ve yolu, POST yani hatırlıyorum passes--
nasıl bir sayfanın kaynağına bakmak.
Biz ağa gidin.
Biz yenileyin.
Ve bu başka bir şey olduğunu POST size hakkında uyarılar verecektir.
Bir kutu, bir metin görmüş olabilir tarayıcınızda böyle kutu.
İstediğine emin misin Yine bir form göndermek için?
POST 'Bu formları göndererek Neler olduğunu.
>> Gönderdiğiniz temelde Çünkü eğer senin birine kredi kartı bilgileriniz,
Bu URL göstermek için gitmiyor.
Bu bir POST isteği olacak.
Yani sayfayı yenileyin zaman, o sonrası isteği yeniden göndermeyi ediyor.
Yani şimdi göndermek istiyoruz o gitmiyor çünkü tekrar oluşturmak
Herhangi bir yinelenen satın oluşturun.
>> Ve biz, burada aşağı fark edeceksiniz biz kullanıyoruz yöntem POST olduğunu.
Ve gerçekten bayt transferi etmedi.
Bunlardan 401 transfer.
Programın oldukça küçük.
Ama biz görebilirsiniz hiçbir yerde geçirilen değerler.
Kendilerini görebilirsiniz web sayfaları, ancak kullanıcılar olarak biz, görmek mümkün değildir
Eğer bir hacker değilsen.
Eğer iyi bir bilgisayar korsanı iseniz, bakabilirsiniz.
>> Temel biliyorsanız HTML formatında
değerler yapacak kendileri sayfalarda da bilinir.
Sen görmek mümkün olacak.
Değerleri, konum, orada olacak Sizin için daha az belirgin biraz
erişim, temelde.
>> Biz herhangi bir daha var mı GET, POST ilgili sorular
Önümüzdeki yapmak için gidiyoruz ne before-- aslında kod bazı bakmak olduğunu
Eğer pset 7 veriyoruz ki hakkında konuşmak bu kavramların bazıları nasıl kullandığını,
ve hakkında konuşmak Nereye gidiyorsun şeyler
pset 7 biraz yapmak zorunda.
Daha önce herhangi bir daha fazla soru?
Daha fazla soru siz var?
Büyük.
>> Pekala, bakalım pset 7'de biraz,
şüphe yok ki ne hakkında tüm en heyecanlı.
Yani, bu bir şey olduğunu David biraz geçer.
Ama biz üç dizinleri olacak Üst yanı sıra bir yapılandırma dosyası.
Yani hangi yaparız, veritabanları için var yaklaşık beş dakika içinde konuşuruz.
Asla ihtiyaç Kapsar Bu dizinde bakmak
Eğer istemediğiniz ama güzel eğer yardımcıları her türlü olduğunu biliyorum.
Yardımcılar yararlı fonksiyonlar gibi.
Ve sonra yapılandırma var, hangi bazı şeyler kadar ayarlar.
>> CS50 olan bazı işlevler vardır yardımcı ve yapılandırma olduklarını yazılı.
Ve PHP bazı o Zaten dosyaları çıkar
Daha fazla çeşit bir sürü yapacak Sizin için geniş bacak çalışması.
Biz halkın içine giderseniz gibi login.php, burada ne bir
Eğer pset 7 gittiğinizde sağ gösterir.
Biz var olduğunu görürsünüz Bu ifadeyi gerektirir.
Ve böyle bu tür Keskin, hashtag içerir
Eğer yeni bir nesil iseniz içerir.
Ama bu temelde Ben erişim ihtiyacı olduğunu söylüyor
config.php tüm işlevlerin.
Ve gerektiren olabilir diğer şeyler her türlü için.
>> yapılandırma aslında yardımcıları gerektirir.
Peki ne zaman ihtiyaç config da sensin
dahil veya yanı sıra yardımcıları gerektiren.
Yani tüm erişmenizi sağlar Biz kullanmak için gidiyoruz serin fonksiyonlar,
şeyler işlemek gibi.
Aslında kolaylaştırmak için gidiyorum Bu aşağı biraz.
Biz konum sonra fonksiyon Yani yürümek için gidiyor
Biz biraz SQL hareket hemen önce bit sadece login.php işlevi
bu konuların bazılarını kullanır, çünkü biz sadece PHP hakkında konuştuk.
>> Sen ilk şey $ _SERVER olmadığını görüyorum.
Bu da başka bir genel değişken olduğunu sizinle ilgileniyor olacağız.
Bu _GET ve _POST, ama ne gibi Sunucu bu sizi sağlayabilirsiniz içerdiğinde
biliyorsanız istek yöntemi GET veya POST oldu.
Daha önce ne yaptığımızı gibi Sadece biz yazdı bizim kodunda olduğu
biz sadece GET olmaya değişen ve POST HTML vardır ne bağlı.
Ama olabilir sayfaları vardır istekleri her iki tip ile erişilen.
Ve yapmak isteyebilirsiniz bağlı olarak farklı şeyler
isteğe türüne, tıpkı giriş yapar.
>> Yani bu isteği kontrol edebilirsiniz erişim tuşları aracılığıyla yöntem,
bir anahtar kullanarak ve alma yoluyla sözlükte bir şeyin değeri
_SERVER.
Yani başka bir küresel bulunuyor _GET ve _POST gibi değişken.
>> O GET oluyor, biz istiyoruz giriş formunu kılmaktadır.
Render temelde bir işlevdir Sadece uygun HTML koyar
ve o bazı parametreleri geçer.
Bu başlık var bir parametredir işin garibi, görüntülenmesinde kullanılan
sayfanın başlığı olarak Soru, buraya bir şey,
söylemek ya önceki örnekte merhaba.
Şimdi farklı bir şey var.
O POST var else if, biz diğer bazı şeyler yapmak.
Biz boş bir yöntem kullanıyoruz.
O boş, mevcut değil.
Ve biz, daha önce PHP gördüm inşa adil bir miktar vardır
yöntemler David orada will-- olduğunu sizin için yararlı olan yöntemler,
Onlar size uyarılmak olacak O David aracılığıyla yürüyüşle
başlayan genel olarak verir, ve ayrıca Zamyla en yararlı bit.
O geri herkes var.
Hepimiz sevinebilir.
Özür dilemek bir aptly adlı bir fonksiyondur bu sadece temelde yazdırır
bazı hata mesajları, CS50 çok kibar çünkü.
>> Ve şimdi bu, bu bir Bu çünkü zor bit
Biz veritabanı sorgulama nereye olduğunu.
Şimdi veritabanları hakkında konuşmadık.
Ve önümüzdeki içinde gidiyoruz beş dakika ya da öylesine, maksimum.
Fakat bu bir fonksiyonudur Bu CS50 yazmış
Bir veritabanından temelde bir tablo almak için Biz pset 7 ile çalışıyoruz söyledi.
Ben gerçekten kötüyüm benim Sıfır indeksleme bugün.
Ama evet, 7.
>> Yani bir geri gidiyor sorgulamak Dizi, temel olarak anahtar parçasıdır.
Ve bunlar yok çünkü yazarak, satır, böylece dizilerin bir dizidir.
Biz düşünmeye yaparken Çünkü Bir tablo, ne yapacağız
Eğer psets öğrenilen olduğu gibi, bir Zaten 15 oyun, gibi
Bir kullanmak zorunda nerede çift ​​dizi, biz temelde
diğer dizi var dizileri tablo yapar.
Ve satır ve sütun var.
Ve sonra gibi onları erişebilirsiniz [0] [1], olsun [0] [1].
Bu gibi temel şeyler.
>> Peki biz yapıyoruz Burada bu işlevi,
Biz veritabanı soruyorsun eğer var kullanıcı
Giriş yapmak için çalışıyor, o olacak POST yöntemi ile gönderdi.
Biz alıyoruz görürsünüz _POST gelen kullanıcı adı.
Onlar, kullanıcı gönderdiğiniz adres olacak ya da, bir değer göndereceğiz
POST aracılığıyla bir form aracılığıyla çünkü o kullanıcı adı ve şifre şeyler.
Biz adınızı kontrol ediyoruz görmek için, bu tablodaki nedir?
Bir kullanıcı oturum eğer Çünkü sonra kendi kullanıcı adı olarak
tablosunda saklanabilir Bu site için mevcut kullanıcıları.
Yani temelde eğer Kullanıcı, veritabanında
Sorgu geri gidiyor bir dizi olduğu satır.
>> Ama zor kısmı olduğunu bile eğer çift ​​dizi, tek bir satır olan
hatta bir tek satır ise array-- gibi basically-- var
Bir boyut tek dizi var eğer Bu, başka bir dizi tutuyor
Eğer gerçekten bir sütun ile uğraşıyoruz.
Ama yine de tedavi ediyor Bir çift dizi gibi.
>> Bazen nereden bulabilirim ve bu zor, burada satır var çünkü.
Bizim değişken satırlar olduğunu.
Ve sonra biz yaratıyoruz Yeni değişken olarak adlandırılan bir satır
ve eşit ayarlayarak satırların ilk satırı.
Ve bu yorumunu fark edeceksiniz ilk ve tek satır olduğunu söylüyor.
>> Yani bu zor bölüm şimdi işlevleri
çok kolay diziler dönebilirsiniz.
Mallocs yok.
Sen mallocs görmezsiniz.
Yani seg hataları görmezsiniz.
Ama işlevleri yine geçen olacaktır gruplar halinde dizileri ve veri etrafında.
Ve sen ne dikkatli olmak zorunda tam olarak işlevlerini dönecektir.
Ve bir olsa bile Böyle sütun, sorgu
Hala bir çift dizi dönmek için gidiyor.
Erişim Yani column-- veya bu ters olarak tüm bu düşünebilirsiniz
Biz satır bahsediyoruz çünkü.
Ama bu bir satır erişmek için, Sadece satırları diyemeyiz.
O bir satır olsa bile, sen var rowsrows [0] tür bu ortadan kaldırmak için yapmak
dizinin dış bit ve Sadece bir satır var.
>> Başka şeyler yapın.
Bir işlev var adı password_verify
doğrular POSTed edildi şifre.
Ve sonra biz başka bir küresel bakın Burada değişken, _SESSION.
Temelde oturum kimliği izlemenize nasıl
birisi giriş olup olmadığını.
Yani şu anda login.php ile, Biz bir kullanıcı oturum ediyoruz.
Bu yüzden ne yapmak istediğinizi biz istiyoruz ise session id satırda eşit olduğunu söylemek
sadece mantıklı çünkü yapar id, her satırı farklı bir kimliği olacak
tablonun bir parçası olarak sayısı.
Biz de SQL içine alırsınız ikinci olarak, bu nedenle bu, eğer varsa
görünüyor filan gibi biraz, Daha sonra tüm kadar temizlenir.
Ama biz eşit id ayarlamak için gidiyoruz kullanıcıya oturum düzgün bir şey.
Bir şey yanlış giderse özür dileriz.
Ve bu oturumların amacı ise Profesör Malan olarak hayat söyleyebilirim.
>> Yani login.php oldu.
Ve yazmak PHP kodunun bir sürü pset 7, onlar biraz olacağım.
Için chmod unutmayın Uygun izinler.
Hakkında biraz olacaktır spec başında olduğunu.
>> Ama sen PHP yazma olacak
Buna benzer şeyler yapıyor.
Sen olacaksın bazı şeyler erişen o
size verilen PHP global değişkenler olduğunu
Geçerli ile ilgileniyor ister orada, kullanıcı giriş
Bu gönderilen olmuştur istekleri sayfa, böyle farklı şeyler.
Ve aynı zamanda, potansiyel olacaktır Bu şey satırları arasında yineleme.
>> Farklı bir işlev, sorgudaki Bu çifte dizi çıkmıyor.
Ve daha fazlası varsa İçinde bir sıra daha
Evet, eğer orada mudur varsa İçinde birden fazla dizisi,
o zaman bir tablo olacaktır.
Ve yineleme isteyebilirsiniz kullanarak bu dizinin satırları arasında
Biz açıklanan foreach döngüsü.
>> Yani bir çift üzerinde foreach yaparsanız Dizi ne word-- burada olacak,
Aslında yazacağım.
Ben hızlı buraya yazacağım.
>> Biz satır foreach varsa satır olarak, satır türü nedir?
Kimse biliyor mu?
Anladın sen?
Satır Yani bir çift dizidir.
Yani foreach anlaması için ne olup bittiğini Bu çifte diziden istediğiniz
eğer biz yineleme mi?
Biz temelde varsayabiliriz bu iki unsurlar olacak,
temelde veya satır, sütun ya da.
Ve böylece satır ve sütun biz Aynı şey olarak davranabilirsiniz.
>> Temelde foreach döngüsü ne oluyor yapmak için bu satırları döndürmek için gidiyor olduğunu.
satır, türü satırın olacak satır ise bir çift dizidir.
Yani foreach verirsen Bir çift dizi, bu kadar
yineleme gitmiyor Birden fazla düzey derin.
Hangi olmadığını söylemek temelde var 1,2 Bu table-- sekiz hücreleri,
3 4, 5, 6, 7, 8-- foreach döngüsü değildir
Bu hücrelerin her biri üzerinden gidecek.
Foreach döngüsü ne yapacağı Bu satır ile gidecek oldu,
Sana bütün bu satır verir.
Ve sonra bu satır ile gidersiniz.
>> Yani sadece derin bir seviye yinelenir.
Eğer iç içe geçmiş bir eklerseniz foreach döngüsü, sonra
dönen her satırı tedavi edebilir satırlar, sen elemanı olarak foreach satır yapmak
diyelimki.
Ve sonra eleman yankı olabilir.
Yani kısa var nasıl küçük tazeleme
Eğer foreach kullanıyor olabilirsiniz sorguda bağlamında döngüler.
>> PHP üzerinde herhangi bir sorunuz var mı?
Herhangi bir şey biz önce SQL bahsediyoruz geçmek
ve veritabanı eğlenceli?
İyi hissediyorum?
İyi hissediyorum.
Pekala.
>> Geri hareket edelim Muhtemelen özledim PowerPoint.
SQL, yay.
Tipik benim bölümünde insanlar bilecek kısaltmalar alt başlıklar
İlk sözler her zaman O maçın düşünüyorum
Bu kısaltma algorithm--.
Bu bir algoritma değil.
>> Yani SQL veritabanı olduğunu.
Bu bir dil olduğunu veritabanları ile çalışır.
Ve tüm veritabanları vardır en az bir şekilde tablolar,
SQL onları temsil eder.
>> Veritabanları hakkında düşünmek için başka bir yoludur veritabanları anahtarları ve değerleri bir dizi vardır
temelde.
Bir veritabanı olarak düşünmek olabilir Bir tablo olarak bir sözlük ve ayrıca.
Temelde ilişkilendirmek için bir yol var diğer veriler farklı veri
genellikle satırlar ve sütunlar aracılığıyla.
Ve bu yol SQL iyi çalışır var.
>> Yani bu, bir tablonun bir örneğidir.
Ben birkaç örnek var Benim bölümünde, insanlar hangi
Ben değiştirmek için zaman yoktu.
Ama biz, kimliği gibi şeyler var isim, süper güç ve memleketi.
Herkes nerede bilmiyorum Benim bölümünde in,
bu yüzden sadece varsaymak gidiyorum Herkes New York'tan var
Şehir ben istatistiki yüksek olması nedeniyle doğru olma olasılığı.
>> SQL otomatik alacak Sizin için kimlik sütun önemsiyorum.
Eğer yeni bir satır eklemek durumunda Bir SQL veritabanına,
o artırır Kimlik numarası ve sadece
temelde beş isimleri gibi sopa, süpergüç, memleketi kim
Bu tablonun sonuna üzerine.
Yani ID sütun olacak olan Hiç endişelenmenize gerek.
Ancak, davada gibi login.php bölgesinin ne zaman
oturum kimliği elde edildi Bir tablodan sadece kimliğini kullanarak
Kimliği benzersiz tanımlamak için bir yoldur Bir veritabanı bir unsur.
>> Yani eğer iki Sams, her ikisi de vardı Hangi CS50 öğretti ve kim hem
Milwaukee vardı o olur Hala farklı kimlik numaralarını var
ve bu nedenle belirgin olarak Tablonun bağlam.
Yani bu SQL dağıtıyor ne arka sonunda çalışan, birlikte.
>> Şimdi bu dört komutları Eğer SQL ile çalışmanız gerekir söyledi.
Ve ben bir slayt hepsini kustu.
Ama biz doğru gidiyoruz hepsini tek tek.
>> İlk komut, UPDATE olduğunu hangi beklediğiniz yapar.
Eğer bazı verileri Say güncel değil tablo.
Eğer tutuyorlar sanki gibi İnsanların isimlerinin iz
ve yaşları birisi var, eğer Daha sonra yaş arttıkça,
Eğer gitmek istediğiniz gidiyoruz ve Sadece o kişinin yaşını güncelleyin.
Çalışan bir örnek için İlk table-- ile
Tüm yazma konusunda endişelenmeyin Aynı anda bu komutlar.
Ama aşağı güncelleştirme var ise, Bu, bu bölümü için iyi olacak
Biz gidiyoruz, çünkü masaya geri gidin.
>> Yani biz masaya geri giderseniz, şey oldu bir şey diyelim
bir deprem oldu ya doğrudan bölünmüş bir fay hattı
New York aracılığıyla.
Ve herkesi güncellemek istedim Kim New York'ta yaşıyordu.
Hepsi Pennsylvania taşımak zorunda kaldı.
Bu bir memleketi değil.
Hepsi New Haven taşımak zorunda kaldı.
Oraya gidiyoruz.
New York'ta yüzden herkes New Haven taşınır.
>> Ve böylece bir şeyi var Bu tabloda üç satır düzenleme.
Ama SQL yapabileceğiniz Sadece bir açıklamada söyledi.
Yani biz GÜNCELLENİR geri dönmek.
Bana hızlı yine bu tahtayı silmeye edelim.
Ne zaman bahsediyoruz güncelleme vardır
anahtar sözdizimi bir kaç parça.
Eh, sözdizimi tüm anahtarıdır.
Ama yeşil şeyler isteğe bağlıdır.
Beyaz gereklidir gibi önceden tanımlı isimler.
Ve açık mavi şeyler O tablosuna bağlı olarak değişir.
Yani birlikte neler var Burada, orada renk düzeni.
>> Biz sadece bu satırları güncellemek istiyorsanız Yani New York'ta yaşayan insanların,
Biz GÜNCELLEME dedi eğer öyleyse ne yapardınız?
Biz nereye koyduğunuzu Yani tablo Bizim tablonun adı.
Sadece ismini diyelim Bizim tablonun tablo biridir.
Bu yüzden tablo, bir UPDATE istiyorum.
Ve biz set-- istiyoruz ne ayarlamak istiyorsun?
Peki biz söylemek istiyorum, bu yüzden column-- PHP tek belirleyici olarak satırları davranır.
Ve sonra sütunlar Farklı alanların
veritabanının bu unsurların.
>> Veritabanı ilk elemana So Sam, CS50 bir süper gücün bir adı vardır
ve Milwaukee bir memleketi.
Biz set sözü Yani, en bakalım parametreleri tekrar set alır.
Biz sütun değerine eşit olması.
Bu yüzden bazı söylemek istiyorum column-- hatırlıyorum ki
Bir field-- biz görmek istiyoruz olduğunu yeni bir şey eşit bir alan.
>> Biz sadece güncelleme söyledi Yani eğer Tablo 1, set isim eşit Elliot.
Bazı insanlar olsun Bu konuda yeni bölüm.
Ama biz sadece güncelleme tablo 1 yaptım set isim eşit Elliot, ne istiyorsunuz
Bundan sonra böyle masa bakmak?
İnsanlar herhangi bir fikrin var mı?
Evet.
>> HEDEF KİTLE: Bu her şey Satır Elliot olacaktı.
KONUŞMACI: Hangi satırda şey?
HEDEF KİTLE: İlk satırda.
KONUŞMACI: İlk satırda?
Neden ilk satır?
Sana almaya anlamına gelmez.
>> HEDEF KİTLE: Belki de her şey Bütün tablo?
KONUŞMACI: Her şey içinde Bütün tablo, evet.
Ve bu tam olarak doğru çünkü-- I var Sadece biraz dışarı yardımcı oldu
orada-- biz ihmal nedeniyle İsteğe bağlı yan tümcesi.
Eğer WHERE yoksa fıkra, bu komut ne yapacak
Her birlikte çalışacağız edilir Tabloda tek sıra.
Herkesin ismi olacak olmak Elliott, temelde,
Hangi Elliot hakkında çok mutludur.
Veya Yanni, ikisinden biri.
Ama herkesin ismi değişecek.
>> Yani yol kullandığımız NEREDE clause-- ve Nerede için geçerli olan
Her olduğu Bu farklı şeyler.
Yani o SET fark edeceksiniz Sütun eşit değere sahiptir.
Ve böylece NEREDE yapar.
Ancak, bu farklı olan tabloların çeşitleri.
Yani sütun değerine eşit SET atamasında olduğunu.
Gibi biz istiyoruz söylüyorsun Elliot eşit adını ayarlamak için.
Ama NEREDE cümlelerinde, Bu eşitlik ifadelerdir.
Yani biz sadece istedim diyelim Elliot Kişinin adını değiştirmek
onların adı Ryan olsaydı, diyelim.
>> Yani biz deyince
>> NEREDE adı Ryan ki eşittir Başarıyla tek değişiklik olur
aşkına-- sadece olur satırlarda adı alanını değiştirin
nerede adını alan Ryan eşittir.
Yani eğer biz birden fazla kişi vardı Ryan, isimleri tüm adlandırılmış
Elliot değiştirmek istiyorum.
>> Bu örneğe benzer Bir fay hattı böler if
New York ve herkes için vardır New Haven için elimizden gelen şekilde hareket
tek açıklamada GÜNCELLEME olduğunu do tablo1 SET memleketi = New Haven
nerede memleketi New York eşittir.
Bu gücü UPDATE deyimi.
Biz herhangi bir sayı seçebilirsiniz Gerçek tablolar aracılığıyla satırlar
Bu satırlardaki alanlar hakkında.
Biz GÜNCELLEME tablo1 set diyemeyiz name = Elliot NEREDE satır = 1,
biz ID = 1 derseniz can dışında.
>> Yani biz olacağız eşitlik ile çalışan
alanların, sütun eşitlik.
Ama kimlik alanını kullanarak bir yoludur Özellikle bireysel satırları seçmek,
Kimlik alanı benzersiz olduğundan Bir SQL veritabanında tanımlayıcı.
Yani satır, bir güncelleme gibi, ID 1 eşittir.
Sadece, satır, iki güncellenmesi Bu kimlik numarasını değiştirin.
Ama gücü WHERE deyimi biz ise
Ne dayalı şeyler güncelleyebilirsiniz onların Bazı şeylerin geçerli değerlerdir.
Elliot Evet?
>> HEDEF KİTLE: Ve ne isterseniz aşağıdaki amaçlara Yine, bu başka bir sorudur.
Ama benim ilk soruydu, bu olay nerede?
Nerede bu güncelleme ki?
Bu bir PHP kodu var mı?
>> KONUŞMACI: güncellemek durumunda, evet.
Biz konuşacağız Bu nerede tüm hakkında
gidiyoruz tür bir kez olur tüm komutları aracılığıyla.
Ama gerekeni Şimdi temelde biliyorum
SQL veritabanı olduğunu bir şey olarak var
sorgu tarafından erişilecek CS50 tanımlayan fonksiyon.
Sorgu işlevini kullanmak Yani eğer, Bu tabloyu erişebilirsiniz.
>> Yani bu gönderme olacak PHP dosyaları masanıza komutları
Sorgu fonksiyonu sayesinde.
Ayrıca oynayabilir masanıza doğrudan.
Ve en iyi yolu komutları bu tür test edin.
Ve biz tam olarak ne ile gidersiniz Sadece biraz içinde bunu yapmak için.
>> Yani UPDATE komutu var.
Ve komutların kalanı tür benzer olacak,
Benzer şeyler üzerinde çalışıyor.
INSERT INTO muhtemelen GÜNCELLEME en farklı.
Ben orada o kadar bırakacağım Buraya biraz ve çalışma.
Yani INTO INSERT görürsünüz Bu tablo hala aynıdır.
Sen INTO INSERT istiyorum.
Harf, SQL duyarsız olduğunu.
Yani gerek yok Bunları yararlanmak.
Geleneksel olarak, sözler beyaz aktifleştirilir.
Ama aynı zamanda renk kodlu onları.
Eğer yararlanmak tek nedeni O zaman bunları yazıyorsun
Sadece vurgulamak olduğunu Bu olduğu sabittir.
Ve böylece her iki bakabilirsiniz harf veya gerçek
ben farklı şekilde renkli ettik.
>> Bu yüzden, INSERT INTO var tekrar tablo1 yapalım.
Bu tek bir satırda.
Ben sadece bunu ayıran ediyorum Farklı ifadeler.
Yani gerçeği dert etmeyin tablo1 ikinci çizgi üzerine yaptı.
>> Yani biz INSERT istiyoruz Bazı değerleri Tablo 1. INTO.
Ve isteğe bağlı farkedeceğiniz Ben bir saniye içinde alırsınız biraz.
Bu yüzden DEĞERLER var.
>> Yani biz Andi eklemek istediğiniz diyelim masamıza, çünkü biz Andi özledim.
Andi hasta.
Yani bizim masaya Andi ekleyelim.
Kimlik numarası unutmayın otomatik olarak güncellenir.
Sadece alanlar Yani biz hakkında endişelenmenize gerek
isim, süper güç ve memleketi bulunmaktadır.
>> Ve böylece biz bunu yolu, Bizim sözdizimi bakarak, biz ettik olduğu
Sadece virgül ile, bir parantez var ayrılmış değerler, her biri
bir değerdir.
Yani eğer biz içine Andi eklemek istedim bizim masa, yapmamız gereken tüm doğru Andi olduğunu.
Andi adlı süper gücü nedir, Andi adlı bölümünde insanlar?
O uçuşu gibi, ya da ister hız, ya da bir şey.
Biz zaten orada ne var?
Biz, CS50, uçuş var Hız ve kuvvet.
>> HEDEF KİTLE: Zaman yolculuğu.
>> KONUŞMACI: Zaman yolculuğu, inanılmaz.
Bu yüzden Andi, zaman var seyahat, ve onun memleketi.
Bu gerçekten iyi bir soru.
New York, sürece kimse bilmiyor.
New York ise herkesin var ders bugünden itibaren götürmek.
>> Yani bu beyanı olur beşinci satırda olarak eklemek,
süpergüç zaman yolculuğu ile ve New York'ta bir memleketi.
Ama isteğe bağlı alan temelde bir yoldur
tam olarak hangi sütunları belirtmek için Eğer bir şeyler eklemek istiyorum.
>> Şimdi bunu yapıyoruz yolu, Andi zaman yolculuğu, New York,
tam sırayla gidiyor bizim table-- isim, süper güç, memleketi.
Ve yapmak istedim Bunun dışında bir şey
gibi bilmiyordum demek Birinin süper güç,
Ben Andi adlı bilmiyordum nasıl gibi başlangıçta süper.
Böylece tüm biliyordum oydu isim ve onun memleketi.
Ne yapabileceğini I could olduğunu sanıyor- Ben bu hızlı silmek gerekir.
>> Ben sadece sütunları güncelleştirmek istiyor.
Ve bu nerede isteğe bağlıdır sütun listesi devreye giriyor.
Ben sadece isim ve memleketi güncellemek istiyorum.
Ve sonra DEĞERLER diyecekler.
Ben Andi ve New York yapacağız.
>> Ben sütunların listesini ihmal olsaydı ve sadece bu iki şeyi yapmış,
New York nerede giderdi?
Hangi sütun olur New York Şehir yerleştirilmiştir?
İnsanlar herhangi bir fikrin var mı?
Superpower, tam.
>> Yani bu sadece sırayla gidecek.
Ve sonuna ulaştığında Liste, sadece bir şeyler dolduruyor durdurmak olacak.
Ve değerler sopa edeceğiz tüm sütunları sadece null olacaktır.
Biz belirtilen çünkü bunu isim ve memleketi,
Biz Kimliği 5 için gidiyoruz Andi, süper güç NULL adlandırın.
Yani süper bir başlatılmamış bir değerdir.
Mutlaka almazsınız Aynı Valgrind hataları denerseniz
ve erişmek.
Her şey güzel olacak zeroed dışarı, null SQL bir değer olduğundan.
Yani bir sabittir.
Ve sonra memleketi New York olacak.
Böylece INSERT INTO komut var.
Biz hareket etmeden önce, orada iki komutları.
Insanlar hakkında herhangi bir sorunuz var mı UPDATE, INSERT INTO hakkında, SQL hakkında
Genellikle biz taşınmadan önce Bizim son bit üzerine?
İnsanlar harika, iyi hissediyorum.
Onu seviyorum.
Öyleyse, SELECT bahsedelim.
Buraya hendek GÜNCELLEME gidiyor.
>> Ve SEÇ çok benzer olacak.
SELECT hedefi, Hayatta seçmek amacı
Size sütunların bir demet vermektir belirli koşulları yerine.
Ve ben tatmin dediğimde belirli koşullar,
Aklını hemen olabilir WHERE o geri dönmek
O UPDATE geldi.
Ve bu fıkra ise Orada tam olarak SELECT.
>> Nereye koymazsanız fıkra ve SEÇ isim, demek
hometown-- biraz o yazıldığından wrong-- isim, FROM tablo1 memleketi.
Biz sadece derseniz ne SEÇ Bize verecek bu kadar olduğunu
Bize verecek bunun yerine, bir tablo double--.
Bir çift dizi, biz eğer PHP duyuları de düşünmeye.
Ama bu sadece bize vermek için gidiyor İki columns-- adının çift dizi,
ve memleketi.
Ve bu kimliği yok sayacaktır.
Ve süper güç yok sayacaktır.
Ve bu sadece bize her vereceğiz Bu tablonun tek sıra.
Biz sadece takılı Yani eğer Andi biz Andi gerekecek.
Ve biz orijinal dört gerekecek.
Güncel olduysan, o olacak yansıtılacaktır, vesaire, vesaire.
>> Yani bu çünkü biz WHERE yan tümcesi kullanmak vermedi.
Ama biz tam olarak kullanabilirsiniz Aynı şekilde biz UPDATE kullandı.
Biz sadece isimleri bir tablo istiyorsanız ve insanların süper güçler yaşayan
New York'ta, biz bir açıklama çalıştırabiliriz SEÇ isim gibi, superpower--
Ben sadece DAN ki- bırakacağım tablo1 WHERE memleketi = New York.
>> Yani bu yapabilirsiniz göstermek için gider tamamen farklı sütunları olsun,
ve o sen değilsin o sütunları koymak Hatta geri WHERE alıyorum.
Biz bile istemiyoruz herkesin memleketi.
Ama biz isim istiyoruz ve insan süper
kimin memleketi New York olduğunu.
Yani bir şey biz WHERE ile yapabilirsiniz
fıkra biz sütunlar başa çıkabilirim olduğunu biz mutlaka geri istemiyorum.
UPDATE Aynı şekilde, biz başa çıkabilirim Bu sütunlarla biz mutlaka yok
güncelleştirmek istiyor.
Biz herkesin şehri güncelleyebilirsiniz kim isim örneğin, Sam.
Biz şehir güncelleyebilirsiniz kimin kimlik numarası herkesin 2 'dir.
Dolayısıyla, sadece güncelleme İkinci sıranın kent
biz uğraşmak zorunda değilsiniz nerede Gerekli ortak soru.
>> Ve gibi ederim, bir DELETE FROM tablo1 DELETE bekliyoruz.
Ve sonra biz başka bir WHERE yan tümcesi var.
Yani biz NEREDE ID = 1 söyleyebiliriz.
İlk satırı silin.
Ve her zaman bir satır siler DELETE, ya da satır bazı numarayı silmek olacaktır.
Masanın NEREDEN DELETE FROM memleketi = New York
New York herkesi silecektir.
Bir varsa budur Ani trajik veba
ve sadece kaldırmak istedim Tablodan herkes kim
Belirli bir şehirde yaşamış Bu veba çarptı.
Huzur içinde yatsın.
>> Bu dört SQL komutlar Bu kullanmanız gerekecektir.
Hatta hepsini kullanmak gerekmeyebilir.
Ancak bu dörttür CS50 sizi beklediğini
girmeden rahat olmak için Quiz 1 ve ayrıca pset7 ve pset8 hem.
>> Sadece bu tablo yine var.
Bu bir, Roy'un süper güç var lazer ışınları, için güncellendi hangi
I did değil kullanma bir örnektir.
Bilmiyorum hangisi Roy tercih eder, fakat gücü.
Roy güçlü bir süper güç vardır.
Katherine bugün yapmak değildi.
Bu talihsizlik.
Ama süper hıza sahip.
>> Peki bu PHP idi.
Biz MVC hakkında konuşmaya başlamadan önce, yapar Herkes PHP ile ilgili sorularınız mı var?
Şimdi SQL veya PHP aniden varsa PHP ile ilgili bir soru ile gelip?
Büyük.
Pekala, hepimiz o hazırız.
>> Yani biraz konuşuyor Model görünümü denetleyicileri hakkında,
Biraz geri gidelim pset7 içinde şeyler.
Peki modeli görünümü Kontrolör değilim o--
Giriş yapmak için benim değişiklikleri kaydetmek için gidiyor Ben tamamen butchered çünkü.
Ama temelde biz iki tane var Ayrı şeyler oluyor.
Bir halkı var içeren dizin
yürütülecek gidiyor kod ve ziyaret edilecektir web sayfaları.
Ve biz de bu görüşleri dizin var.
Ve düşünceler şablonları içerir.
>> Bu nedir fonksiyonudur render-- biz işlemek gördüm
PHP kod bir demet fonksiyonu Bu CS50 zaten sizin için yazmış
belirli parametrelerde alır.
Ne bu kod yapıyor bu görünümler içine gidiyor edilir
kümeleridir gibi olan önceden yazılmış HTML kodu
ve değerler ekleyerek oluyor Belirli yerlere.
Bu nasıl zaman sizi CS50 Maliye gidin,
Aynı başlık her sayfada olduğunu.
Aynı altbilgi her sayfada olduğunu.
Bu arada nedeni işleri işlemek o olacak olan
otomatik olarak bu başlığında yama ve Eğer görünümler bulabilirsiniz görüntüleyici.
>> Biz aslında başlık içine gidin ve olabilir bak, bir kafa bir HTML dosyası var.
Bazı stil var.
Sen CSS bakmak gerekmez pset7 için size istemiyorsanız.
Ama değiştirebilirsiniz Onları isterseniz, yapmak
Finans biraz farklı görünüyor.
>> Bazı PHP içinde var Biraz görmek için başlık
Farklı bir başlık varsa Bu başlığında koymak gerekir.
Ama diğer bazı scriptler, ve bağlantıları ve diğer şeyler.
Baş ayy biter, vücut başlar ve, Bu garip küçük uç bit var.
Ve tıpkı bir div var elemanının şekilsiz tür
Bu orta bir fikri vardır.
>> Ve sonra biz, altbilgi görünce bir div uca sahiptir.
Biz olan bir taban vardır nerede altbilgi metindir.
Div, vücudun sonunda, HTML sonu sonu.
>> Peki hale olduğunu hale yapıyor tür
başlığını yama, bir Farklı PHP dosyası olduğunu
Gerçek şeyler içerecek Eğer hisse senedi masanıza gibi görüntülemek edeceğiz
Eğer hisse senedi satın alma ya da satıyoruz.
Ve sonra altbilgi ekleyeceğiz.
Ve model görünümü Kontrolör fikri biz ise
nasıl ayırmak istiyorum şeyler kodundan bak.
Biz önyüz ayırmak istiyoruz bulunuyor ve önyüz arka uç, nerede
kullanıcının gördüğü şeyler, güzel visuals-- HTML, CSS, bunun gibi şeyler,
görüntüler, vesaire.
Ve arka uç PHP.
Bu yazdığınız koddur.
Kod olduğunu budur Gerçek işlemleri yapıyor.
Eğer eklerken Bu masanıza stok,
ne zaman satın alıyoruz ve satış, o arka uç var.
>> Ve biz, gördüm gibi HTML doğrudan PHP dahil.
Biz yapmış olabilir Peki Bu atama sadece yaşamadım
login gibi her sayfa için bir HTML dosyası.
Ve sonra bu sayfada, sadece PHP kod büyük bir blok vardı
kod dahil olmak üzere tüm bu Bu sayfa, özellikle gerekir.
Ve sonra olabilir portföyüne done that.
Biz satın alma tüm yapmış olabilir ve tek tek sayfaları içinde satmaktadır.
>> Ama biz render çünkü ayrı yerden
Biz arka uç yazıyoruz Kod, biz kolayca yapabilirsiniz
şeyler olmadan nasıl bakmak değiştirmek her dosya değiştirme.
Biz bunu sadece eklemek gibi şeyler alt yeni div
Merhaba of-- Ben altbilgi güncellenmiştir.
Sadece böyle şeyler yapabilir.
Ama aynı zamanda, siz değiştirebilirsiniz Tüm görsel düzeni
etkilemeden ne backend gidiyor.
Ve değiştirebilirsiniz Tüm arka uç ve hala
o daha önce yaptığı gibi bakmak gerekir.
Bu
>> Model görünümü denetleyicisi fikirdir.
Ve aslında bir paradigma empoze programlama dilleri bazı
Eğer kullanmak isteyebilirsiniz Nihai projeler için.
IOS geliştirme yaparsanız, Onlar manzarasına sahiptir,
iPhone'da görmek ve ne olduğu Daha sonra ayrı bir şey gibi arkayüz.
>> Sen biraz düşünmek olabilir.
Ikili bir sürü içinde var komik bilgisayar bilimi,
Her şey ikili çünkü.
Bunu planı yoktu.
Bu bir kelime oyunu istenmeyen oldu.
Evet, cinas amaçlanan değil.
>> Ama .h dosyaları ve .c dosyaları gibi, var şeylerin ayıran bir çok biz
gerekmeyebilir.
Yani biz sadece h dosyalarını düzenlemek, ya da Birisi sadece .h dosyasına bakın ve biliyorsunuz
içinde tam olarak işlev mutlaka bilmeden .c dosyası
bunların uygulanması.
Ayırma bileşenleri Bu fikir birbirine bağımlı olduğunu
ama çeşit birbirini erişebilirsiniz Farklı kanallardan, geçen
değişkenlerin, sadece tablolar, şeyleri içerir
bunun gibi, bu ilke uygulamaları oluşturmak için yardımcı olur
bu daha kolay olabilir, birden fazla kişi tarafından düzenlendi,
daha kolay değiştirilebilir ya da büyük bir ölçekte, modifiye
ve daha kolay yollar bir sürü hata ayıklama.
>> Gerçekten hızlı, ben pset7 için birkaç ipucu,
ki ben tam ekran size yüzden yapacağız Sadece Şeyin ucu ucu Tippee bakıyor.
Birçok ipucu yoktur.
>> Ama PHP ayıklama zor bahsettiniz.
Kontrol İkili ve üçlü.
Kodunuzu sadece değilse sayfada gösteren
üzgünüm, muhtemelen bir PHP hatası var.
>> Sen bakmak gerekiyor asla CSS için istemiyorsanız.
İşiniz bittiğinde Ama bir kez bu olabilir Güzel bir küçük eğlenceli bir şey, sadece gitmek
ve CSS parametreleri ile karışıklık.
CSS ve HTML bir model bir örnektir görünümü denetleyicisi tarzı bir şey de, değil mi?
Sen stil etiketleri olabilir HTML öğelerinin içinde.
Ama eğer nevi CSS onları dış kaynak,
onlar düzenlemek daha kolaydır, ve oyun etrafında olan ve eğlenin.
>> CS50 yardımcı davranın siyah kutular olarak işlev görür.
Biliyorsunuz gerek yok Tam olarak ne yapıyor, render
ama her zaman doğru yapmak için güven Eğer onu geçmek ne bağlı bir şey,
Bu gibi şeyler.
Ve ben tavsiye ederim David'in örneklerde izlerken,
geçiyor tüm şeyler değil, sadece todos,
ama gerçekten tedavi edebilir Bu siyah kutular.
Bu girmeyiniz fonksiyonlar böcek arıyor.
>> Ve geri dönüşü hoş geldiniz Bizim derebeyi Zamyla evi.
Büyük.
>> Herhangi bir nihai soru önce var biz bir çeşit günü için sıçrama?
Hala yaşıyor muyum?
Büyük.
Merhaba livestream insanlar.
Büyük.
Sorular artık var mı?
Hayır mı?
>> Ve sonra biz olduğunu düşünüyorum Bugün için gitmek iyi.
Ben biraz etrafta sopa insanlar sorular vardı sonra eğer
Onlar akışta sormaya korktular.
Ama aksi takdirde, iyi günler.