>> SAM LEVATICH: Selamat datang ke bahagian untuk minggu ini.
Saya tidak Andi.
Andi telah jatuh sakit hari ini, dan saya telah semacam dipanggil saat akhir
untuk mengambil alih.
Ia adalah musim selesema, jadi pastikan bahawa anda tinggal bersih, mencuci tangan anda,
dan makan sihat supaya anda juga, tidak terlantar.
>> Tetapi tanpa lagi ado, mari kita bermula.
Hari ini, kita akan bercakap mengenai PHP sedikit bit-- bagaimana
PHP berkaitan dengan HTML, bagaimana ia berkaitan dengan CSS, dan beberapa web
bahan yang anda lakukan tugasan terakhir.
Kita akan bercakap sedikit sedikit mengenai SQL
dan bagaimana anda boleh bekerja dengan pangkalan data, yang merupakan komponen yang cukup penting dalam P
menetapkan 8-- P menetapkan 7.
P menetapkan 7.
>> Dan kemudian kita akan bercakap sedikit sedikit tentang bagaimana pandangan pengawal bekerja
dan mengapa itu adalah satu falsafah di sebalik beberapa laman web moden dan reka bentuk yang berbeza.
Cukup banyak banyak jenis aplikasi dan aplikasi yang anda mungkin menghantar
menggunakan model ini, pandangan rangka kerja pengawal,
bahawa anda akan menggunakan dalam P menetapkan 7, jadi saya akan
bercakap sedikit tentang mengapa yang yang menjadi
popular, mengapa ia adalah penting dan baik.
Dan kemudian saya akhirnya akan bergerak ke beberapa tips tentang menangani P menetapkan 7.
Dan jika kita mempunyai masa ditinggalkan pada akhirnya,
kita benar-benar boleh melakukan beberapa berusaha ke arah itu bersama-sama.
>> Jadi, PHP.
Malah, anda mungkin perasan this-- yang anda tidak benar-benar perlu menyelam ke dalam kitab itu
tetapi P menetapkan 6 mempunyai beberapa PHP kod yang sedang berlaku.
Dan kerana PHP adalah C-suka bahasa, PHP, tidak seperti HTML dan CSS,
adalah bahasa pengaturcaraan, sedangkan HTML dan CSS statik.
Mereka bahasa markup yang berkaitan dengan gaya dan susun atur visual.
PHP adalah perjanjian sebenar.
>> PHP mempunyai gelung, ia mempunyai syarat-syarat-- semua barangan yang menyeronokkan tentang C.
Ia mempunyai beberapa perkara yang sedikit sedikit lebih baik daripada C, yang kita akan lihat,
tetapi saya fikir cara yang paling mudah untuk bercakap tentang PHP adalah hanya untuk menyelam dalam.
Oleh itu, saya akan pergi ke kanan ke dalam IDE pada ketika ini.
Perkara pertama yang kita akan lakukan adalah benar-benar melihat
sedikit di beberapa Kod PHP yang di P menetapkan 6.
Jadi cara yang kita lakukan bahawa- sebelum ini, cara yang kita sedang berlari
pelayan untuk perkakas adalah bahawa kita perlu type--
sama ada menggunakan pelaksanaan anda atau pelaksanaan kakitangan
daripada server.c dengan pergi ke dalam direktori dan berjalan server.c dengan sama ada
arguments-- jadi hanya memanggilnya pada tuan rumah tempatan, yang adalah apa yang anda mungkin
melakukan sebahagian besar time-- yang dan kemudian memberi makan
yang directory-- dengan untuk digunakan sebagai akar
di mana laman web itu akan menjadi berlari, pada asasnya.
>> Minggu ini untuk P menetapkan 7, kerana besar sebagai kod kami untuk server.c
adalah, ada orang-orang yang sudah menulis perkara-perkara halus lebih di CS50
yang mempunyai sedikit fungsi lanjut,
program pelayan itu mampu berurusan dengan lebih sedikit
kerumitan yang kita akan lihat di dalam kedua-dua P menetapkan 7 dan P menetapkan 8.
Dan cara yang anda memulakan yang pelayan adalah dengan hanya menaip "apache50."
>> Dan sebelum anda melakukan apa-apa, anda ingin memastikan
yang Apache 50 tidak sudah berjalan kerana ia adalah
pada mesin saya, yang saya lakukan untuk menguji.
Dan anda berbuat demikian dengan menghubungi apache50.
Berhenti, dan anda akan melihat bahawa ia berhenti pelayan web, jika anda boleh melihat di sana
di bahagian bawah tetingkap terminal.
Dan kemudian hanya untuk memulakan, kami akan memanggil, "apache50 bermula."
Dan kemudian kita akan untuk memberi makan direktori.
>> Sekarang, kerana kita mahu melihat di beberapa P menetapkan 6 kod
bahawa kita telah dilaksanakan, saya benar-benar disalin sedikit P
menetapkan 6 kod ke dalam folder saya sendiri, yang anda boleh lihat di sebelah kiri sana.
Ia dipanggil "SECTION8" dalam huruf besar
kerana saya hanya begitu teruja menjadi penstriman langsung hari ini.
>> Jadi, jika kita menjalankan ini, ia perlu semua bekerja cukup berkesan.
Ia mengatakan, OK, laman web kami kini ada di alamat IDE,
pada dasarnya, yang adalah apa yang anda gunakan betul-betul kerana ia adalah pada P menetapkan 7-- P menetapkan 6.
Semua indeks saya adalah satu indeks hari ini.
Oleh itu, kita boleh pergi ke yang alamat, jika anda akan ingat,
dengan hanya klik ini sedikit butang di bahagian atas kanan.
>> Dan anda akan ingat kod ini, yang berlaku apabila anda pergi ke hello.php.
Dan apa kod yang direka untuk lakukan adalah apabila anda taip pada nama
sini-- jika anda mengatakan Sam kerana itulah name-- saya
dan saya klik Say Hello, apabila kami pergi ke halaman seterusnya,
nama yang sepatutnya dipaparkan.
Ia akan berkata, "Hello, Sam" atau "Hello," apa sahaja nama yang anda
masukkan ke dalamnya walaupun kita pergi ke laman web yang baru.
>> Dan ini adalah jenis perkara PHP boleh lakukan untuk anda.
PHP mampu lulus data antara dua laman web.
Ini adalah halaman yang sama sekali berbeza.
Anda akan melihat tajuk adalah "hello" di sini.
Sebenarnya, mereka mempunyai tajuk yang sama, tetapi saya
janji mereka adalah web yang berbeza muka surat jika kita melihat sumber itu.
Dan anda boleh lulus data itu dimasukkan dalam medan teks ini,
anda menyerahkannya ke depan halaman yang yang dipanggil,
dan kemudian data yang mampu berada di sana dalam bentuk sekarang.
>> Kita tidak lagi dilaksanakan ini diri kita sendiri, yang
adalah apa yang kita akan lakukan sekarang untuk semacam mendapatkan rasa untuk bagaimana PHP berfungsi,
tetapi idea utama adalah bahawa anda boleh PHP-- semacam memikirkan ia seperti fungsi.
Sesuatu yang PHP boleh membiarkan anda lakukan adalah ia boleh mengambil parameter
bahawa input anda ke dalam halaman HTML melalui penggunaan PHP dan bentuk,
dan ia boleh lulus mereka sebagai parameter ke halaman seterusnya bahawa ia memuatkan sehingga.
>> Dalam kes ini, kami memuatkan sehingga ini halaman dengan "Bertanya khabar" butang.
Tetapi buat masa ini, saya sebenarnya dipadam beberapa kod yang
dalam hello.php yang sedang berjalan yang sebenarnya memaparkan "hello,
dunia "atau" hello, Sam "atau "hello," apa sahaja input adil.
Jadi untuk sekarang, kami akan berbuat demikian, pada asasnya.
Kami akan mencipta itu dan juga menambah fungsi lebih sedikit,
melakukan sedikit lebih dengannya, lihat apa PHP adalah benar-benar mampu.
>> Jadi pertama, mari kita bercakap tentang fail ini, hello.php.
Jadi, jika kita zum dalam sedikit bit-- dan kini saya
semacam cuba untuk menatal semua cara around-- ada kita pergi.
Anda akan melihat ia dipanggil hello.php, tetapi sintaks daripadanya
kelihatan seperti fail HTML.
Ini adalah kerana PHP sebenar dalam fail ini
adalah semua terperangkap di antara kedua- soalan blok tanda-tanda sisipan.
Segala-galanya di sini dianggap kod PHP.
>> Dan anda akan melihat bahawa apabila saya komen,
anda akan melihat yang biasa dua ke hadapan garis condong.
Dan jika anda akan ingat, dalam HTML, saya menaip komen,
ia kelihatan lebih dekat dengan ini, yang merupakan satu komen dalam HTML.
Jadi benar-benar segala-galanya di antara kedua-dua tanda kurung sudut
kini kod PHP, yang digambarkan dalam fakta
bahawa simbol ini komen sedikit bertukar menjadi komen.
>> Jadi setiap kali anda menulis kod PHP, walaupun jika tidak ada kod HTML luarnya,
ia sentiasa akan menjadi disertakan dalam kurungan sudut
dengan tanda tanya.
Anda boleh jenis berfikir tentang kitab itu bagaimana semua kod yang berlari dalam program C anda
telah disertakan dalam int utama, tidak sah, kerinting, akhir kenyataan kerinting.
Dan anda akan melihat pendakap kerinting dalam PHP, juga, tetapi ini adalah jenis
seperti kaedah utama PHP.
>> Jadi sekarang, bagaimana kita berbuat apa-apa dalam PHP?
Sekarang, PHP adalah pengaturcaraan bahasa yang sangat C-suka,
tetapi ia beroperasi di web.
Jadi satu perkara yang anda akan immediately-- satu
satu perkara pertama yang anda benar-benar lakukan dengan C telah anda dicetak barangan keluar, kan?
Jadi, dalam C kami melakukannya dengan fungsi printf.
Kami berikan rentetan, mungkin dengan barisan baru,
dan kemudian kita ditamatkan dengan koma bernoktah.
>> Jadi cara yang kita akan berbuat demikian dalam PHP-- kerana ia tidak cukup printf.
Ia sedikit sintaks yang berbeza.
Cara yang kita cetak perkara keluar dalam PHP adalah kita katakan, "echo hello"
atau "echo" mana-mana perkataan.
Dan yang mempunyai kesan daripada perbuatan printf dengan tali, "hello."
Dan ia menambah satu barisan baru kepadanya.
>> Jadi mari kita sekarang membuat sure-- Saya akan zum keluar lagi sedikit bit--
mari kita memastikan bahawa kod yang bekerja
kerana mungkin sangat juga menjadi bug dalam kod ini
bahawa kita akan mempunyai untuk menangani.
Jadi pelayan sedang berjalan.
Jadi, jika kita tinjau kembali turun ke bawah, yup, pelayan masih berjalan.
Jadi, jika kita hanya memanfaatkan ini sedikit hak sini--
welcome-- kita harus get-- besar.
>> Kita masih mempunyai biasa "Bertanya khabar" dialog,
tetapi apabila saya menaip "hi," kita akan melihat bahawa teks "hello" sememangnya
dicetak, yang betul-betul seperti yang kita harapkan kerana echo dalam PHP
adalah sama seperti kenyataan printf.
Jadi kembali kepada kod, bagaimana dalam P menetapkan 6 lakukan kod pengedaran anda disediakan
membuat ia supaya PHP akan output perkara yang anda
ditaip pada skrin yang lama?
>> Dan untuk jenis memeriksa mengapa ini berlaku, kami
akan pergi ke index.html, yang adalah fail asal, fail yang
muncul pada skrin ini dengan "Bertanya khabar" butang.
Anda perasan bahawa ada semua perkara yang klasik
kami telah menentukan pengalaman HTML seperti kerana perkara-perkara ini, tag dilampirkan
dalam kurungan sudut, seperti PHP tetapi tanpa tanda soal,
yang menunjukkan satu perkara yang istimewa ke HTML.
Kami mempunyai tajuk, iaitu "hello."
Dan anda akan melihat bahawa seperti yang kita lihat, tajuk adalah "hello" dalam kedua-dua kes.
Mari kita mengubah satu ini untuk "mengatakan" hanya jadi kami
boleh membezakan diri kita di mana kita berada.
>> Tetapi kita telah mendapat badan.
Dan kemudian bit menarik, bit yang muncul dalam HTML,
adalah unsur borang ini.
Dan dengan itu kita telah mendapat borang.
Dan ini adalah kunci.
Ini adalah bagaimana kita bekerja dengan PHP.
Parameter tindakan bentuk mengatakan bahawa hello.php
adalah apa yang kita akan menghantar nilai dalam borang ini untuk.
Ini adalah di mana kita lulus parameter, jadi untuk bercakap.
>> Anda akan melihat perkara yang lain di sini adalah bahawa kaedah ini adalah "mendapatkan."
Terdapat dua utama kaedah yang akan
menjadi menggunakan PHP untuk lulus data antara laman web websites--,
rather-- dalam tugasan ini.
Dan orang-orang kaedah adalah "mendapatkan" dan "pos."
Terdapat beberapa halus perbezaan antara get dan pasca
bahawa kita akan mendapatkan into-- kita akan "mendapatkan" ke dalam, jika anda akan.
>> Tetapi bagi semua maksud dan tujuan, mendapatkan dan jawatan
kedua-duanya hanya cara-cara yang anda lulus parameter
dengan hukuman yang sedikit berbeza.
Buat masa ini, kita akan menggunakan mendapatkan kerana mendapatkan adalah apa yang telah digunakan pada asalnya
dalam fail PHP P menetapkan 6.
Dan sebenarnya, jika kita masuk dan melihat sebelum kita telah mengedit apa-apa lagi,
Saya akan mengatakan hi supaya- apa nama anda?
>> PENONTON: Elliot.
SAM LEVATICH: Oh, Astaga.
Saya tidak tahu bagaimana untuk mengeja itu.
Bolehkah anda mengeja untuk saya?
PENONTON: E-L-L-I-O-T.
>> SAM LEVATICH: I-O-T?
>> PENONTON: Ya.
>> SAM LEVATICH: Perfect.
OKAY.
Saya rasa saya tidak tahu bagaimana untuk mengeja itu.
Maaf tentang itu.
Tetapi jika kita mengatakan "Bertanya khabar," ia bukan ia tidak akan muncul pada skrin
lagi kerana kita diubahsuai kod sedikit.
Tetapi jika kita "Bertanya khabar" - OK, jadi "hello" ada di sini.
Tetapi jika kita mengambil lebih dekat melihat URL itu sendiri,
kita akan melihat bahawa ia berakhir nama dengan hello.php? = Elliot.
>> Jadi, ini adalah satu cara berkomunikasi ke laman web seterusnya
parameter yang kami telah berlalu.
Kami berkata name = Elliot.
Dan itu akhirnya bagaimana P menetapkan 6 diakses pembolehubah yang kami diluluskan pada
melalui borang.
Dan ini adalah sesuatu yang khusus kepada permintaan dapatkan.
Permintaan get menjadikan parameter terkenal dalam URL laman web.
>> Dan anda akan ingat juga, dalam P menetapkan 6 anda
terpaksa menulis fungsi yang diuruskan dengan hakikat
bahawa rentetan pertanyaan ini boleh wujud selepas fail.
Mungkin ada tanda tanya diikuti oleh pada dasarnya apa-apa bilangan aksara.
Dan itu betul-betul apa yang berlaku di sini.
Dan sebab anda terpaksa menghuraikan bahawa dalam pelaksanaan anda server.c di P
menetapkan 6 adalah supaya anda boleh memberitahu kod PHP yang menamakan = Elliot.
Anda diperlukan untuk dapat menghuraikan bahawa daripada URL yang
supaya fail PHP yang berkenaan tahu apa yang ia hadapi.
>> Jadi mudah-mudahan ini memberi motivasi untuk server.c
sekarang bahawa kita sedang bergerak di luar C ke dalam PHP.
Jadi mari kita benar-benar memberi tumpuan kepada mengakses perkara melalui permintaan get sekarang
pada ketika ini.
Saya akan menyimpan ini.
Kami tidak mengubah apa-apa.
Ia kelihatan seperti kami mempunyai medan input.
>> Kami menetapkan beberapa sifat, seperti yang dapat kita lakukan HTML.
Ini adalah perkara yang mudah.
Kita tidak memerlukan ini.
Tetapi kami mempunyai auto-lengkap di luar, yang pada asasnya says-- yang anda tahu,
apabila anda menaip perkara ke dalam web, kadang-kadang
ia cuba untuk mengisi bahawa dalam untuk anda.
Jadi ia adalah satu perkara yang baik.
Kami mahu mematikannya untuk tujuan ini.
Mereka itu adalah satu keputusan CS50.
Oleh itu, kita boleh memadam bahawa jika kita mahu.
>> Autofocus hanya melekat kursor dalam bentuk hak pada mulanya.
Sekali lagi, tidak terlalu penting.
>> Tetapi nama = "nama" - ia sedikit rumit kerana ia adalah nama dan nama.
Tetapi kita boleh telah berubah ini kepada sesuatu yang lain.
Dan sebenarnya, itu apa yang kita akan lakukan sekarang.
Kami akan berkata "orang" yang adalah jenis seperti nama
jika seseorang itu ditakrifkan oleh nama mereka.
>> Jadi mari kita menutup ini, membuka semula sebuah laman web kami
kerana pelayan kami masih berjalan Apache 50, dan kami akan berkata, hello, di sini adalah
Elliot lagi.
Kenapa tidak?
Hello.
Dan jika kita pergi di sini, kita akan melihat ketika itu dan bukannya name = Elliot,
ia berkata orang = Elliot.
Dan itu hasil langsung daripada hakikat bahawa kita hanya menukar namanya = "orang."
>> Jadi dalam unsur input bentuk HTML, medan nama
adalah pengecam untuk parameter yang yang berlalu.
Ia seperti jika anda membuat satu majlis "add" yang berlaku dalam dua integer
dan anda berkata int dan int b.
Yang akan menjadi nama, dan jika anda mahu bentuk yang lain, yang
yang boleh kita lakukan hanya dengan menyalin dan menampal, maka kita akan mempunyai nama b.
>> Jadi sekarang kita akan mempunyai dua parameter yang sedang melalui
dapat website-- seterusnya halaman web yang akan datang, hello.php.
Dan kita sebenarnya boleh melihat yang sekali lagi jika kita mahu.
Ini adalah cara yang paling mudah untuk menangani Kod web dalam IDE, pada asasnya.
Anda memulakan pelayan, mendapatkannya berjalan, dan kemudian setiap kali anda
membuat beberapa perubahan, hanya dekat fail yang hanya untuk selamat.
Menekan butang belakang adalah sedikit rumit
kerana ia mungkin memuatkan awal versi, bukan yang terkini.
>> Dan kemudian anda hanya klik anda butang sekali lagi, pop up-- betul oh,
dan kini terdapat dua bentuk.
Dan jadi jika kita menaip satu perkara ke dalam setiap one-- "jason Hirshhorn," untuk instance--
kita bertanya khabar.
Kita melihat ke parameter kami.
Ia kelihatan seperti kami ada, kerana dijangka, a = jason dan b = Hirshhorn,
yang mewakili kedua-dua parameter bahawa kita dihantar ke fungsi ini.
>> Jadi sekarang mari kita benar-benar dapat melaksanakan fungsi yang kita
mempunyai dalam P menetapkan 6.
Jadi sekarang kita hanya bergema hello.
Dan itu bukan sangat berguna.
Kami mahu echo beberapa pembolehubah yang telah diluluskan kepada kami.
Dan kita tahu nama pembolehubah ini.
Kami mempunyai dan kami telah b.
Oleh itu, kita boleh memilih untuk echo salah satu.
>> Tetapi bagaimana kita mencapainya?
Nah, terdapat beberapa pembolehubah global dalam PHP.
Dan saya akan menulis mereka dalam komen di sini.
Dua yang paling penting adalah mendapatkan ditulis untuk tujuan kita sekarang.
Ini adalah tatasusunan atau, secara teknikal, kamus yang
di mana pembolehubah kami bahawa kami berpindah kepada streaming laman web seterusnya.
Dan kita tidak lama lagi akan melihat bagaimana untuk menggunakannya.
>> Satu lagi nota ringkas tentang kod PHP dan beberapa khusus kitab itu dalam C,
untuk mengisytiharkan pembolehubah atau menggunakan pembolehubah,
anda pertama terpaksa mengisytiharkan mereka.
Dan apa yang anda perlu lakukan apabila anda mengisytiharkan mereka adalah mengatakan int atau char b.
Anda terpaksa mengisytiharkan jenis ini pembolehubah sebelum anda menjadikan mereka.
PHP-- anda tidak perlu melakukan apa-apa itu.
PHP tidak meminta jenis pembolehubah.
Dan cara yang anda mewujudkan variable-- yang agak
daripada berkata int, char, rentetan yang benar-benar char *, seperti yang kita know--
daripada melakukan semua itu, kerana segala-galanya
adalah jenis yang sama, typeless, kita boleh hanya
menggunakan salah satu watak, yang adalah tanda dolar.
Dan anda akan melihat ia sudah muncul sehingga, perkara auto-lengkap sedikit.
Dan ia berkata _GET dan _POST dua pilihan yang saya ada
kepada saya.
Antara perkara-perkara lain adalah pembolehubah global lain dalam PHP
bahawa anda akan menggunakan lebih perjalanan P menetapkan 7.
Buat masa ini kita akan memberi tumpuan kepada mendapatkan dan pos.
Tetapi ini adalah berguna perkara yang IDE tidak
di mana apabila anda telah ditaip kerana tanda dolar,
ia akan mula mengisi pembolehubah global atau pembolehubah anda telah ditakrifkan.
>> Jadi, jika anda ingin menentukan pembolehubah yang dipanggil "tali,"
anda hanya boleh menetapkan ia sama dengan "hi."
Dan ia pada dasarnya semudah itu.
Dan kemudian kita boleh lakukan sesuatu seperti "$ string gema."
IDE perlu membuang beberapa kesilapan jika saya melakukan apa-apa yang salah,
jadi diharapkan saya melakukan semua dengan betul.
Tetapi bug sentiasa yang timbul.
>> Satu lagi perkara yang rumit tentang PHP adalah bahawa ia tidak disusun.
Jadi dengan program C, yang akan anda lakukan rutin harian daripada- pada dasarnya,
anda akan membuat suntingan kepada kod anda, anda akan menyimpannya,
dan kemudian anda akan membuat, di mana make adalah
langkah yang dipanggil pengkompil, dilafaz, untuk membuat kod anda, teks ini
fail, ke laksana.
PHP adalah C-suka, tetapi ia dilaksanakan dengan cepat oleh pelayar web anda.
Jadi tidak ada cara untuk mengetahui.
>> Membuat akan membuang mereka kesilapan berguna, bukan?
Ia akan menjadi seperti, anda tidak mengisytiharkan pembolehubah ini
sebelum anda cuba untuk menggunakannya.
Kau buat semua segfault stuff-- ini tidak baik, segfault, semua yang jenis masa untuk berseronok
yang datang dengan make.
PHP adalah pedang bermata dua kerana anda tidak akan mendapatkan orang-orang kesilapan,
tetapi itu juga bermakna bahawa anda tidak akan tahu benar-benar apa yang salah dengan program anda
jika anda hanya berjalan dan ia tidak berfungsi.
Tetapi penyahpepijat perlu menunjukkan beberapa perkara yang diharapkan akan membantu sedikit
sintaksis yang boleh menetapkan.
>> Oleh sebab itu jika kita pergi ke supaya- berkata, mari kita menutup itu.
Buka semula.
Dan kami kembali ke sini.
Jadi kami mempunyai pembolehubah dan b berubah-ubah.
Dan ini tidak akan akhirnya perkara itu.
Kita akan memanggil mereka h dan g tanpa sebab tertentu.
>> Dan kita bertanya khabar.
Kini ia kelihatan seperti tali kami "hi" memang percetakan.
Kami mencipta pembolehubah yang dipanggil "tali," menetapkan ia sama dengan "hi."
Perhatikan bahawa kita tidak perlu berbuat malloc atau membuat pelbagai watak.
>> Dalam PHP, kerana pembolehubah adalah typeless, rentetan
adalah sama seperti char untuk tujuan dan maksud.
Ini boleh menjadi "hi."
Ini mungkin hanya k watak.
Ini boleh menjadi satu nombor 1.
Dan ia tidak peduli.
PHP tidak mengambil berat tentang jenis pembolehubah anda.
Atau, ia tidak baik.
Ia menjaga apabila anda cuba dan melakukan perkara-perkara dengan itu,
tetapi ia tidak peduli dalam langkah pengisytiharan.
>> Dan seperti yang anda boleh dalam C, anda boleh mengisytiharkan tali pada timbunan seperti ini
walaupun berkata "timbunan" adalah sedikit sedikit kesilapan nama yang berpotensi apabila
kita bercakap tentang PHP.
Tetapi kita tidak perlu bimbang tentang itu.
Oleh itu, kita mendapat rentetan kami "hi," dan kami echo tali.
Jadi sekarang kita telah dibincangkan pembolehubah.
Jadi sekarang kita perlu bercakap mengenai mendapatkan dan hantar dan melaksanakan perkara yang terakhir itu
diperlukan untuk benar-benar kembali ini sehingga kepada fungsi P menetapkan 6.
Jadi sekarang kita bergema tali, tetapi kita
yang mempunyai pembolehubah ini mendapatkan dan pos.
Dan kerana kita menggunakan kaedah mendapatkan, ia
seolah-olah alam yang berubah-ubah kami yang kita minati, kedua-dua a dan b,
akan ditempatkan dalam array atau kamus, teknikal mendapatkan.
>> Jadi, jika kita menubuhkan mendapatkan seperti ini dengan groups-- anda saya ditekan masukkan
dan ia tidak suka kitab itu tetapi di sini kita mempunyai dapatkan.
Dan oleh itu telah wujud.
Oleh itu, kita sudah boleh mula untuk akses beberapa elemen daripada acara.
Jika kita mendapatkan, sintaks ini untuk array dalam PHP adalah sangat C-suka.
Kami mempunyai dua tanda kurung siku kami.
>> Jadi, jika kita katakan dalam biasa pelbagai, kita boleh mengakses
indeks 0, indeks pertama.
PHP adalah indeks sifar.
Kita boleh mengatakan sifar, satu, barangan two-- seperti ini.
Dan saya telah mengatakan bahawa mendapatkan secara teknikal kamus.
Jadi apa PHP lakukan di bawah hood, yang sedikit lebih bagus daripada C,
adakah ia telah memberi anda beberapa fungsi kamus, yang
adalah jadual benar-benar hash, atau cuba untuk, kononnya.
Atau, secara teknikalnya ia boleh menjadi cuba juga.
Tetapi PHP sedang melaksanakan jadual hash, yang menjadi kamus yang berkesan.
>> Dan supaya kita tahu nama pembolehubah kita, bukan?
Ia diluluskan dalam rentetan pertanyaan oleh PHP.
Kami mempunyai = h dan b = g mana dan b adalah nama-nama pembolehubah.
Jadi cara yang kita boleh mengakses nilai yang sepadan dengan kunci
dalam kamus kita adalah hanya dengan mengatakan _GET_GET ["a"].
>> Jadi sekarang kita mempunyai _GET ["a"].
Dan jika kita hanya menggantikan dalam echo kita, jika kita echo _GET_GET ["a"] -
dan kita akan melihat jika penyahpepijat melemparkan sebarang kesilapan mengenai this--
kami akan menyimpan itu dan menutup ini keluar.
Membukanya.
Oleh itu, kita hanya melakukan hak sekarang, jadi b tidak mengapa.
"dia" dan "him" - "hum." "dia" dan "hum."
Bunyi yang baik.
>> Dan ia dicetak "beliau," yang gila.
Tetapi itulah apa yang berlaku di P menetapkan 6.
Pada asasnya, apa P menetapkan 6 adalah doing-- echo hello,
name-- di mana ia mempunyai nama pembolehubah dan ia hanya
meminta anda menaip yang sedikit teks.
Terdapat juga beberapa kod tambahan di mana
ia termasuk jika kenyataan, yang kita boleh lakukan sekarang.
>> Kita boleh mengatakan jika wujud, yang adalah fungsi dalam PHP,
_GET Dengan garis bawah, "nama" - yang pada dasarnya mengatakan,
"jika namanya telah diisi" kerana kita boleh hanya klik butang
mengemukakan borang tanpa menaip apa-apa ke dalam bidang itu.
Dan kita balut bahawa dalam kita pendakap kerinting friendly.
Kita boleh mempunyai kenyataan yang lain.
Dan itu semua dalam sudut PHP kurungan, tanda tanya, kurung sudut,
jika anda akan.
>> Dan sekarang kita akan melihat jika ia berfungsi.
Saya terus menunggu ia debug dan crap keluar pada saya, pada dasarnya,
tetapi ia tidak mempunyai lagi.
Mungkin ia akan kini kerana saya bercakap tentang.
Ya.
Yang berlaku, sebenarnya.
Jadi, tiada apa yang muncul.
Ini kerana sesuatu yang salah yang saya tulis kod PHP.
Dan saya nyatakan debugging adalah sukar kerana dalam PHP, kita
tidak menyusun terlebih dahulu dan pengkompil tidak suka,
di sini di mana kesilapan anda berada.
>> Tetapi apa yang kita boleh lakukan is-- orang ingat
bagaimana untuk melihat rangkaian yang berbeza permintaan yang PHP-- atau bahawa laman web
hantar?
[? Malin?] Melakukan ini dalam bersyarah sekali atau dua kali.
Anda ingat di mana kita pergi untuk mencari hutang yang berbeza dan 200 OKS,
semua kod-kod ini yang sedang dihantar melalui HTTP dari laman web ke laman web?
Adakah sesiapa ingat di mana kita pergi untuk berbuat demikian?
>> PENONTON: Page Source.
SAM LEVATICH: Page sumber.
Tepat sekali.
Jika anda pergi ke Page Source-- sempurna.
Jadi Page Source menarik sehingga pemeriksa.
>> Dan saya menggunakan Safari.
Banyak anda akan mungkin akan menggunakan Chrome atau Firefox.
Tetapi selagi anda berada dalam mana-mana browser-- moden
dan berasa bebas untuk mengikuti bersama-sama jika anda mahu.
Anda boleh menaip kod ini atau hanya melihat dalam P set 6
direktori untuk barangan beberapa yang sama.
hello.php adalah apa yang kita sedang berusaha untuk mencontohi.
>> Jadi, terdapat pelbagai tab.
Kita boleh melihat semua sumber.
Kita boleh melihat kod sumber.
Jadi kelihatan seperti ia tidak mendapatkan badan lalu pada akhirnya.
Ia mendapati kesilapan dalam PHP dan ia berhenti memuatkan halaman web keseluruhan.
Kami tidak perlu berakhir tag untuk HTML atau apa-apa.
>> Dan jika kita melihat rangkaian, kita boleh melihat bahawa kita menanggung akibat menghantar permintaan.
Ini adalah domain.
Ini adalah alamat.
Ia adalah dokumen.
Kami menggunakan kaedah mendapatkan.
>> Dan ia merah.
Atau, ia merah apabila saya tidak memilih ia.
Bagaimana saya nyahpilih ia?
Well, ia adalah merah.
Biar saya menyegarkan.
Ada ia.
Kini sudah tiba merah.
>> Jadi ia adalah merah, yang bermaksud ia gagal, yang tidak baik.
Jadi mari kita mengkaji mengapa ia gagal.
Jadi apa yang Page Sumber boleh pada dasarnya memberitahu anda adalah perkara anda
tidak berfungsi, yang kita sudah boleh melihat.
Begitu ideal di sana akan menjadi alat yang lebih berguna.
Dan terdapat beberapa sambungan pelayar yang membolehkan anda nyahpepijat PHP,
tetapi kita tidak akan menulis satu tan PHP,
jadi ia mungkin hanya terbaik untuk melihat melalui kod anda
berhati-hati dan pastikan bahawa ia tidak melakukan apa-apa lagi.
>> Jadi mari kita lihat jika format ini jika kenyataan adalah di mana masalahnya.
Saya hendak memuatkan yang kembali di sini.
Hello, hi.
Jadi ada masalah di sana.
>> Jadi untuk sintaks yang betul PHP, PHP akan
sebagai C-suka kerana anda akan melihat gelung.
Anda akan melihat jika kenyataan.
Anda akan melihat semua rakan-rakan ini yang anda telah menjadi biasa
dengan lebih perjalanan semester CS50 ini.
Tetapi cara terbaik untuk memikirkan bagaimana untuk melakukan sesuatu dalam PHP adalah untuk Google ia
atau untuk melihat beberapa contoh kod PHP kerana anda tahu fungsi.
>> Anda tahu apa yang anda boleh kaitan dengan program ini.
Anda boleh gelung.
Anda boleh gelung seberapa banyak kali yang anda mahu.
Anda boleh gelung dalam semua pelbagai cara yang berbeza.
Anda boleh membuat fungsi.
Anda boleh membuat fungsi yang memanggil fungsi lain, fungsi
yang memanggil diri mereka.
Dan anda mempunyai nama-nama untuk konsep-konsep ini.
Anda telah mendapat rekursi, gelung, jika, aliran kawalan yang lain.
Dan sebagainya Google adalah kawan anda yang terbaik.
Malah berkata, "PHP jika kenyataan "dan tidak akan mempunyai
menjadi tan jawatan dengan jawapan kepada orang lain
yang telah mempunyai soalan yang sama kepada anda, yang baru bermula dengan PHP
dan tertanya-tanya tentang satu perkara sintaksis.
>> Kerana kita mempunyai kemewahan yang dapat melihat kod dalam P set 6,
kita benar-benar tarik dan melihat bahawa OK, di sini adalah sesuatu yang menarik.
Jadi ini adalah apa yang sebenarnya kelihatan seperti dalam P menetapkan 6.
Jadi, jika kita pergi melalui ini, kita dapat melihat bahawa kami telah
mendapat beberapa ini sedikit PHP-seperti bit tanda tanya.
>> Dan tidak adalah pendakap kerinting.
Terdapat titik bertindih.
Dan ada kerinting pendakap dalam PHP, tetapi ini
merupakan suatu format dan cara melakukan PHP yang berfungsi dengan baik dengan HTML
kerana seperti yang anda akan lihat, kita menutup off PHP ini bits-- yang elses
dan IFS dan semua bahawa- dan kemudian kita interspersing HTML dalam mereka
sementara masih berikutan aliran kawalan yang ditetapkan oleh PHP.
>> Jadi, saya hanya akan berjalan cepat melalui ini
kerana ia banyak yang sama konsep yang kami lakukan sebelum ini.
Kami telah mendapat jika tidak kosong, kurungan, _GET_GET ["nama"].
Ini semua barangan yang sama.
Kami menggunakan kamus _GET yang PHP menghantar atas permintaan bentuk,
kerana ia adalah parameter tindakan, dan kaedah ini dapat.
Dan kemudian yang berakhir itu.
Kolon ialah penanda untuk hanya melakukan ini jika sekiranya penyata tersebut menilai kepada benar.
Ia seperti dua gol kerinting.
Dan sebenarnya, ia adalah satu kerinting dalam bahasa-bahasa lain seperti Python,
yang anda mungkin hadapi jika anda hanya berbuat demikian untuk projek akhir anda.
>> Dan kemudian baris ini, hello.
Kemudian kami ada perkara ini pelik.
Kami mempunyai lebih kurungan.
Tidak ada HTTP there-- atau PHP, maaf.
Tetapi ada tanda sama.
Dan kemudian kita mempunyai fungsi, htmlspecialchars (_GEThtmlspecialchars (_GET ["nama"]).
Ini adalah jenis seperti yang lebih versi maju gema.
Seperti yang kita telah echo sebagai cara yang untuk mencetak perkara di dalam PHP.
Ini adalah satu fungsi itu ditakrifkan dalam PHP yang
akan berhadapan dengan beberapa lebih jahat watak dan nilai-nilai bait
bahawa anda boleh lulus.
Ia sentiasa selamat untuk menggunakan ini.
Tetapi gema akan melakukan kerja dengan baik jika kita tidak
berurusan dengan apa-apa yang terlalu jahat.
>> Dan hal ini mempunyai yang sama kesan pada dasarnya,
barangan ini di antara soalan markah dinilai oleh PHP.
htmlspecialchars mengembalikan HTML bagus nilai bercetak _GET_GET ["nama"], iaitu
apa sahaja yang kita taip dalam bentuk.
Dan kemudian ia akan bertanya khabar, ruang koma, dan kemudian itu.
Itu perkara yang lengkap antara kurungan sudut
akan digantikan dengan apa jua htmlspecialchars meletakkan keluar.
Jadi, itu pada dasarnya sama dengan apa yang kita lakukan.
Dan kita mempunyai kenyataan yang lain itu hello dunia, yang masuk akal.
Jadi sekarang mari kita kembali kepada kami kod dan melihat exactly-- oh.
Saya berkata wujud, yang tidak satu perkara yang kita mahu lakukan.
Kami mahu mengatakan tidak kosong.
>> Dan hal ini perlu bekerja sedikit sedikit lebih baik, bukan _GET_GET kosong ["nama"].
Dan yang kerinting perlawanan yang kerinting.
Kami telah mendapat pendakap kerinting kami di sini.
echo hello _GET ["nama"].
Mari kita lihat jika ini kerja-kerja yang lebih baik.
Kami masih menjalankan pelayan kami.
Hello Jason.
Dan ia bekerja masa ini.
Dan supaya bukti bahawa anda memang boleh
menggunakan pendakap kerinting yang tahu dan cinta kod PHP dalam HTML.
Kod PHP yang diberikan kepada anda pset 6-- pset 6--
menyediakan satu lagi cara melakukan perkara yang sama.
>> Jadi sekarang kita mempunyai kuasa.
Kami mempunyai fungsi untuk melaksanakan kod PHP yang kita lihat dalam Serangga 6
oleh diri kita sendiri, pada asasnya.
Sebelum saya teruskan, apa yang adalah sebahagian daripada soalan-soalan yang anda ada pada ketika ini?
Ya [didengar].
>> PENONTON: Jadi dalam versi dalam pset6, apabila anda menjalankannya, ada ruang.
Dan saya boleh melihat di mana ruang adalah selepas koma. [Didengar] permulaan
kurungan terbuka.
Bagaimana anda menggabungkan ruang dalam cara anda menulis kod anda sendiri?
>> SPEAKER: Itu adalah soalan yang baik.
Dan jadi mari kita memikirkan yang keluar.
Jadi itu adalah satu soalan benar-benar baik dan satu yang saya tidak dipertimbangkan.
Tetapi mari kita melakukannya bersama-sama.
>> Jadi pertama sekali, apa yang Saya lakukan dengan gema
adalah apabila kita hanya echo hello, output hello.
Jika kita echo sekarang ini mendapatkan pada yang berasingan talian, kita kaji apa yang berlaku.
Oleh itu, kita klik ini.
Kami terus mengatakan, hi Jason.
Jadi sekali lagi, kita tidak mempunyai ruang ini.
>> Dan itu kerana, PHP, apabila kita telah echo,
tidak kira berapa banyak spaces-- nope, bukan V--
tidak kira berapa banyak ruang yang kita masukkan ke dalam sini-- jika kita memuatkan yang semula,
hi Jason.
Ya, lihat, semua orang-orang ruang mendapat dimakan.
Dan itu adalah sesuatu yang fungsi gema tidak.
>> Jadi untuk menjaga ruang itu, dan ini adalah
salah satu daripada sebab mengapa anda tidak menggunakan echo
dan anda menggunakan htmlspecialchars sebaliknya.
Saya ingin tahu apa yang akan berlaku jika kita melakukan ini
di mana kita tertutup ruang dalam rentetan.
Saya secara jujur ​​tidak pasti apa akan berlaku apabila saya melakukan ini.
>> Jadi, itu satu cara.
Itulah salah satu cara untuk menjaga ia.
Jika anda membalut ruang dalam rentetan, maka ruang yang
akan dioutput baik oleh gema.
Perkara yang paling selamat untuk lakukan adalah untuk melakukan htmlspecialchars.
Yang sentiasa pertaruhan selamat.
Tetapi sekarang kita mempunyai cara untuk melakukan dengan gema jika perlu.
Dan dengan cara yang sama, kita boleh echo baris baru, semua jenis yang
barangan anda biasa lakukan dalam PHP.
>> Orang lain, apakah lagi soalan-soalan yang orang lain mempunyai
pada ketika ini tentang PHP?
Jika orang muncul sedikit lewat, Saya gembira untuk tinggal selepas sedikit
dan bercakap tentang beberapa permulaan.
Dan ia juga semua livestreamed, dan diarkibkan, yang gila.
>> Bagaimanapun, jadi sekarang mari kita buat beberapa barangan yang lebih maju dengan PHP.
Dan salah satu perkara yang paling awal anda telah diperkenalkan dalam C adalah untuk gelung.
Dan PHP mempunyai lebih berkuasa untuk gelung dipanggil gelung foreach.
Dan ia kelihatan seperti this-- untuk setiap tempat kosong sebagai kosong, kurungan kerinting, melakukan perkara yang.
Jadi ini adalah pada dasarnya trengkas a.
>> Lihat, untuk gelung sebagai pembinaan sintaksis
telah diadakan di C dan di Dewan Undangan bahasa dan perkara-perkara suka.
Dicipta dalam C, dengan tepat, kerana trengkas yang untuk banyak jenis gelung
bahawa orang akan melihat.
Seperti apabila anda menulis gelung, terdapat sering langkah pengawalan
dilaksanakan tepat pada awal, satu merapikan mana gelung akan stop--
dan itulah ciri-ciri yang itu hanya dalam gelung sementara,
atau yang sementara telah betul-betul hanya itu feature-- dan kemudian
langkah incrementation pada akhir.
Dan supaya anda sering akan mendapati diri anda menulis kod seperti berikut.
Saya akan memadamkan beberapa ini.
>> Tetapi jika kita iterating melalui watak-watak dalam array,
Sebagai contoh, seperti yang kita ada mendapat pelbagai watak.
Maaf untuk membawa balik C. saya tahu, anda fikir anda telah dilakukan.
Tetapi ia hanya untuk tujuan tersebut belajar PHP, saya janji.
Jadi, jika anda mendapat str char panjang 8, dan mari kita
mengatakan ia berkata Hellooo dengan null trailing.
Great, supaya tali kami.
>> Dan kemudian kita mempunyai untuk gelung.
Kami mempunyai int i sama dengan 0.
Dan kita mahu keluar apabila str i tidak sama sama dengan nol,
kerana kita keluar apabila ia sama null.
Dan kemudian kita lakukan i ++ pada setiap mata dalam untuk gelung.
Melakukan sesuatu dengan str i.
>> Oleh itu, formula asas adalah, kami mempunyai pelbagai ini yang kita
mahu merawat unsur-unsur yang berasingan.
Tetapi apa yang kita terpaksa lakukan ialah kita terpaksa pada dasarnya mewujudkan integer yang berasingan
pembolehubah yang telah mengira sehingga setiap kali kita telah melalui gelung.
Dan kemudian kita perlu kemudian memanggil strstr [i] apabila apa yang kita benar-benar mahu lakukan
hanya pergi watak oleh watak, bukan?
Kita tidak mahu untuk kenaikan yang integer dan kemudian menggunakan integer yang
untuk mengakses setiap watak individu.
Kami benar-benar mahu watak dengan watak.
>> Dan sebagainya untuk setiap bijak mengira bahawa untuk kita.
Jika kita mempunyai pelbagai, yang kita boleh mengisytiharkan dalam PHP
sebagai just-- jika kita mempunyai pembolehubah dipanggil, mari kita memanggilnya pelbagai.
Mukjizat tidak menaip, ia seperti mana-mana pembolehubah lain.
Ia hanya array.
Dan kita mempunyai sedikit [didengar] seperti 1, 2, 3, hanya sejenis array dimulakan.
Ia OK, ia tidak suka foreach saya.
>> Tetapi jika kita foreach-- sebenarnya Saya menaip bahawa salah sedikit.
Terdapat dua cara untuk melakukan gelung foreach.
Ada sintaks dalam dan sebagai sintaks.
Dan kita akan lakukan dalam sintaks pertama, bukan sebagai.
Itulah kesilapan saya.
>> Num Jadi foreach dalam array, echo num.
Dan PHP menjerit pada saya atas sebab tertentu.
Ia mencari tempat yang tidak dijangka di dalam sesuatu,
yang sedikit mengganggu a.
Tetapi kita akan memikirkan mengapa yang dalam seketika.
Jadi tidak suka itu.
Mari kita cuba menggunakan sebagai.
Ia lebih suka sebagai sintaks adalah seolah-olah.
Jadi mari kita buat pelbagai foreach sebagai num.
>> Jadi penjelasan sedikit apa sahaja yang berlaku
adalah seperti sintaks itu saying-- baik pertama, mari kita lihat apa ini mencetak keluar.
Oleh itu, kita membuka IDE kami.
Kami pergi di sini.
Kami berkata, Hello Jason.
Dan ia memang 123, yang merupakan kandungan array yang kita dicipta sehingga atas.
>> Jadi menyelam ke dalam gelung foreach ini, kita ada pelbagai pembolehubah dipanggil
yang pelbagai daripada tiga nombor.
Dan kemudian kita lakukan foreach lokasi sebagai num, echo num.
Dan yang lebih intuitif daripada untuk menutuh.
Kita katakan, merawat setiap perkara-perkara dalam array sebagai num,
Saya mahu anda untuk memberi saya num.
Dan itulah apa yang ia lakukan.
>> PHP mengira bahawa apabila anda mengatakan foreach pelbagai,
dan anda berurusan dengan pelbagai, apa anda akan mahu untuk melelar
adalah watak-watak dalam pelbagai itu, adalah ints dalam array itu,
adalah elemen-elemen dalam array itu.
Dan ia membolehkan anda menyimpan pembolehubah-pembolehubah sebagai num,
dan num kemudian hanya output merta dan bukannya mengatakan,
Saya mempunyai pembolehubah yang dipanggil i, dan maka saya ingin output strstr [i].
>> Dan sebagainya yang membolehkan kita untuk melakukan perkara-perkara yang sejuk.
Seperti pada dasarnya kita tidak perlu membuat pembolehubah ini seperti i dan melakukan semua
barangan incrementation ini pada akhir.
PHP menjaga semua itu untuk anda.
>> Jadi sekarang mari kita bercakap tentang foreach sebagai ia terpakai kepada kamus _GET kami.
Jadi kita akan komen ini keluar dengan cepat.
Jadi kita mempunyai pelbagai _GET kami.
Kami mempunyai pembolehubah ini.
Dan ia mendapat beberapa barangan di dalamnya.
>> Buat masa ini, kita hanya mempunyai satu pembolehubah yang diluluskan kepadanya, yang adalah nama.
Tetapi jika kita tekan Enter, kini kita boleh mempunyai dua pembolehubah.
Kita boleh mempunyai nama dan umur, misalnya, jika kita mahu mendapatkan umur dan juga
nama seseorang, dgn lucu cukup.
>> Jadi sekarang _GET akan menjadi kamus dengan dua elemen,
dengan dua pasang nilai utama.
Dan key-- pertama saya akan menulis satu ini di papan juga.
Kami mempunyai kamus kami adalah _GET.
Maaf, ia adalah sedikit sukar untuk melihat.
Tetapi di dalam kamus kami, kami mempunyai nama, yang akan menjadi sesuatu yang
bahawa kita diberikan.
Dan kita akan mempunyai umur, yang juga akan menjadi sesuatu yang kita diberikan.
Dan ini adalah keseluruhannya yang daripada kamus kami.
>> Jadi ia mendapat dua unsur di dalamnya.
Dan sebagainya kerana foreach gelung bijak, kita
mungkin berfikir, dan dengan betul mungkin berfikir bahawa foreach
boleh melelar melalui ini kamus, mencetak
nilai yang ditetapkan dengan nama dan umur.
>> Jadi mari kita sebenarnya melakukan hal itu.
Mari kita membina gelung foreach.
Dan kita akan lakukan untuk _GET sebagai.
Dan kita akan melakukan yang berikut.
Jadi mari kita lihat apa yang berlaku jika kita menaip hanya perkataan, dan kemudian berkata perkataan gema.
Kami juga akan echo baris baru hanya untuk membuat ia sedikit lebih jelas,
apa yang berlaku.
>> Jadi mari kita lihat.
Ia tidak memberi saya apa-apa kesilapan.
Dan kita akan menutup ini.
Di laman web kami, anda akan melakukan banyak yang sepanjang pset7.
Oleh itu, kita menyebut nama saya ialah Sam.
Umur saya ialah 45.
Ianya bukan.
Tetapi ia mencetak keluar, seperti yang dijangkakan, Sam 45.
>> Dan sebagainya anda akan melihat bahawa apa gelung foreach did-- sini,
mari kita kembali kepada apa supaya ia terpulang pada Lembaga- yang kita dapat _GET sebagai perkataan.
Dan ada empat perkara dalam _GET.
Tetapi ia hanya dicetak dua perkara.
foreach, sedang diri perisikan, diandaikan bahawa apa yang kita benar-benar mahu
adalah nilai-nilai, tidak kunci.
>> Tetapi ada satu cara yang kita boleh mencetak keluar kunci juga, jika kita mahu.
Jika kita mahu juga tahu apa pembolehubah ini dipanggil,
ada cara yang kita boleh mengakses ini juga.
Dan cara untuk menyusun daripada berbuat demikian, jadi kita boleh mengatakan, membolehkan benar-benar
berpecah kepada pasangan nilai utama.
Jadi mari kita lihat apa yang berlaku sekarang.
>> Oleh itu, kita mempunyai kunci.
Kami mempunyai nilai.
Kita mempunyai satu lagi baru talian untuk pembacaan.
Dan mari kita lihat apa yang berlaku apabila kita melakukan ini sekarang.
Saya tidak tahu berapa umur Jason adalah.
Jason 15.
Oleh itu, kita mempunyai nama Jason, umur 15.
Oleh itu, kita dapat mengakses kunci dan pasangan nilai kamus ini
hanya dengan mengatakan mata sebagai kunci kepada nilai.
Dan itu adalah satu sintaksis foreach bit gula yang membolehkan
anda untuk mengakses perkara-perkara di dalam kamus.
>> Maka mudah-mudahan ini semacam menekankan kuasa gelung foreach.
Anda boleh cukup banyak membuang apa-apa yang kelihatan iterable,
seperti apa-apa yang mempunyai pelbagai unsur-unsur seperti array,
seperti dictionary-- mereka adalah dua perkara utama yang anda akan bekerja dengan
kedua-duanya dalam kehidupan dan dalam pset 7.
Jadi, anda boleh membuang barang-barang yang ia, dan ia akan memikirkan
apa yang anda mahu lakukan dengannya.
Ia akan berkata, OK, saya akan mendapatkan perkara-perkara ini daripada data yang
telah diluluskan kepada saya.
Dan itu adalah sesuatu yang anda berada akan menggunakan banyak daripada dalam pset 7.
>> Saya akan tatal cepat turun hanya untuk melihat di mana saya berada.
Adakah orang mempunyai soalan pada ketika ini?
Soalan pada semua?
Ya?
>> PENONTON: Jadi dengan kunci dan nilai, anda boleh sebut sahaja apa-apa lagi
dan ia masih akan berfungsi?
SPEAKER: Oops.
Wow, saya betul-betul dipadam baris keseluruhan.
Kerja yang besar.
Jadi, a.
Kunci dan nilai hanya konvensyen.
Ia membantu.
Anda akan mendapatkan beberapa reka bentuk mata, mungkin beberapa mata gaya
untuk berbuat demikian kerana ia benar-benar menyampaikan niat.
Tetapi kita katakan dan yarp.
>> PENONTON: Anda tidak perlu mengubah apa-apa dalam fail HTML
untuk mencerminkan bahawa?
SPEAKER: Tidak sama sekali.
PENONTON: Dan ia hanya tahu bahawa kerana sama than-- lebih besar
SPEAKER: Ya.
PENONTON: Penunjuk --that yang that's--
SPEAKER: Ya.
Itu adalah sintaks foreach, tetapi ya.
>> PENONTON: Tidak ada jenis.
Jadi apa jika anda mahu umur untuk hanya menjadi nombor?
Adakah terdapat cara untuk berbuat demikian?
>> SPEAKER: Ada cara untuk menyemak sama pembolehubah mematuhi jenis tertentu.
Jadi PHP meminta lebih sedikit daripada anda kerana tidak ada jenis yang.
Beberapa cara ia meminta kurang.
Dalam beberapa cara ia meminta lagi.
Kerana jika anda mempunyai hanya sesuatu yang berubah-ubah,
anda tidak tahu apa jenis ia adalah.
Tetapi jika anda bijak mengenai pemboleh ubah supaya kamu menetapkan jenis untuk dan memastikan
yang berfungsi hanya return-- anda mahu fungsi untuk hanya pulangan
satu jenis nilai yang begitu bahawa anda boleh pada dasarnya
menjangkakan bahawa pembolehubah anda kembali daripada fungsi yang akan menjadi jenis yang
yang anda fikir ia akan menjadi, pada asasnya.
>> Tetapi terdapat beberapa kaedah yang mana anda boleh menyemak.
Saya tidak ingat mereka luar bahagian atas kepala saya.
Saya menunggu ia bertukar menjadi biru.
isint?
isstr?
Terdapat kaedah dibina ke dalam PHP yang boleh
menyemak jenis pembolehubah untuk anda.
Tetapi jika anda menetapkan pembolehubah bijak, anda tidak perlu
perlu berbuat demikian terlalu banyak dalam pset 7.
Dan orang-orang kaedah memang wujud.
Dan itu adalah sesuatu yang adalah dalam bahasa itu sendiri.
Dan saya tidak ingat sintaks yang tepat.
Kami juga boleh melihat ia.
Tetapi masa adalah amat penting.
Adakah ada orang lain mempunyai apa-apa soalan lagi?
Ya.
>> PENONTON: Saya mempunyai hanya satu lagi.
Jadi anda nyatakan kaedah GET, tetapi anda tidak menyebut kaedah POST.
Adakah kita kembali untuk itu?
>> SPEAKER: Ya, kita akan datang kembali kepada itu.
Itulah apa yang saya cari di telefon bimbit saya, yang kini tertidur,
tetapi saya akan menemuinya.
Hanya memastikan kita mencapai semua nota PHP.
Ya, tidak ada versi debugging.
Ya, kami mempunyai beberapa lagi perkara-perkara yang kami mahu lakukan sekarang pada ketika ini.
>> Jadi bercakap mengenai POST, yang anda nyatakan,
satu-satunya perbezaan antara GET dan POST adalah
yang ingat apabila kita melihat di URL ini dan kami melihat, oh,
nama sama dan umur sama yarp berada di URL yang ada untuk kita.
POST adalah sedikit lebih berahsia dengan hantaran sebanyak maklumat.
>> Jadi, jika anda tidak mahu pengguna tahu, misalnya, anda
tidak mahu nama pengguna dan kata orang yang
sedang log masuk untuk dipaparkan dalam URL, yang merupakan satu perkara yang munasabah
untuk tidak mahu dalam URL, kerana seseorang boleh melihatnya.
Jika dapat menghubungkan seseorang untuk halaman, anda tidak mahu URL mereka ditampal di sana,
kerana itu akan membenarkan orang ramai untuk log masuk hanya dengan menampal URL dan bukan
sebenarnya mengisi borang.
POST adalah sedikit lebih berahsia.
>> Dan perkara-perkara itu sahaja kita akan mempunyai untuk menukar
adalah kaedah ini, perubahan dari mendapatkan untuk hantar.
Dan kemudian di dalam HTTP, bukan daripada mengakses _GET array,
kita akan mengakses _POST array.
>> Dan kita akan perasan bahawa, jika kita membuka kembali ini lagi,
Jason perlahan-lahan merosot dalam usia.
menamakan Jason, umur 14.
The barangan sama timbul.
Tetapi kita pergi ke URL dan pembolehubah-pembolehubah tidak ada.
>> Dan cara yang POST passes-- jadi ingat
bagaimana untuk melihat sumber halaman.
Kami pergi ke rangkaian.
Kita menyegarkan.
Dan ini adalah perkara lain yang POST akan memberikan anda amaran.
Anda mungkin telah melihat sebuah kotak, teks kotak seperti ini dalam pelayar anda.
Adakah anda pasti anda mahu untuk menghantar borang lagi?
POST adalah apa yang sedang menghantar borang-borang ini.
>> Kerana pada dasarnya jika anda anda yang telah dihantar maklumat kad kredit kepada seseorang,
itu tidak akan muncul dalam URL.
Itu akan menjadi permintaan POST.
Oleh itu, apabila anda memuat semula halaman, ia menghantar semula bahawa permintaan pos.
Jadi sekarang kita mahu menghantar membentuk semula kerana ia tidak akan
untuk membuat apa-apa pembelian dua salinan.
>> Dan kita akan melihat bahawa turun di sini, kaedah yang kami gunakan adalah POST.
Dan ia memang memindahkan bait.
Ia dipindahkan 401 daripada mereka.
Program yang cukup kecil.
Tetapi tiada tempat yang dapat kita lihat nilai-nilai yang sedang berlalu.
Laman-laman web sendiri boleh lihat, tetapi kita sebagai pengguna tidak dapat melihat,
melainkan jika anda seorang hacker.
Jika anda penggodam yang baik, anda boleh melihat.
>> Jika anda tahu asas format HTML,
nilai-nilai yang akan membuat diri mereka dikenali di halaman.
Anda akan dapat melihat.
Nilai-nilai yang akan berada di sana, mereka hanya sedikit kurang jelas untuk anda
untuk mengakses, pada asasnya.
>> Adakah kita mempunyai apa-apa lagi soalan mengenai GET, POST
sebelum itu apa yang kita akan lakukan seterusnya sebenarnya melihat beberapa kod di
bahawa anda memberi dalam pset 7, bercakap tentang bagaimana ia menggunakan beberapa konsep-konsep ini,
dan bercakap tentang perkara-perkara yang anda akan
perlu melakukan sedikit dalam pset 7.
Lagi soalan sebelum itu?
Lebih banyak soalan anda semua mempunyai?
Yang besar.
>> Baiklah, mari kita lihat sedikit pada pset 7,
tidak syak lagi apa yang anda semua paling teruja.
Maksud saya, ini adalah sesuatu yang David akan melalui sedikit.
Tetapi kita akan mempunyai tiga direktori di bahagian, dan juga sebagai fail konfigurasi.
Itu untuk pangkalan data, yang kita akan bercakap mengenai kira-kira lima minit.
Termasuk, anda tidak perlu kelihatan dalam direktori ini
jika anda tidak mahu tetapi ia adalah baik untuk tahu terdapat pelbagai-baik Penolong.
Pembantu adalah seperti fungsi membantu.
Dan kemudian kita mempunyai tatarajah, yang menetapkan beberapa perkara sehingga.
>> Terdapat beberapa fungsi yang CS50 mempunyai bertulis yang berada dalam penolong dan config.
Dan beberapa PHP yang sudah keluar dalam fail
akan melakukan banyak jenis yang lebih kerja kaki bodoh untuk anda.
Seperti jika kita pergi ke awam login.php, iaitu apa yang
muncul tepat apabila anda pergi ke pset 7.
Kami akan melihat bahawa ada ini memerlukan kenyataan.
Dan yang jenis seperti tajam termasuk, hashtag
termasuk jika anda generasi yang lebih baru.
Tetapi ini pada dasarnya mengatakan bahawa saya memerlukan akses
kepada semua fungsi dalam config.php.
Dan anda boleh mempunyai memerlukan untuk pelbagai perkara lain.
>> config sebenarnya memerlukan penolong.
Jadi setiap kali anda memerlukan config, anda juga
termasuk atau memerlukan pembantu juga.
Jadi yang memberikan anda akses kepada semua fungsi sejuk yang kita akan digunakan,
perkara yang suka memberi.
Saya sebenarnya akan mengurangkan ini ke bawah sedikit.
Jadi majlis itu maka kita akan berjalan melalui
sebelum kita beralih kepada SQL sedikit bit adalah fungsi login.php, hanya
kerana ia menggunakan beberapa topik bahawa kita hanya bercakap tentang dalam PHP.
>> Anda lihat perkara pertama adalah jika $ _SERVER.
Ini merupakan satu lagi berubah-ubah global yang anda akan dapat berurusan dengan.
Ia seperti _GET dan _POST, tetapi apa yang pelayan mengandungi adakah ini boleh membiarkan anda
tahu jika kaedah permintaan adalah GET atau POST a.
Seperti sebelum ini apa yang kami lakukan hanya kod kita yang kita menulis,
kami hanya menukar ia menjadi GET dan POST bergantung kepada apa HTML mempunyai.
Tetapi ada laman yang boleh diakses dengan kedua-dua jenis permintaan.
Dan anda mungkin mahu lakukan perkara yang berbeza bergantung
kepada jenis permintaan, hanya log masuk seperti tidak.
>> Jadi, anda boleh menyemak permintaan yang kaedah melalui kunci mengakses,
melalui menggunakan kunci dan mendapat nilai sesuatu dalam kamus
_SERVER.
Jadi, itu lain global pembolehubah seperti _GET dan _POST.
>> Jika ia GET, kita mahu memberikan borang log masuk.
Render adalah fungsi yang pada dasarnya hanya meletakkan sehingga HTML sesuai
dan menyalurkannya beberapa parameter.
Tajuk ini adalah parameter itulah digunakan dalam memaparkan, cukup aneh,
tajuk halaman dalam soalan, perkara di sini,
katakan atau hello dalam contoh sebelumnya.
Sekarang kita mempunyai satu perkara yang berbeza.
Yang lain jika ia POST, kita melakukan beberapa perkara lain.
Kami menggunakan kaedah kosong.
Ia tidak wujud, ia kosong.
Dan kita lihat sebelum ini, PHP mempunyai jumlah saksama dibina
dalam kaedah Daud will-- jika ada adalah kaedah yang berguna kepada anda,
mereka akan dimaklumkan kepada anda dalam perjalanan itu melalui David
memberi gambaran keseluruhan di awal, dan juga bit membantu Zamyla ini.
Dia kembali semua orang.
Kita semua boleh bergembira.
meminta maaf adalah fungsi yang dinamakan yang hanya pada dasarnya mencetak keluar
beberapa mesej ralat, kerana CS50 adalah sangat sopan.
>> Dan sekarang ini, ini adalah satu sedikit rumit kerana ini
Di sinilah kita pertanyaan pangkalan data.
Kita tidak bercakap mengenai pangkalan data.
Dan kita akan di akhirat lima minit atau lebih, maksimum.
Tetapi ini adalah satu majlis CS50 yang telah menulis
untuk mendapatkan jadual pada dasarnya dari pangkalan data bahawa kita bekerja dengan dalam pset 7.
Saya benar-benar buruk dengan saya sifar pengindeksan hari ini.
Tetapi ya, ia adalah 7.
>> Jadi pertanyaan ia akan mengembalikan pelbagai, pada dasarnya adalah sedikit utama.
Dan kerana perkara-perkara ini tidak mempunyai menaip, jadi baris adalah pelbagai tatasusunan.
Kerana apabila kita berfikir tentang meja, apa yang kita akan lakukan
, seperti yang anda belajar dalam psets seperti permainan 15, anyway
di mana anda terpaksa menggunakan lokasi berganda, kita pada dasarnya
mempunyai pelbagai lain array membuat jadual.
Dan anda mempunyai baris dan lajur.
Dan kemudian anda boleh mengakses mereka seperti [0] [1], anda akan mendapat [0] [1].
Barangan asas seperti itu.
>> Jadi apa yang kita lakukan di sini dalam fungsi ini,
kami meminta pangkalan data jika pengguna itu
cuba untuk log masuk, yang akan menjadi dihantar melalui kaedah POST.
Kita akan melihat kami mendapat nama pengguna dari _POST.
Mereka akan telah menghantar, pengguna atau anda, akan menghantar nilai yang
melalui satu bentuk melalui POST kerana itu nama pengguna dan kata barangan.
Kami memeriksa nama pengguna untuk melihat, adakah ini dalam jadual?
Kerana jika pengguna pembalakan dalam, kemudian nama pengguna mereka
hendaklah disimpan dalam jadual pengguna yang wujud untuk tapak ini.
Jadi, pada asasnya jika pengguna adalah dalam pangkalan data,
Pertanyaan akan kembali yang berturut-turut, yang pelbagai.
>> Tetapi bahagian yang sukar adalah bahawa jika walaupun array dua hanya satu baris,
walaupun ia berturut-turut satu array-- seperti anda telah mendapat basically--
jika anda mempunyai saiz satu array yang yang memegang pelbagai lain,
anda benar-benar berhadapan dengan satu lajur.
Tetapi ia masih dirawat seperti pelbagai berganda.
>> Dan ini adalah di mana ia kadang-kadang boleh mendapatkan rumit, kerana kita telah mendapat baris di sini.
Berubah-ubah kami adalah baris.
Dan kemudian kita mewujudkan pembolehubah dipanggil baris baru
dan menetapkan ia sama dengan baris pertama baris.
Dan anda akan melihat bahawa komen berkata ia adalah baris pertama dan hanya.
>> Jadi ini adalah yang agak rumit fungsi bahagian di mana sekarang
boleh kembali tatasusunan dengan mudah.
Tidak ada mallocs.
Anda tidak akan melihat mallocs.
Jadi, anda tidak akan melihat kesalahan seg.
Tetapi fungsi akan tetap berlalu sekitar tatasusunan dan data dalam kumpulan.
Dan anda perlu berhati-hati dengan apa yang tepat fungsi anda akan kembali.
Dan walaupun ia adalah salah satu ruangan seperti ini, pertanyaan
masih akan kembali pelbagai berganda.
Jadi untuk akses yang column-- atau anda boleh memikirkan semua ini sebagai terbalik
kerana kita bercakap tentang baris.
Tetapi untuk mengakses baris yang satu, anda tidak boleh hanya berkata baris.
Walaupun ia adalah satu baris, anda perlu untuk jangan rowsrows [0] untuk menghapuskan jenis ini
sedikit luar array dan mempunyai hanya satu baris anda.
>> Melakukan beberapa perkara lain.
Ada fungsi dipanggil password_verify
yang mengesahkan kata laluan yang telah diposkan.
Dan kemudian kita melihat satu lagi global berubah-ubah sini, _SESSION.
Pada asasnya sesi id adalah bagaimana anda mengesan
daripada jika seseorang itu ataupun bukan.
Jadi sekarang dengan login.php, kita pembalakan pengguna dalam.
Jadi apa yang kita mahu lakukan ialah kita mahu mengatakan id sesi adalah sama dengan barisan
id, yang hanya masuk akal kerana setiap baris akan mempunyai id yang berbeza
nombor sebagai sebahagian daripada jadual.
Kami akan masuk ke dalam SQL dalam kedua, jadi jika mana-mana ini
seolah-olah sedikit seperti blah, maka semua akan yang berbaki.
Tetapi kita akan menetapkan id yang sama dengan perkara yang betul, pembalakan pengguna dalam.
Memohon maaf jika ada yang tidak beres.
Dan itulah tujuan login di kehidupan sebagai Profesor Malan akan berkata.
>> Sehingga adalah login.php.
Dan banyak kod PHP yang anda tulis dalam pset 7, mereka akan menjadi sedikit.
Jangan lupa untuk chmod kepada kebenaran yang tetap.
Akan ada sedikit tentang yang pada awal spesifikasi.
>> Tetapi PHP bahawa anda bertulis akan menjadi
melakukan kerja yang serupa dengan ini.
Anda akan menjadi mengakses beberapa perkara yang
yang diberikan kepada anda dalam pembolehubah global PHP yang
berurusan dengan semasa log masuk pengguna, sama ada terdapat
mempunyai permintaan telah dihantar ke ini halaman, perkara yang berbeza seperti itu.
Dan ia juga akan berpotensi iterating melalui deretan perkara ini.
>> Dalam fungsi yang berbeza, pertanyaan tidak kembali lokasi dua ini.
Dan jika terdapat lebih daripada satu baris di dalamnya,
jika ada ialah- ya, jika ada lebih daripada satu baris di dalamnya,
maka ia akan menjadi meja.
Dan anda mungkin mahu melelar melalui deretan pelbagai ini menggunakan
gelung foreach yang kita diterangkan.
>> Jadi jika anda foreach pada dua pelbagai, apa yang akan word-- di sini,
Saya benar-benar akan menulisnya.
Saya akan menulis ia cepat di sini.
>> Jika kita mempunyai foreach baris sebagai barisan, apa jenis berturut-turut?
Adakah sesiapa yang tahu?
Awak mendapatkannya?
Jadi baris adalah pelbagai berganda.
Jadi apa yang foreach akan membuat kesimpulan yang kita mahu dari lokasi dua ini
jika kita iterating ke atasnya?
Kami pada dasarnya boleh mengandaikan bahawa ia akan menjadi sama ada unsur-unsur,
atau baris atau lajur, pada asasnya.
Dan sebagainya baris dan lajur kita boleh merawat sebagai perkara yang sama.
>> Pada asasnya apa yang gelung foreach yang sedang berlaku lakukan adalah ia akan kembali baris.
berturut-turut akan menjadi jenis baris, sedangkan baris adalah pelbagai berganda.
Jadi, jika anda memberi foreach pelbagai berganda, ia
tidak akan melelar lebih daripada satu tahap dalam.
Yang pada dasarnya untuk mengatakan jika ada lapan sel-sel dalam ini table-- 1,2,
3 4, 5, 6, 7, 8-- yang gelung foreach tidak
akan pergi melalui setiap sel-sel ini.
Apa gelung foreach akan melakukan adakah ia akan melalui baris ini,
memberikan anda baris ini keseluruhan.
Dan kemudian ia akan pergi melalui baris tersebut.
>> Sehingga hanya iterates satu tahap dalam.
Jika anda menambah bersarang gelung foreach, maka anda
boleh merawat setiap baris pulang dari baris, anda melakukan berturut-turut foreach sebagai elemen,
katakan.
Dan kemudian anda boleh echo unsur.
Jadi itulah ringkas sedikit ulang kaji mengenai cara
anda mungkin menggunakan foreach gelung dalam konteks pertanyaan.
>> Adakah terdapat sebarang soalan mengenai PHP?
Apa-apa pun sebelum kita bergerak ke bercakap tentang SQL
dan keseronokan pangkalan data?
Berasa baik?
Berasa baik.
Baiklah.
>> Mari kita beralih kembali kepada PowerPoint, yang anda mungkin terlepas.
SQL, yay.
Orang yang berada dalam seksyen saya biasanya akan tahu bahawa tajuk kecil akronim
sentiasa hanya perkataan pertama Saya rasa perlawanan itu bahawa
algorithm-- singkatan itu.
Ia bukan algoritma.
>> Jadi SQL adalah database.
Ia adalah bahasa yang bekerja dengan pangkalan data.
Dan semua pangkalan data yang adalah jadual, sekurang-kurangnya dengan cara yang
SQL yang mewakili mereka.
>> Cara lain untuk berfikir tentang pangkalan data adalah pangkalan data adalah satu set kunci dan nilai-nilai
pada asasnya.
Anda boleh berfikir tentang pangkalan data sebagai sebuah kamus dan juga sebagai jadual.
Pada asasnya, ia adalah satu cara untuk mengaitkan data yang berbeza dengan data lain,
selalunya melalui baris dan lajur.
Dan itulah cara itulah SQL kerja-kerja terbaik.
>> Jadi ini adalah satu contoh jadual.
Saya ada beberapa contoh orang di bahagian saya, yang
Saya tidak mempunyai masa untuk berubah.
Tetapi kami ada perkara seperti ID, nama, kuasa besar, dan kampung halaman.
Saya tidak tahu di mana sesiapa sahaja yang dari dalam bahagian saya,
jadi saya hanya akan menganggap semua orang dari New York
Bandar kerana saya mempunyai statistik yang tinggi kemungkinan yang betul.
>> SQL secara automatik akan mengambil menjaga tiang ID untuk anda.
Jika anda memasukkan baris baru ke dalam pangkalan data SQL,
ia akan kenaikan yang Nombor ID dan hanya
pada dasarnya melekat seperti lima nama, kuasa besar, kampung halaman, sesiapa
ke hujung meja itu.
Jadi ID adalah lajur anda akan tidak perlu bimbang tentang.
Tetapi, seperti dalam kes daripada login.php, apabila kita
telah mendapat ID sesi dari meja dan hanya menggunakan ID,
ID adalah satu cara untuk mengenal pasti secara unik unsur database.
>> Jadi, jika kita mempunyai dua Sams, kedua- yang mengajar CS50, dan kedua-dua yang
adalah dari Milwaukee, mereka akan masih mempunyai nombor ID yang berbeza
dan dengan itu berbeza dalam konteks meja.
Jadi ini adalah apa SQL berurusan dengan, bekerja dengan pada akhirnya kembali.
>> Inilah empat arahan bahawa anda akan perlu untuk bekerja dengan SQL.
Dan saya melemparkan mereka semua pada satu slaid.
Tetapi kita akan melalui mereka semua secara individu.
>> Arahan pertama adalah UPDATE, yang melakukan apa yang anda jangkakan.
Katakanlah anda mempunyai beberapa data dalam jadual itu daripada tarikh.
Seperti jika anda menjaga mengesan nama orang
dan peringkat umur, jika seseorang yang peningkatan umur, maka
anda akan mahu untuk masuk dan mengemas kini usia hanya orang itu.
Untuk contoh yang bekerja dengan table-- pertama kami
jangan bimbang tentang menulis semua arahan ini pada masa yang sama.
Tetapi jika anda mempunyai maklumat ke bawah, yang akan menjadi baik untuk bahagian ini,
kerana kita akan kembali ke meja.
>> Jadi, jika kita kembali ke meja, katakan sesuatu yang berlaku
telah ada gempa bumi atau garis kesalahan yang berpecah langsung
melalui New York City.
Dan kami mahu mengemas kini semua orang yang tinggal di New York City.
Mereka semua terpaksa berpindah ke Pennsylvania.
Itu bukan kampung halaman a.
Mereka semua terpaksa berpindah ke New Haven.
Di sana kami pergi.
Jadi semua orang di New York bergerak ke New Haven.
>> Dan supaya sesuatu yang mengedit tiga baris dalam jadual ini.
Tetapi dalam SQL, anda boleh melakukan yang hanya dalam satu kenyataan.
Oleh itu, kita kembali ke UPDATE.
Biar saya cepat memadam papan ini lagi.
Apabila kita bercakap tentang mengemas kini, terdapat
beberapa bahagian sintaks yang utama.
Well, semua sintaksis adalah kunci.
Tetapi barang-barang itu dengan warna hijau adalah pilihan.
Putih yang diperlukan, yang telah ditetapkan nama-nama seperti.
Dan biru cahaya adalah perkara-perkara yang berbeza-beza mengikut jadual.
Jadi itulah apa yang berlaku dengan skim warna di sini, di sana.
>> Jadi, jika kita mahu untuk mengemaskini hanya mereka baris orang-orang yang tinggal di New York,
supaya apa yang kita akan lakukan jika kita berkata UPDATE?
Jadi jadual adalah di mana kita meletakkan nama jadual kami.
Mari kita menyebut nama meja kami adalah jadual satu.
Oleh itu, kita mahu UPDATE jadual satu.
Dan kita mahu set-- apa yang kita mahu untuk menetapkan?
Baik kita mahu mengatakan, jadi column-- PHP merawat baris sebagai pengenalan diri.
Dan kemudian tiang adalah bidang yang berbeza
unsur-unsur daripada pangkalan data.
>> Jadi elemen pertama pangkalan data mempunyai nama Sam, kuasa besar CS50,
dan kampung halaman Milwaukee.
Jadi, jika kita berkata ditetapkan, mari kita lihat parameter lagi set yang mengambil.
Kami mempunyai ruang sama nilai.
Oleh itu, kita mahu mengatakan beberapa column-- yang ingat
adalah field-- kita mahu melihat bidang sama dengan sesuatu yang baru.
>> Jadi, jika kita hanya berkata maklumat jadual 1, nama ditetapkan sama Elliot.
Dapatkan beberapa orang dari seksyen baru di dalam perkara ini.
Tetapi jika kita hanya melakukan update jadual 1 Nama ditetapkan sama Elliot, apa yang akan
rupa meja seperti selepas itu?
Rakyat mempunyai apa-apa idea?
Yeah.
>> PENONTON: Segala-galanya dalam yang berturut-turut akan menjadi Elliot.
SPEAKER: Semua yang berturut-turut?
PENONTON: Dalam baris pertama.
SPEAKER: Dalam baris pertama?
Mengapa baris pertama?
Saya tidak bermaksud untuk mengambil pada anda.
>> PENONTON: Mungkin segala-galanya secara keseluruhan meja?
SPEAKER: Segala-galanya dalam keseluruhan jadual, ya.
Dan itu saya because-- betul-betul betul hanya membantu anda keluar sedikit
there-- kerana kita menghindari fasal pilihan MANA.
Jika anda tidak mempunyai mana yang fasal, apa arahan ini akan dilakukan
adakah ia akan bekerja dengan setiap baris dalam jadual.
Nama semua orang akan menjadi Elliott, pada dasarnya,
Elliot yang sangat gembira.
Atau Yanni, salah satu daripada dua.
Tetapi nama semua orang akan berubah.
>> Jadi cara kita menggunakan MANA clause-- dan ini terpakai kepada semua Wheres
yang berada di dalam setiap perkara-perkara yang berbeza.
Jadi, anda akan notis SET yang mempunyai nilai yang sama lajur.
Dan begitu juga di mana.
Tetapi ini adalah berbeza jenis kenyataan.
Jadi lajur sama dengan nilai dalam SET adalah dalam tugasan.
Seperti yang kita katakan kita mahu untuk menetapkan nama sama dengan Elliot.
Tetapi dalam fasal MANA, ini adalah kenyataan kesaksamaan.
Jadi katakan kita hanya mahu menukar nama orang itu untuk Elliot
jika nama mereka adalah Ryan, katakan.
>> Oleh itu, apabila kita katakan
>> MANA nama sama dengan Ryan, yang akan berjaya satunya perubahan
name-- ia hanya akan menukar medan nama dalam baris
di mana medan nama adalah sama dengan Ryan.
Jadi, jika kita mempunyai beberapa orang bernama Ryan, semua nama-nama mereka
akan bertukar kepada Elliot.
>> Ini adalah sama dengan contoh yang daripada jika garis kesalahan berpecah
New York City dan semua orang mempunyai untuk bergerak ke New Haven, cara kita boleh
berbuat demikian dalam satu kenyataan adalah UPDATE table1 SET kampung halaman = New Haven
di mana kampung halaman sama dengan New York City.
Ini adalah kuasa penyata UPDATE.
Kita boleh pilih mana-mana baris melalui kenyataan benar
mengenai bidang-bidang dalam orang-orang baris.
Kita tidak boleh mengatakan set UPDATE table1 name = Elliot MANA baris = 1,
kecuali bahawa kita boleh jika kita katakan ID = 1.
>> Oleh itu, kita akan menjadi bekerja dengan kesaksamaan
bidang, persamaan tiang.
Tetapi menggunakan medan ID adalah satu cara untuk pilih baris individu secara khusus,
kerana medan ID adalah unik pengecam dalam pangkalan data SQL.
Jadi seperti memperkemas baris satu, ID sama dengan 1.
Mengemaskini baris dua, hanya menukar nombor ID.
Tetapi kuasa MANA kenyataan adalah kita yang
boleh mengemas kini perkara berdasarkan apa yang mereka nilai-nilai semasa perkara tertentu.
Ya Elliot?
>> PENONTON: Dan bagaimana jika anda mahu supaya- sekali lagi, ini adalah soalan lain.
Tetapi soalan pertama saya adalah, di mana ini berlaku?
Di mana saya mengemas kini ini?
Adakah ini dalam kod PHP?
>> SPEAKER: Di mana anda mengemas kini, ya.
Kami akan bercakap tentang di mana semua ini
berlaku semacam sebaik sahaja kami pergi melalui semua arahan.
Tetapi apa yang anda perlu tahu sekarang pada dasarnya
bahawa pangkalan data SQL anda wujud sebagai sesuatu yang
untuk diakses oleh pertanyaan fungsi, yang mentakrifkan CS50.
Jadi, jika anda menggunakan fungsi pertanyaan tersebut, anda boleh mengakses jadual ini.
>> Jadi, anda akan menghantar ini arahan untuk meja anda dalam fail PHP
melalui fungsi pertanyaan.
Anda juga boleh bermain-main dengan meja anda secara langsung.
Dan itulah cara terbaik untuk menguji ini macam arahan.
Dan kami akan menerangkan cara untuk berbuat demikian dalam hanya sedikit.
>> Jadi itulah perintah UPDATE.
Dan yang lain daripada perintah akan menjadi jenis yang serupa,
bekerja pada perkara yang sama.
The INSERT INTO mungkin yang paling berbeza dari UPDATE.
Saya akan meninggalkan bahawa di sana untuk hanya sedikit dan bekerja di sini.
Jadi INSERT INTO, anda akan melihat jadual yang tetap sama.
Anda mahu INSERT INTO.
Permodalan, SQL adalah kes sensitif.
Jadi, anda tidak perlu kesempatan perkara-perkara ini.
Mengikut konvensyen, kata-kata putih dipermodalkan.
Tetapi saya juga warna berkod mereka.
Satu-satunya alasan bahawa anda mengambil kesempatan mereka apabila anda menaip mereka
hanya menekankan bahawa mereka adalah pemalar.
Dan supaya anda boleh sama ada melihat permodalan atau fakta
bahawa saya telah berwarna mereka berbeza.
>> Jadi kita telah mendapat INSERT INTO, mari kita buat table1 lagi.
Ini semua dalam satu baris.
Saya hanya memisahkan ia dengan penyata yang berbeza.
Jadi jangan bimbang tentang hakikat bahawa table1 dibuat ia ke baris kedua.
>> Oleh itu, kita mahu masukkan INTO table1 beberapa nilai.
Dan anda akan perasan pilihan sedikit, yang saya akan pergi ke dalam satu saat.
Jadi kami mempunyai NILAI.
>> Katakan kita mahu menambah Andi ke meja kami, kerana kita terlepas Andi.
Andi sakit.
Jadi mari kita menambah Andi ke meja kami.
Ingat bahawa nombor ID dikemas kini secara automatik.
Jadi satu-satunya bidang yang kita perlu bimbang tentang
adalah nama, kuasa besar, dan kampung halaman.
>> Dan begitu cara kita berbuat demikian, melihat sintaks kita, kita ada
hanya mendapat kurungan, dengan koma nilai dipisahkan, setiap yang
adalah nilai.
Jadi, jika kita mahu memasukkan Andi ke dalam kami meja, apa yang harus kita lakukan adalah betul Andi.
Apakah kuasa besar Andi ini, orang di bahagian Andi ini?
Dia suka penerbangan, atau suka kelajuan, atau sesuatu.
Apa yang kita sudah ada di sana?
Kami mempunyai CS50, penerbangan, kelajuan, dan kekuatan.
>> PENONTON: Masa perjalanan.
>> SPEAKER: Masa perjalanan, menakjubkan.
Jadi kita telah mendapat Andi, masa perjalanan, dan kampung halamannya.
Itu soalan yang benar-benar baik.
New York City, kalau tidak ada yang tahu.
Semua orang dari New York adalah pengajaran untuk mengambil dari hari ini.
>> Jadi kenyataan ini akan memasukkan, sebagai baris kelima,
dengan perjalanan masa kuasa besar dan kampung halaman di New York City.
Tetapi bidang pilihan pada asasnya cara yang
untuk menentukan dengan tepat yang tiang anda mahu masukkan sesuatu dalam.
>> Cara yang kita lakukan sekarang, Andi, perjalanan masa, New York City,
akan dalam perintah itu tepat kami nama table--, kuasa besar, kampung halaman.
Dan jika anda mahu lakukan sesuatu yang lain daripada itu,
seperti mengatakan yang anda tidak tahu kuasa besar seseorang,
seperti mana saya tidak tahu ini Andi kuasa besar pada permulaan.
Jadi semua yang saya tahu adalah dia menamakan dan kampung halamannya.
Apa yang saya boleh lakukan adalah saya boleh do-- saya akan memadam ini mengambil tempat.
>> Saya hendak hanya mengemaskini ruangan.
Dan ini adalah di mana pilihan senarai ruangan datang ke dalam bermain.
Saya hanya mahu untuk mengemaskini nama dan kampung halaman.
Dan kemudian saya akan berkata NILAI.
Saya akan melakukan Andi dan New York City.
>> Jika saya telah ditinggalkan senarai ruangan dan hanya dilakukan dua perkara ini,
di mana akan New York City telah pergi?
Ruangan yang akan New York City telah diletakkan di dalam?
Rakyat mempunyai apa-apa idea?
Kuasa besar, betul-betul.
>> Jadi ini hanya akan pergi teratur.
Dan apabila ia mencapai akhir senarai, ia hanya akan berhenti mengisi perkara-perkara dalam.
Dan nilai-nilai yang ia akan melekat dalam semua ruangan hanya akan menjadi NULL.
Jadi kerana kita dinyatakan nama dan kampung halaman,
kita akan mempunyai ID 5, menamakan Andi, kuasa besar NULL.
Jadi kuasa besar adalah satu nilai yang tidak diisytiharkan.
Anda tidak semestinya akan mendapatkan kesilapan yang sama Valgrind jika anda cuba
dan mengaksesnya.
Semuanya akan baik menumpukan perhatian keluar, kerana NULL ialah nilai dalam SQL.
Itulah yang tetap.
Dan kemudian kampung halaman akan menjadi New York City.
Jadi itulah INSERT INTO arahan.
Sebelum kita bergerak, ada dua lagi arahan.
Adakah orang mempunyai sebarang soalan mengenai UPDATE, kira-kira INSERT INTO, kira-kira SQL
umumnya sebelum kita bergerak ke bit akhir kami?
Orang merasa baik, hebat.
Menyukainya.
Jadi mari kita bercakap tentang SELECT.
Melangkah parit UPDATE di sini.
>> Dan SELECT akan menjadi hampir sama.
Matlamat SELECT, Tujuan SELECT dalam kehidupan
adalah untuk memberi anda sekumpulan tiang yang memenuhi syarat-syarat tertentu.
Dan aku berkata memenuhi syarat-syarat tertentu,
fikiran anda mungkin segera kembali kepada yang mana klausa
yang datang dalam UPDATE.
Dan fasal yang sebenarnya terdapat dalam SELECT.
>> Jika kita tidak meletakkan mana yang klausa dan kita katakan nama SELECT,
hometown-- dieja yang sedikit nama wrong--, kampung halaman DARI table1.
Jika kita hanya mengatakan bahawa, apa yang SELECT akan kita itu ia
akan memberi kita double-- meja, bukan.
Satu pelbagai berganda jika kami memikirkan dalam PHP deria.
Tetapi ia hanya akan memberikan kita array dua dua nama columns--,
dan kampung halaman.
Dan ia akan mengabaikan ID.
Dan ia akan mengabaikan kuasa besar.
Dan ia hanya akan memberikan kita setiap baris tunggal meja itu.
Jadi, jika kita hanya dimasukkan Andi, kami akan mempunyai Andi.
Dan kami akan mempunyai empat asal.
Jika mereka telah dikemaskini, yang akan dapat dilihat, dan sebagainya, dan sebagainya.
>> Jadi ini adalah kerana kita tidak menggunakan fasal MANA itu.
Tetapi kita boleh menggunakannya dalam betul-betul Cara yang sama kita menggunakannya di UPDATE.
Jika kita hanya mahu jadual nama-nama dan kuasa-kuasa besar orang yang hidup
di New York, kita boleh melaksanakan satu kenyataan seperti nama SELECT, superpower--
Saya hanya akan meninggalkan bahawa- DARIPADA table1 MANA kampung halaman = New York City.
>> Jadi ini menunjukkan bahawa anda boleh mendapatkan ruangan sama sekali berbeza,
dan kemudian meletakkan lajur yang anda tidak walaupun mendapat kembali dalam fasal MANA itu.
Kita tidak mahu kampung halaman semua orang.
Tetapi kita mahu nama dan kuasa besar orang
yang kampung halaman ialah New York City.
Jadi, itu sesuatu yang kita boleh lakukan dengan mana yang
fasal ialah kita boleh berurusan dengan tiang bahawa kita tidak semestinya mahu kembali.
Dengan cara yang sama dalam UPDATE, kita boleh berurusan dengan tiang-tiang yang kita tidak semestinya
hendak dikemas kini.
Kita boleh mengemas kini kota semua orang yang nama Sam, misalnya.
Kita boleh mengemas kini kota yaitu setiap orang yang ID nombor adalah 2.
Jadi hanya mengemas kini bandar baris kedua
di mana kita tidak perlu berurusan dengan perlu oleh soalan yang sama.
>> Dan memadam, seperti yang anda akan jangkakan, DELETE FROM table1.
Kemudian kami telah mendapat satu lagi klausa WHERE.
Oleh itu, kita boleh mengatakan MANA ID = 1.
Padam baris pertama.
Dan DELETE akan sentiasa memadam berturut-turut, atau ia akan padam beberapa beberapa baris.
DELETE FROM meja MANA kampung halaman = New York City
akan memadamkan semua orang di New York City.
Itulah kata jika terdapat satu wabak tragis secara tiba-tiba
dan anda hanya mahu mengeluarkan semua orang dari jadual yang
tinggal di suatu kota: yang yang dilanda wabak.
Semoga mereka bersemadi dengan aman.
>> Ini adalah empat arahan SQL bahawa anda akan perlu menggunakan.
Anda mungkin tidak perlu menggunakan mereka semua.
Tetapi ini adalah empat CS50 menjangka anda
selesa dengan pergi ke kedua-dua kuiz 1 dan juga pset7 dan pset8.
>> Hanya ada jadual yang lagi.
Dalam satu ini, kuasa besar Roy mempunyai telah dikemaskini untuk rasuk laser, yang
adalah satu contoh saya tidak menggunakan.
Saya tidak tahu yang mana satu Roy suka, tetapi kekuatan.
Roy mempunyai kuasa besar kekuatan.
Katherine tidak berjaya hari ini.
Itulah malang.
Tetapi dia mempunyai kelajuan super.
>> Baik yang PHP.
Sebelum kita bercakap mengenai MVC, adakah sesiapa yang mempunyai soalan mengenai PHP?
Sekarang SQL, atau PHP jika anda tiba-tiba mempunyai datang dengan soalan mengenai PHP?
Yang besar.
Baiklah, kita semua diset.
>> Jadi bercakap sedikit tentang pemandangan model pengawal,
mari kita kembali kepada beberapa barangan yang di pset7.
Jadi apa pandangan model pengawal is-- saya tidak
akan menyimpan perubahan saya untuk melog masuk kerana saya benar-benar disembelih itu.
Tetapi pada dasarnya kita mempunyai dua perkara yang berasingan berlaku.
Kami mempunyai awam yang direktori yang mengandungi
kod yang akan dilaksanakan dan halaman web yang akan dikunjungi.
Dan kami juga mempunyai pandangan direktori ini.
Dan pandangan yang mengandungi template.
>> Ini adalah apa fungsi render-- kita lihat yang menyebabkan
fungsi dalam sekumpulan kod PHP CS50 yang telah ditulis untuk anda,
yang mengambil masa dalam parameter tertentu.
Apa kod yang melakukan adalah ia akan menjadi pandangan,
yang set seperti Kod HTML prewritten,
dan ia memasukkan nilai-nilai ke tempat-tempat tertentu.
Ini adalah bagaimana apabila anda pergi ke CS50 Kewangan,
header yang sama adalah pada setiap halaman.
Nota kaki sama adalah pada setiap halaman.
Ini adalah kerana cara yang menyebabkan perbuatan adalah IA AKAN
secara automatik patch di kepala itu dan penonton yang boleh anda dapati di pandangan.
>> Kami benar-benar boleh pergi ke kepala, dan melihat, ia adalah satu fail HTML dengan kepala.
Ia mempunyai beberapa lembaran gaya.
Anda tidak perlu melihat CSS untuk pset7 jika anda tidak mahu.
Tetapi, anda boleh mengubah suai mereka jika anda mahu, membuat
Kewangan anda kelihatan sedikit berbeza.
>> Ia mempunyai beberapa PHP dalam kepala sedikit untuk melihat
jika ada tajuk yang berbeza ia perlu dimasukkan ke dalam tajuk ini.
Tetapi hanya beberapa skrip yang lain, dan pautan, dan lain-lain.
Ketua berakhir, badan bermula, dan oops, kita ada bit akhir sedikit pelik ini.
Dan ada div, sama seperti sejenis tidak berbentuk unsur
yang mempunyai idea pertengahan.
>> Dan kemudian apabila kita melihat kaki, kita mempunyai akhir div a.
Kami mempunyai bahagian bawah, yang merupakan di mana teks nota kaki adalah.
Akhir div, hujung badan, akhir HTML.
>> Jadi apa yang menyebabkan adalah lakukan adalah memberi adalah jenis
daripada menampal sehingga header, yang file PHP yang berbeza yang
akan mengandungi perkara-perkara sebenar yang anda akan melihat, seperti meja anda saham
jika anda membeli atau menjual saham.
Dan kemudian ia akan menambah dalam nota kaki.
Dan pandangan model idea pengawal adalah kita yang
mahu memisahkan bagaimana perkara yang kelihatan dari kod.
Ia kita mahu memisahkan frontend dan belakang, di mana frontend adalah
barangan yang pengguna melihat, yang bagus visuals-- HTML, CSS, perkara seperti itu,
imej, dan sebagainya.
Dan belakang adalah PHP.
Ini adalah kod yang anda tulis.
Ini adalah di mana kod yang yang melakukan operasi yang sebenar.
Ini adalah apabila anda menambah saham ke meja anda,
apabila anda membeli dan jualan, itu belakang.
>> Dan kita boleh, seperti yang anda lihat, termasuk PHP secara langsung dalam HTML.
Jadi apa yang kita boleh lakukan untuk tugasan ini hanya mempunyai
fail HTML untuk setiap laman, seperti login.
Dan kemudian pada laman tersebut, hanya mempunyai sekeping besar kod PHP,
termasuk semua kod yang halaman yang khusus perlu.
Dan kemudian kita boleh mempunyai melakukan itu untuk portfolio.
Kita boleh melakukan semua pembelian dan menjual dalam halaman individu.
>> Tetapi kerana kita menjadikan secara berasingan daripada mana
kita menulis backend kod, kita boleh dengan mudah
menukar bagaimana perkara yang kelihatan tanpa berubah-ubah setiap fail.
Kami melakukan perkara seperti hanya menambah div baru ke bawah
daripada- Hello I diubahsuai nota kaki.
Anda hanya boleh melakukan hal-hal seperti itu.
Tetapi juga, anda boleh menukar susun atur visual keseluruhan
tanpa menjejaskan apa yang akan di belakang itu.
Dan anda boleh menukar keseluruhan backend dan masih
mempunyai ia kelihatan seperti yang berlaku sebelum ini.
Ini
>> Apakah idea pandangan model pengawal.
Dan ia sebenarnya paradigma dikenakan dalam beberapa bahasa pengaturcaraan
anda mungkin mahu menggunakan untuk projek-projek akhir.
Jika anda melakukan pembangunan iOS, mereka mempunyai pandangan,
yang adalah apa yang anda lihat pada iPhone, dan kemudian belakang sebagai seperti satu perkara yang berasingan.
>> Anda boleh berfikir tentang sedikit.
Ada banyak binari dalam sains komputer, yang lucu,
kerana segala-galanya adalah dalam perduaan.
Saya tidak merancang itu.
Itu pun yang tidak diingini.
Ya, pun tidak bertujuan.
>> Tetapi seperti fail h dan fail c, ada banyak memisahkan perkara yang kita
mungkin tidak perlu.
Jadi kita hanya boleh mengedit h fail, atau seseorang hanya boleh melihat fail h dan tahu
tepat fungsi yang ada di fail .c tanpa semestinya mengetahui
pelaksanaannya.
Idea komponen memisahkan yang bergantung pada satu sama lain
tetapi boleh semacam mengakses antara satu sama lain melalui saluran yang berbeza, yang berlalu
pembolehubah, hanya termasuk kenyataan, perkara
seperti itu, prinsip ini membantu untuk mewujudkan aplikasi
yang boleh menjadi lebih mudah disunting oleh beberapa orang,
boleh lebih mudah berubah atau diubah suai secara besar-besaran,
dan lebih mudah untuk nyahpepijat dalam banyak cara.
>> Benar-benar cepat, saya mempunyai beberapa petua untuk pset7,
yang saya akan membuat skrin penuh supaya anda tidak hanya melihat the-- tip tip tippee.
Tidak ada yang banyak tips.
>> Tetapi yang saya nyatakan PHP adalah sukar untuk debug.
Double dan triple periksa.
Jika kod anda adalah tidak muncul pada halaman,
ia mungkin satu kesilapan PHP, maaf.
>> Anda tidak perlu melihat CSS jika anda tidak mahu.
Tetapi sebaik sahaja anda selesai, ia boleh menjadi satu perkara yang bagus sedikit menyeronokkan untuk hanya pergi dalam
dan keadaan huru-hara dengan parameter CSS.
CSS dan HTML adalah satu contoh model pandangan gaya pengawal perkara juga, kan?
Anda boleh mempunyai tag gaya dalam elemen HTML.
Tetapi jika anda jenis penyumberan luar mereka untuk CSS,
mereka lebih mudah untuk mengedit, dan bermain main dengan, dan bersenang-senang dengan.
>> Merawat CS50 penolong berfungsi sebagai kotak hitam.
Anda tidak perlu tahu apa yang bersungguh lakukan,
tetapi amanah itu untuk selalu berbuat baik yang Perkara yang bergantung kepada apa yang anda lulus,
perkara-perkara seperti ini.
Dan saya akan mengesyorkan menonton Walkthrough Daud,
melalui semua barangan, bukan hanya todos,
tetapi anda benar-benar boleh merawat kotak-kotak hitam.
Jangan pergi ke ini fungsi mencari bug.
>> Dan selamat datang kembali daripada Zamyla tuan kami.
Yang besar.
>> Adakah terdapat apa-apa soalan terakhir sebelum kita semacam melantun untuk hari tersebut?
Adakah saya masih hidup?
Yang besar.
Orang livestream Hi.
Yang besar.
Adakah ada lagi soalan?
Tidak?
>> Dan kemudian saya fikir kami baik untuk pergi untuk hari ini.
Saya akan melekat di sekeliling sedikit selepas itu jika orang mempunyai soalan
mereka takut untuk bertanya pada sungai itu.
Tetapi sebaliknya, hari yang baik.