[MUSIC PLAYING] Allison Buchholtz-AU: Baiklah, semua orang, selamat datang kembali ke bagian. Mudah-mudahan Anda semua memiliki besar Akhir pekan Halloween, atau Halloweekend, seperti yang saya ingin mengatakan, semua beristirahat dan pulih. Dan untungnya itu tidak turun salju lagi. Ini sebenarnya cerah di luar. Aku benar-benar senang tentang itu. Belum siap untuk menyeret keluar sepatu bot musim dingin saya. Mudah-mudahan, pset6 berjalan cukup baik. 

Jika Anda bosan C, saya senang untuk mengatakan Anda sudah selesai dengan C untuk saat ini. Kami telah sepenuhnya dialihkan ke pemrograman web, sehingga Anda akan bekerja dalam HTML, PHP, mungkin sedikit JavaScript. Aku tidak tahu apa yang selanjutnya minggu pset adalah, jadi saya tidak bisa menjamin apa pset berikutnya akan jadi, tapi minggu ini pset adalah CS50 Finance, yang pada dasarnya adalah melaksanakan jenis halaman web yang memungkinkan Anda untuk membeli dan menjual saham, dan melacak mereka. Dan itu cukup keren, karena semua itu dihasilkan secara dinamis. Anda dapat memiliki pengguna yang berbeda yang masing-masing memiliki informasi mereka sendiri, dan Anda akan menjadi melaksanakan semua itu. Butuh waktu. Saya pasti berpikir ini lebih mudah dari C psets, tetapi membutuhkan waktu lebih lama. Anda belajar bahasa baru, PHP, yang sangat mirip dengan C, tapi tentu saja akan membutuhkan Anda untuk mencari sintaks dan memahami bagaimana mengkonversi antara bahasa. 

Tapi aku tidak berpikir ada sesuatu Super konseptual keras tentang pset ini. Ini baru belajar bahasa baru dan mendapatkan melalui semua potongan-potongan kecil ini. Jika kalian telah membaca spec, itu cukup panjang. Saya pikir ini adalah seperti 21 halaman, jika saya ingat dengan benar. Ini spec panjang. Jadi, jika Anda belum membaca itu-- 22. 32. 

Wow. Jadi aku pergi dengan 50% di sana. Jadi, 32 halaman. Jadi itu panjang. Ada banyak potongan-potongan, tapi tidak ada dari potongan-potongan harus menjadi yang buruk. Hanya saja banyak. Jadi pasti memulai awal jika mungkin, seperti biasa, tapi saya pikir itu harus merasa sedikit lebih baik daripada terutama psets seperti memulihkan dan mengubah ukuran yang hanya sangat sulit untuk membungkus kepala Anda sekitar. 

Maka dengan itu, kita akan menyelam di. Saya tidak memiliki agenda Anda geser hari ini, tapi kami akan berbicara tentang PHP. Aku akan memberikan Anda semacam kursus kilat pada beberapa hal yang Anda mungkin ingin tahu tentang PHP. Hal sintaks yang berbeda, hal untuk melihat keluar untuk. Kita akan berbicara sedikit tentang SQL. Hal-hal hanya sangat sederhana di sana, dan kemudian juga MVC adalah Model View Controller, yang adalah bagaimana pset Anda sudah diatur, sehingga pemahaman bagaimana karya akan super berguna. Baik. Jadi PHP. Kalian harus dilakukan sesuatu yang sangat, sangat sederhana dengan PHP, yang hal ini bawah sini, di mana Anda kirimkan beberapa bentuk pada atas sini yang memiliki beberapa nama yang Anda masukan, dan itu akan mengatakan seperti halo, Ben, atau Halo, Allison, dan itu akan muncul. Jadi ini sebenarnya apa harus sudah tampak seperti dari pset Anda, dalam kasus kalian ingin tahu atau tidak cukup mengetahuinya. 

Tapi kami memiliki tanda tanya ini di sini yang menunjukkan bahwa ini adalah PHP. Mereka membungkusnya, dan kemudian htmlspecialcharge, ingat, hanya, pastikan bahwa Anda aman dari setiap serangan injeksi gila atau jika seseorang mencoba untuk menempatkan karakter jahat gila ke lapangan nama Anda, itu tidak seperti server atau yang lainnya. 

Dan kemudian jika kita perhatikan, HTML ini Bentuk memiliki metode $ _GET, yang, jika kita ingat superglobals kami dari PHP, $ _GET, $ _POST, kita akan pergi ke mereka yang sedikit. Tapi kita tahu bahwa kita memiliki beberapa nama di sini yang sesuai dengan nama yang kami ajukan. Jadi ini hanya semacam seperti sangat sederhana kolaborasi PHP HTML bahwa kalian punya dari pset enam. 

Tapi itu tidak benar-benar menjawab apa itu PHP. Jelas itu bahasa, tapi kita belum benar-benar berbicara tentang hal itu dalam bagian ini, sehingga ada sedikit lebih tentang apa yang sebenarnya PHP adalah. Jadi PHP hanya PHP preprocessor hypertext. 

Ini sebenarnya dianggap bahasa pemrograman karena memiliki logika, sedangkan jika kita ingat berbicara tentang HTML, kita disebut bahwa bahasa markup dibandingkan bahasa pemrograman karena HTML adalah benar-benar memodifikasi bagaimana benda terlihat pada halaman. Hanya saja memodifikasi apakah ada sesuatu yang berani, atau apakah itu bentuk, elemen, atau sesuatu seperti itu. Itu tidak memiliki logika apapun. Itu tidak memiliki loop atau kondisi. Anda tidak dapat kesalahan memeriksa hal-hal. Kamu tidak akan menampilkan hal-hal dengan cara tertentu atau meminta hal-hal dari pengguna. Itu saja. 

Jadi dengan PHP, itu benar-benar tidak memungkinkan kita untuk melakukan semua hal-hal yang lebih logis, seperti memvalidasi input atau memanipulasinya dalam beberapa cara. Kita bisa memadukannya dengan HTML, karena kami hanya melihat di pset terakhir Anda dan sekarang, dan memungkinkan kita untuk membuat halaman-halaman web yang dinamis. Jadi jika kalian ever-- Saya tidak tahu apakah Anda seperti saya, tapi di sekolah menengah mereka telah kita ambil kelas IT ini di mana kita buat hanya halaman web HTML, dan mereka statis dan klik di sekitar untuk hal-hal lain, tetapi mereka tidak pernah berubah. 

Dengan yang dinamis, apa yang kita bisa lakukan adalah, seperti dengan CS50 Keuangan, Anda akan memiliki pengguna yang berbeda. Tergantung pada para pengguna ' preferensi, dan apa yang mereka beli atau apa yang mereka jual untuk saham mereka, Anda akan menampilkan hal yang berbeda. Jadi, jika ada beberapa kecirian untuk pengguna Anda menggunakan ini Halaman web, kita dapat secara dinamis memutuskan apa yang akan ditampilkan untuk mereka. Ini bukan hal yang sama untuk setiap satu orang, yang jika kita hanya punya HTML, halaman akan sama untuk setiap orang yang berkunjung. PHP memungkinkan kita untuk mempersonalisasi halaman. 

Dan kemudian kita baik dapat menempatkan mereka dalam file yang sama, yang, seperti dalam kasus sebelum di sini, kita melihat bahwa kita memiliki HTML semua di sini dan kemudian kita memiliki ini sedikit PHP. Kita bisa melakukan seperti itu, atau dengan CS50 Keuangan, jika kalian telah melihat files-- dan kita harus punya waktu untuk melangkah melalui beberapa dari mereka bersama-sama pada akhir kami section-- dapat melihat bagaimana Anda bisa benar-benar membuat mereka tetap terpisah, yang sebenarnya adalah sebuah hal yang baik untuk dilakukan. 

So. Kursus kilat. Semua hal-hal sederhana yang cepat Anda mungkin perlu tahu PHP. Mendeklarasikan variabel. Biru itu sedikit mengganggu, tapi mudah-mudahan kalian bisa melihatnya. Jika tidak, aku akan menulis itu di papan kapur. The mendeklarasikan variabel. Satu hal yang perlu tahu adalah bahwa, tidak seperti C, PHP adalah longgar atau dinamis diketik, yang berarti bahwa Anda tidak perlu memberitahu variabel jenis apa itu. Anda bisa hanya mengatakan beberapa variabel adalah sama dengan apa pun yang Anda inginkan, dan akan menentukan jenis bahwa variabel pada waktu berjalan untuk Anda. 

Seperti yang Anda lihat, ini dapat membuat beberapa hal yang sangat menarik. Tetapi untuk sebagian besar tujuan, Anda tidak perlu menentukan tipe. Anda bisa, dan Anda dapat mengetik cor hal-hal seperti yang biasa Anda tidak akan melihat jika Anda ingin memaksa untuk menjadi tipe tertentu, tetapi Anda tidak perlu. Ini tidak akan berteriak pada Anda jika Anda hanya mendeklarasikan variabel dan tidak menentukan tipe untuk itu. 

Jadi jika Anda tidak dapat membaca this-- Aku tahu itu bukan yang terbaik. Saya pikir itu akan muncul better-- yang cara Anda menginisialisasi variabel apapun hanya dengan tanda dolar, apa Anda ingin disebut, dan kemudian apa yang Anda menetapkannya. Jadi dalam hal ini, ini adalah beberapa $ var = 3. Jadi jika kita pernah menggunakan $ var di suatu tempat, itu hanya akan sama dengan menempatkan 3 di sana. OK? 

Jadi, variabel, hanya tanda dolar, apa pun Anda ingin memanggil variabel Anda, dan apa pun yang Anda inginkan sama. Sedikit lebih dingin. Kurang menulis untuk menginisialisasi variabel, kan? Apakah itu masuk akal untuk semua orang? Hanya cepat perbedaan sintaks antara C dan PHP. 

Array lebih sejuk di PHP. Kita bisa memberi mereka kunci. Jadi cara untuk berpikir tentang itu adalah bahwa, jika kita pernah ingin mengakses elemen dalam array, kita perlu mengetahui Indeks itu, kan? Jadi kita tahu bahwa dengan C, kita bisa mengakses elemen pertama dengan melakukan berbagai braket nol, atau jika kita ingin elemen pertama, susunan braket satu. Dan jika kita menginginkan sesuatu di sana, kita mungkin hanya harus iterate melalui, kecuali kita benar-benar tahu indeks. 

Satu hal yang benar-benar keren dengan array PHP adalah bahwa mereka apa kita sebut asosiatif. Jadi kita bisa mengasosiasikan beberapa kunci untuk beberapa nilai, dan kami benar-benar akan to-- Aku akan menunjukkan bagaimana kita dapat menggunakan ini dalam detik. Tapi pada dasarnya, jika Anda pernah ingin untuk menginisialisasi array seperti itu, Anda memiliki beberapa $ array. 

Jadi dengan cara yang sama, hanya saja beberapa variabel yang kita ciptakan. Ini bisa disebut apa pun yang Anda inginkan. Ini bisa menjadi $ contoh. Hanya variabel lain. Apa yang membuatnya array adalah sintaks braket yang kita miliki di sini. Sama seperti biasa C. Dan kami memiliki beberapa kunci untuk beberapa nilai. Jadi key1 pergi ke value1, key2 dua pergi ke nilai2. Pasangan ini dipisahkan dengan koma, seperti array biasa. 

Namun. Big satu. Keys adalah opsional. Anda tidak harus menggunakan mereka. Dan jika Anda tidak, maka itu hanya normal. Pertanyaan? Atau, oh. 

AUDIENCE: Nah, tentang benar. Di mana memori itu berasal? Bisa juga sama seperti [Tak terdengar] dan dari stack? Apakah itu juga menggunakan PHP? Seperti ketika kita menghubungkan mereka? 

Allison Buchholtz-AU: Dengan PHP, Kami tidak cenderung khawatir tentang di mana kami memori datang dari. Kami tidak menghabiskan banyak waktu untuk berbicara tentang itu, sehingga tidak benar-benar sesuatu Anda perlu khawatir tentang. Jadi kunci adalah opsional. Dengan cara yang sama, jika Anda tidak ingin membuat ini terkait, Anda hanya ingin array normal di mana Array nol adalah elemen pertama dan array satu adalah yang kedua elemen, Anda dapat melakukannya dengan tepat seperti yang akan di C. Anda memiliki beberapa variabel yang akan menjadi array, dan itu sama dengan kurung ini di sini. Ya. 

AUDIENCE: Apakah itu memiliki titik yang sama untuk notasi. Seperti, saya bisa melakukan seperti array ++, dan yang menunjuk ke yang kedua. 

Allison Buchholtz-AU: Anda dapat do-- Nah, Anda dapat memiliki beberapa iterator, i, yang dapat Anda lakukan i ++ dan melakukan array i dengan cara yang sama. Tapi hanya itu. Jadi, seperti dalam kasus ini, array 1 akan sama 20. Jenis yang sama dari notasi pengindeksan. Ini pada dasarnya hanya sebuah hal yang implisit di sini, di mana dikatakan nol, nol sampai 10, 1 sampai 20, 2 sampai 30. Hanya saja kunci implisit untuk itu. Apa perubahan dengan PHP adalah bahwa Anda sekarang memiliki kekuatan menetapkan kembali kunci tersebut melakukan apapun yang Anda inginkan. 

Jadi satu hal di sini. Jadi saya memiliki beberapa contoh di sini yang saya tulis untuk kalian karena saya merasa seperti contoh selalu membantu lebih dari sekedar abstrak. Jadi, dalam hal ini di sini, kita memiliki beberapa array asosiatif yaitu nama pertama saya, saya nama belakang, dan aku am bergema, yang hanya untuk semua tujuan di sini akan mencetak ke output di sini. 

Dan ia mengatakan, OK. Mencetak nilai yang sesuai dengan array sama kunci Allison. Dan saya juga dapat mengirim kalian semua kode ini setelah kelas. Jadi, ketika kita menjalankan ini, apa yang dilakukan Anda pikir akan terjadi? Apa yang akan mencetak? AUDIENCE: Nama belakang Anda. Allison Buchholtz-AU: nama belakang saya. Itu tidak. Di sini. Cetak. Jadi jika kita mengubah ini dan kami adalah untuk menambahkan orang lain untuk list-- kami Jadi katakanlah kita memiliki Emma sini, dan kita kaitkan name-- terakhir Anda Mari kita lihat apakah saya mengeja hak ini. 

AUDIENCE: Ya. 

Allison Buchholtz-AU: Ya. 

AUDIENCE: Good job. 

Allison Buchholtz-AU: Lovely. Jadi sekarang jika kita memiliki ini di sini dan kami ingin menemukan nama belakang Anda, Anda memilikinya di sana. Jadi Anda hanya bisa memikirkan itu seperti mengganti kunci ini di sini. Anda hanya mengganti indeks. Sehingga memungkinkan Anda untuk hanya mencari melalui array jauh lebih mudah. Anda tidak perlu tahu indeks. Selama kunci ini yang Anda cari untuk ada di suatu tempat dalam array, PHP akan menemukannya dan akan kembali nilai yang terkait dengan itu. Jadi itu memberi Anda lebih banyak kekuasaan dengan array Anda. Ya. 

AUDIENCE: Jika Anda memiliki dua kunci yang sama, ia akan memberi Anda sebuah kesalahan? Allison Buchholtz-AU: Ini harus memberikan Anda sebuah kesalahan, ya. Apakah yang membuat sedikit lebih masuk akal untuk kalian? Dan dengan cara yang sama, kita memiliki sebuah array di sini yang tidak memiliki kunci. Juga ini adalah sintaks Anda mungkin ingin untuk menyadari, karena Anda akan harus menggunakan ini dalam pset Anda. 

Setiap kali Anda melakukan sebuah echo, Anda memiliki kutipan ini, dan setiap kali Anda merujuk untuk bagian dari array, Anda harus memiliki ini kurung kurawal sekitar mereka. Ini agak menjengkelkan, tapi Anda hanya perlu melakukannya. Jadi hanya sesuatu yang perlu diingat. Jika Anda menjalankan ke dalam kesalahan dari, Aku tahu bahwa ini ada di array saya tapi itu melemparkan kesalahan pada saya, mencoba menempatkan kawat gigi di sekitarnya dan harus bekerja. 

Jadi dalam hal ini di sini, ini adalah Array C normal yang kita terbiasa. Memiliki tiga, lima, dan enam, dan kami hanya ingin mencetak elemen pertama, jadi ini harus mencetak tiga. Dan aku menjalankan semua ini, jadi mudah-mudahan tidak ada yang berubah. Kita melihat di bagian bawah sini, itu hanya mencetak tiga. Keren. Itu masuk akal untuk semua orang? Array asosiatif. Jauh lebih keren daripada array normal. 

Ini adalah why-- Apakah David menampilkan pelaksanaan PHP dari pset6 selama kuliah sama sekali? OK. Jadi, akan saya tunjukkan. Aku tidak tahu itu dari t-- yang 

AUDIENCE: Dia lakukan minggu lalu. 

Allison Buchholtz-AU: Apakah itu minggu lalu? 

AUDIENCE: Ya. 

Allison Buchholtz-AU: Ya. Jadi ejaan dapat dilakukan dalam seperti enam baris dengan PHP, dan bagian dari kekuatan yang adalah array ini asosiatif di mana Anda hanya dapat memuat setiap kata dalam, dan Anda memilikinya sama dengan benar atau salah. Dan sehingga Anda bisa mengatakan, oh. Kembali kamus di beberapa kata, dan jika itu ada, maka akan kembali benar. Jika tidak, itu tidak akan menemukan dan itu akan kembali palsu. Jadi semacam hal kecil yang dingin. 

Baik. Jadi mereka adalah array asosiatif. Mereka cukup keren. Aku benar-benar menyukai mereka. Dan jelas this-- Ah. OK. Sekarang bekerja. Mungkin. OK. Hal lain. Jadi, dengan kesetaraan, hanya hal yang keren untuk diingat. Dengan PHP, karena secara dinamis diketik, Jenis ini dapat berubah tergantung pada saat Anda menjalankannya, bagaimana Anda menjalankannya. Aku benar-benar memiliki beberapa keren contoh yang akan saya tunjukkan kalian. 

Tapi == hanya memeriksa kesetaraan setelah jenis juggling. Jadi jika Anda memiliki sesuatu yang seperti karakter 1 dan nomor 1, PHP akan memberitahu Anda bahwa mereka adalah sama karena dapat menyulap jenis dari dua dari mereka sampai itu sama, yang mungkin untuk kasus Anda baik-baik saja. 

Jika Anda perlu untuk melihat apakah mereka adalah yang sama nilai dan jenis yang sama, Anda ingin === ini. Dan saya tidak berpikir Anda memiliki kasus di mana Anda perlu menggunakan di pset Anda, tetapi untuk banyak Anda yang akan pergi untuk melakukan halaman web untuk proyek-proyek akhir Anda dan hal-hal, itu hal yang baik untuk mengetahui == itu dan === berbeda, dan itu baik a perbedaan untuk memahami. 

OK. So. Loop foreach. Mereka adalah cara untuk iterate melalui array. Jadi, sama seperti array menjadi jadi lebih sejuk di PHP, cara untuk iterate melalui array, saya pikir, juga menjadi sangat dingin dan jauh lebih kuat. Jadi, bukannya harus membuat beberapa untuk i sama dengan 0 dan apa pun, dan kemudian memperbarui i saat Anda pergi melalui, kami memiliki foreach ini lingkaran yang mengagumkan. 

Jadi di sini adalah umum standar struktur kedua. Sehingga Anda juga harus foreach beberapa array yang sebagai nilai yang Anda ingin iterate sebagai. Jadi ini adalah nama dari array variabel yang ingin Anda referensi, dan ini adalah apa yang Anda inginkan menyebutnya dalam loop. OK? Jadi ini sesuai dengan setiap elemen dari array, dan Anda menggunakan nilai ini dalam lingkaran ini. 

Saya punya contoh. Aku tahu contoh adalah jauh lebih baik. Dan jadi ini adalah jika ada ada tombol, jadi ini adalah seperti jika kita hanya memiliki satu di mana kunci adalah indeks normal untuk array Anda. Atau ini juga dalam kasus jika Anda tidak gunakan untuk kunci. Jika Anda tidak peduli tentang tombol dan Anda hanya ingin iterate melalui dengan nilai-nilai untuk masing-masing dalam rangka apa pun, itu baik-baik saja. 

Anda dapat menggunakan struktur. Jika tidak, jika ada kunci, kami $ Value hanya berubah menjadi nilai kunci $. Jadi itu hanya berubah menjadi sepasang nilai kunci. Dan kemudian kita dapat merujuk pada $ key dan $ value dalam loop kami. OK? So. Contoh. Membuatnya lebih baik. OK. 

Jadi kita memiliki satu ini di sini, yang kami memiliki beberapa are-- Anda juga bisa membuat sebuah array seperti ini dengan memiliki beberapa variabel yang sama ke array dengan kurung, atau Anda hanya dapat melakukan braket. Anda harus melakukan braket, tapi ini adalah cara lain untuk melakukannya. Jadi di sini kita memiliki beberapa array tiga unsur satu, dua, dan tiga, dan kami memiliki foreach kami. 

Perhatikan yang satu ini sesuai dengan array kita iterasi, dan ini adalah apa yang kita panggil setiap hal dalam array kita. Dan semua ini lakukan adalah itu akan mencetak setiap nilai. Jadi jika kita menjalankannya, kita melihat bahwa kita memiliki nilai satu, nilai dua, nilai tiga. 

Dan dengan cara yang sama yang biasanya array harus dari satu jenis, array tidak harus semua menjadi jenis yang sama di sini. Jadi sekarang kita memiliki beberapa int. Kami memiliki dua string. Jadi array Anda dapat mendapatkan jauh lebih kuat dan mungkin sedikit bit berantakan, tergantung dalam perjalanan Anda ingin melihatnya. Jadi kita bisa mengubah ini apa saja yang kita inginkan. Kami menggunakan nilai. Itu hanya hal standar yang kita gunakan. Tapi, hanya penting untuk mengetahui bahwa kita bisa menyebutnya kontra seperti ini jika kita ingin. Dan selama mereka cocok, jelas semua orang bahagia. Jika Anda pernah ingin menjalankan PHP menjalankan sesuatu seperti perintah ini baris Anda tahu ini di sini, Anda hanya melakukan PHP, dan kemudian file apapun yang Anda ingin menjalankan. 

Jadi jika Anda ingin main-main dengan PHP, dan lebih logika dan Anda tidak benar-benar perlu lihat seperti di web browser, Anda hanya bisa menjalankannya di baris perintah seperti itu dan gema akan mencetak apa pun yang Anda suka. OK. Cara lain yang kami miliki adalah seperti ini. Jadi ini adalah kasus di mana mungkin Anda ingin untuk menggunakan kedua tombol dan nilai, Aku tahu ini adalah seperti contoh Super dibikin tapi saya berharap mereka membuat itu sedikit lebih jelas. Jadi di sini kita memiliki beberapa array yang lagi, tapi kali ini, bukan hanya memiliki Anda tahu tidak ada tombol. Kami memiliki kunci untuk masing-masing. Jadi adalah akan menjadi salah satu, b akan sesuai dua, dan c akan sesuai dengan tiga. Dan dalam hal ini, jika kita menulis dengan cara ini, kita memiliki akses ke kedua kunci dan nilai masing-masing. 

Jadi ketika kita menjalankan ini, kita mendapatkan masing-masing. Jadi ia akan mencetak kunci kami dan sesuai nilai-nilai. Hal lain yang keren adalah bahwa, dan aku tahu kata seperti ini tidak memiliki kunci, namun selalu implisit memiliki kunci karena jika Anda tidak mendelegasikan kunci, tentu saja, Anda kunci hanya indeks Anda atau indeks sehingga kami bisa selalu juga melakukan yang satu ini. Seperti ini. Saya akan mencetak. Jadi dalam hal ini, jika Anda perhatikan, kami memiliki kunci implisit kami dari nol, satu, dan dua di sini. 

Dan dengan cara yang sama dengan yang satu ini, Anda dapat selalu hanya mengatakan r sebagai nilai, dan Anda hanya memiliki akses ke nilai. Anda tidak peduli tentang Anda kunci, bahkan jika Anda memiliki kunci, jika Anda tidak peduli tentang mereka, Anda tidak perlu perlu menempatkan mereka dalam foreach loop Anda. Apakah itu masuk akal bagi semua orang? 

AUDIENCE: Dapatkah Anda hanya memanggil kunci, juga? Allison Buchholtz-AU: Ya Anda benar-benar bisa melakukannya juga. Sebenarnya, tunggu. Tunggu. akan itu-- No. Jika Anda ingin tombol, maka Anda perlu melakukan kunci untuk nilai. AUDIENCE: Tambahkan nilai. Allison Buchholtz-AU: Ya. Dan Anda tidak pernah menggunakan nilai semua. 

AUDIENCE: OK. Allison Buchholtz-AU: Jika Anda hanya menempatkan satu hal di sana, itu akan berasumsi bahwa Anda berbicara tentang nilai, bukan kunci. Pertanyaan besar. Baik. Keren. Sebenarnya, tunggu sebentar. Biarkan aku melihat apa yang saya miliki. Jadi sebelum kita masuk ke pos dan dapatkan, saya hanya ingin menunjukkan kalian sedikit tentang bagaimana itu dinamis diketik, yang agak dingin. Saya memiliki semua ini. Aku punya seperti empat contoh di sini, dan saya akan mengirimkan semua kode ini setelah kelas. 

Jadi di sini kita memiliki beberapa variabel. Itu hanya 1 ditambah 1, kan? Dan kita akan mencetak apa yang sama dengan, dan kemudian kita memiliki beberapa jenis. Dan ada yang punya tebakan tentang apa jenis itu akan menjadi? 

AUDIENCE: Sebuah int. 

Allison Buchholtz-AU: Ya, itu adalah int. Jadi itu hanya menambah mereka bersama-sama. Ini adalah int. Semua baik. Jadi berikutnya ini, kita harus apa terlihat seperti string. Ketika kita menjalankan ini, itu berpikir, oh. Anda benar-benar mencoba hanya menambahkan hal-hal. Anda baru saja bingung. Jadi aku hanya akan memperbaikinya untuk Anda. Anda berarti int. Aku tahu kau berarti int. 

Jadi ini adalah salah satu cara Anda bisa lihat, PHP memiliki pikiran sendiri. Meskipun kita secara eksplisit berkata, lihat, orang-orang ini adalah string. Maksudku string satu. Tetapi mengatakan, oh, tapi Anda mencoba untuk menambahkan mereka, sehingga Anda harus berarti itu sebuah integer. Hanya percaya padaku ini. Jadi ia mengatakan itu integer, dan itu menambah mereka seperti normal. Jadi jenis dingin jika Anda akan untuk mendapatkan malas dengan hal-hal Anda, atau Anda ingin menambahkan sesuatu. 

Suatu hal yang besar adalah bahwa, jika Anda berpikir kembali ke pset2, sesuatu yang pengguna diinput, benar, bahwa kita berpikir adalah char atau string pada awalnya. Sekarang kita tidak perlu secara eksplisit mengatakan, oh, membuat ini int. PHP hanya akan menjadi seperti, oh yeah. Aku tahu kau berarti int. Konyol Anda. Anda tidak bermaksud string. 

Jadi dalam hal ini, sekarang bahwa kita memiliki ini, apa pikir kalian itu akan dilakukan di sini? Kami memiliki string dan int sekarang. 

AUDIENCE: Ini masih int. 

Allison Buchholtz-AU: Ini masih int. Dan alasan is-- Aku akan menaruh lebih banyak contoh, tapi menyenangkan satu ini. Alasan itu melakukan itu karena itu seperti Anda mencoba untuk menambahkan hal-hal. Jadi jika Anda mencoba untuk menambahkan hal, aku akan menganggap, cukup, Anda memiliki sesuatu wajar bahwa Anda bisa menambahkan. Aku hanya akan membuatnya int, dan kita hanya akan menambahkannya, seperti biasa. Dan kemudian dengan cara yang sama, saya pikir kalian mendapatkan ide. Kami juga memiliki satu ini di sini, yang hanya karakter, dan melakukan hal yang sama. Ini seperti, Anda konyol friendly. Anda tahu Anda ingin int. 

AUDIENCE: Jika kita menempatkan surat, akan itu melakukan [tidak terdengar] nilai atau tidak? Allison Buchholtz-AU: Oh, itu adalah pertanyaan yang bagus. Mari kita lihat. Tidak, masih merupakan int. Jadi itu sedikit gila. Ini hanya semacam menampilkan PHP kadang-kadang dapat berperilaku irrational-- Tidak benar-benar tidak rasional, tapi mungkin berperilaku dengan cara yang Anda tidak benar-benar berharap. Jadi, bila ragu, periksa jenis hal. Fungsi gettype ini bisa menjadi super berguna. 

Biasanya, jika Anda melakukan apa-apa dengan plusses atau operator matematika, itu akan menganggap apa-apa wajar hanya sebuah int. Jadi, Anda memiliki arang 1, atau tali 1, atau sebenarnya int 1, itu akan berasumsi bahwa. Jika Anda ingin typecast apa-apa, Anda benar-benar bisa. Anda bisa melakukan sesuatu seperti ganda di sini, saya percaya. Dan dalam hal ini, itu akan mengatakan, oh. Aku akan membuat ini ganda karena Anda secara eksplisit mengatakan itu ganda. Anda selalu dapat secara eksplisit membuat PHP melakukan sesuatu, tapi. 

AUDIENCE: Tunggu, mengapa Plus 1 di sana? 

Allison Buchholtz-AU: Oh. Ada. Itu hanya gema. Itu adalah kesalahan saya. Jadi, Anda secara eksplisit dapat kirim ke membuat sesuatu dari jenis tertentu, tetapi sebagian besar waktu, itu akan dinamis memutuskan bahwa pada saat runtime. Jadi itu akan terus melalui dan itu akan menjadi seperti, OK. Apa yang membuat paling akal untuk ini menjadi? Harus benar-benar menjadi string? Apakah harus int? Apakah harus pelampung? Apakah harus ganda? Dan itu akan memutuskan bahwa untuk Anda. 

Anda dapat memaksa untuk melakukan apa yang Anda inginkan, tapi-- 

AUDIENCE: Apakah yang membuatnya lebih lambat? Allison Buchholtz-AU: Yah, Maksudku, C sangat efisien. Saya pikir itu pasti lebih lambat karena itu harus proses seperti itu akan. C, aku hampir yakin lebih cepat. Tapi jelas ada banyak hal keren di sini bahwa kita tidak perlu khawatir tentang. Jadi, jika kita sedang mencari melalui array, kita tidak harus benar-benar membuat beberapa pencarian melalui array. Kami hanya bisa meminta kunci dan PHP akan mengurusnya. 

Keren. Mengagumkan. Sepertinya akhir contoh saya. Kalian tidak akan pernah melupakan itu sekarang. Kau akan menjadi seperti, oh, PHP hanya seperti itu ibu yang seperti tidak, tidak, tidak. Aku tahu apa yang Anda maksud. Aku tahu apa yang Anda inginkan. OK. Jadi ini, mudah-mudahan, berguna untuk Anda pset, setidaknya di awal, karena Anda semua tentang berurusan dengan bentuk dan hal-hal dari pengguna. 

Jadi ada dua cara yang kita lulus sekitar info dengan PHP dan HTML ketika kita melewati antara dua hal. Jadi kita memiliki $ _GET, yang dilewatkan melalui URL, dan kami memiliki $ _POST, yang dilewatkan dalam pesan tubuh, dan jadi kami menganggap itu tersembunyi. Tapi satu hal yang harus dipahami adalah bahwa tak satu pun dari ini dianggap aman. 

Jika Anda memiliki seseorang yang mencegat pesan akan bolak-balik antara Anda dan Server, mereka masih bisa mendapatkan data ini. Mereka hanya harus melihat sedikit lebih keras. Ini tidak benar-benar itu-- itu hanya tersembunyi dari URL. Ini masih di isi pesan, meskipun, jadi jika mereka memiliki akses ke itu, itu benar-benar hanya like-- 

Ini seperti perbedaan antara sesuatu yang ditulis di luar amplop dan sesuatu makhluk ditulis pada selembar kertas di dalamnya. Ini tidak sulit untuk membuka amplop dan mendapatkan secarik kertas di dalam. Memang, itu akan jauh lebih mudah hanya membaca di luar. Tapi itu bagaimana Anda dapat jenis memikirkan ini. Tak satu pun dari ini benar-benar dianggap aman. OK? 

Memang, tidak benar-benar peduli untuk pset Anda karena Anda tidak berurusan dengan rahasia dagang, tapi itu biasanya satu hal yang kita benar-benar ingin menekankan karena orang berpikir, oh, well, itu tersembunyi. Ini harus super aman. Tidak. Ini tidak aman. Ini hanya sedikit kurang aman, kurasa. Atau tidak aman. 

Jadi kita benar-benar memiliki sebuah contoh. Seperti yang Anda tahu, saya suka mengajar lebih dengan contoh-contoh. Saya merasa seperti ini membantu lebih baik. Jadi, kami memiliki beberapa bentuk sederhana di sini yang sebenarnya, jika kalian pernah bingung tentang PHP, ini benar-benar kecil, tapi php.net sebenarnya dokumentasi benar-benar baik. Aku benar-benar menyukainya. Saya menggunakannya untuk mempersiapkan ini bagian, jadi saya bisa dokter hewan untuk Anda. 

Ini adalah contoh dari mereka tentang bagaimana $ _POST dan $ _GET kerja. Satu-satunya perbedaan antara dua ini, selain di mana informasi tersebut ditampilkan, apakah itu dalam URL atau dalam tubuh, juga apa metode ini. Jadi dalam bentuk Anda untuk HTML-- ini adalah bentuk HTML yang sangat sederhana. Bisa ada yang bilang padaku apa yang dilakukannya? AUDIENCE: Meminta nama dan usia. Allison Buchholtz-AU: Tepat. Jadi kita memiliki beberapa tindakan bentuk. Yang memungkinkan kita tahu itu beberapa bentuk tindakan. Dan apa yang akan terjadi adalah, ketika kita memukul Kirim, itu akan memanggil action.php, yang adalah apa ini, dan itu akan menyebutnya dengan metode $ _POST. Jadi dalam hal ini, Anda informasi tersembunyi. dan itu hanya nama, beberapa input type disebut nama, beberapa usia, input type = "text" bahwa kita juga menyebut usia. Dan kemudian jika kita memukul Kirim, Kirim akan memanggil action.php. 

Jadi ketika kita benar-benar memukul Kirim, kita tahu bahwa itu telah diposting, per se, dan kita benar-benar akan melihat ini dalam Anda permasalahan yang yang mudah-mudahan kita akan harus berjalan melalui sedikit. Dan semua itu lakukan di sini adalah POST beberapa variabel superglobal yang kita bicarakan selama kuliah. Dan bagaimana Anda bisa berpikir tentang $ _POST adalah bahwa itu hanya array asosiatif. OK? Jadi ini adalah beberapa kunci, ini beberapa kunci, dan apa pun input pengguna menjadi nilai untuk masing-masing. OK? 

Jadi jika kita menulis apa array ini benar-benar tampak seperti tepat setelah kami menyerahkan formulir, kami akan memiliki, ini adalah kami $ _POST, dan beberapa array di mana kita memiliki beberapa nama. Anggap saja kita akan melakukan nama saya, dan kemudian kita memiliki beberapa usia, 21. Woo. Jadi ini adalah semua $ _POST adalah. $ _POST hanya sebuah array asosiatif, OK? 

Itu hanya mengatakan, OK. Apa saja hal-hal yang kita sudah meminta dari pengguna? Apa variabel bahwa kita melewati sekitar bahwa kita telah meminta formulir ini? Dan kemudian apa nilai yang terkait dengan itu? Jadi dalam hal ini, jika saya menyerahkannya dengan nama Ally dan usia 21, ini adalah apa $ _POST tampak seperti. OK? Dan ini adalah apa ini File PHP memiliki akses ke. Semua benar? 

Jadi dalam hal ini, ini hanya seperti mendapatkan hal lain dari array kita. Alih-alih indeks di kami array, kita memiliki beberapa tombol. Jadi ini akan memberikan saya nilai pada nama kunci. Jadi ini akan menjadi Ally, dan hak ini di sini akan memberi saya nilai pada $ _POST mana kunci adalah usia, yang akan menjadi 21. Kau akan menjadi melakukan hal ini cukup sedikit. Ya, dari bagian mana? 

AUDIENCE: Saat kau menunjuk pada bagian bawah. Allison Buchholtz-AU: bagian bawah ini? OK. Jadi, Anda mengerti ini adalah HTML kami membentuk, dan kami memiliki beberapa metode $ _POST, yang penting. Ini juga bisa menjadi $ _GET, tapi untuk tujuan ini, kita hanya akan mengatakan itu $ _POST. Ketika kita mengirimkan formulir ini, ini adalah bagian dari file PHP yang disebut. Jadi file PHP ini sekarang akan mengeksekusi mengingat informasi dari HTML kami bentuk. 

Jadi apa yang dilakukannya adalah, ketika kita memukul Kirim di formulir HTML kita, itu melewati Anda superglobal ini, yang hanya array asosiatif. Ini ini. Itu hanya seperti melewati itu ke file. Dan apa yang dikatakan adalah, OK, inilah $ _POST. Ini array asosiatif Anda. Lakukan dengan itu apa yang Anda inginkan. Dan kami berkata, OK. Beri aku nilai pada nama, dan memberikan nilai pada usia. 

Jadi ini hanya kunci, dan ini adalah array kita. Apakah itu masuk akal? 

AUDIENCE: Mhmm. Allison Buchholtz-AU: Awesome. AUDIENCE: Jika Anda harus mengajukan kembali bentuk apakah itu hanya menulis atas data? Allison Buchholtz-AU: Ya. Mhmm? 

AUDIENCE: Mengapa kau harus untuk menentukan bahwa itu adalah int? 

Allison Buchholtz-AU: Dalam hal ini, pengguna hanya memaksanya untuk menjadi int. 

AUDIENCE: OK. Allison Buchholtz-AU: Saya tidak tahu jika Anda benar-benar akan membutuhkan itu, tapi untuk tujuan mereka, mereka memutuskan bahwa mereka ingin menjadi int. Mereka hanya typecasting itu. Mungkin mereka sedang menggunakannya sebagai sesuatu yang lain di kemudian hari. Ini adalah salah satu potongan. Ya? 

AUDIENCE: Bagaimana jika mereka mengetik 12, T-W-E-L-V-E, untuk usia? Allison Buchholtz-AU: Jika mereka mencoba untuk mengetik bahwa sebagai int? AUDIENCE: Ya. Allison Buchholtz-AU: Saya melupakan apa yang tidak. Saya pikir itu mungkin mencoba untuk mengkonversi karakter pertama ke int, atau mengambil nilai dan mengkonversi itu, tapi aku lupa persis apa. Menjadi hal yang menyenangkan untuk menulis program dan coba. Melakukan beberapa baris. OK, jadi ini adalah salah satu utama hal-hal yang Anda akan lakukan. Aku akan mudah-mudahan berjalan melalui beberapa file dari pset dengan kalian. Sepertinya kita akan punya waktu, jadi kita bisa melakukan itu. 

Tapi kau akan menjadi melakukan banyak hal seperti ini, di mana Anda melewati hal-hal dari bentuk HTML ke dalam bentuk PHP ini yang kemudian akan menjalankan beberapa set instruksi pada data yang diberikan. Itu benar-benar inti dari pset Anda. Ya. 

AUDIENCE: Tipe = "submit", yang membuat tombol pada form HTML. Apakah ada cara untuk memanggil bahwa tombol sesuatu? Jadi apakah Anda seperti name = "submit"? Atau tombol yang hanya akan menjadi kosong sekarang, karena Anda hanya memberikannya jenis, bukan nama. 

Allison Buchholtz-AU: Saya pikir itu hanya akan menjadi kosong sekarang. Kita dapat melihat di pset, karena kita pasti akan akan melihat daftar semacam itu. Tapi ya, Anda pasti dapat menentukan teks yang Anda inginkan pada tombol Anda. OK, jadi SQL. 

Ketika Anda membeli dan menjual saham, Anda perlu melacak mereka. Jadi cara kita akan melakukan itu adalah dengan SQL, yang hanya database. Anggap saja sebagai sebuah meja di mana Anda menjaga semua informasi ini tentang pengguna yang berbeda Anda. Dan kalian sebenarnya akan membuat salah satu dari ini. Hal ini cukup keren. 

Dan hanya ada empat hal utama yang perlu Anda ketahui untuk pset ini, dan mereka memperbarui, sehingga Anda pada dasarnya memperbarui data. Yang mengasumsikan bahwa itu sudah ada. Jika tidak ada, itu akan untuk memukul Anda dengan kesalahan, jadi mungkin Anda ingin memeriksa. Dan Anda akan memperbarui on-- saya harus Sebenarnya- saya punya waktu, Aku akan menulis beberapa ini. Aku benar-benar akan memberikan kalian sebuah beberapa sampel, perintah SQL penuh, karena ini hanya utama yang, tetapi Anda dapat bergabung dengan mereka bersama-sama. Jadi saya akan melakukan itu dan aku akan mengirim bahwa kepada Anda dengan catatan ini. 

Jadi jika Anda ingin memperbarui sesuatu, perlu menceritakannya apa yang Anda memperbarui dan di mana Anda memperbarui itu. Jadi perintah SQL khas akan pembaruan ID mana sesuatu sama sesuatu. Atau alamat pembaruan seperti di mana ID sama dengan 3, dan ini akan memperbarui bidang alamat pengguna yang memiliki ID tiga. OK? 

Jadi, jika Anda pergi ke SQL dan W3Schools, mereka memiliki contoh yang mengagumkan. Bahkan, saya mungkin menarik beberapa di sedikit. Dan kemudian masukkan ke dalam, Anda hanya memasukkan nilai-nilai tertentu di sana. Jadi jika Anda mencoba untuk membuat beberapa baru masuk, sehingga Anda membuat user baru, Anda bisa melakukan insert ke apa pun database Anda disebut, dan Anda akan memiliki semua nilai-nilai ini. 

Maka Anda memiliki pilih, pilih nilai untuk melihat. Jadi jika Anda mencoba untuk memeriksa ke melihat apakah pengguna ada atau Anda mencoba meraih spesifik informasi tentang pengguna Anda akan menggunakan pilih. Dan kemudian menghapus, saya pikir, sangat sederhana di sana. Kau hanya menghapus sesuatu dari meja. Dan pada kenyataannya, biarkan aku benar-benar menarik beberapa contoh untuk kalian. Oh, lihat, itu halaman saya 61. 

Jadi jika kita pergi ke W3Schools, mudah-mudahan itu lagi. Ya, Love it. Kami pergi ke SQL. Jadi, ini adalah sesuatu di sini. Jadi, ini adalah SELECT sangat sederhana. Man, aku suka fungsi ini. Jadi, Anda dapat memiliki SELECT beberapa bidang DARI pelanggan. Dalam hal ini, pelanggan mengacu pada Database online yang Anda gunakan, jadi apa pun meja Anda disebut, dan Bintang hanya berarti memilih semuanya. Beri aku setiap orang. 

Jadi, saya hanya ingin memberikan kalian sebuah beberapa contoh di mana hal ini. Jadi kita memiliki SELECT, UPDATE. Jadi di sini adalah jenis sintaks umum. Jadi UPDATE, apa pun Anda nama tabel, dan kemudian SET adalah di mana Anda benar-benar akan untuk menjadi apa data yang Anda berubah. Jadi ini bisa be-- Let saya membuat contoh di sini. Jadi ini akan be-- 

OK. Jadi saya membuat sebuah database yang kecil bagi kita. Kita akan memiliki beberapa ID, beberapa tahun, dan beberapa nama. Jadi ID satu akan menjadi tahun '15, dan kami hanya akan membuatnya saya. Yang ingin menjadi yang kedua orang di meja kami? Siapa pun. Aku hanya akan memilih Emma karena nama Anda cepat. Emma, ‚Äč‚Äčtahun berapa kamu? 

AUDIENCE: Tahun berapa? 

Allison Buchholtz-AU: Ya. 

AUDIENCE: '16. Allison Buchholtz-AU: '16. Anda hanya akan menjadi guinea pig saya untuk hari ini. OK, jadi kami memiliki dua orang ini. Sebenarnya, biarkan aku melakukan ini. Katakanlah aku mendengarnya salah, dan aku benar-benar mengatakan dia setahun lebih muda. Dia '17. Apa yang ingin kita lakukan di sini, jika kita ingin memperbarui tahun Emma untuk benar menggunakan itu, apa yang telah kami lakukan adalah kita akan mengatakan data yang UPDATE di sini. 

Dan ini semua bisa dalam satu baris, tetapi karena aku dikompresi untuk ruang di sini, Aku akan menulis di sini. Dan kami ingin mengatur. Jadi ini adalah tabel kami meng-update. SET akan menjadi kolom apa atau data apa yang kita benar-benar berubah. Apa yang kita berubah adalah tahun, jadi kita akan mengatakan SET tahun = 16, dan kemudian MANA memberitahu kita mana pengguna atau apa baris yang kita benar-benar memperbarui ini. 

Jadi di mana? Kami memiliki dua pilihan di sini. Apakah dua? Ini adalah unik, kan? Jadi nama kami yang unik dan ID kami adalah unik, jadi apa adalah dua pilihan untuk di mana kita bisa melakukan ini? Aku akan memberimu satu. Kita bisa melakukan WHERE ID = 2, atau kita bisa melakukan apa jika kita pergi paradigma ini di sini. 

AUDIENCE: [tak terdengar]. Allison Buchholtz-AU: Tepat. Jadi kita juga bisa melakukan name = Emma. Dan salah satu dari ini akan bekerja. Dan kami berlari ini, itu akan menjadi seperti, OK. Kami akan mengubahnya. Anda benar-benar 16, jadi sekarang kau benar lagi. OK, jadi ini akan menjadi Super berguna dalam pset Anda mana mungkin seseorang memutuskan untuk membeli 100 saham Apple, dan kemudian mereka seperti, hanya bercanda. Saya hanya ingin 90 saham. Dan mereka menjual 10 dari mereka, sehingga Anda perlu memperbarui jumlah saham yang mereka miliki. Jadi, memperbarui saham, mengupdate tabel. 

OK. Jadi itulah salah satu contoh di sana. Itulah sintaks pembaruan. DELETE. Oh. Masukkan ke dalam adalah salah satu kami yang lain. Jadi, yang satu ini di sini sangat mirip. Kami hanya bisa mengatakan, dalam hal ini Kasus mari kita menambahkan seseorang. Kita dapat menambahkan Ben kali ini. Kami INSERT INTO, dan kami ingin nama meja kami. Dalam hal ini itu data. 

Dan kemudian kita hanya ingin, Anda akan mengatakan NILAI, dan apa yang Anda akan lakukan adalah, Anda benar-benar harus memastikan bahwa Anda memiliki sesuatu untuk setiap baris yang Anda inginkan. Anda hanya menempatkan mereka di urutan. Jadi dalam hal ini, kita akan mengatakan 3. Kau 18, tepat Ben? 

AUDIENCE: 19. Allison Buchholtz-AU: 19? AUDIENCE: 19. Allison Buchholtz-AU: '19 tahun Anda ini? Anda lulus dalam '18, kan? AUDIENCE: Oh. Allison Buchholtz-AU: tahun Graduation. AUDIENCE: OK. Allison Buchholtz-AU: Aku seperti, apakah Anda sudah merencanakan untuk cuti setahun di sini? Jadi, '18, kami memiliki Ben. Jadi dalam hal ini, itu akan pergi melalui, itu akan membuat entri baru di sini. Keren. Tidak terlalu buruk, kan? Banyak hal seperti ini akan menjadi sintaks untuk kalian. Konsep harus datang, mudah-mudahan, relatif mudah. Sintaksnya adalah satu-satunya yang dapat menjadi sedikit rumit. 

Dan kemudian yang terakhir kami adalah DELETE, dan setelah Anda melihat, Saya sangat merekomendasikan website ini. Ini bagus. Ada satu ton barang. Jadi, dengan cara yang sama yang kita miliki beberapa UPDATE, DELETE sangat mirip. Sebaliknya kita telah Hapus dari data. Jadi dalam hal ini, terakhir kami salah satu yang saya akan menulis di sini. Katakanlah kita ingin menghapus saya. Aku tidak bisa menulis hari ini. DELETE dari apa pun tabel kita berada di, data. Dan sebenarnya ada tiga cara kita bisa memilih untuk menghapus saya. 

Bisakah kalian ceritakan apa tiga cara yang, bagaimana Anda bisa menghapus saya? ID sama dengan 1, di mana ID sama dengan 1. Kita bisa melakukan di mana tahun sama 15, atau di mana nama sama dengan Allison. Tentu saja, hanya ada tiga cara yang berbeda, karena ini semua unik. Biasanya di meja Anda, dan terutama di pset Anda, Anda akan menetapkan satu dari kolom ini menjadi unik. 

Ini mungkin akan menjadi beberapa yang unik ID nomor, karena jika Anda have-- sebenarnya, mungkin benar-benar membiarkan Anda memiliki dua. Saya tidak ingat apakah itu akan membiarkan Anda memiliki dua hal yang sama. 

AUDIENCE: Kemudian itu akan mengubah perilaku mereka. 

Allison Buchholtz-AU: Ini akan. Ini akan menyebabkan perilaku yang tak terduga, bahwa Anda tidak bisa benar-benar memprediksi. Jadi, Anda pasti akan memiliki satu kolom dalam database Anda yang akan menjadi unik, dan itu biasanya Anda dapat mengatur sehingga itu seperti ID unik, dan itu hanya akan update setiap kali Anda memasukkan ke dalam tabel. Setiap kali Anda membuat baru baris, maka secara otomatis akan kenaikan dan memberikan beberapa ID unik. Jadi petunjuk untuk pset Anda. OK. Jadi itu adalah SQL. 

Jadi sekarang kita akan berbicara tentang hal terakhir, yang mengikat dalam sebenarnya cukup baik dengan Anda pset, apakah itu akan maju. Jadi MVC, model view controller. Ini benar-benar hanya cara untuk menjaga hal-hal terorganisir. Dengan cara yang sama dengan C kami meminta kalian untuk menciptakan fungsi dan hal-hal yang terpisah out, ini hanyalah sebuah cara untuk memisahkan kode ketika Anda sedang melakukan pengembangan web. 

Sehingga membuat hal-hal yang jauh lebih elegan dan sederhana, dan ini sebenarnya jalan bahwa pset Anda sebenarnya mengatur, jadi apakah Anda suka atau tidak, Anda akan mempelajarinya, bahkan jika Anda tidak berpikir Anda belajar itu. Dan satu hal, itu juga memungkinkan Anda untuk melakukan lebih banyak lagi seperti kolaborasi pengguna. 

Jadi ketika saya mengambil CS50, saya melakukan website untuk tugas akhir saya, dan aku seperti, aku akan menangani database barang. Aku akan melakukan kembali hal-hal akhir, dan saya teman sekamar yang saya mengambil dengan itu sangat berseni. Dia melakukan desain panggung, dan dia ingin membuat semuanya cantik. Jadi aku seperti, OK. Anda bisa mengurus semua hal front end. 

Dan masalahnya, sebagai kita akan melihat segera, bahwa model view controller memungkinkan Anda benar-benar memisahkan kode yang begitu bahwa aku bisa bekerja pada menerapkan halaman kami, dan informasi memanipulasi dalam database kami, dan dia hanya bisa membuat hal-hal cantik, dan kami berdua benar-benar bahagia, karena kita harus melakukan apa kami berdua inginkan dan kami tidak harus berurusan dengan yang lain. 

Jadi kita bergaul bersama-sama. Kami ingin hang out. Aku hanya tidak mau berurusan dengan semua CSS dan hal-hal HTML. Aku seperti, Anda membuatnya cantik. Aku akan berurusan dengan database. Jadi kita memiliki ini benar-benar keren, meja kecil besar. Saya suka tabel. Dan pada dasarnya, model Anda bisa berpikir tentang hanya database Anda. 

Saya adalah model orang untuk proyek saya. Ini semua tentang penyimpanan informasi dan mengorganisasi data itu. Jadi apa yang kita suka menyebutnya back end. Jadi kalian akan berurusan dengan database SQL dan file data. Itu model Anda. 

Pandangan Anda, seperti yang mungkin Anda berpikir, jenis masuk akal, adalah apa yang benar-benar melihat pengguna Anda. Ini adalah antarmuka pengguna. Ini yang menghadap ke depan komponen. Jadi itulah yang teman sekamar saya harus bekerja di sepanjang waktu. Dia adalah super bahagia. Jadi itu semua HTML, dan ada sangat sedikit PHP. 

Jika Anda hanya berbicara tentang apa yang sedang ditampilkan kepada pengguna, kita sedang berbicara tentang hypertext. Kita bicara tentang bagaimana tampilannya. Kami tidak berbicara tentang logika, atau kondisi, atau entah apa lagi. Semua itu akan ditangani oleh controller, OK? Jadi yang menangani permintaan pengguna dan mendapatkan informasi. 

Jadi satu hal yang harus Anda ketahui tentang pset Anda adalah bahwa, dalam pandangan Anda, sesuatu yang sebenarnya menampilkan informasi tidak boleh membuat panggilan ke model Anda. Semua itu ditangani di controller Anda. Controller adalah salah satu mediasi antara kedua. Ini akan meminta model untuk informasi tertentu. Hal ini dapat iterate lebih dari itu informasi, mencari tahu apa yang sebenarnya Anda butuhkan dari itu, apa yang harus dilakukan dengan hal itu, dan kemudian akan meneruskan hanya informasi yang Anda perlu melihat bagi Anda untuk mencetak keluar atau menampilkannya kepada pengguna, OK? 

Karena kita melihat tampilan sebagai apa pun yang dihadapi pengguna, sehingga akan lebih mudah bagi mereka untuk mencari tahu, oh, jika Anda membuat beberapa panggilan untuk model Anda dan Anda meminta untuk semua pengguna yang dimulai dengan huruf A, dan Anda melakukan hal itu dalam pandangan Anda, siapa saja yang dapat melihat halaman web Anda berpotensi mengakses. 

Anda tidak perlu menginginkan hal itu. Anda tidak ingin orang melihat lebih ke database dari apa mereka harus melihat. Hanya preferensi khusus mereka. Jadi controller menangani semua itu. Jadi semua file php Anda bahwa kita akan melihat Anda dapat mempertimbangkan file controller. Dan di situlah Anda benar-benar akan meminta hal-hal dari database Anda, dan iterasi atau memanipulasi sebagai diperlukan sebelum menyerahkannya ke dilihat. 

Ini adalah pset benar-benar keren, menurut pendapat saya. Saya pikir itu sedikit lebih seperti kepuasan instan, karena Anda menerapkan banyak hal-hal kecil kecil, dan setiap hal harus bekerja sendiri. Tidak seperti, melakukan segala sesuatu dan kemudian melihat apakah ia bekerja. Seperti dengan perangkat lunak di mana Anda seperti, aku benar-benar berharap ini adalah benar, karena jika tidak, ada banyak tempat itu bisa saja salah. 

Baik. Hanya memastikan bahwa aku berkata semua yang saya butuhkan untuk mengatakan tentang MVC. Ya. Keren. 

Jadi dalam CS50 Keuangan, kami memiliki model kami, karena saya hanya katakan di sini. Ini akan menjadi MySQL dan phpMyAdmin. Saya pasti bisa menarik mereka sehingga kalian mendapatkan kesempatan untuk melihat itu. Seperti saya katakan sebelumnya, itu SQL Database bertindak sebagai model, dan Anda dapat mengirim apa yang kita sebut query, yang hanya hal-hal. Ini disebut query. Ini adalah permintaan, di mana Anda hanya meminta database Anda untuk sesuatu, atau Anda mengubah Anda Database dalam beberapa cara. Itu semua itu. Dan Anda melakukannya dengan fungsi kami telah memberikan Anda di sini. 

Anda juga dapat memanipulasi mereka dengan tangan melalui phpMyAdmin, yang kita pasti bisa kita lihat. Aku akan membuat sampel Database dengan kalian. OK. Jadi, kontroler. Jadi dalam hal ini, jika Anda pemberitahuan, ini semua PHP. Perhatikan bahwa semacam Anda Hal utama dari controller adalah bahwa hal itu harus sebagian besar PHP. Jika Anda memiliki HTML di controller Anda, tidak benar-benar yakin apa yang terjadi di sana. Cara yang sama seperti yang saya katakan, jika Anda berhasil [tak terdengar] dengan HTML, Saya sebenarnya tertarik. 

Jadi apa yang kita miliki di sini adalah Anda memiliki beberapa pertanyaan. Query adalah fungsi yang kami membangun untuk kalian. Ini seperti pembungkus untuk membuat query ke database Anda sedikit lebih mudah. Jika Anda tidak memiliki itu, sintaks untuk benar-benar berbicara dengan database SQL Anda akan berbeda, jadi kami hanya menyediakan untuk kalian. Kami ingin membuat hidup mudah. 

Jadi dalam hal ini, dapat kalian katakan padaku apa baris ini lakukan? * SELECT dari beberapa tabel. AUDIENCE: Pilih segala sesuatu dari tabel ini. Allison Buchholtz-AU: Tepat. Jadi itu mengatakan, beri saya segala sesuatu dari tabel ini. Dan itu menyimpannya dalam beberapa hasil variabel. Dan ini mengatakan, jika hasilnya tidak sama false, maka kita lakukan setiap hal ini. Jadi jika tidak ada di sini, jika Anda tabel kosong atau hanya tidak ada, itu akan kembali palsu. Jadi dalam hal ini, kita hanya membuat yakin sesuatu yang benar-benar dikembalikan kepada kami. 

Dan kemudian di sini, kami memiliki loop foreach besar kita bahwa kita iterasi kami Hasilnya, dan kita menyebutnya baris, dan kita katakan membuat template ini di mana data Anda hasil ini. OK? Jadi itu hanya pengolahan deretan hasilnya. Jika tidak, itu berteriak. Jadi, ini adalah contoh controller. Seperti yang Anda lihat, ini adalah hanya place-- Ya, maaf? 

AUDIENCE: Mengapa ada ampersand sebelum baris? 

Allison Buchholtz-AU: Ampersand sebelum baris. Kami hanya iterasi. Itu juga alamat of-- 

AUDIENCE: Jadi itu seperti C referensi. 

Allison Buchholtz-AU: Ini memastikan bahwa Anda benar-benar memodifikasi asli, bukan salinan. Ini dengan cara yang sama dengan C di mana kita lewat referensi di sini, hanya untuk memastikan. 

AUDIENCE: Apakah tidak == bukannya tidak = di PHP? 

Allison Buchholtz-AU: Ini bukan == tersebut. 

AUDIENCE: Karena sama di C adalah hanya-- 

Allison Buchholtz-AU: Hanya saja tidak =. Ya, tidak ada. Ini bukan ==. Karena == di PHP memeriksa kesetaraan dengan Toggling, diberikan, tapi kualitas ekstra. Jadi, itu tidak == di PHP. Ini adalah salah satu dari sedikit perbedaan sintaks. Ya. Jadi kami hanya iterasi melalui setiap baris, dan render, jika kalian membaca spec, hanya beberapa fungsi lain yang benar-benar akan memproses semua HTML dan menampilkannya dalam Anda browser web untuk Anda. 

OK. Jadi, kita suka berpikir controllers Anda seperti apa yang menangani logika bisnis. Seperti yang Anda lihat di sini, ini adalah di mana kita mengambil data kami dari meja, kami memproses dalam beberapa cara, dan kemudian kita lewat itu. Ketika kita melakukan membuat beberapa template yang, beberapa template pandangan kami, dan kami melewati itu hanya data yang harus mendapatkan. Tidak semua data. Hanya data yang ingin kita untuk mendapatkan. OK? Pada dasarnya data setelah diproses. 

Jadi ini adalah pandangan, ini jumlah template yang kita miliki, dan semua ini lakukan adalah, Anda dapat memiliki sedikit PHP dalam pandangan Anda. Hal ini tidak seperti tidak ada PHP dalam pandangan. Anda hanya harus memiliki sangat PHP minimal dalam pandangan, dan Anda tidak harus query dalam pandangan Anda. Anda tidak boleh berbicara ke database Anda dalam pandangan Anda. Itulah perbedaan besar. 

Jadi apa yang terjadi di sini adalah, kita memiliki PHP yang iterasi melalui baris. Jadi dalam hal ini, karena kami iterasi melalui setiap baris dan rendering sesuatu, ini adalah mungkin seperti array dua dimensi di mana kita memiliki beberapa baris yang adalah, dalam dirinya sendiri, sebuah array, karena kita iterasi melalui itu lagi. Dan kami hanya mencetak nama baris, kemudian mengakhirinya. 

Anda tidak perlu ini dalam foreach. Aku belum pernah melihat bahwa sebelum benar-benar. Aku hanya melakukan foreach. OK, jadi itu pandangan. Mari kita lihat apakah kita bisa berjalan melalui sedikit pset Anda. Kami memiliki 15 menit, jadi saya yakin Anda orang akan seperti itu lebih dari sekedar berakhir lebih awal. Biarkan saya melihat apakah saya dapat membawa hal ini. 

Jadi saya tidak tahu berapa banyak dari kalian telah download dan yang lainnya belum, tapi kita harus nama pengguna di sini, dan kami memiliki beberapa password. Dan sayangnya, tepat sekarang database kosong, jadi kita benar-benar perlu untuk membuat database. Nah, itu aneh. Tidak mengharapkan itu. Kesalahan teknis. Kesulitan teknis. Kami memiliki beberapa pset7. Keren. 

Jadi, satu hal yang dapat Anda lakukan adalah, dengan query-- saya akan membuat tabel. Jadi ini akan menjadi users-- apa Anda dapat melakukan di sini adalah, jika kita memiliki some-- Benar-benar sekarang? OK. Jelas aku tidak melakukan begitu panas. Oh. Aku tahu mengapa. Karena saya tidak pernah dibuat tabel sebenarnya saya. Jadi, ketika Anda pertama kali memulai dengan database, Anda jelas harus memutuskan apa hal yang harus saya miliki di sini? 

Jadi jika kita hanya pergi tabel data kita di sini, kami memiliki beberapa ID, yang hanya bisa tinggal int. Dan jika kita melihat di sini, ada hal yang keren itu-- indeks Jadi. Jika Anda melakukan primer, itu akan membuat orang hal yang meja Anda diatur oleh, dan juga akan membuatnya unik. Jadi dalam hal ini, kami akan membuatnya primer, dan aku akan membuat nama ini, maka kita hanya akan membuatnya varchar seperti 26 huruf, karena mengapa tidak? 

Dan kemudian Anda dapat pergi untuk Simpan, dan kemudian jika Anda lihat, kami memiliki beberapa pengguna di sini. Jadi jika kita ingin melakukan masukkan, kita bisa melakukannya cara ini, atau jika Anda ingin praktek dengan Anda queries-- Oh boy. Saya belum pernah menggunakan ini dalam selamanya. Saya mengambil kembali ini. 

Anda dapat mengedit ini sendiri baik hanya dengan manual memasukkan informasi dengan sesuatu seperti, Anda dapat mengubah semua ini jika Anda ingin make-- Jika Anda ingin tiba-tiba menyingkirkan nama, Anda bisa drop, Anda dapat melakukan semua hal itu. Jika Anda perlu untuk pernah manual mengubah meja Anda, Saya sarankan melakukan hal itu di phpMyAdmin dibandingkan mencoba untuk mencari tahu SQL query pada umumnya. Ketika Anda pertama kali memulai pset Anda, Anda akan harus bekerja di sini, jadi terbiasa dengan itu. Dan kemudian ketika Anda benar-benar ingin memasukkan sesuatu kedalam table-- Anda Aku benar-benar ingin tahu di mana itu adalah, karena there's-- Ini dia. Itulah apa yang saya inginkan. Jadi, jika Anda pergi ke SQL, Anda bisa benar-benar melihat, seperti yang kita lihat di sini, kita memiliki query SQL. 

Jadi jika kita ingin memilih sesuatu atau jika kita ingin menyisipkan sesuatu, kita bisa melakukan insert ke pengguna, kan? Saya pikir Anda perlu backslash. Satu hal yang perlu tahu adalah, jika Anda pernah menggunakan ini, Anda harus menggunakan ini kembali apostrof, yang biasanya, jika Anda pada Mac, tepat di atas tab. Jadi hal yang baik untuk tahu. 

Anda bisa masukkan ke pengguna, dan kami memiliki nilai-nilai kita, kan? Jadi kita memiliki nilai-nilai, dan nilai-nilai kita dalam hal ini hanya akan menjadi, kita hanya memiliki ID sehingga kita bisa melakukan satu jika kita ingin. Itu aneh. OK. Jadi itu seperti singkat hal kecil dengan SQL, tapi mungkin akan lebih berguna untuk benar-benar melihat beberapa file di sini. 

Jadi pergi ke Download. Oh, tidak Downloads. Jadi, hanya walkthrough cepat apa yang ada di masing-masing folder. Ini termasuk, kami hanya memiliki hal-hal yang mengkonfigurasi browser anda, kita memiliki konstanta ini, dan kami memiliki fungsi-fungsi ini. Jika Anda tertarik pada salah satu dari mereka, Saya sarankan melihat fungsi. Salah satunya yang super berguna, sebenarnya adalah salah satu ini di sini, sampah. 

Jadi, jika Anda menggunakan ini, itu akan benar-benar hanya mencetak variabel apapun bahwa Anda menyukainya untuk. Jadi jika Anda mengalami kesulitan mencari apa array ini tampak seperti, atau data apa ini sebenarnya, bagaimana hal itu diformat, ini adalah hal yang besar untuk digunakan. Terutama ketika Anda memiliki pengguna dengan beberapa saham, ini akan menjadi sesuatu yang besar untuk digunakan. Karena mungkin formatted-- 

Aku tahu setidaknya bagi saya ketika saya melakukan pset ini, itu diformat dengan cara bahwa saya tidak cukup berharap. Jadi saya mencoba untuk beralih di atas dan mencoba untuk memanipulasi, tapi aku tidak benar-benar memahami apa yang saya lakukan. Jadi jika Anda hanya membuangnya, itu akan mencetaknya ke browser, dan Anda dapat melihat persis bagaimana hal itu diformat. Ini biasanya akan mencetak keluar sebagai array dengan kunci dan nilai-nilainya. Sehingga dapat membantu di sana. Hal ini juga dapat membantu untuk membuat memastikan bahwa Anda benar-benar meraih data yang Anda pikir Anda. Jadi jika Anda seperti, meja saya pasti mengatakan ada pengguna dengan ID ini, tetapi ketika Anda pergi untuk membuang variabel, itu tidak ada, Anda jelas tahu itu di mana kesalahan akan menjadi. Ini adalah salah satu alat terbaik untuk debugging, menurut pendapat saya. Dan kemudian ada beberapa hal lain di sini, tetapi untuk sebagian besar, itulah salah satu yang saya ingin menarik perhatian Anda untuk, karena sangat membantu. 

Publik, apa yang kita miliki di sini adalah, ini adalah semua barang-barang CSS kami. Jadi CSS, font, gambar kami, entah apa lagi. Ini adalah semua hal yang Anda tidak harus memodifikasi. Bisakah kalian berpikir tentang apakah ini memiliki hal-hal seperti CSS di font, ini akan menjadi model, atau pandangan, atau controller? AUDIENCE: [tidak terdengar] Allison Buchholtz-AU: itu akan lebih dari pandangan, kan? Ini menangani semua hal, bagaimana hal-hal terlihat. Jadi jika kita membuka ini di sini, kita melihat bahwa semua yang terjadi di sini adalah kita render sesuatu. OK? Jadi ini akan sangat banyak memenuhi syarat sebagai pandangan untuk ini. Jadi ini hanya mengambil beberapa, itu memanggil beberapa portfolio.php yang kita miliki, dan itu lewat dalam judul dan portofolio. Dan itu hanya render itu. Sebenarnya, aku mengambil kembali. Ini adalah kontroler, karena render, ingat, membuat pandangan. Jadi portfolio.php dalam hal ini kasus akan pandangan Anda. Maaf, guys. Portfolio.php akan menjadi pandangan Anda, dan ini akan hanya menjadi controller untuk itu. Dan jika kita melihat pada ini yang terakhir di sini, template, template semua pandangan Anda di sini. Jadi jika kita melihat, jelas kita melihat banyak HTML di sini. 

Jadi yang satu ini hanya menunjukkan kepada Anda apa halaman login akan terlihat seperti. Anda melihat kami memiliki beberapa membentuk kelompok, memiliki kirimkan. Berikut adalah bagaimana Anda memutuskan apa yang ditampilkan di sana. Anda memiliki beberapa jenis tombol = "submit", dan kemudian Anda memiliki apa yang Anda inginkan untuk menampilkan tombol di. Jadi itulah bagaimana Anda akan membuatnya muncul sebagai apa pun yang Anda inginkan. 

Dan kita lihat di sini kita memiliki beberapa nama pengguna, beberapa password, dan ketika kita benar-benar memukul Kirim, itu akan menjadi beberapa pos, dan itu akan posting apa? Apa controller untuk tampilan ini? Ketika kita memukul Kirim, apa yang akan dipanggil? Apakah kita tahu? Ada di sini, jadi login.php. Sesuatu kalian akan mengimplementasikan. 

Sehingga Anda selalu bisa tahu apa yang akan menjadi disebut setelah anda menekan Kirim oleh baris ini pertama di sini. Apa bentuk tindakan adalah. Ketika formulir ini diajukan, tindakan apa yang kita ambil? Kita sebut login.php, dan kami menyebutnya dengan metode ini posting, yang memiliki informasi yang tersembunyi. OK? Jadi ini adalah pandangan Anda, dan kemudian jelas jika kita pergi ke login.php-- Apakah kita memilikinya belum? Ya. 

Jadi seperti yang kita lihat di sini, ini memiliki lebih banyak logika. Ini semua PHP kami di sini. Kami mencoba untuk melihat apakah itu adalah $ _GET, apakah itu $ _POST, memvalidasi hal, query, semua hal ini. Jadi mereka hanya tiga hal yang berbeda di sini. Anda tidak perlu untuk mengubah keadaan. Anda akan menciptakan hal-hal dalam template, mungkin, tapi sejauh HTML atau styling dari semua ini berjalan, Anda dapat meninggalkan sebagai polos atau sebagai rumit seperti yang Anda inginkan. 

Beberapa orang benar-benar ke dalamnya dan membuat beberapa website cukup mengagumkan. Anda tidak perlu melakukan itu. Jika Anda punya waktu, itu hal yang sangat keren. Anda bisa main-main dengan CSS dan HTML dan mendapatkan nuansa yang lebih baik untuk itu, tetapi tidak merasa tertekan untuk. Ada banyak untuk Anda lakukan pada back end dengan menerapkan login, dan mendaftar, dan semua hal-hal ini. 

Jadi mudah-mudahan yang membantu sedikit. kalian memiliki pertanyaan tentang apa pun yang kita sudah berakhir, sumber daya lainnya? Saya pasti akan mengirimkan semua contoh saya kode PHP untuk kalian, dan kemudian merasa bebas untuk mengambil gambar atau entah apa lagi ini. Juga itu secara online. Anda selalu bisa hanya menonton lagi. Jadi, jika itu saja, semua orang baik? Ya. 

AUDIENCE: Saya hanya ingin untuk mengkonfirmasi, ketika kita melakukan pilih di SQL, Bintang berarti segalanya, kan? Allison Buchholtz-AU: Ya. AUDIENCE: Dan kemudian jika Anda tidak memiliki bintang, jika Anda ingin mengambil dari tertentu baris, maka Anda hanya menempatkan nama of-- Allison Buchholtz-AU: Nama baris dan apa yang Anda inginkan Anda ingin nilai. 

AUDIENCE: Dan kemudian tanggal. Allison Buchholtz-AU: Apapun Anda sedang mencari, ya. Dengan cara yang sama, jika Anda DELETE * dari beberapa meja, itu akan menghapus segala sesuatu. Jadi, * hanya liar kartu untuk semuanya. 

AUDIENCE: OK. 

Allison Buchholtz-AU: Cool. Mengagumkan. Yah, memiliki besar Senin, guys. Sampai ketemu minggu depan. Good luck pada pset Anda.