1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Selamat Datang bagian untuk minggu ini. 3 00:00:08,440 --> 00:00:10,040 Saya tidak Andi. 4 00:00:10,040 --> 00:00:14,590 Andi telah jatuh sakit hari ini, dan saya telah semacam disebut di menit terakhir 5 00:00:14,590 --> 00:00:15,700 untuk mengambil alih. 6 00:00:15,700 --> 00:00:20,920 Ini musim flu, jadi pastikan bahwa Anda tinggal bersih, mencuci tangan Anda, 7 00:00:20,920 --> 00:00:24,800 dan makan sehat sehingga Anda juga tidak terbaring di tempat tidur. 8 00:00:24,800 --> 00:00:26,870 >> Tapi tanpa lanjut ado, mari kita mulai. 9 00:00:26,870 --> 00:00:29,970 Hari ini, kita akan berbicara tentang PHP sedikit bit-- bagaimana 10 00:00:29,970 --> 00:00:33,900 PHP berkaitan dengan HTML, bagaimana berhubungan dengan CSS, dan beberapa web 11 00:00:33,900 --> 00:00:36,100 hal yang Anda lakukan pada tugas terakhir. 12 00:00:36,100 --> 00:00:37,930 Kita akan berbicara sedikit tentang SQL 13 00:00:37,930 --> 00:00:41,360 dan bagaimana Anda dapat bekerja dengan database, yang merupakan komponen yang cukup penting dari P 14 00:00:41,360 --> 00:00:43,650 mengatur 8-- P ditetapkan 7. 15 00:00:43,650 --> 00:00:44,480 P ditetapkan 7. 16 00:00:44,480 --> 00:00:48,400 >> Dan kemudian kita akan berbicara sedikit sedikit tentang bagaimana pandangan pengendali bekerja 17 00:00:48,400 --> 00:00:54,640 dan mengapa itu adalah filosofi di balik beberapa halaman web modern dan desain yang berbeda. 18 00:00:54,640 --> 00:00:58,760 Cukup banyak banyak jenis aplikasi dan aplikasi Anda mungkin kapal 19 00:00:58,760 --> 00:01:01,120 menggunakan model ini, lihat kerangka controller, 20 00:01:01,120 --> 00:01:02,890 bahwa Anda akan menggunakan di P ditetapkan 7, jadi saya akan 21 00:01:02,890 --> 00:01:05,220 berbicara sedikit tentang mengapa yang menjadi 22 00:01:05,220 --> 00:01:07,970 populer, mengapa hal itu penting dan bagus. 23 00:01:07,970 --> 00:01:12,052 Dan kemudian aku akhirnya akan pindah ke beberapa tips tentang mengatasi P ditetapkan 7. 24 00:01:12,052 --> 00:01:13,760 Dan jika kita punya waktu tersisa di akhir, 25 00:01:13,760 --> 00:01:17,320 kita benar-benar dapat melakukan beberapa bekerja pada itu bersama-sama. 26 00:01:17,320 --> 00:01:20,380 >> Jadi, PHP. 27 00:01:20,380 --> 00:01:23,790 Bahkan, Anda mungkin telah memperhatikan this-- Anda tidak benar-benar harus menyelam ke itu-- 28 00:01:23,790 --> 00:01:27,880 tapi P set 6 memiliki beberapa PHP kode yang sedang terjadi. 29 00:01:27,880 --> 00:01:34,710 Dan karena PHP adalah C-seperti bahasa, PHP, tidak seperti HTML dan CSS, 30 00:01:34,710 --> 00:01:39,030 adalah bahasa pemrograman, sedangkan HTML dan CSS yang statis. 31 00:01:39,030 --> 00:01:44,050 Mereka bahasa markup berurusan dengan gaya dan tata letak visual. 32 00:01:44,050 --> 00:01:46,230 PHP adalah real deal. 33 00:01:46,230 --> 00:01:51,590 >> PHP memiliki loop, memiliki conditions-- semua hal yang menyenangkan tentang C. 34 00:01:51,590 --> 00:01:56,190 Ini memiliki beberapa hal yang sedikit bit lebih baik dari C, yang akan kita lihat, 35 00:01:56,190 --> 00:01:59,760 tapi saya pikir cara termudah untuk berbicara tentang PHP hanya untuk menyelam di. 36 00:01:59,760 --> 00:02:04,087 Jadi aku akan pergi ke kanan ke dalam IDE pada saat ini. 37 00:02:04,087 --> 00:02:06,170 Hal pertama yang kita akan lakukan adalah benar-benar melihat 38 00:02:06,170 --> 00:02:10,169 sedikit di beberapa Kode PHP yang berada di P set 6. 39 00:02:10,169 --> 00:02:13,600 Jadi cara yang kita lakukan itu-- sebelumnya, cara yang kami sedang berlari 40 00:02:13,600 --> 00:02:18,550 server untuk alat adalah bahwa kita harus type-- 41 00:02:18,550 --> 00:02:21,750 baik menggunakan implementasi Anda atau pelaksanaan staf 42 00:02:21,750 --> 00:02:27,059 dari server.c dengan pergi ke direktori dan berjalan server.c dengan baik tanpa 43 00:02:27,059 --> 00:02:30,100 arguments-- sehingga sebut saja pada host lokal, yang adalah apa yang Anda mungkin 44 00:02:30,100 --> 00:02:31,849 melakukan sebagian besar time-- yang dan kemudian makan itu 45 00:02:31,849 --> 00:02:35,380 sebuah directory-- dengan yang digunakan sebagai akarnya 46 00:02:35,380 --> 00:02:38,310 mana yang akan situs menjadi dijalankan, pada dasarnya. 47 00:02:38,310 --> 00:02:42,180 >> Minggu ini untuk P ditetapkan 7, sebagai besar sebagai kode untuk server.c 48 00:02:42,180 --> 00:02:47,580 adalah, ada orang-orang yang telah ditulis hal-hal baik selama di CS50 49 00:02:47,580 --> 00:02:49,630 yang memiliki sedikit fungsionalitas lebih, 50 00:02:49,630 --> 00:02:52,920 sebuah program server yang mampu berurusan dengan lebih sedikit 51 00:02:52,920 --> 00:02:56,350 seluk-beluk yang kita akan lihat di kedua P ditetapkan 7 dan P ditetapkan 8. 52 00:02:56,350 --> 00:03:01,410 Dan cara yang Anda mulai menaiki server dengan hanya mengetik, "apache50." 53 00:03:01,410 --> 00:03:03,960 >> Dan sebelum Anda melakukan apa-apa, Anda ingin memastikan 54 00:03:03,960 --> 00:03:06,070 bahwa Apache 50 tidak sudah berjalan seperti itu 55 00:03:06,070 --> 00:03:08,130 di mesin saya, yang saya lakukan untuk menguji itu. 56 00:03:08,130 --> 00:03:10,320 Dan Anda melakukannya dengan menelepon apache50. 57 00:03:10,320 --> 00:03:14,070 Berhenti, dan Anda akan melihat bahwa itu berhenti server web, jika Anda dapat melihat ada 58 00:03:14,070 --> 00:03:16,340 di bagian bawah jendela terminal. 59 00:03:16,340 --> 00:03:21,090 Dan kemudian hanya untuk memulai, kami akan memanggil, "apache50 mulai." 60 00:03:21,090 --> 00:03:23,150 Dan kemudian kita akan memberi makan direktori. 61 00:03:23,150 --> 00:03:26,950 >> Sekarang, karena kita ingin melihat di beberapa P set 6 kode 62 00:03:26,950 --> 00:03:32,850 bahwa kami telah dilaksanakan, saya benar-benar disalin sedikit dari P 63 00:03:32,850 --> 00:03:37,090 set 6 kode ke folder saya sendiri, yang Anda dapat melihat di sebelah kiri ada. 64 00:03:37,090 --> 00:03:40,170 Ini disebut "SECTION8" dalam huruf kapital semua 65 00:03:40,170 --> 00:03:44,510 karena aku hanya begitu bersemangat menjadi live-streaming hari ini. 66 00:03:44,510 --> 00:03:47,330 >> Jadi jika kita menjalankan ini, seharusnya semua bekerja cukup efektif. 67 00:03:47,330 --> 00:03:52,350 Ia mengatakan, OK, situs kami sekarang tersedia di alamat IDE, 68 00:03:52,350 --> 00:03:57,710 pada dasarnya, yang adalah apa yang Anda gunakan persis seperti di P mengatur 7-- P set 6. 69 00:03:57,710 --> 00:04:00,899 Semua indeks saya indeks satu hari ini. 70 00:04:00,899 --> 00:04:02,940 Jadi kita bisa pergi ke yang alamat, jika Anda akan ingat, 71 00:04:02,940 --> 00:04:05,710 dengan hanya mengklik ini sedikit tombol di kanan atas. 72 00:04:05,710 --> 00:04:14,200 >> Dan Anda akan ingat kode ini, yang terjadi ketika Anda pergi ke hello.php. 73 00:04:14,200 --> 00:04:18,000 Dan apa kode dirancang untuk lakukan adalah ketika Anda mengetik sebuah nama 74 00:04:18,000 --> 00:04:20,550 sini-jika Anda mengatakan Sam karena itulah saya name-- 75 00:04:20,550 --> 00:04:23,620 dan saya klik Say Hello, ketika kami pergi ke halaman berikutnya, 76 00:04:23,620 --> 00:04:25,270 Nama yang seharusnya ditampilkan. 77 00:04:25,270 --> 00:04:28,550 Ini akan mengatakan, "Halo, Sam" atau "Hello," nama apa pun yang Anda 78 00:04:28,550 --> 00:04:32,470 dimasukkan ke dalamnya meskipun kami pergi ke halaman web yang sama sekali baru. 79 00:04:32,470 --> 00:04:36,610 >> Dan ini adalah semacam hal bahwa PHP dapat melakukannya untuk Anda. 80 00:04:36,610 --> 00:04:42,840 PHP mampu melewatkan data antara dua halaman web. 81 00:04:42,840 --> 00:04:44,390 Ini adalah halaman yang sama sekali berbeda. 82 00:04:44,390 --> 00:04:46,990 Anda akan melihat judul "halo" di sini. 83 00:04:46,990 --> 00:04:49,080 Sebenarnya, mereka memiliki judul yang sama, tapi aku 84 00:04:49,080 --> 00:04:52,560 berjanji mereka web yang berbeda halaman jika kita melihat sumber. 85 00:04:52,560 --> 00:04:55,890 Dan Anda dapat melewati data yang dimasukkan dalam kolom teks ini, 86 00:04:55,890 --> 00:04:59,830 Anda mengirimkannya ke yang berikutnya Halaman yang sedang dipanggil, 87 00:04:59,830 --> 00:05:02,490 dan kemudian data yang mampu berada di sana dalam bentuk yang sekarang. 88 00:05:02,490 --> 00:05:04,810 >> Sekarang kita belum diimplementasikan ini diri kita sendiri, yang 89 00:05:04,810 --> 00:05:08,710 adalah apa yang akan kita lakukan sekarang untuk semacam mendapatkan rasa untuk bagaimana PHP bekerja, 90 00:05:08,710 --> 00:05:15,070 tetapi gagasan utama adalah bahwa Anda bisa PHP-- semacam memikirkan seperti fungsi. 91 00:05:15,070 --> 00:05:18,570 Sesuatu yang PHP dapat membiarkan Anda lakukan adalah dapat mengambil parameter 92 00:05:18,570 --> 00:05:24,710 yang Anda masukan ke dalam halaman HTML melalui penggunaan PHP dan bentuk, 93 00:05:24,710 --> 00:05:29,960 dan dapat melewati mereka sebagai parameter ke halaman berikutnya bahwa beban up. 94 00:05:29,960 --> 00:05:35,110 >> Dalam hal ini, kita loading ini Halaman dengan "Say hello" tombol. 95 00:05:35,110 --> 00:05:38,960 Tapi untuk saat ini, aku benar-benar menghapus beberapa kode yang 96 00:05:38,960 --> 00:05:44,850 di hello.php yang sedang dijalankan yang benar-benar menampilkan "halo, 97 00:05:44,850 --> 00:05:49,680 dunia "atau" halo, Sam "atau "Halo," apa pun itu hanya masukan. 98 00:05:49,680 --> 00:05:53,620 Jadi untuk sekarang, kami akan melakukan itu, pada dasarnya. 99 00:05:53,620 --> 00:05:56,570 Kita akan menciptakan itu dan juga menambahkan beberapa fungsionalitas lebih, 100 00:05:56,570 --> 00:06:00,210 melakukan sedikit lebih dengan itu, melihat apa PHP benar-benar mampu. 101 00:06:00,210 --> 00:06:04,870 >> Jadi pertama, mari kita bicara tentang file ini, hello.php. 102 00:06:04,870 --> 00:06:07,440 Jadi jika kita tampilannya dalam sedikit bit-- dan sekarang aku 103 00:06:07,440 --> 00:06:10,520 semacam mencoba untuk menggulung cara around-- ada kita pergi. 104 00:06:10,520 --> 00:06:14,220 Anda akan melihat itu disebut hello.php, namun sintaks itu 105 00:06:14,220 --> 00:06:16,880 terlihat seperti file HTML. 106 00:06:16,880 --> 00:06:20,380 Hal ini karena PHP aktual dalam file ini 107 00:06:20,380 --> 00:06:25,220 adalah semua terjebak antara Pertanyaan blok tanda-tanda sisipan. 108 00:06:25,220 --> 00:06:28,610 Semuanya di sini dianggap kode PHP. 109 00:06:28,610 --> 00:06:32,040 >> Dan Anda akan melihat bahwa ketika saya melakukan komentar, 110 00:06:32,040 --> 00:06:35,320 Anda akan melihat familiar dua garis miring ke depan. 111 00:06:35,320 --> 00:06:38,440 Dan jika Anda ingat, di HTML, jika saya ketik komentar, 112 00:06:38,440 --> 00:06:42,540 terlihat sesuatu yang lebih dekat ke ini, yang merupakan komentar dalam HTML. 113 00:06:42,540 --> 00:06:46,570 Jadi benar-benar segala sesuatu antara dua sudut kurung ini 114 00:06:46,570 --> 00:06:50,060 sekarang kode PHP, yang tercermin dalam kenyataan 115 00:06:50,060 --> 00:06:53,270 bahwa simbol komentar kecil ini berubah menjadi komentar. 116 00:06:53,270 --> 00:06:58,420 >> Jadi setiap kali Anda menulis kode PHP, bahkan jika tidak ada kode HTML di luar itu, 117 00:06:58,420 --> 00:07:02,720 itu selalu akan menjadi ditutupi dalam kurung sudut ini 118 00:07:02,720 --> 00:07:04,080 dengan tanda tanya. 119 00:07:04,080 --> 00:07:08,260 Anda dapat semacam berpikir tentang bagaimana semua itu-- dari kode yang berlari dalam program C Anda 120 00:07:08,260 --> 00:07:13,950 tertutup dalam int main, batal, penjepit keriting, akhir pernyataan penjepit keriting. 121 00:07:13,950 --> 00:07:17,100 Dan Anda akan melihat kurung kurawal di PHP juga, tapi ini adalah semacam 122 00:07:17,100 --> 00:07:20,490 seperti metode utama PHP. 123 00:07:20,490 --> 00:07:25,630 >> Jadi sekarang, bagaimana kita melakukan sesuatu di PHP? 124 00:07:25,630 --> 00:07:29,190 Sekarang, PHP adalah pemrograman bahasa yang sangat C-seperti, 125 00:07:29,190 --> 00:07:30,970 tetapi beroperasi di web. 126 00:07:30,970 --> 00:07:33,270 Jadi satu hal yang Anda akan immediately-- satu 127 00:07:33,270 --> 00:07:38,130 satu hal pertama yang Anda benar-benar melakukan dengan C Anda dicetak barang keluar, kan? 128 00:07:38,130 --> 00:07:42,290 Jadi di C kita melakukan itu dengan fungsi printf. 129 00:07:42,290 --> 00:07:46,430 Kami berikan itu string, mungkin dengan garis baru, 130 00:07:46,430 --> 00:07:49,850 dan kemudian kami dihentikan dengan titik koma. 131 00:07:49,850 --> 00:07:53,790 >> Jadi cara yang kita akan melakukan itu di PHP-- karena itu tidak cukup printf. 132 00:07:53,790 --> 00:07:55,940 Ini sedikit sintaks yang berbeda. 133 00:07:55,940 --> 00:08:02,580 Cara kita mencetak hal-hal PHP adalah kita mengatakan, "echo hello" 134 00:08:02,580 --> 00:08:04,180 atau "echo" kata apapun. 135 00:08:04,180 --> 00:08:09,830 Dan yang memiliki efek melakukan printf dengan string, "Halo." 136 00:08:09,830 --> 00:08:11,990 Dan itu menambah baris baru untuk itu. 137 00:08:11,990 --> 00:08:16,000 >> Jadi mari kita sekarang membuat sure-- Saya akan tampilannya lagi sedikit bit-- 138 00:08:16,000 --> 00:08:18,250 mari kita pastikan bahwa kode yang bekerja 139 00:08:18,250 --> 00:08:21,030 karena mungkin ada sangat juga menjadi bug dalam kode ini 140 00:08:21,030 --> 00:08:22,880 bahwa kita harus mengatasi. 141 00:08:22,880 --> 00:08:25,860 Sehingga server sudah berjalan. 142 00:08:25,860 --> 00:08:30,630 Jadi jika kita gulir kembali turun ke bawah, yup, server masih berjalan. 143 00:08:30,630 --> 00:08:34,510 Jadi jika kita hanya tekan pada ini sedikit yang tepat di sini- 144 00:08:34,510 --> 00:08:37,620 welcome-- kita harus get-- besar. 145 00:08:37,620 --> 00:08:39,930 >> Kami masih sedang memiliki akrab "Say hello" dialog, 146 00:08:39,930 --> 00:08:45,750 tetapi ketika saya ketik "hi," kita akan melihat bahwa teks "hello" memang 147 00:08:45,750 --> 00:08:50,080 dicetak, yang persis seperti kami harapkan karena bergema di PHP 148 00:08:50,080 --> 00:08:53,190 adalah seperti sebuah pernyataan printf. 149 00:08:53,190 --> 00:09:01,410 Jadi kembali ke kode, bagaimana di P set 6 lakukan kode distribusi Anda disediakan 150 00:09:01,410 --> 00:09:05,920 membuatnya sehingga PHP akan Output hal yang Anda 151 00:09:05,920 --> 00:09:07,920 diketik di atas layar sebelumnya? 152 00:09:07,920 --> 00:09:10,350 >> Dan untuk jenis memeriksa mengapa itu terjadi, kami 153 00:09:10,350 --> 00:09:15,510 akan masuk ke index.html, yang adalah file asli, file yang 154 00:09:15,510 --> 00:09:18,710 muncul di layar ini dengan "Say hello" tombol. 155 00:09:18,710 --> 00:09:20,950 Anda melihat bahwa ada semua hal klasik 156 00:09:20,950 --> 00:09:26,910 kami telah datang ke harapkan dari HTML seperti sebagai hal-hal ini, tag ini tertutup 157 00:09:26,910 --> 00:09:31,080 dalam kurung sudut, seperti PHP tapi tanpa tanda tanya, 158 00:09:31,080 --> 00:09:34,650 yang menunjukkan hal khusus untuk HTML. 159 00:09:34,650 --> 00:09:36,895 Kami memiliki judul, yang merupakan "halo." 160 00:09:36,895 --> 00:09:41,010 Dan Anda akan melihat bahwa seperti yang kita lihat, judul adalah "halo" dalam kedua kasus. 161 00:09:41,010 --> 00:09:43,260 Mari kita mengubah satu ini untuk "mengatakan" supaya kita 162 00:09:43,260 --> 00:09:48,170 dapat membedakan diri di mana kita berada. 163 00:09:48,170 --> 00:09:49,600 >> Tapi kita punya tubuh. 164 00:09:49,600 --> 00:09:52,690 Dan kemudian sedikit menarik, bit yang muncul dalam HTML, 165 00:09:52,690 --> 00:09:54,530 apakah ini bentuk elemen. 166 00:09:54,530 --> 00:09:56,370 Dan jadi kita punya formulir. 167 00:09:56,370 --> 00:09:58,330 Dan ini adalah kuncinya. 168 00:09:58,330 --> 00:10:00,530 Ini adalah bagaimana kita bekerja dengan PHP. 169 00:10:00,530 --> 00:10:05,790 Parameter aksi bentuk mengatakan bahwa hello.php 170 00:10:05,790 --> 00:10:09,310 adalah apa yang kita akan mengirim nilai-nilai dalam formulir ini untuk. 171 00:10:09,310 --> 00:10:13,830 Di sinilah kita lewat parameter, sehingga untuk berbicara. 172 00:10:13,830 --> 00:10:18,680 >> Anda akan melihat hal lain di sini adalah bahwa metode ini "mendapatkan." 173 00:10:18,680 --> 00:10:24,450 Ada dua utama metode yang akan 174 00:10:24,450 --> 00:10:28,750 akan menggunakan PHP untuk melewatkan data antara halaman web websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- dalam tugas ini. 176 00:10:30,500 --> 00:10:34,070 Dan metode-metode yang "mendapatkan" dan "pos." 177 00:10:34,070 --> 00:10:37,010 Ada beberapa halus perbedaan antara mendapatkan dan pasca 178 00:10:37,010 --> 00:10:40,520 bahwa kita akan mendapatkan into-- kami akan "mendapatkan" ke dalam, jika Anda mau. 179 00:10:40,520 --> 00:10:44,030 >> Tapi untuk semua maksud dan tujuan, mendapatkan dan posting 180 00:10:44,030 --> 00:10:47,120 keduanya hanya cara yang Anda melewati parameter 181 00:10:47,120 --> 00:10:49,500 dengan eksekusi yang sedikit berbeda. 182 00:10:49,500 --> 00:10:53,500 Untuk saat ini, kita akan menggunakan mendapatkan karena mendapatkan adalah apa yang digunakan awalnya 183 00:10:53,500 --> 00:10:57,340 dalam file PHP dari P set 6. 184 00:10:57,340 --> 00:11:00,850 Dan sebenarnya, jika kita masuk dan melihat sebelum kita telah mengedit apa-apa lagi, 185 00:11:00,850 --> 00:11:03,090 Aku akan mengatakan hi to-- siapa namamu? 186 00:11:03,090 --> 00:11:03,812 >> AUDIENCE: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: Oh, gosh. 188 00:11:04,770 --> 00:11:05,600 Saya tidak tahu bagaimana mengeja itu. 189 00:11:05,600 --> 00:11:06,766 Bisakah Anda mengejanya bagi saya? 190 00:11:06,766 --> 00:11:08,710 AUDIENCE: E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> AUDIENCE: Ya. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Sempurna. 194 00:11:10,960 --> 00:11:11,210 OKE. 195 00:11:11,210 --> 00:11:12,751 Saya kira saya memang tahu bagaimana mengeja itu. 196 00:11:12,751 --> 00:11:13,510 Maaf tentang itu. 197 00:11:13,510 --> 00:11:16,560 Tetapi jika kita mengatakan "Say halo," itu bukan itu tidak akan muncul di layar 198 00:11:16,560 --> 00:11:18,476 namun karena kita diubah kode sedikit. 199 00:11:18,476 --> 00:11:21,290 Tetapi jika kita "Menyapa" - OK, jadi "halo" di sini. 200 00:11:21,290 --> 00:11:24,137 Tetapi jika kita mengambil lebih dekat melihat URL sendiri, 201 00:11:24,137 --> 00:11:26,220 kita akan melihat bahwa itu berakhir dengan hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Jadi, ini adalah cara berkomunikasi ke halaman web berikutnya 204 00:11:37,180 --> 00:11:39,240 parameter yang sudah kita lewati. 205 00:11:39,240 --> 00:11:40,870 Kami mengatakan nama = Elliot. 206 00:11:40,870 --> 00:11:46,290 Dan itulah akhirnya bagaimana P ditetapkan 6 diakses variabel yang kami melewati di 207 00:11:46,290 --> 00:11:47,520 melalui form. 208 00:11:47,520 --> 00:11:51,470 Dan ini adalah sesuatu yang adalah khas permintaan get. 209 00:11:51,470 --> 00:11:57,480 Permintaan get membuat parameter dikenal di URL website. 210 00:11:57,480 --> 00:12:01,190 >> Dan Anda akan ingat, juga, di P menetapkan 6 yang Anda 211 00:12:01,190 --> 00:12:04,450 harus menulis fungsi yang berurusan dengan fakta 212 00:12:04,450 --> 00:12:09,700 bahwa permintaan string ini bisa ada setelah file. 213 00:12:09,700 --> 00:12:14,684 Mungkin ada tanda tanya diikuti oleh dasarnya setiap jumlah karakter. 214 00:12:14,684 --> 00:12:16,350 Dan itu persis apa yang terjadi di sini. 215 00:12:16,350 --> 00:12:21,280 Dan alasan Anda harus mengurai bahwa dalam pelaksanaan Anda server.c di P 216 00:12:21,280 --> 00:12:27,570 set 6 adalah agar Anda bisa melihat kode PHP yang nama = Elliot. 217 00:12:27,570 --> 00:12:30,460 Anda perlu untuk dapat mengurai bahwa dari URL 218 00:12:30,460 --> 00:12:35,900 sehingga file PHP yang bersangkutan tahu apa itu berurusan dengan. 219 00:12:35,900 --> 00:12:39,350 >> Jadi mudah-mudahan ini memberikan motivasi untuk server.c 220 00:12:39,350 --> 00:12:43,900 sekarang kita pindah luar C ke PHP. 221 00:12:43,900 --> 00:12:48,240 Jadi mari kita benar-benar fokus pada mengakses hal melewati permintaan get sekarang 222 00:12:48,240 --> 00:12:48,880 pada pokoknya. 223 00:12:48,880 --> 00:12:50,157 Aku akan menyimpan ini. 224 00:12:50,157 --> 00:12:51,240 Kami tidak mengubah apa-apa. 225 00:12:51,240 --> 00:12:56,080 Sepertinya kita punya field input. 226 00:12:56,080 --> 00:12:58,550 >> Kami sedang menyiapkan beberapa properti, seperti yang bisa kita lakukan HTML. 227 00:12:58,550 --> 00:12:59,550 Ini adalah hal-hal sederhana. 228 00:12:59,550 --> 00:13:00,580 Kita tidak perlu ini. 229 00:13:00,580 --> 00:13:03,750 Tapi kami punya autocomplete off, yang pada dasarnya says-- Anda tahu, 230 00:13:03,750 --> 00:13:05,710 ketika Anda mengetik hal-hal ke web, kadang-kadang 231 00:13:05,710 --> 00:13:07,355 ia mencoba untuk mengisi untuk Anda. 232 00:13:07,355 --> 00:13:08,230 Jadi itu adalah hal yang menyenangkan. 233 00:13:08,230 --> 00:13:11,700 Kami ingin mematikannya untuk tujuan ini. 234 00:13:11,700 --> 00:13:13,970 Itu adalah keputusan CS50. 235 00:13:13,970 --> 00:13:15,640 Jadi kita dapat menghapus bahwa jika kita ingin. 236 00:13:15,640 --> 00:13:19,510 >> Autofocus hanya tongkat kursor dalam bentuk yang tepat di awal. 237 00:13:19,510 --> 00:13:21,060 Sekali lagi, tidak terlalu penting. 238 00:13:21,060 --> 00:13:26,220 >> Tapi nama = "nama" - itu sedikit rumit karena itu nama dan nama. 239 00:13:26,220 --> 00:13:28,730 Tapi kita bisa telah mengubah ini untuk sesuatu yang lain. 240 00:13:28,730 --> 00:13:30,563 Dan pada kenyataannya, itu apa yang akan kita lakukan sekarang. 241 00:13:30,563 --> 00:13:34,830 Kami akan mengatakan "orang," yang adalah semacam nama 242 00:13:34,830 --> 00:13:36,790 jika seseorang didefinisikan oleh nama mereka. 243 00:13:36,790 --> 00:13:41,480 >> Jadi mari kita tutup ini, membuka kembali website kami 244 00:13:41,480 --> 00:13:46,110 karena server kami masih berjalan Apache 50, dan kita akan mengatakan, halo, inilah 245 00:13:46,110 --> 00:13:47,200 Elliot lagi. 246 00:13:47,200 --> 00:13:48,460 Kenapa tidak? 247 00:13:48,460 --> 00:13:49,220 Halo. 248 00:13:49,220 --> 00:13:52,880 Dan jika kita pergi di sini, kita akan melihat maka bukan nama = Elliot, 249 00:13:52,880 --> 00:13:55,200 ia mengatakan orang = Elliot. 250 00:13:55,200 --> 00:14:00,060 Dan itu merupakan akibat langsung dari fakta bahwa kita hanya mengubah nama = "orang." 251 00:14:00,060 --> 00:14:06,840 >> Jadi dalam elemen input bentuk HTML, kolom nama 252 00:14:06,840 --> 00:14:10,590 adalah identifier untuk parameter yang sedang lewat. 253 00:14:10,590 --> 00:14:14,250 Ini seperti jika Anda membuat fungsi "menambahkan" yang mengambil di dua bilangan bulat 254 00:14:14,250 --> 00:14:16,670 dan Anda mengatakan int a dan int b. 255 00:14:16,670 --> 00:14:22,680 Itu akan menjadi sebuah nama, dan jika Anda ingin bentuk lain, yang 256 00:14:22,680 --> 00:14:27,800 yang bisa kita lakukan hanya dengan menyalin dan paste, maka kita akan memiliki nama b. 257 00:14:27,800 --> 00:14:31,030 >> Jadi sekarang kita akan memiliki dua parameter yang sedang melewati 258 00:14:31,030 --> 00:14:36,970 sampai ke website-- berikutnya halaman web berikutnya, hello.php. 259 00:14:36,970 --> 00:14:39,770 Dan kita benar-benar bisa melihat itu lagi jika kita ingin. 260 00:14:39,770 --> 00:14:44,830 Ini adalah cara termudah untuk menangani kode web dalam IDE, pada dasarnya. 261 00:14:44,830 --> 00:14:47,940 Anda memulai server, mendapatkannya berjalan, dan kemudian setiap kali Anda 262 00:14:47,940 --> 00:14:50,649 membuat beberapa perubahan, hanya dekat file yang hanya untuk menjadi aman. 263 00:14:50,649 --> 00:14:52,440 Menekan tombol kembali adalah sedikit rumit 264 00:14:52,440 --> 00:14:55,800 karena mungkin memuat sebelumnya versi, bukan yang paling update. 265 00:14:55,800 --> 00:14:59,200 >> Dan kemudian Anda klik Anda tombol lagi, pop kanan up-- oh, 266 00:14:59,200 --> 00:15:00,510 dan sekarang ada dua bentuk. 267 00:15:00,510 --> 00:15:10,440 Dan jika kita ketik satu hal ke masing-masing satu-- "jason Hirshhorn," untuk instance-- 268 00:15:10,440 --> 00:15:11,590 kami menyapa. 269 00:15:11,590 --> 00:15:12,840 Kami memandang parameter kami. 270 00:15:12,840 --> 00:15:18,910 Sepertinya kita punya, sebagai diharapkan, a = jason dan b = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 yang mewakili dua parameter bahwa kita dilewatkan ke fungsi ini. 272 00:15:23,760 --> 00:15:27,900 >> Jadi sekarang mari kita benar-benar bisa melaksanakan fungsi yang kita 273 00:15:27,900 --> 00:15:30,840 telah di P set 6. 274 00:15:30,840 --> 00:15:32,490 Jadi sekarang kami hanya bergema halo. 275 00:15:32,490 --> 00:15:34,310 Dan itu tidak terlalu berguna. 276 00:15:34,310 --> 00:15:38,530 Kami ingin echo beberapa variabel yang disahkan kepada kami. 277 00:15:38,530 --> 00:15:40,320 Dan kita tahu nama variabel ini. 278 00:15:40,320 --> 00:15:41,770 Kami memiliki dan kami telah b. 279 00:15:41,770 --> 00:15:43,500 Jadi kita bisa memilih untuk echo salah satu. 280 00:15:43,500 --> 00:15:45,470 >> Tapi bagaimana kita mengaksesnya? 281 00:15:45,470 --> 00:15:48,820 Nah, ada tertentu variabel global di PHP. 282 00:15:48,820 --> 00:15:51,240 Dan aku akan menulis mereka dalam komentar di sini. 283 00:15:51,240 --> 00:15:59,910 Dua yang paling penting adalah mendapatkan dan posting untuk tujuan kita sekarang. 284 00:15:59,910 --> 00:16:05,350 Ini adalah array atau, teknis, kamus 285 00:16:05,350 --> 00:16:10,540 di mana variabel kita bahwa kita melewati ke hidup halaman web berikutnya. 286 00:16:10,540 --> 00:16:14,520 Dan kita akan segera melihat bagaimana menggunakannya. 287 00:16:14,520 --> 00:16:19,720 >> Catatan singkat lain tentang kode PHP dan beberapa spesifik dari itu-- di C, 288 00:16:19,720 --> 00:16:23,260 untuk mendeklarasikan variabel atau menggunakan variabel, 289 00:16:23,260 --> 00:16:24,570 Anda pertama kali harus menyatakan mereka. 290 00:16:24,570 --> 00:16:30,860 Dan apa yang Anda harus lakukan ketika Anda menyatakan mereka adalah mengatakan int atau arang b. 291 00:16:30,860 --> 00:16:35,630 Anda harus mendeklarasikan jenis ini variabel sebelum Anda menciptakan mereka. 292 00:16:35,630 --> 00:16:38,800 PHP-- Anda tidak perlu melakukan semua itu. 293 00:16:38,800 --> 00:16:42,522 PHP tidak meminta jenis variabel. 294 00:16:42,522 --> 00:16:44,480 Dan cara yang Anda membuat variable-- agak 295 00:16:44,480 --> 00:16:49,930 daripada mengatakan int, char, string-- yang benar-benar char *, seperti yang kita tahu-- 296 00:16:49,930 --> 00:16:52,180 daripada melakukan semua itu, karena semuanya 297 00:16:52,180 --> 00:16:54,620 adalah dari jenis yang sama, typeless, kita bisa hanya 298 00:16:54,620 --> 00:16:59,210 menggunakan satu karakter, yang adalah tanda dolar. 299 00:16:59,210 --> 00:17:03,700 Dan Anda akan melihat itu sudah bermunculan up, sedikit autocomplete hal. 300 00:17:03,700 --> 00:17:11,380 Dan itu mengatakan bahwa _GET dan _POST dua pilihan yang saya miliki 301 00:17:11,380 --> 00:17:11,900 untuk saya. 302 00:17:11,900 --> 00:17:16,430 Beberapa hal-hal lain yang variabel global lainnya di PHP 303 00:17:16,430 --> 00:17:18,430 bahwa Anda akan menggunakan lebih jalannya P ditetapkan 7. 304 00:17:18,430 --> 00:17:20,569 Untuk saat ini kita akan fokus pada mendapatkan dan pasca. 305 00:17:20,569 --> 00:17:22,910 Tapi ini adalah membantu hal yang IDE melakukan 306 00:17:22,910 --> 00:17:24,980 di mana setelah Anda mengetik dalam tanda dolar, 307 00:17:24,980 --> 00:17:28,760 itu akan mulai mengisi variabel global atau variabel Anda sudah ditetapkan. 308 00:17:28,760 --> 00:17:34,360 >> Jadi jika Anda ingin mendefinisikan variabel yang disebut "string," 309 00:17:34,360 --> 00:17:38,290 Anda hanya bisa mengaturnya sama dengan "hi." 310 00:17:38,290 --> 00:17:40,100 Dan itu pada dasarnya sesederhana itu. 311 00:17:40,100 --> 00:17:44,720 Dan kemudian kita bisa melakukan sesuatu seperti "echo $ string." 312 00:17:44,720 --> 00:17:48,524 IDE harus membuang beberapa kesalahan jika aku melakukan sesuatu yang salah, 313 00:17:48,524 --> 00:17:50,190 jadi mudah-mudahan aku melakukan segalanya dengan benar. 314 00:17:50,190 --> 00:17:52,060 Tapi bug selalu jangan muncul. 315 00:17:52,060 --> 00:17:56,670 >> Hal lain yang rumit tentang PHP adalah bahwa hal itu tidak dikompilasi. 316 00:17:56,670 --> 00:18:00,640 Jadi dengan program C, Anda akan melakukan rutinitas sehari-hari of-- pada dasarnya, 317 00:18:00,640 --> 00:18:02,710 Anda akan membuat suntingan ke kode Anda, Anda akan menyimpannya, 318 00:18:02,710 --> 00:18:04,460 dan kemudian Anda akan membuatnya, di mana make adalah 319 00:18:04,460 --> 00:18:08,830 langkah yang disebut kompilator, dentang, untuk membuat kode Anda, teks ini 320 00:18:08,830 --> 00:18:10,570 mengajukan, menjadi executable. 321 00:18:10,570 --> 00:18:15,550 PHP adalah C-seperti, tapi itu dieksekusi on the fly oleh browser web Anda. 322 00:18:15,550 --> 00:18:17,640 Jadi tidak ada cara untuk mengetahui. 323 00:18:17,640 --> 00:18:19,790 >> Membuat akan membuang orang-orang kesalahan membantu, kan? 324 00:18:19,790 --> 00:18:22,190 Ini akan seperti, Anda tidak mendeklarasikan variabel ini 325 00:18:22,190 --> 00:18:23,320 sebelum Anda mencoba untuk menggunakannya. 326 00:18:23,320 --> 00:18:29,120 Anda melakukan semua segfault stuff-- buruk ini, segfault, semua hal semacam menyenangkan kali 327 00:18:29,120 --> 00:18:31,000 yang datang dengan make. 328 00:18:31,000 --> 00:18:33,920 PHP adalah pedang bermata dua karena Anda tidak akan mendapatkan kesalahan-kesalahan, 329 00:18:33,920 --> 00:18:37,770 tapi itu juga berarti bahwa Anda tidak akan tahu benar-benar apa yang salah dengan program anda 330 00:18:37,770 --> 00:18:39,840 jika Anda hanya menjalankannya dan itu tidak bekerja. 331 00:18:39,840 --> 00:18:45,130 Tapi debugger harus menunjukkan beberapa mudah-mudahan membantu hal-hal kecil 332 00:18:45,130 --> 00:18:47,950 sintaksis yang Anda dapat memperbaiki. 333 00:18:47,950 --> 00:18:52,850 >> Jadi sekarang jika kita pergi ke to-- mengatakan, mari kita tutup itu. 334 00:18:52,850 --> 00:18:54,522 Membuka kembali. 335 00:18:54,522 --> 00:18:55,480 Dan kita kembali ke sini. 336 00:18:55,480 --> 00:18:57,210 Jadi kita punya variabel dan variabel b. 337 00:18:57,210 --> 00:18:58,626 Dan ini tidak akan peduli pada akhirnya. 338 00:18:58,626 --> 00:19:01,850 Kami akan menelepon mereka h dan g tanpa alasan tertentu. 339 00:19:01,850 --> 00:19:03,120 >> Dan kami menyapa. 340 00:19:03,120 --> 00:19:07,480 Sekarang sepertinya string kita "hi" memang pencetakan. 341 00:19:07,480 --> 00:19:10,460 Kami menciptakan sebuah variabel yang disebut "string," set sama dengan "hi." 342 00:19:10,460 --> 00:19:15,520 Perhatikan bahwa kita tidak perlu melakukan malloc atau membuat array karakter. 343 00:19:15,520 --> 00:19:19,110 >> Dalam PHP, karena variabel adalah typeless, string 344 00:19:19,110 --> 00:19:22,230 adalah sama seperti char untuk semua maksud dan tujuan. 345 00:19:22,230 --> 00:19:23,570 Ini bisa menjadi "hi." 346 00:19:23,570 --> 00:19:26,340 Ini bisa saja k karakter. 347 00:19:26,340 --> 00:19:29,290 Ini bisa menjadi nomor 1. 348 00:19:29,290 --> 00:19:30,300 Dan tidak peduli. 349 00:19:30,300 --> 00:19:33,560 PHP tidak peduli jenis variabel Anda. 350 00:19:33,560 --> 00:19:34,390 Atau, itu tidak benar. 351 00:19:34,390 --> 00:19:36,240 Hal yang peduli ketika Anda mencoba dan melakukan hal-hal dengan itu, 352 00:19:36,240 --> 00:19:38,790 tetapi tidak peduli di langkah deklarasi. 353 00:19:38,790 --> 00:19:46,960 >> Dan seperti yang Anda bisa di C, Anda dapat mendeklarasikan string pada tumpukan seperti ini 354 00:19:46,960 --> 00:19:51,130 meskipun mengatakan "stack" adalah sedikit sedikit keliru potensial ketika 355 00:19:51,130 --> 00:19:52,230 kita sedang berbicara tentang PHP. 356 00:19:52,230 --> 00:19:54,020 Tapi kita tidak perlu khawatir tentang itu. 357 00:19:54,020 --> 00:19:55,936 Jadi kita punya string kita "hi," dan kami gema tali. 358 00:19:55,936 --> 00:19:58,880 Jadi sekarang kita telah membahas variabel. 359 00:19:58,880 --> 00:20:06,060 Jadi sekarang kita perlu bicara tentang mendapatkan dan posting dan melakukan hal terakhir yang 360 00:20:06,060 --> 00:20:12,660 diperlukan untuk benar-benar mendapatkan kembali hal ini untuk fungsi dari P set 6. 361 00:20:12,660 --> 00:20:14,990 Jadi sekarang kami bergema string, tapi kami 362 00:20:14,990 --> 00:20:17,080 harus variabel tersebut mendapatkan dan pasca. 363 00:20:17,080 --> 00:20:19,430 Dan karena kita menggunakan metode dapatkan, 364 00:20:19,430 --> 00:20:24,810 Tampaknya alam bahwa variabel kita yang kami tertarik, baik a dan b, 365 00:20:24,810 --> 00:20:29,870 akan berlokasi di array atau kamus, teknis mendapatkan. 366 00:20:29,870 --> 00:20:33,510 >> Jadi jika kami mendirikan mendapatkan seperti ini dengan groups-- Anda aku menekan masuk 367 00:20:33,510 --> 00:20:36,770 dan itu tidak seperti itu-- tetapi di sini kita telah mendapatkan. 368 00:20:36,770 --> 00:20:38,000 Dan sehingga mendapatkan sudah ada. 369 00:20:38,000 --> 00:20:41,380 Jadi kita sudah bisa mulai untuk mengakses beberapa unsur get. 370 00:20:41,380 --> 00:20:45,000 Jika kita mendapatkan, sintaks ini untuk array di PHP sangat C-seperti. 371 00:20:45,000 --> 00:20:47,900 Kami memiliki dua tanda kurung kami. 372 00:20:47,900 --> 00:20:53,440 >> Jadi jika kita mengatakan mendapatkan secara normal array, kita bisa mengakses 373 00:20:53,440 --> 00:20:55,600 indeks ke nol, indeks pertama. 374 00:20:55,600 --> 00:20:56,840 PHP adalah indeks nol. 375 00:20:56,840 --> 00:21:00,550 Kita dapat mengatakan nol, satu, hal two-- seperti ini. 376 00:21:00,550 --> 00:21:03,420 Dan saya telah mengatakan bahwa mendapatkan secara teknis kamus. 377 00:21:03,420 --> 00:21:08,290 Jadi apa PHP adalah melakukan di bawah tenda, yang sedikit lebih bagus daripada C, 378 00:21:08,290 --> 00:21:12,760 itu sudah memberikan Anda beberapa fungsi kamus, yang 379 00:21:12,760 --> 00:21:16,240 adalah tabel hash benar, atau mencoba, seharusnya. 380 00:21:16,240 --> 00:21:19,360 Atau, secara teknis bisa menjadi mencoba juga. 381 00:21:19,360 --> 00:21:25,500 Tapi PHP menerapkan tabel hash, yang membentuk sebuah kamus yang efektif. 382 00:21:25,500 --> 00:21:28,400 >> Dan kita tahu nama variabel kita, kan? 383 00:21:28,400 --> 00:21:32,440 Ini yang disahkan pada query string dengan PHP. 384 00:21:32,440 --> 00:21:37,290 Kami memiliki = h dan b = g mana dan b adalah nama-nama variabel. 385 00:21:37,290 --> 00:21:41,580 Jadi cara yang kita dapat mengakses nilai yang sesuai dengan kunci 386 00:21:41,580 --> 00:21:45,055 dalam kamus kami hanya dengan mengatakan _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Jadi sekarang kita memiliki _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 Dan jika kita hanya mengganti dalam gema kita, jika kita menggemakan _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 dan kami akan melihat apakah debugger melempar kesalahan tentang this-- 391 00:22:02,410 --> 00:22:05,620 kami akan menyimpan itu dan menutup ini. 392 00:22:05,620 --> 00:22:07,130 Membukanya. 393 00:22:07,130 --> 00:22:10,390 Jadi kita hanya melakukan hak sekarang, jadi b seharusnya tidak masalah. 394 00:22:10,390 --> 00:22:12,980 "dia" dan "dia" - "bersenandung." "dia" dan "hum." 395 00:22:12,980 --> 00:22:14,810 Kedengarannya bagus. 396 00:22:14,810 --> 00:22:18,040 >> Dan itu dicetak "nya," yang gila. 397 00:22:18,040 --> 00:22:21,920 Tapi itulah yang yang terjadi di P set 6. 398 00:22:21,920 --> 00:22:27,240 Pada dasarnya, apa yang P set 6 adalah doing-- echo hello, 399 00:22:27,240 --> 00:22:31,580 name-- mana memiliki nama variabel dan hanya 400 00:22:31,580 --> 00:22:35,520 meminta Anda untuk mengetik dalam sedikit teks. 401 00:22:35,520 --> 00:22:37,380 Ada juga beberapa kode tambahan di mana 402 00:22:37,380 --> 00:22:40,550 itu termasuk jika pernyataan, yang bisa kita lakukan sekarang. 403 00:22:40,550 --> 00:22:50,120 >> Kita dapat mengatakan jika ada, yang adalah fungsi dalam PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Dengan garis bawah, "nama" - yang pada dasarnya mengatakan, 405 00:22:55,110 --> 00:22:58,760 "jika nama telah diisi" karena kita bisa saja mengklik tombol 406 00:22:58,760 --> 00:23:02,580 untuk menyerahkan formulir tanpa mengetik sesuatu ke bidang itu. 407 00:23:02,580 --> 00:23:07,760 Dan kami membungkus bahwa dalam kita ramah kurung kurawal. 408 00:23:07,760 --> 00:23:09,175 Kita dapat memiliki pernyataan lain. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 Dan itu semua dalam sudut PHP braket, tanda tanya, angle bracket, 411 00:23:18,820 --> 00:23:20,040 jika Anda mau. 412 00:23:20,040 --> 00:23:21,750 >> Dan sekarang kita akan melihat apakah ini bekerja. 413 00:23:21,750 --> 00:23:26,300 Aku terus menunggu untuk itu untuk debug dan omong kosong keluar pada saya, pada dasarnya, 414 00:23:26,300 --> 00:23:28,410 tetapi belum. 415 00:23:28,410 --> 00:23:30,830 Mungkin sekarang akan karena saya berbicara tentang. 416 00:23:30,830 --> 00:23:31,330 Oke. 417 00:23:31,330 --> 00:23:32,510 Hal itu, sebenarnya. 418 00:23:32,510 --> 00:23:34,610 Jadi, tidak ada yang muncul. 419 00:23:34,610 --> 00:23:38,750 Itu karena sesuatu yang salah yang saya tulis dalam kode PHP. 420 00:23:38,750 --> 00:23:42,844 Dan saya sebutkan debugging rumit karena di PHP, kita 421 00:23:42,844 --> 00:23:45,260 tidak compile terlebih dahulu dan compiler tidak suka, 422 00:23:45,260 --> 00:23:46,710 di sinilah kesalahan Anda. 423 00:23:46,710 --> 00:23:49,690 >> Tapi apa yang bisa kita lakukan is-- lakukan orang ingat 424 00:23:49,690 --> 00:23:57,010 bagaimana melihat jaringan yang berbeda permintaan yang PHP-- atau website 425 00:23:57,010 --> 00:23:57,620 mengirim? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Melakukan ini di kuliah sekali atau dua kali. 427 00:24:00,290 --> 00:24:05,830 Anda ingat di mana kita pergi untuk menemukan utang yang berbeda dan 200 Mengadakan, 428 00:24:05,830 --> 00:24:09,780 semua kode ini yang sedang dikirim melalui HTTP dari halaman web ke halaman web? 429 00:24:09,780 --> 00:24:12,514 Apakah ada yang ingat di mana kita pergi untuk melakukan itu? 430 00:24:12,514 --> 00:24:13,787 >> AUDIENCE: Page Source. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: Sumber Halaman. 432 00:24:14,870 --> 00:24:15,890 Persis. 433 00:24:15,890 --> 00:24:19,230 Jika Anda pergi ke Halaman Source-- sempurna. 434 00:24:19,230 --> 00:24:21,630 Jadi Page Source menarik sampai inspektur. 435 00:24:21,630 --> 00:24:23,140 >> Dan aku menggunakan Safari. 436 00:24:23,140 --> 00:24:25,790 Banyak Anda mungkin akan akan menggunakan Chrome atau Firefox. 437 00:24:25,790 --> 00:24:27,750 Tapi selama Anda dalam browser-- yang modern 438 00:24:27,750 --> 00:24:29,500 dan merasa bebas untuk mengikuti bersama jika Anda ingin. 439 00:24:29,500 --> 00:24:32,560 Anda dapat mengetik kode ini atau hanya melihat ke dalam P set 6 440 00:24:32,560 --> 00:24:35,820 direktori untuk beberapa hal serupa. 441 00:24:35,820 --> 00:24:41,020 hello.php adalah apa yang kita saat ini bekerja pada meniru. 442 00:24:41,020 --> 00:24:42,476 >> Jadi ada berbagai tab. 443 00:24:42,476 --> 00:24:43,850 Kita bisa melihat semua sumber daya. 444 00:24:43,850 --> 00:24:45,810 Kita bisa melihat kode sumber. 445 00:24:45,810 --> 00:24:49,900 Jadi sepertinya tidak mendapatkan tubuh melewati pada akhirnya. 446 00:24:49,900 --> 00:24:54,890 Ini ditemukan kesalahan dalam PHP dan berhenti loading halaman web secara keseluruhan. 447 00:24:54,890 --> 00:24:58,320 Kami bahkan tidak memiliki akhir tag HTML atau apa pun. 448 00:24:58,320 --> 00:25:07,189 >> Dan jika kita melihat jaringan, kita bisa melihat bahwa kita sedang mengirimkan permintaan. 449 00:25:07,189 --> 00:25:07,980 Ini adalah domain. 450 00:25:07,980 --> 00:25:09,270 Ini adalah alamat. 451 00:25:09,270 --> 00:25:10,070 Ini dokumen. 452 00:25:10,070 --> 00:25:14,310 Kami menggunakan metode get. 453 00:25:14,310 --> 00:25:15,760 >> Dan itu merah. 454 00:25:15,760 --> 00:25:19,030 Atau, itu merah ketika saya tidak memilihnya. 455 00:25:19,030 --> 00:25:22,680 Bagaimana saya batalkan itu? 456 00:25:22,680 --> 00:25:23,980 Nah, itu merah. 457 00:25:23,980 --> 00:25:25,201 Biarkan saya menyegarkan. 458 00:25:25,201 --> 00:25:25,700 Itu ada. 459 00:25:25,700 --> 00:25:26,640 Sekarang merah. 460 00:25:26,640 --> 00:25:30,530 >> Jadi merah, yang berarti gagal, yang buruk. 461 00:25:30,530 --> 00:25:32,280 Jadi mari kita memeriksa mengapa hal itu gagal. 462 00:25:32,280 --> 00:25:37,070 Jadi semua bahwa Sumber Halaman bisa pada dasarnya memberitahu Anda adalah hal Anda 463 00:25:37,070 --> 00:25:38,720 tidak bekerja, yang sudah bisa kita lihat. 464 00:25:38,720 --> 00:25:42,100 Jadi idealnya ada akan menjadi alat yang lebih berguna. 465 00:25:42,100 --> 00:25:45,710 Dan ada beberapa ekstensi browser yang memungkinkan Anda untuk debug PHP, 466 00:25:45,710 --> 00:25:50,490 tapi kami tidak akan menulis satu ton PHP, 467 00:25:50,490 --> 00:25:53,190 jadi mungkin hanya terbaik untuk melihat melalui kode Anda 468 00:25:53,190 --> 00:25:56,760 hati-hati dan hanya memastikan bahwa itu tidak melakukan apa-apa lagi. 469 00:25:56,760 --> 00:26:03,876 >> Jadi mari kita lihat apakah format ini jika pernyataan di mana masalahnya. 470 00:26:03,876 --> 00:26:07,420 Saya ingin memuat bahwa kembali ke sini. 471 00:26:07,420 --> 00:26:09,830 Halo hai. 472 00:26:09,830 --> 00:26:11,350 Jadi ada masalah di sana. 473 00:26:11,350 --> 00:26:15,130 >> Jadi untuk sintaks yang benar PHP, PHP akan 474 00:26:15,130 --> 00:26:17,369 menjadi C-seperti dalam bahwa Anda akan melihat loop. 475 00:26:17,369 --> 00:26:18,410 Anda akan melihat jika pernyataan. 476 00:26:18,410 --> 00:26:20,920 Anda akan melihat semua teman-teman bahwa Anda telah menjadi akrab 477 00:26:20,920 --> 00:26:24,820 dengan lebih kursus semester CS50 ini. 478 00:26:24,820 --> 00:26:29,960 Tapi cara terbaik untuk mengetahui bagaimana melakukan sesuatu di PHP adalah untuk Google itu 479 00:26:29,960 --> 00:26:33,170 atau untuk melihat beberapa contoh kode PHP karena Anda tahu fungsi tersebut. 480 00:26:33,170 --> 00:26:35,080 >> Anda tahu apa yang Anda bisa lakukan dengan program ini. 481 00:26:35,080 --> 00:26:35,976 Anda dapat loop. 482 00:26:35,976 --> 00:26:37,600 Anda dapat loop sebanyak yang Anda inginkan. 483 00:26:37,600 --> 00:26:39,433 Anda dapat loop di semua macam cara yang berbeda. 484 00:26:39,433 --> 00:26:40,700 Anda dapat membuat fungsi. 485 00:26:40,700 --> 00:26:43,241 Anda dapat membuat fungsi yang memanggil fungsi-fungsi lainnya, fungsi 486 00:26:43,241 --> 00:26:44,150 yang menyebut diri mereka. 487 00:26:44,150 --> 00:26:45,733 Dan Anda memiliki nama untuk konsep-konsep ini. 488 00:26:45,733 --> 00:26:49,860 Anda punya rekursi, loop, jika, arus kontrol lainnya. 489 00:26:49,860 --> 00:26:51,300 Dan Google adalah teman terbaik Anda. 490 00:26:51,300 --> 00:26:53,540 Bahkan mengatakan, "PHP jika Pernyataan "dan ada akan 491 00:26:53,540 --> 00:26:57,740 menjadi ton posting dengan jawaban orang lain 492 00:26:57,740 --> 00:27:02,090 yang pernah memiliki pertanyaan serupa dengan Anda, yang baru memulai dengan PHP 493 00:27:02,090 --> 00:27:03,820 dan ingin tahu tentang hal sintaks. 494 00:27:03,820 --> 00:27:08,480 >> Karena kita memiliki kemewahan untuk mampu melihat kode di P set 6, 495 00:27:08,480 --> 00:27:14,980 kita benar-benar menariknya ke atas dan melihat bahwa OK, inilah sesuatu yang menarik. 496 00:27:14,980 --> 00:27:18,070 Jadi ini adalah apa yang sebenarnya tampak seperti di P set 6. 497 00:27:18,070 --> 00:27:20,340 Jadi jika kita pergi melalui ini, kita dapat melihat bahwa kami telah 498 00:27:20,340 --> 00:27:27,150 mendapat beberapa ini sedikit PHP-seperti tanda tanya bit. 499 00:27:27,150 --> 00:27:29,050 >> Dan tidak ada kurung kurawal. 500 00:27:29,050 --> 00:27:30,250 Ada titik dua. 501 00:27:30,250 --> 00:27:32,340 Dan ada keriting kawat gigi di PHP, tapi ini 502 00:27:32,340 --> 00:27:38,700 adalah format dan cara melakukan PHP yang bekerja dengan baik dengan HTML 503 00:27:38,700 --> 00:27:43,830 karena seperti yang Anda akan melihat, kita menutup off PHP ini bits-- yang elses 504 00:27:43,830 --> 00:27:49,770 dan seandainya dan semua itu-- dan kemudian kita interspersing HTML di dalamnya 505 00:27:49,770 --> 00:27:54,640 sementara masih mengikuti aliran kontrol yang ditetapkan oleh PHP. 506 00:27:54,640 --> 00:27:58,480 >> Jadi aku hanya akan berjalan cepat melalui ini 507 00:27:58,480 --> 00:28:01,740 karena itu banyak yang sama konsep yang kami lakukan sebelumnya. 508 00:28:01,740 --> 00:28:07,280 Kami punya jika tidak kosong, kurung, _GET_GET ["nama"]. 509 00:28:07,280 --> 00:28:08,500 Ini adalah semua hal yang sama. 510 00:28:08,500 --> 00:28:15,430 Kami menggunakan kamus _GET yang PHP mengirimkan atas permintaan dari bentuk, 511 00:28:15,430 --> 00:28:20,720 karena itu adalah parameter tindakan, dan metode ini mendapatkan. 512 00:28:20,720 --> 00:28:22,110 Dan kemudian yang berakhir itu. 513 00:28:22,110 --> 00:28:27,420 Usus besar adalah penanda untuk hanya melakukan hal ini jika jika pernyataan bernilai true. 514 00:28:27,420 --> 00:28:29,490 Ini seperti penjepit keriting. 515 00:28:29,490 --> 00:28:33,320 Dan pada kenyataannya, itu adalah penjepit keriting dalam bahasa lain seperti Python, 516 00:28:33,320 --> 00:28:37,070 yang mungkin terjadi jika Anda hanya melakukan itu untuk proyek akhir Anda. 517 00:28:37,070 --> 00:28:40,170 >> Dan kemudian baris ini, halo. 518 00:28:40,170 --> 00:28:41,510 Kemudian kita punya hal yang aneh ini. 519 00:28:41,510 --> 00:28:43,190 Kami punya lebih kurung. 520 00:28:43,190 --> 00:28:46,140 Tidak ada HTTP there-- atau PHP, maaf. 521 00:28:46,140 --> 00:28:47,250 Tapi ada tanda sama. 522 00:28:47,250 --> 00:28:50,625 Dan kemudian kita memiliki fungsi, htmlspecialchars (_GEThtmlspecialchars (_GET ["nama"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Ini adalah semacam seperti lebih versi lanjutan dari echo. 525 00:28:58,040 --> 00:29:01,450 Seperti kita telah menggemakan sebagai cara untuk mencetak hal-hal di PHP. 526 00:29:01,450 --> 00:29:03,890 Ini adalah fungsi yang didefinisikan dalam PHP yang 527 00:29:03,890 --> 00:29:08,160 akan menangani beberapa lebih jahat karakter dan nilai-nilai byte 528 00:29:08,160 --> 00:29:09,540 Anda bisa melewatinya. 529 00:29:09,540 --> 00:29:11,070 Itu selalu aman untuk menggunakan ini. 530 00:29:11,070 --> 00:29:14,930 Tapi gema akan melakukan pekerjaan baik-baik saja jika kita tidak 531 00:29:14,930 --> 00:29:17,620 berurusan dengan sesuatu yang terlalu jahat. 532 00:29:17,620 --> 00:29:20,340 >> Dan jadi ini memiliki sama Pengaruh pada dasarnya, 533 00:29:20,340 --> 00:29:26,360 hal ini di antara pertanyaan tanda dievaluasi oleh PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars mengembalikan HTML bagus Nilai dicetak dari _GET_GET ["nama"], yaitu 535 00:29:34,490 --> 00:29:36,010 apapun yang kita ketik di formulir. 536 00:29:36,010 --> 00:29:40,025 Dan kemudian akan menyapa, koma ruang, dan kemudian itu. 537 00:29:40,025 --> 00:29:42,910 Yang semuanya antara kurung sudut 538 00:29:42,910 --> 00:29:47,390 akan digantikan oleh apapun htmlspecialchars menempatkan. 539 00:29:47,390 --> 00:29:49,390 Jadi itu pada dasarnya sama untuk apa yang kita lakukan. 540 00:29:49,390 --> 00:29:54,760 Dan kami memiliki pernyataan lain yang halo dunia, yang masuk akal. 541 00:29:54,760 --> 00:29:58,070 Jadi sekarang mari kita kembali ke kami kode dan melihat exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Saya mengatakan ada, yang tidak hal yang kita ingin lakukan. 543 00:30:02,200 --> 00:30:05,370 Kami ingin mengatakan tidak kosong. 544 00:30:05,370 --> 00:30:10,020 >> Dan jadi ini harus bekerja sedikit bit, tidak kosong _GET_GET ["nama"] lebih baik. 545 00:30:10,020 --> 00:30:12,710 Dan bahwa penjepit keriting cocok dengan penjepit keriting. 546 00:30:12,710 --> 00:30:15,210 Kami punya kurung kurawal kami di sini. 547 00:30:15,210 --> 00:30:17,790 echo hello _GET ["nama"]. 548 00:30:17,790 --> 00:30:19,912 Mari kita lihat apakah ini bekerja sedikit lebih baik. 549 00:30:19,912 --> 00:30:21,350 Kami masih menjalankan server kami. 550 00:30:21,350 --> 00:30:23,910 Hello Jason. 551 00:30:23,910 --> 00:30:24,780 Hello Jason. 552 00:30:24,780 --> 00:30:25,810 Dan bekerja saat ini. 553 00:30:25,810 --> 00:30:29,860 Dan jadi itu bukti yang memang Anda bisa 554 00:30:29,860 --> 00:30:35,180 menggunakan kawat gigi keriting yang Anda kenal dan cinta dalam kode PHP di HTML. 555 00:30:35,180 --> 00:30:41,100 Kode PHP yang disediakan untuk Anda di pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 menyediakan cara lain melakukan hal yang sama. 557 00:30:44,760 --> 00:30:49,220 >> Jadi sekarang kita memiliki kekuatan. 558 00:30:49,220 --> 00:30:55,740 Kami memiliki fungsi untuk melaksanakan kode PHP yang kita lihat di pset 6 559 00:30:55,740 --> 00:30:57,390 oleh diri kita sendiri, pada dasarnya. 560 00:30:57,390 --> 00:31:01,350 Sebelum saya melanjutkan, apa adalah beberapa pertanyaan yang Anda miliki pada saat ini? 561 00:31:01,350 --> 00:31:02,066 Ya [tidak terdengar]. 562 00:31:02,066 --> 00:31:06,512 >> AUDIENCE: Jadi dalam versi di pset6, ketika Anda menjalankannya, ada ruang. 563 00:31:06,512 --> 00:31:09,330 Dan aku bisa melihat di mana ruang adalah setelah koma. [Tak terdengar] start 564 00:31:09,330 --> 00:31:10,700 braket terbuka. 565 00:31:10,700 --> 00:31:15,420 Bagaimana Anda menggabungkan ruang di cara Anda menulis kode Anda sendiri? 566 00:31:15,420 --> 00:31:17,910 >> SPEAKER: Itu adalah pertanyaan yang bagus. 567 00:31:17,910 --> 00:31:21,650 Dan jadi mari kita mencari tahu. 568 00:31:21,650 --> 00:31:24,450 Jadi itu pertanyaan yang benar-benar baik dan salah satu yang saya tidak menganggap. 569 00:31:24,450 --> 00:31:25,950 Tapi mari kita lakukan bersama-sama. 570 00:31:25,950 --> 00:31:30,280 >> Jadi pertama-tama, apa yang Aku melakukan dengan echo 571 00:31:30,280 --> 00:31:33,690 adalah ketika kita hanya gema halo, halo itu output. 572 00:31:33,690 --> 00:31:41,310 Jika kita menggemakan sekarang ini mendapatkan terpisah line, mari kita memeriksa apa yang terjadi. 573 00:31:41,310 --> 00:31:43,740 Jadi kita klik ini. 574 00:31:43,740 --> 00:31:45,220 Kami terus mengatakan, hi Jason. 575 00:31:45,220 --> 00:31:48,690 Jadi sekali lagi, kami tidak memiliki ruang ini. 576 00:31:48,690 --> 00:31:53,090 >> Dan itu karena, di PHP, ketika kita telah echo, 577 00:31:53,090 --> 00:31:55,820 tidak peduli berapa banyak spaces-- tidak, bukan V-- 578 00:31:55,820 --> 00:32:01,770 tidak peduli berapa banyak ruang kita masukkan ke dalam sini-jika kita sekarang beban yang lagi, 579 00:32:01,770 --> 00:32:03,010 hi Jason. 580 00:32:03,010 --> 00:32:05,770 Ya, lihat, semua orang ruang mendapat dimakan. 581 00:32:05,770 --> 00:32:08,020 Dan itu sesuatu yang fungsi gema tidak. 582 00:32:08,020 --> 00:32:11,110 >> Jadi untuk mengurus ruang itu, dan ini adalah 583 00:32:11,110 --> 00:32:14,960 salah satu alasan mengapa Anda tidak menggunakan gema 584 00:32:14,960 --> 00:32:18,200 dan Anda menggunakan htmlspecialchars gantinya. 585 00:32:18,200 --> 00:32:22,140 Saya ingin tahu apa yang akan terjadi jika kita melakukan ini 586 00:32:22,140 --> 00:32:26,700 di mana kita tertutup ruang dalam sebuah string. 587 00:32:26,700 --> 00:32:29,720 Saya jujur ​​tidak yakin apa akan terjadi ketika saya melakukan ini. 588 00:32:29,720 --> 00:32:30,790 >> Jadi itu salah satu cara. 589 00:32:30,790 --> 00:32:32,210 Itu salah satu cara untuk mengurusnya. 590 00:32:32,210 --> 00:32:34,840 Jika Anda membungkus ruang dalam string, maka ruang 591 00:32:34,840 --> 00:32:36,920 akan menjadi output baik oleh gema. 592 00:32:36,920 --> 00:32:41,930 Hal aman untuk dilakukan adalah untuk melakukan htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Itu selalu taruhan yang aman. 594 00:32:43,800 --> 00:32:47,050 Tapi sekarang kita memiliki cara untuk melakukan dengan gema jika perlu. 595 00:32:47,050 --> 00:32:50,700 Dan dengan cara yang sama, kita bisa gema baris baru, semua jenis yang 596 00:32:50,700 --> 00:32:53,550 barang Anda akrab lakukan di PHP. 597 00:32:53,550 --> 00:32:57,460 >> Orang lain, apa yang lagi pertanyaan bahwa orang lain memiliki 598 00:32:57,460 --> 00:33:01,090 pada saat ini tentang PHP? 599 00:33:01,090 --> 00:33:04,620 Jika orang muncul sedikit terlambat, Saya senang untuk tinggal setelah sedikit 600 00:33:04,620 --> 00:33:06,420 dan berbicara tentang beberapa awal. 601 00:33:06,420 --> 00:33:10,380 Dan itu juga semua livestreamed, dan diarsipkan, yang gila. 602 00:33:10,380 --> 00:33:13,960 >> Pokoknya, jadi sekarang mari kita melakukan beberapa lebih banyak barang canggih dengan PHP. 603 00:33:13,960 --> 00:33:18,790 Dan salah satu hal yang paling awal Anda diperkenalkan ke dalam C adalah untuk loop. 604 00:33:18,790 --> 00:33:24,060 Dan PHP memiliki lebih kuat untuk lingkaran disebut loop foreach. 605 00:33:24,060 --> 00:33:37,940 Dan sepertinya this-- untuk setiap kosong sebagai kosong, kurung keriting, melakukan hal tersebut. 606 00:33:37,940 --> 00:33:41,500 Jadi ini pada dasarnya adalah istilah a. 607 00:33:41,500 --> 00:33:45,380 >> Lihat, untuk loop sebagai konstruksi sintaksis 608 00:33:45,380 --> 00:33:50,590 telah dibuat di C dan di perakitan bahasa dan hal-hal seperti. 609 00:33:50,590 --> 00:33:56,300 Dirancang dalam C, tepatnya, sebagai singkatan untuk banyak jenis loop 610 00:33:56,300 --> 00:33:57,750 bahwa orang-orang akan melihat. 611 00:33:57,750 --> 00:34:01,230 Seperti ketika Anda menulis satu lingkaran, ada sering merupakan langkah inisialisasi 612 00:34:01,230 --> 00:34:04,700 dieksekusi tepat di awal, sebuah kondisi di mana loop akan stop-- 613 00:34:04,700 --> 00:34:07,030 dan itu fitur itu hanya dalam loop sementara, 614 00:34:07,030 --> 00:34:10,040 atau yang sementara memiliki tepat Hanya saja feature-- dan kemudian 615 00:34:10,040 --> 00:34:12,320 langkah incrementation di akhir. 616 00:34:12,320 --> 00:34:16,489 Dan sehingga Anda akan sering menemukan diri Anda menulis kode seperti berikut ini. 617 00:34:16,489 --> 00:34:19,780 Aku akan menghapus beberapa dari ini. 618 00:34:19,780 --> 00:34:23,850 >> Tetapi jika kita iterasi melalui karakter dalam sebuah array, 619 00:34:23,850 --> 00:34:26,960 Misalnya, seperti yang kita sudah mendapat sebuah array karakter. 620 00:34:26,960 --> 00:34:29,400 Maaf untuk membawa kembali C. saya tahu, Anda pikir Anda lakukan. 621 00:34:29,400 --> 00:34:31,900 Tapi itu hanya untuk tujuan PHP belajar, aku janji. 622 00:34:31,900 --> 00:34:38,880 Jadi jika Anda punya str arang panjang 8, dan mari kita 623 00:34:38,880 --> 00:34:46,760 mengatakan itu mengatakan Hellooo dengan nol Trailing. 624 00:34:46,760 --> 00:34:48,270 Besar, jadi itu string kita. 625 00:34:48,270 --> 00:34:51,469 >> Dan kemudian kami memiliki untuk loop. 626 00:34:51,469 --> 00:34:53,730 Kami memiliki int i sama dengan 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 Dan kami ingin keluar ketika str i sama dengan tidak sama dengan nol, 629 00:35:09,110 --> 00:35:11,590 karena kami keluar ketika sama null. 630 00:35:11,590 --> 00:35:19,170 Dan kemudian kita lakukan i ++ pada setiap titik dalam untuk loop. 631 00:35:19,170 --> 00:35:30,480 Melakukan sesuatu dengan str i. 632 00:35:30,480 --> 00:35:34,950 >> Jadi rumus dasar itu, kami memiliki array ini bahwa kita 633 00:35:34,950 --> 00:35:37,910 ingin memperlakukan elemen yang terpisah. 634 00:35:37,910 --> 00:35:45,170 Tapi apa yang harus kita lakukan adalah kita harus pada dasarnya membuat bilangan bulat terpisah 635 00:35:45,170 --> 00:35:50,530 variabel yang menghitung setiap kali kami pergi melalui loop. 636 00:35:50,530 --> 00:35:55,240 Dan kemudian kita harus kemudian memanggil strstr [i] ketika apa yang kita benar-benar ingin lakukan 637 00:35:55,240 --> 00:35:57,280 hanya pergi karakter oleh karakter, bukan? 638 00:35:57,280 --> 00:36:00,185 Kami tidak ingin kenaikan sebuah integer dan kemudian menggunakan integer yang 639 00:36:00,185 --> 00:36:02,780 untuk mengakses masing-masing karakter individual. 640 00:36:02,780 --> 00:36:04,410 Kami benar-benar ingin karakter demi karakter. 641 00:36:04,410 --> 00:36:08,600 >> Dan untuk setiap cerdas menghitung bahwa bagi kita. 642 00:36:08,600 --> 00:36:11,875 Jika kita memiliki sebuah array, yang kita dapat menyatakan dalam PHP 643 00:36:11,875 --> 00:36:15,900 sebagai hanya-- jika kita memiliki variabel disebut, sebut saja array. 644 00:36:15,900 --> 00:36:19,840 Keajaiban tidak mengetik, itu sama seperti variabel lainnya. 645 00:36:19,840 --> 00:36:20,730 Ini hanya sebuah array. 646 00:36:20,730 --> 00:36:26,890 Dan kami memiliki sedikit [tidak terdengar] seperti 1, 2, 3, hanya semacam array diinisialisasi. 647 00:36:26,890 --> 00:36:29,680 Ini OK, tidak seperti foreach saya. 648 00:36:29,680 --> 00:36:33,120 >> Tapi jika kita benar-benar foreach-- Saya mengetik yang sedikit salah. 649 00:36:33,120 --> 00:36:34,840 Ada dua cara untuk melakukan foreach loop. 650 00:36:34,840 --> 00:36:37,400 Ada sintaks dan sebagai sintaks. 651 00:36:37,400 --> 00:36:40,580 Dan kami akan melakukan dalam sintaks pertama, tidak. 652 00:36:40,580 --> 00:36:41,780 Itu kesalahan saya. 653 00:36:41,780 --> 00:36:53,785 >> Num sehingga foreach dalam array, gema num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 Dan PHP berteriak saya untuk beberapa alasan. 656 00:36:59,500 --> 00:37:03,520 Ini menemukan tak terduga di dalam sesuatu, 657 00:37:03,520 --> 00:37:05,820 yang sedikit mengganggu. 658 00:37:05,820 --> 00:37:09,105 Tapi kita akan mencari tahu mengapa yang dalam sekejap. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Jadi tidak seperti itu. 661 00:37:13,610 --> 00:37:15,040 Mari kita coba menggunakan sebagai. 662 00:37:15,040 --> 00:37:17,310 Ini lebih memilih sebagai sintaks tampaknya. 663 00:37:17,310 --> 00:37:22,550 Jadi mari kita lakukan berbagai foreach sebagai num. 664 00:37:22,550 --> 00:37:24,520 >> Jadi sedikit penjelasan dari apa yang baru saja terjadi 665 00:37:24,520 --> 00:37:30,670 adalah sebagai sintaks saying-- baik pertama, mari kita lihat apa yang ini mencetak. 666 00:37:30,670 --> 00:37:32,260 Jadi kita membuka IDE kami. 667 00:37:32,260 --> 00:37:33,110 Kami pergi di sini. 668 00:37:33,110 --> 00:37:35,845 Kami katakan, Hello Jason. 669 00:37:35,845 --> 00:37:41,390 Dan itu 123, yang isinya dari array yang kita buat di bagian atas. 670 00:37:41,390 --> 00:37:45,500 >> Jadi menyelam ke dalam loop foreach ini, kami memiliki variabel yang disebut array yang 671 00:37:45,500 --> 00:37:47,470 yang merupakan array dari tiga angka. 672 00:37:47,470 --> 00:37:52,120 Dan kemudian kita melakukan foreach array sebagai num, gema num. 673 00:37:52,120 --> 00:37:54,990 Dan itu lebih intuitif dibandingkan untuk lop. 674 00:37:54,990 --> 00:38:02,380 Kami mengatakan, memperlakukan setiap hal-hal dalam array sebagai num, 675 00:38:02,380 --> 00:38:05,180 Aku ingin kau memberi saya num. 676 00:38:05,180 --> 00:38:06,640 Dan itulah apa yang dilakukannya. 677 00:38:06,640 --> 00:38:12,000 >> PHP adalah menghitung bahwa ketika Anda mengatakan foreach array, 678 00:38:12,000 --> 00:38:16,080 dan Anda sedang berhadapan dengan sebuah array, apa Anda akan ingin beralih di atas 679 00:38:16,080 --> 00:38:19,950 adalah karakter dalam array itu, adalah int dalam array itu, 680 00:38:19,950 --> 00:38:21,920 adalah elemen dalam array itu. 681 00:38:21,920 --> 00:38:26,110 Dan itu membiarkan Anda menyimpan variabel tersebut sebagai num, 682 00:38:26,110 --> 00:38:29,360 dan num kemudian hanya output segera daripada mengatakan, 683 00:38:29,360 --> 00:38:34,090 Saya memiliki variabel yang disebut i, dan maka saya ingin output strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> Dan sehingga memungkinkan kita untuk melakukan hal-hal keren. 685 00:38:39,130 --> 00:38:43,330 Seperti pada dasarnya kita tidak harus membuat variabel-variabel ini seperti saya dan melakukan semua 686 00:38:43,330 --> 00:38:45,090 ini hal incrementation di akhir. 687 00:38:45,090 --> 00:38:48,290 PHP menangani semua itu untuk Anda. 688 00:38:48,290 --> 00:38:54,470 >> Jadi sekarang mari kita bicara tentang foreach sebagai itu berlaku untuk kamus _GET kami. 689 00:38:54,470 --> 00:38:57,170 Jadi kita akan komentar ini keluar dengan cepat. 690 00:38:57,170 --> 00:39:02,030 Jadi kita memiliki array yang _GET kami. 691 00:39:02,030 --> 00:39:04,361 Kami memiliki variabel ini. 692 00:39:04,361 --> 00:39:05,610 Dan itu punya beberapa hal di dalamnya. 693 00:39:05,610 --> 00:39:10,275 >> Sekarang, kita hanya memiliki satu variabel yang berlalu untuk itu, yang merupakan nama. 694 00:39:10,275 --> 00:39:13,420 Tetapi jika kita tekan Enter, sekarang kita dapat memiliki dua variabel. 695 00:39:13,420 --> 00:39:17,910 Kita dapat memiliki nama dan usia, misalnya, jika kita ingin mendapatkan usia dan juga 696 00:39:17,910 --> 00:39:20,960 nama seseorang, Lucunya. 697 00:39:20,960 --> 00:39:25,690 >> Jadi sekarang _GET akan menjadi kamus dengan dua elemen, 698 00:39:25,690 --> 00:39:27,980 dengan dua pasangan nilai kunci. 699 00:39:27,980 --> 00:39:33,490 Dan KEY- pertama aku akan menulis satu ini di papan juga. 700 00:39:33,490 --> 00:39:37,136 Kami memiliki kamus kami adalah _GET. 701 00:39:37,136 --> 00:39:39,520 Maaf, itu agak sulit untuk melihat. 702 00:39:39,520 --> 00:39:46,690 Tapi di dalam kamus kami, kami memiliki nama, yang akan menjadi sesuatu 703 00:39:46,690 --> 00:39:47,680 bahwa kita diberikan. 704 00:39:47,680 --> 00:39:53,040 Dan kita akan memiliki usia, yang juga akan menjadi sesuatu yang kita diberikan. 705 00:39:53,040 --> 00:39:56,020 Dan ini adalah keseluruhan yang kamus kami. 706 00:39:56,020 --> 00:39:57,730 >> Jadi itu punya dua elemen di dalamnya. 707 00:39:57,730 --> 00:40:01,310 Dan karena foreach loop cerdas, kita 708 00:40:01,310 --> 00:40:04,900 mungkin berpikir, dan benar mungkin berpikir bahwa foreach 709 00:40:04,900 --> 00:40:08,080 dapat iterate melalui ini kamus, mencetak 710 00:40:08,080 --> 00:40:10,850 nilai yang diberikan oleh nama dan usia. 711 00:40:10,850 --> 00:40:14,510 >> Jadi mari kita sebenarnya melakukan hal itu. 712 00:40:14,510 --> 00:40:17,520 Mari kita membangun foreach loop. 713 00:40:17,520 --> 00:40:23,351 Dan kita akan lakukan untuk _GET sebagai. 714 00:40:23,351 --> 00:40:24,850 Dan kita akan melakukan hal berikut. 715 00:40:24,850 --> 00:40:34,186 Jadi mari kita lihat apa yang terjadi jika kita mengetik hanya kata, dan kemudian mengucapkan kata echo. 716 00:40:34,186 --> 00:40:40,540 Kami juga akan echo baris baru hanya untuk membuatnya sedikit lebih jelas, 717 00:40:40,540 --> 00:40:41,260 apa yang sedang terjadi. 718 00:40:41,260 --> 00:40:42,890 >> Jadi mari kita lihat. 719 00:40:42,890 --> 00:40:44,390 Ini tidak memberi saya kesalahan. 720 00:40:44,390 --> 00:40:46,810 Dan kami akan menutup ini. 721 00:40:46,810 --> 00:40:51,020 Pada website kami, Anda akan melakukan banyak yang selama pset7. 722 00:40:51,020 --> 00:40:53,890 Jadi kita katakan nama saya Sam. 723 00:40:53,890 --> 00:40:58,560 Usia saya adalah 45. 724 00:40:58,560 --> 00:41:01,060 Ini bukan. 725 00:41:01,060 --> 00:41:05,640 Tapi mencetak, seperti yang diharapkan, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> Dan Anda akan melihat bahwa apa loop foreach did-- sini, 727 00:41:08,930 --> 00:41:12,360 mari kita kembali ke yang jadi terserah pada board-- kita mendapatkan _GET sebagai kata. 728 00:41:12,360 --> 00:41:15,130 Dan ada empat hal di _GET. 729 00:41:15,130 --> 00:41:17,410 Tapi itu hanya dicetak dua hal. 730 00:41:17,410 --> 00:41:21,290 foreach, menjadi diri intelijen, diasumsikan bahwa apa yang kita inginkan 731 00:41:21,290 --> 00:41:24,100 adalah nilai-nilai, bukan kunci. 732 00:41:24,100 --> 00:41:27,800 >> Tapi ada cara yang kami bisa mencetak keluar kunci juga, jika kita ingin. 733 00:41:27,800 --> 00:41:30,810 Jika kita ingin juga tahu apa variabel-variabel ini disebut, 734 00:41:30,810 --> 00:41:33,540 ada cara yang kita dapat mengakses ini juga. 735 00:41:33,540 --> 00:41:36,840 Dan cara untuk semacam melakukan itu, sehingga kita dapat mengatakan, memungkinkan benar-benar 736 00:41:36,840 --> 00:41:39,485 membagi menjadi pasangan nilai kunci. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Jadi mari kita lihat apa yang terjadi sekarang. 739 00:41:47,580 --> 00:41:50,550 >> Jadi kita memiliki kunci. 740 00:41:50,550 --> 00:41:52,290 Kami memiliki nilai. 741 00:41:52,290 --> 00:41:56,650 Kami memiliki baru lain baris untuk dibaca. 742 00:41:56,650 --> 00:42:00,540 Dan mari kita lihat apa yang terjadi ketika kita melakukan ini sekarang. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Saya tidak tahu berapa lama Jason adalah. 745 00:42:06,720 --> 00:42:09,180 Jason 15. 746 00:42:09,180 --> 00:42:11,650 Jadi kita memiliki nama Jason, usia 15. 747 00:42:11,650 --> 00:42:15,830 Jadi kami mampu mengakses kunci dan nilai pasang kamus ini 748 00:42:15,830 --> 00:42:18,590 hanya dengan mengatakan poin sebagai kunci untuk nilai. 749 00:42:18,590 --> 00:42:23,350 Dan itu adalah sintaksis foreach gula bit yang memungkinkan 750 00:42:23,350 --> 00:42:25,960 Anda untuk mengakses hal-hal dalam kamus. 751 00:42:25,960 --> 00:42:31,190 >> Jadi mudah-mudahan ini semacam menekankan kekuatan loop foreach. 752 00:42:31,190 --> 00:42:35,690 Anda dapat cukup banyak lemparan sesuatu yang tampaknya iterable, 753 00:42:35,690 --> 00:42:38,922 seperti apa yang memiliki beberapa unsur-unsur seperti sebuah array, 754 00:42:38,922 --> 00:42:41,880 seperti dictionary-- mereka adalah dua hal utama yang Anda akan bekerja dengan 755 00:42:41,880 --> 00:42:45,630 baik dalam kehidupan dan dalam pset 7. 756 00:42:45,630 --> 00:42:49,350 Sehingga Anda dapat membuang barang-barang yang itu, dan itu akan mencari tahu 757 00:42:49,350 --> 00:42:51,030 apa yang ingin Anda lakukan dengan itu. 758 00:42:51,030 --> 00:42:54,250 Itu akan mengatakan, OK, aku akan mendapatkan hal-hal ini dari data yang 759 00:42:54,250 --> 00:42:55,680 disahkan untuk saya. 760 00:42:55,680 --> 00:43:02,470 Dan itu adalah sesuatu yang Anda akan menggunakan banyak dari di pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Aku akan gulir cepat turun hanya untuk melihat di mana aku di. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Apakah orang memiliki pertanyaan pada saat ini? 764 00:43:13,070 --> 00:43:13,778 Pertanyaan sama sekali? 765 00:43:13,778 --> 00:43:14,400 Iya nih? 766 00:43:14,400 --> 00:43:18,320 >> AUDIENCE: Jadi dengan kunci dan nilai, Anda bisa nama itu apa pun 767 00:43:18,320 --> 00:43:20,507 dan masih akan bekerja? 768 00:43:20,507 --> 00:43:21,090 SPEAKER: Ups. 769 00:43:21,090 --> 00:43:22,820 Wow, aku benar-benar menghapus seluruh baris. 770 00:43:22,820 --> 00:43:23,380 Pekerjaan besar. 771 00:43:23,380 --> 00:43:26,502 Jadi, sebuah. 772 00:43:26,502 --> 00:43:30,109 Kunci dan nilai hanya konvensi. 773 00:43:30,109 --> 00:43:30,650 Ini membantu. 774 00:43:30,650 --> 00:43:34,010 Anda akan mendapatkan beberapa desain poin, mungkin beberapa poin gaya 775 00:43:34,010 --> 00:43:36,970 untuk melakukan itu karena benar-benar menyampaikan niat. 776 00:43:36,970 --> 00:43:39,650 Tapi kita katakan dan Yarp. 777 00:43:39,650 --> 00:43:42,476 >> AUDIENCE: Anda tidak perlu mengubah apa pun dalam file HTML 778 00:43:42,476 --> 00:43:43,607 untuk mencerminkan itu? 779 00:43:43,607 --> 00:43:44,440 SPEAKER: Tidak sama sekali. 780 00:43:44,440 --> 00:43:47,260 AUDIENCE: Dan itu hanya tahu bahwa karena sama than-- lebih besar 781 00:43:47,260 --> 00:43:47,801 SPEAKER: Ya. 782 00:43:47,801 --> 00:43:49,489 AUDIENCE: Indikator -yang yang that's-- 783 00:43:49,489 --> 00:43:50,030 SPEAKER: Ya. 784 00:43:50,030 --> 00:43:52,260 Itu adalah sintaks foreach, tapi ya. 785 00:43:52,260 --> 00:43:53,720 >> AUDIENCE: Tidak ada jenis. 786 00:43:53,720 --> 00:43:57,230 Jadi bagaimana jika Anda ingin usia hanya berupa angka? 787 00:43:57,230 --> 00:43:59,510 Apakah ada cara untuk melakukan itu? 788 00:43:59,510 --> 00:44:04,550 >> SPEAKER: Ada cara untuk memeriksa apakah variabel sesuai dengan jenis tertentu. 789 00:44:04,550 --> 00:44:08,482 Jadi PHP meminta sedikit lebih dari Anda karena tidak ada jenis di. 790 00:44:08,482 --> 00:44:09,440 Beberapa cara itu meminta kurang. 791 00:44:09,440 --> 00:44:11,070 Dalam beberapa hal itu meminta lebih. 792 00:44:11,070 --> 00:44:13,320 Karena jika Anda hanya memiliki sesuatu dalam variabel, 793 00:44:13,320 --> 00:44:14,960 Anda tidak tahu apa jenis itu. 794 00:44:14,960 --> 00:44:19,310 Tetapi jika Anda cerdas tentang variabel bahwa Anda menetapkan jenis untuk dan pastikan 795 00:44:19,310 --> 00:44:22,750 yang berfungsi hanya return-- Anda ingin fungsi hanya pulang 796 00:44:22,750 --> 00:44:26,210 salah satu jenis nilai sehingga Anda pada dasarnya dapat 797 00:44:26,210 --> 00:44:31,090 berharap bahwa variabel Anda kembali dari fungsi akan menjadi jenis 798 00:44:31,090 --> 00:44:32,780 yang Anda pikir itu akan, pada dasarnya. 799 00:44:32,780 --> 00:44:36,550 >> Tapi ada beberapa metode dengan mana Anda dapat memeriksa. 800 00:44:36,550 --> 00:44:39,801 Saya tidak ingat mereka dari atas kepala saya. 801 00:44:39,801 --> 00:44:43,300 Aku menunggu untuk itu membiru. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Ada metode dibangun ke PHP yang dapat 805 00:44:52,000 --> 00:44:54,440 memeriksa jenis variabel untuk Anda. 806 00:44:54,440 --> 00:44:58,250 Tetapi jika Anda menetapkan variabel cerdas, Anda tidak harus 807 00:44:58,250 --> 00:45:01,330 harus melakukan itu terlalu banyak di pset 7. 808 00:45:01,330 --> 00:45:02,780 Tapi metode-metode yang ada. 809 00:45:02,780 --> 00:45:06,704 Dan itu sesuatu yang adalah dalam bahasa itu sendiri. 810 00:45:06,704 --> 00:45:08,370 Dan saya tidak ingat sintaks yang tepat. 811 00:45:08,370 --> 00:45:09,930 Kita bahkan bisa mencarinya. 812 00:45:09,930 --> 00:45:11,974 Tapi kali adalah esensi. 813 00:45:11,974 --> 00:45:13,890 Apakah ada orang lain memiliki memiliki pertanyaan lebih? 814 00:45:13,890 --> 00:45:14,660 Iya nih. 815 00:45:14,660 --> 00:45:15,951 >> AUDIENCE: Saya punya satu lagi. 816 00:45:15,951 --> 00:45:19,050 Jadi Anda sebutkan metode GET, tapi Anda tidak menyebutkan metode POST. 817 00:45:19,050 --> 00:45:20,500 Apakah kita kembali ke itu? 818 00:45:20,500 --> 00:45:21,540 >> SPEAKER: Ya, kami akan datang kembali ke itu. 819 00:45:21,540 --> 00:45:24,840 Itulah yang saya cari di ponsel saya, yang sekarang tertidur, 820 00:45:24,840 --> 00:45:26,960 tapi aku akan menemukannya. 821 00:45:26,960 --> 00:45:30,680 Hanya memastikan kita memukul semua catatan PHP. 822 00:45:30,680 --> 00:45:35,640 Yap, tidak ada versi debug. 823 00:45:35,640 --> 00:45:41,940 Ya, kami memiliki beberapa hal lagi yang kami ingin lakukan sekarang pada saat ini. 824 00:45:41,940 --> 00:45:45,980 >> Jadi berbicara tentang POST, yang Anda sebutkan, 825 00:45:45,980 --> 00:45:49,630 satu-satunya perbedaan antara GET dan POST 826 00:45:49,630 --> 00:45:53,150 yang ingat ketika kita melihat di URL ini dan kami melihat, oh, 827 00:45:53,150 --> 00:45:58,270 nama sama dan usia sama Yarp tepat di URL sana untuk kita. 828 00:45:58,270 --> 00:46:03,300 POST sedikit lebih rahasia dengan melewati nya informasi. 829 00:46:03,300 --> 00:46:08,090 >> Jadi jika Anda tidak ingin pengguna tahu, misalnya, Anda 830 00:46:08,090 --> 00:46:11,160 tidak ingin username dan password dari orang 831 00:46:11,160 --> 00:46:15,080 login ke ditampilkan dalam URL, yang merupakan hal yang wajar 832 00:46:15,080 --> 00:46:17,770 tidak ingin dalam URL, karena seseorang bisa melihatnya. 833 00:46:17,770 --> 00:46:21,520 Jika mereka link seseorang untuk halaman, Anda tidak ingin URL mereka terpampang di sana, 834 00:46:21,520 --> 00:46:27,850 karena yang akan memungkinkan orang untuk login hanya dengan menyisipkan URL bukannya 835 00:46:27,850 --> 00:46:29,670 untuk benar-benar mengisi formulir. 836 00:46:29,670 --> 00:46:31,710 POST adalah sedikit lebih rahasia. 837 00:46:31,710 --> 00:46:34,150 >> Dan satu-satunya hal yang kita harus mengubah 838 00:46:34,150 --> 00:46:38,550 adalah metode ini, perubahan dari mendapatkan ke posting. 839 00:46:38,550 --> 00:46:42,367 Dan kemudian di dalam HTTP, bukannya mengakses _GET array, 840 00:46:42,367 --> 00:46:43,950 kita akan mengakses _POST array. 841 00:46:43,950 --> 00:46:48,600 >> Dan kita akan melihat bahwa, jika kita membuka kembali ini lagi, 842 00:46:48,600 --> 00:46:51,910 Jason perlahan menurun di usia. 843 00:46:51,910 --> 00:46:53,230 nama Jason, usia 14. 844 00:46:53,230 --> 00:46:54,280 Hal yang sama muncul. 845 00:46:54,280 --> 00:46:57,190 Tapi kami pergi ke URL dan variabel tersebut tidak ada. 846 00:46:57,190 --> 00:47:00,540 >> Dan cara yang POST passes-- jadi ingatlah 847 00:47:00,540 --> 00:47:02,750 bagaimana melihat sumber halaman. 848 00:47:02,750 --> 00:47:04,570 Kami pergi ke jaringan. 849 00:47:04,570 --> 00:47:06,920 Kami menyegarkan. 850 00:47:06,920 --> 00:47:10,690 Dan ini adalah hal lain yang POST akan memberikan peringatan tentang. 851 00:47:10,690 --> 00:47:15,050 Anda mungkin telah melihat sebuah kotak, teks kotak seperti ini di browser Anda. 852 00:47:15,050 --> 00:47:18,170 Apakah kamu yakin kamu mau untuk mengirim formulir lagi? 853 00:47:18,170 --> 00:47:21,170 POST adalah apa s 'mengirimkan formulir ini. 854 00:47:21,170 --> 00:47:24,680 >> Karena pada dasarnya jika Anda mengirim Anda Informasi kartu kredit kepada seseorang, 855 00:47:24,680 --> 00:47:26,350 itu tidak akan muncul dalam URL. 856 00:47:26,350 --> 00:47:28,180 Itu akan menjadi permintaan POST. 857 00:47:28,180 --> 00:47:32,905 Jadi, ketika Anda me-refresh halaman, itu kirim kembali bahwa permintaan posting. 858 00:47:32,905 --> 00:47:35,530 Jadi sekarang kita ingin mengirim membentuk lagi karena itu tidak akan 859 00:47:35,530 --> 00:47:37,340 untuk menciptakan duplikat pembelian. 860 00:47:37,340 --> 00:47:41,160 >> Dan kita akan melihat bahwa di sini, metode yang kami gunakan adalah POST. 861 00:47:41,160 --> 00:47:43,065 Dan itu memang mentransfer byte. 862 00:47:43,065 --> 00:47:45,460 Ditransfer 401 dari mereka. 863 00:47:45,460 --> 00:47:47,190 Program cukup kecil. 864 00:47:47,190 --> 00:47:51,600 Tapi ada tempat yang bisa kita lihat nilai-nilai yang sedang berlalu. 865 00:47:51,600 --> 00:47:59,540 Halaman web sendiri bisa melihat, tapi kita sebagai pengguna tidak dapat melihat, 866 00:47:59,540 --> 00:48:01,650 kecuali jika Anda hacker. 867 00:48:01,650 --> 00:48:05,340 Jika Anda seorang hacker yang baik, Anda dapat melihat. 868 00:48:05,340 --> 00:48:09,360 >> Jika Anda tahu dasar format HTML, 869 00:48:09,360 --> 00:48:11,790 nilai-nilai akan membuat sendiri dikenal di halaman. 870 00:48:11,790 --> 00:48:13,160 Anda akan dapat melihat. 871 00:48:13,160 --> 00:48:16,720 Nilai-nilai akan berada di sana, mereka hanya sedikit kurang jelas untuk Anda 872 00:48:16,720 --> 00:48:19,522 untuk mengakses, pada dasarnya. 873 00:48:19,522 --> 00:48:23,620 >> Apakah kita memiliki lebih pertanyaan tentang GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- apa yang akan kita lakukan selanjutnya sebenarnya melihat beberapa kode 875 00:48:26,800 --> 00:48:30,837 bahwa Anda menyerah pset 7, berbicara tentang bagaimana menggunakan beberapa konsep-konsep ini, 876 00:48:30,837 --> 00:48:32,670 dan berbicara tentang hal-hal yang Anda akan 877 00:48:32,670 --> 00:48:35,090 harus melakukan sedikit di pset 7. 878 00:48:35,090 --> 00:48:36,760 Pertanyaan lagi sebelum itu? 879 00:48:36,760 --> 00:48:38,047 Pertanyaan lebih kalian punya? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Besar. 882 00:48:41,840 --> 00:48:45,370 >> Baiklah, mari kita lihat sedikit di pset 7, 883 00:48:45,370 --> 00:48:49,530 tidak diragukan lagi apa yang Anda semua paling bersemangat. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Maksud saya, ini adalah sesuatu yang David melewati sedikit. 886 00:48:54,750 --> 00:49:00,890 Tapi kita akan memiliki tiga direktori di atas, serta file konfigurasi. 887 00:49:00,890 --> 00:49:04,650 Itu untuk database, yang kita akan bicarakan di sekitar lima menit. 888 00:49:04,650 --> 00:49:07,220 Termasuk, Anda tak perlu untuk melihat dalam direktori ini 889 00:49:07,220 --> 00:49:12,480 jika Anda tidak ingin, tapi itu bagus untuk tahu ada segala macam pembantu. 890 00:49:12,480 --> 00:49:14,210 Pembantu seperti fungsi membantu. 891 00:49:14,210 --> 00:49:18,120 Dan kemudian kita memiliki konfigurasi, yang menetapkan beberapa hal up. 892 00:49:18,120 --> 00:49:24,590 >> Ada beberapa fungsi yang CS50 memiliki tertulis yang berada di helper dan config. 893 00:49:24,590 --> 00:49:27,250 Dan beberapa PHP yang sudah keluar di file 894 00:49:27,250 --> 00:49:30,880 akan melakukan banyak lebih semacam pekerjaan kaki dari tumpul untuk Anda. 895 00:49:30,880 --> 00:49:35,250 Seperti jika kita pergi ke publik login.php, yang adalah apa yang 896 00:49:35,250 --> 00:49:38,350 muncul tepat ketika Anda pergi ke pset 7. 897 00:49:38,350 --> 00:49:40,580 Kita akan melihat bahwa ada ini membutuhkan pernyataan. 898 00:49:40,580 --> 00:49:43,420 Dan semacam seperti tajam termasuk, hashtag 899 00:49:43,420 --> 00:49:46,850 termasuk jika Anda dari generasi yang lebih baru. 900 00:49:46,850 --> 00:49:49,740 Tapi ini pada dasarnya mengatakan bahwa saya membutuhkan akses 901 00:49:49,740 --> 00:49:52,260 untuk semua fungsi di config.php. 902 00:49:52,260 --> 00:49:55,290 Dan Anda bisa memiliki memerlukan untuk segala macam hal lainnya. 903 00:49:55,290 --> 00:49:59,670 >> config sebenarnya membutuhkan pembantu. 904 00:49:59,670 --> 00:50:02,490 Jadi, setiap kali Anda butuhkan config, Anda juga 905 00:50:02,490 --> 00:50:05,660 termasuk atau membutuhkan pembantu juga. 906 00:50:05,660 --> 00:50:09,590 Sehingga memberikan Anda akses ke semua fungsi keren bahwa kita akan menggunakan, 907 00:50:09,590 --> 00:50:10,420 hal seperti membuat. 908 00:50:10,420 --> 00:50:13,490 Aku benar-benar akan memudahkan ini turun sedikit. 909 00:50:13,490 --> 00:50:16,280 Jadi fungsi maka kita akan berjalan melalui 910 00:50:16,280 --> 00:50:22,380 sebelum kita melanjutkan ke SQL sedikit bit adalah fungsi login.php, hanya 911 00:50:22,380 --> 00:50:26,586 karena menggunakan beberapa topik yang baru saja kita bicarakan di PHP. 912 00:50:26,586 --> 00:50:30,840 >> Anda melihat hal pertama adalah jika $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Ini adalah variabel global lain yang Anda akan berurusan dengan. 914 00:50:34,500 --> 00:50:38,460 Ini seperti _GET dan _POST, tapi apa server berisi adalah ini dapat membiarkan Anda 915 00:50:38,460 --> 00:50:42,730 tahu apakah metode permintaan adalah GET atau POST. 916 00:50:42,730 --> 00:50:47,250 Seperti sebelumnya apa yang kami lakukan hanya dalam kode kita bahwa kita menulis, 917 00:50:47,250 --> 00:50:51,880 kami hanya mengubahnya menjadi GET dan POST tergantung pada apa HTML memiliki. 918 00:50:51,880 --> 00:50:55,120 Tapi ada halaman yang dapat diakses dengan kedua jenis permintaan. 919 00:50:55,120 --> 00:50:57,410 Dan Anda mungkin ingin melakukan hal yang berbeda tergantung 920 00:50:57,410 --> 00:50:59,740 pada jenis permintaan, seperti masuk tidak. 921 00:50:59,740 --> 00:51:04,400 >> Sehingga Anda dapat memeriksa permintaan yang Metode melalui mengakses kunci, 922 00:51:04,400 --> 00:51:08,630 melalui menggunakan kunci dan mendapatkan nilai sesuatu dalam kamus 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Jadi itulah global yang lain variabel seperti _GET dan _POST. 925 00:51:13,800 --> 00:51:16,990 >> Jika itu GET, kami ingin membuat form login. 926 00:51:16,990 --> 00:51:21,920 Render adalah fungsi yang pada dasarnya hanya memasang HTML yang sesuai 927 00:51:21,920 --> 00:51:24,500 dan dibagikan beberapa parameter. 928 00:51:24,500 --> 00:51:28,740 Judul ini adalah parameter yang digunakan dalam menampilkan, anehnya, 929 00:51:28,740 --> 00:51:32,670 judul halaman di pertanyaan, hal di sini, 930 00:51:32,670 --> 00:51:34,850 katakan atau halo di contoh sebelumnya. 931 00:51:34,850 --> 00:51:36,100 Sekarang kita memiliki hal yang berbeda. 932 00:51:36,100 --> 00:51:38,570 Lain jika itu POST, kita melakukan hal-hal lain. 933 00:51:38,570 --> 00:51:40,790 Kami menggunakan metode kosong. 934 00:51:40,790 --> 00:51:42,750 Itu tidak ada, itu kosong. 935 00:51:42,750 --> 00:51:45,440 Dan kita lihat sebelumnya, PHP memiliki cukup banyak dibangun 936 00:51:45,440 --> 00:51:52,370 dalam metode yang David will-- jika ada adalah metode yang berguna untuk Anda, 937 00:51:52,370 --> 00:51:55,560 mereka akan disiagakan untuk Anda dalam berjalan melalui bahwa David 938 00:51:55,560 --> 00:51:59,770 memberikan gambaran di awal, dan juga Zamyla ini bit membantu. 939 00:51:59,770 --> 00:52:01,040 Dia kembali semua orang. 940 00:52:01,040 --> 00:52:03,100 Kita semua bisa bersukacita. 941 00:52:03,100 --> 00:52:06,530 meminta maaf adalah fungsi aptly bernama yang pada dasarnya hanya mencetak 942 00:52:06,530 --> 00:52:10,130 beberapa pesan kesalahan, karena CS50 sangat sopan. 943 00:52:10,130 --> 00:52:14,770 >> Dan sekarang ini, ini adalah sedikit rumit karena ini 944 00:52:14,770 --> 00:52:16,697 adalah di mana kita query database. 945 00:52:16,697 --> 00:52:18,280 Sekarang kita belum berbicara tentang database. 946 00:52:18,280 --> 00:52:22,220 Dan kita akan di depan lima menit atau lebih, maksimum. 947 00:52:22,220 --> 00:52:24,980 Tapi ini adalah fungsi CS50 yang telah menulis 948 00:52:24,980 --> 00:52:38,050 untuk mendapatkan meja pada dasarnya dari database bahwa kami bekerja dengan di pset 7. 949 00:52:38,050 --> 00:52:40,860 Aku benar-benar buruk dengan saya nol pengindeksan hari ini. 950 00:52:40,860 --> 00:52:42,060 Tapi ya, itu adalah 7. 951 00:52:42,060 --> 00:52:46,340 >> Jadi permintaan itu akan mengembalikan array, pada dasarnya adalah bit kunci. 952 00:52:46,340 --> 00:52:54,130 Dan karena hal ini tidak memiliki mengetik, sehingga baris adalah array dari array. 953 00:52:54,130 --> 00:52:59,480 Karena ketika kita berpikir tentang meja, apa yang akan kita lakukan 954 00:52:59,480 --> 00:53:04,830 adalah, seperti yang Anda pelajari di psets seperti permainan 15, anyway 955 00:53:04,830 --> 00:53:06,990 di mana Anda harus menggunakan Array ganda, kita pada dasarnya 956 00:53:06,990 --> 00:53:15,210 memiliki array lainnya array membuat meja. 957 00:53:15,210 --> 00:53:18,150 Dan Anda punya baris dan kolom. 958 00:53:18,150 --> 00:53:24,450 Dan kemudian Anda dapat mengaksesnya seperti [0] [1], Anda mendapatkan [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Hal-hal dasar seperti itu. 960 00:53:26,900 --> 00:53:29,380 >> Jadi apa yang kita lakukan di sini di fungsi ini, 961 00:53:29,380 --> 00:53:35,070 kami meminta database jika pengguna itu 962 00:53:35,070 --> 00:53:40,200 mencoba untuk login, yang akan dikirim melalui metode POST. 963 00:53:40,200 --> 00:53:43,950 Kita akan melihat kita mendapatkan username dari _POST. 964 00:53:43,950 --> 00:53:46,900 Mereka akan telah mengirim, pengguna atau Anda, akan mengirim nilai 965 00:53:46,900 --> 00:53:50,750 melalui bentuk melalui POST karena itu username dan password barang. 966 00:53:50,750 --> 00:53:54,830 Kami sedang memeriksa username untuk melihat, apakah ini dalam tabel? 967 00:53:54,830 --> 00:53:58,070 Karena jika pengguna login di, maka username 968 00:53:58,070 --> 00:54:03,320 harus disimpan dalam tabel pengguna yang ada untuk situs ini. 969 00:54:03,320 --> 00:54:09,360 Jadi pada dasarnya jika pengguna dalam database, 970 00:54:09,360 --> 00:54:16,400 permintaan akan kembali bahwa baris, yang merupakan array. 971 00:54:16,400 --> 00:54:24,560 >> Tapi bagian yang sulit adalah bahwa jika bahkan jika array ganda hanya dari satu baris, 972 00:54:24,560 --> 00:54:31,900 bahkan jika itu adalah satu baris array-- seperti Anda punya basically-- 973 00:54:31,900 --> 00:54:36,900 jika Anda punya ukuran satu array yang memegang array lain, 974 00:54:36,900 --> 00:54:38,940 Anda benar-benar berurusan dengan satu kolom. 975 00:54:38,940 --> 00:54:41,420 Tapi masih diperlakukan seperti array ganda. 976 00:54:41,420 --> 00:54:44,560 >> Dan ini adalah di mana kadang-kadang bisa mendapatkan rumit, karena kita punya baris di sini. 977 00:54:44,560 --> 00:54:46,440 Variabel kita adalah baris. 978 00:54:46,440 --> 00:54:48,590 Dan kemudian kita menciptakan variabel yang disebut baris baru 979 00:54:48,590 --> 00:54:51,450 dan pengaturan sama dengan baris pertama dari baris. 980 00:54:51,450 --> 00:54:55,150 Dan Anda akan melihat komentar yang bilang itu pertama dan hanya baris. 981 00:54:55,150 --> 00:54:57,080 >> Jadi ini adalah rumit bagian di mana sekarang fungsi 982 00:54:57,080 --> 00:54:59,660 dapat kembali array sangat mudah. 983 00:54:59,660 --> 00:55:01,270 Tidak ada mallocs. 984 00:55:01,270 --> 00:55:02,280 Anda tidak akan melihat mallocs. 985 00:55:02,280 --> 00:55:03,940 Jadi Anda tidak akan melihat kesalahan seg. 986 00:55:03,940 --> 00:55:08,380 Tapi fungsi masih akan melewati sekitar array dan data dalam kelompok. 987 00:55:08,380 --> 00:55:12,250 Dan Anda harus berhati-hati terhadap apa yang persis fungsi Anda akan kembali. 988 00:55:12,250 --> 00:55:15,160 Dan bahkan jika itu salah satu kolom seperti ini, permintaan 989 00:55:15,160 --> 00:55:17,520 masih akan kembali array ganda. 990 00:55:17,520 --> 00:55:21,390 Jadi untuk akses yang column-- atau Anda bisa memikirkan semua ini sebagai terbalik 991 00:55:21,390 --> 00:55:22,870 karena kita sedang berbicara tentang baris. 992 00:55:22,870 --> 00:55:26,810 Tetapi untuk mengakses satu baris, Anda tidak bisa hanya mengatakan baris. 993 00:55:26,810 --> 00:55:31,540 Meskipun satu baris, Anda harus jangan rowsrows [0] untuk semacam ini menghilangkan 994 00:55:31,540 --> 00:55:37,360 bit luar array dan baru saja Anda satu baris. 995 00:55:37,360 --> 00:55:38,342 >> Melakukan beberapa hal lainnya. 996 00:55:38,342 --> 00:55:40,050 Ada fungsi disebut password_verify 997 00:55:40,050 --> 00:55:42,980 yang memverifikasi sandi yang diposting. 998 00:55:42,980 --> 00:55:48,500 Dan kemudian kita melihat dunia lain variabel sini, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Pada dasarnya sesi id adalah bagaimana Anda melacak 1000 00:55:51,340 --> 00:55:53,990 dari jika seseorang login atau tidak. 1001 00:55:53,990 --> 00:55:58,590 Jadi sekarang dengan login.php, kita login pengguna di. 1002 00:55:58,590 --> 00:56:01,920 Jadi apa yang ingin kita lakukan adalah kita ingin mengatakan id sesi adalah sama dengan baris 1003 00:56:01,920 --> 00:56:05,890 id, yang hanya masuk akal karena setiap baris akan memiliki id yang berbeda 1004 00:56:05,890 --> 00:56:07,239 Jumlah sebagai bagian dari meja. 1005 00:56:07,239 --> 00:56:09,280 Kami akan masuk ke dalam SQL kedua, jadi jika semua ini 1006 00:56:09,280 --> 00:56:13,500 tampaknya sedikit seperti bla, maka semua akan dibersihkan. 1007 00:56:13,500 --> 00:56:18,450 Tapi kita akan mengatur id sama dengan hal yang tepat, penebangan pengguna dalam. 1008 00:56:18,450 --> 00:56:20,530 Mohon maaf jika ada yang tidak beres. 1009 00:56:20,530 --> 00:56:27,600 Dan itu adalah login tujuan dalam hidup sebagai Profesor Malan akan mengatakan. 1010 00:56:27,600 --> 00:56:29,130 >> Jadi itu login.php. 1011 00:56:29,130 --> 00:56:33,750 Dan banyak kode PHP Anda menulis di pset 7, mereka akan menjadi sedikit. 1012 00:56:33,750 --> 00:56:36,470 Jangan lupa untuk chmod ke izin yang tepat. 1013 00:56:36,470 --> 00:56:40,180 Akan ada sedikit tentang bahwa di awal spec. 1014 00:56:40,180 --> 00:56:46,382 >> Tapi PHP yang Anda menulis akan menjadi 1015 00:56:46,382 --> 00:56:47,840 melakukan hal-hal yang mirip dengan ini. 1016 00:56:47,840 --> 00:56:49,715 Anda akan menjadi mengakses beberapa hal yang 1017 00:56:49,715 --> 00:56:52,760 diberikan kepada Anda dalam variabel global PHP yang 1018 00:56:52,760 --> 00:56:56,105 berurusan dengan saat ini login pengguna, apakah ada 1019 00:56:56,105 --> 00:57:00,460 memiliki pernah permintaan dikirim ke ini Halaman, hal yang berbeda seperti itu. 1020 00:57:00,460 --> 00:57:05,790 Dan itu juga akan berpotensi iterasi melalui baris hal ini. 1021 00:57:05,790 --> 00:57:09,010 >> Dalam fungsi yang berbeda, query tidak kembali array yang ganda ini. 1022 00:57:09,010 --> 00:57:11,450 Dan jika ada lebih dari satu baris di dalamnya, 1023 00:57:11,450 --> 00:57:15,080 jika ada are-- ya, jika ada lebih dari satu baris di dalamnya, 1024 00:57:15,080 --> 00:57:16,870 maka akan meja. 1025 00:57:16,870 --> 00:57:20,500 Dan Anda mungkin ingin beralih melalui baris array ini menggunakan 1026 00:57:20,500 --> 00:57:22,860 loop foreach yang kita dijelaskan. 1027 00:57:22,860 --> 00:57:30,270 >> Jadi jika Anda melakukan foreach pada ganda array, apa yang akan word-- di sini, 1028 00:57:30,270 --> 00:57:31,909 Aku benar-benar akan menuliskannya. 1029 00:57:31,909 --> 00:57:32,950 Aku akan menulis cepat di sini. 1030 00:57:32,950 --> 00:57:44,280 >> Jika kita memiliki foreach baris sebagai baris, apa jenis baris? 1031 00:57:44,280 --> 00:57:45,390 Apakah ada yang tahu? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Anda mendapatkannya? 1034 00:57:54,500 --> 00:57:57,110 Jadi baris adalah array ganda. 1035 00:57:57,110 --> 00:58:02,810 Jadi apa yang foreach akan menyimpulkan yang kita inginkan dari berbagai ganda ini 1036 00:58:02,810 --> 00:58:04,280 jika kita iterasi itu? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Kami pada dasarnya dapat mengasumsikan bahwa itu akan menjadi baik elemen, 1039 00:58:10,770 --> 00:58:14,970 atau baris, atau kolom, pada dasarnya. 1040 00:58:14,970 --> 00:58:18,740 Dan baris dan kolom kita dapat memperlakukan sebagai hal yang sama. 1041 00:58:18,740 --> 00:58:23,880 >> Pada dasarnya apa loop foreach akan lakukan adalah itu akan kembali baris. 1042 00:58:23,880 --> 00:58:28,500 baris akan menjadi tipe baris, sedangkan baris adalah array ganda. 1043 00:58:28,500 --> 00:58:32,290 Jadi jika Anda memberikan foreach array ganda, itu 1044 00:58:32,290 --> 00:58:35,830 tidak akan iterate lebih dari satu tingkat yang mendalam. 1045 00:58:35,830 --> 00:58:44,464 Yang pada dasarnya adalah untuk mengatakan jika ada delapan sel dalam table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, 8-- yang foreach loop tidak 1047 00:58:48,110 --> 00:58:51,880 akan pergi melalui setiap sel-sel ini. 1048 00:58:51,880 --> 00:58:56,390 Apa loop foreach akan melakukan apakah itu akan melalui baris ini, 1049 00:58:56,390 --> 00:58:57,870 memberikan seluruh baris ini. 1050 00:58:57,870 --> 00:58:59,410 Dan kemudian akan pergi melalui baris itu. 1051 00:58:59,410 --> 00:59:01,850 >> Sehingga hanya iterates satu tingkat dalam. 1052 00:59:01,850 --> 00:59:05,310 Jika Anda menambahkan bersarang loop foreach, maka Anda 1053 00:59:05,310 --> 00:59:16,280 dapat mengobati setiap baris kembali dari baris, anda melakukan foreach baris sebagai elemen, 1054 00:59:16,280 --> 00:59:17,640 Katakanlah. 1055 00:59:17,640 --> 00:59:22,750 Dan kemudian Anda bisa menggemakan elemen. 1056 00:59:22,750 --> 00:59:24,930 Jadi itu singkat sedikit penyegaran tentang bagaimana 1057 00:59:24,930 --> 00:59:30,220 Anda mungkin menggunakan foreach loop dalam konteks permintaan. 1058 00:59:30,220 --> 00:59:32,840 >> Apakah ada pertanyaan tentang PHP? 1059 00:59:32,840 --> 00:59:36,520 Apa-apa sebelum kita beralih ke berbicara tentang SQL 1060 00:59:36,520 --> 00:59:37,820 dan menyenangkan database? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Merasa baik? 1063 00:59:42,110 --> 00:59:42,750 Merasa baik. 1064 00:59:42,750 --> 00:59:43,470 Baiklah. 1065 00:59:43,470 --> 00:59:49,130 >> Mari kita beralih kembali ke PowerPoint, yang mungkin Anda lewatkan. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Orang-orang yang berada di bagian saya biasanya akan tahu bahwa subpos dari akronim 1068 00:59:57,900 --> 01:00:01,220 selalu hanya kata-kata pertama Saya pikir pertandingan bahwa 1069 01:00:01,220 --> 01:00:02,690 algorithm-- singkatan itu. 1070 01:00:02,690 --> 01:00:04,090 Ini bukan sebuah algoritma. 1071 01:00:04,090 --> 01:00:08,050 >> Jadi SQL adalah database. 1072 01:00:08,050 --> 01:00:11,060 Ini bahasa yang bekerja dengan database. 1073 01:00:11,060 --> 01:00:14,440 Dan semua database yang adalah tabel, setidaknya di jalan 1074 01:00:14,440 --> 01:00:17,220 SQL yang mewakili mereka. 1075 01:00:17,220 --> 01:00:23,610 >> Cara lain untuk berpikir tentang database adalah database adalah satu set kunci dan nilai-nilai 1076 01:00:23,610 --> 01:00:24,110 dasarnya. 1077 01:00:24,110 --> 01:00:29,530 Anda dapat berpikir tentang database sebagai kamus dan juga sebagai meja. 1078 01:00:29,530 --> 01:00:34,300 Pada dasarnya ini adalah cara untuk mengasosiasikan data yang berbeda dengan data lain, 1079 01:00:34,300 --> 01:00:36,270 seringkali melalui baris dan kolom. 1080 01:00:36,270 --> 01:00:38,470 Dan itulah jalan itu SQL yang terbaik. 1081 01:00:38,470 --> 01:00:40,880 >> Jadi ini adalah salah satu contoh dari meja. 1082 01:00:40,880 --> 01:00:44,610 Saya punya beberapa contoh orang di bagian saya, yang 1083 01:00:44,610 --> 01:00:45,970 Saya tidak punya waktu untuk berubah. 1084 01:00:45,970 --> 01:00:52,020 Tapi kami punya hal-hal seperti ID, Nama, negara adidaya, dan kampung halaman. 1085 01:00:52,020 --> 01:00:54,100 Saya tidak tahu di mana siapa pun yang dari pada bagian saya, 1086 01:00:54,100 --> 01:00:56,266 jadi aku hanya akan menganggap semua orang dari New York 1087 01:00:56,266 --> 01:00:59,370 City karena saya memiliki tinggi statistik kemungkinan menjadi benar. 1088 01:00:59,370 --> 01:01:04,200 >> SQL otomatis akan mengambil peduli dari ID kolom untuk Anda. 1089 01:01:04,200 --> 01:01:07,560 Jika Anda menyisipkan baris baru ke dalam database SQL, 1090 01:01:07,560 --> 01:01:09,700 itu akan kenaikan yang Nomor ID dan hanya 1091 01:01:09,700 --> 01:01:14,890 pada dasarnya tetap seperti lima nama, adidaya, kampung halaman, siapa pun 1092 01:01:14,890 --> 01:01:16,430 ke ujung meja itu. 1093 01:01:16,430 --> 01:01:19,160 Jadi ID adalah kolom yang akan Anda tidak perlu khawatir tentang. 1094 01:01:19,160 --> 01:01:22,770 Tapi, seperti dalam kasus dari login.php, ketika kita 1095 01:01:22,770 --> 01:01:26,610 mendapatkan ID sesi dari meja dan hanya menggunakan ID, 1096 01:01:26,610 --> 01:01:30,320 ID adalah cara untuk mengidentifikasi secara unik unsur database. 1097 01:01:30,320 --> 01:01:34,980 >> Jadi jika kita memiliki dua Sams, kedua yang diajarkan CS50, dan kedua yang 1098 01:01:34,980 --> 01:01:39,370 berasal dari Milwaukee, mereka akan masih memiliki nomor ID yang berbeda 1099 01:01:39,370 --> 01:01:43,420 dan dengan demikian menjadi berbeda dalam konteks meja. 1100 01:01:43,420 --> 01:01:48,700 Jadi ini adalah apa SQL berurusan dengan, bekerja dengan di bagian belakang. 1101 01:01:48,700 --> 01:01:54,160 >> Sekarang ini adalah empat perintah bahwa Anda harus bekerja dengan SQL. 1102 01:01:54,160 --> 01:01:56,390 Dan aku melemparkan mereka semua pada satu slide. 1103 01:01:56,390 --> 01:01:59,530 Tapi kita akan pergi melalui mereka semua secara individual. 1104 01:01:59,530 --> 01:02:03,300 >> Perintah pertama adalah UPDATE, yang melakukan apa yang Anda harapkan. 1105 01:02:03,300 --> 01:02:07,240 Katakanlah Anda memiliki beberapa data dalam tabel yang keluar dari tanggal. 1106 01:02:07,240 --> 01:02:09,470 Seperti jika Anda menjaga melacak nama orang 1107 01:02:09,470 --> 01:02:13,350 dan usia, jika seseorang yang meningkat usia, maka 1108 01:02:13,350 --> 01:02:18,590 Anda akan ingin pergi dan memperbarui usia hanya orang itu. 1109 01:02:18,590 --> 01:02:21,902 Untuk contoh yang bekerja dengan table-- pertama kami 1110 01:02:21,902 --> 01:02:24,610 jangan khawatir tentang menulis semua perintah ini pada waktu yang sama. 1111 01:02:24,610 --> 01:02:27,640 Tapi jika Anda punya pembaruan bawah, yang akan menjadi baik untuk bagian ini, 1112 01:02:27,640 --> 01:02:29,790 karena kita akan kembali ke meja. 1113 01:02:29,790 --> 01:02:33,920 >> Jadi jika kita kembali ke meja, katakanlah sesuatu yang terjadi 1114 01:02:33,920 --> 01:02:38,480 itu ada gempa bumi atau garis patahan yang memisahkan secara langsung 1115 01:02:38,480 --> 01:02:39,920 melalui New York City. 1116 01:02:39,920 --> 01:02:45,130 Dan kami ingin memperbarui semua orang yang tinggal di New York City. 1117 01:02:45,130 --> 01:02:49,670 Mereka semua harus pindah ke Pennsylvania. 1118 01:02:49,670 --> 01:02:51,130 Itu bukan kampung halaman. 1119 01:02:51,130 --> 01:02:53,180 Mereka semua harus pindah ke New Haven. 1120 01:02:53,180 --> 01:02:54,030 Di sana kami pergi. 1121 01:02:54,030 --> 01:02:57,630 Jadi semua orang di New York bergerak ke New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> Dan jadi itu sesuatu yang mengedit tiga baris dalam tabel ini. 1123 01:03:01,300 --> 01:03:04,716 Namun dalam SQL, Anda dapat melakukan bahwa hanya dalam satu pernyataan. 1124 01:03:04,716 --> 01:03:05,715 Jadi kita kembali ke UPDATE. 1125 01:03:05,715 --> 01:03:09,670 Biarkan saya cepat menghapus papan ini lagi. 1126 01:03:09,670 --> 01:03:14,570 Ketika kita berbicara tentang memperbarui, ada 1127 01:03:14,570 --> 01:03:17,640 beberapa bagian dari sintaks yang merupakan kunci. 1128 01:03:17,640 --> 01:03:19,770 Nah, semua sintaks adalah kunci. 1129 01:03:19,770 --> 01:03:22,210 Tetapi hal-hal hijau adalah opsional. 1130 01:03:22,210 --> 01:03:25,680 Putih yang diperlukan, seperti yang telah ditetapkan nama. 1131 01:03:25,680 --> 01:03:30,750 Dan biru muda adalah hal-hal yang berbeda-beda tergantung di atas meja. 1132 01:03:30,750 --> 01:03:34,640 Jadi itulah apa yang terjadi dengan skema warna di sini, di sana. 1133 01:03:34,640 --> 01:03:40,250 >> Jadi jika kita ingin memperbarui hanya mereka baris dari orang-orang yang tinggal di New York, 1134 01:03:40,250 --> 01:03:43,490 sehingga apa yang kita akan lakukan jika kita mengatakan UPDATE? 1135 01:03:43,490 --> 01:03:46,320 Jadi tabel di mana kita menempatkan nama meja kami. 1136 01:03:46,320 --> 01:03:49,170 Katakan saja nama dari meja kami adalah meja satu. 1137 01:03:49,170 --> 01:03:52,515 Jadi kami ingin UPDATE meja satu. 1138 01:03:52,515 --> 01:03:57,470 Dan kami ingin set-- apa yang kita ingin mengatur? 1139 01:03:57,470 --> 01:04:05,160 Nah kita ingin mengatakan, PHP sehingga column-- memperlakukan baris sebagai pengidentifikasi unik. 1140 01:04:05,160 --> 01:04:07,930 Dan kemudian kolom berbagai bidang 1141 01:04:07,930 --> 01:04:09,940 dari elemen-elemen dari database. 1142 01:04:09,940 --> 01:04:14,210 >> Jadi elemen pertama dari database memiliki nama Sam, negara adidaya dari CS50, 1143 01:04:14,210 --> 01:04:16,210 dan kelahiran Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Jadi jika kita berkata set, mari kita lihat parameter lagi set yang mengambil. 1145 01:04:20,710 --> 01:04:23,880 Kami memiliki kolom sama nilai. 1146 01:04:23,880 --> 01:04:27,290 Jadi kita ingin mengatakan beberapa column-- yang ingat 1147 01:04:27,290 --> 01:04:31,850 adalah field-- kita ingin melihat bidang sama dengan sesuatu yang baru. 1148 01:04:31,850 --> 01:04:42,340 >> Jadi jika kita hanya mengatakan pembaruan Tabel 1, menetapkan nama yang sama Elliot. 1149 01:04:42,340 --> 01:04:46,310 Dapatkan beberapa orang dari bagian baru di atas ini. 1150 01:04:46,310 --> 01:04:51,540 Tetapi jika kita hanya melakukan update tabel 1 menetapkan nama yang sama Elliot, apa yang akan 1151 01:04:51,540 --> 01:04:55,530 tabel terlihat seperti setelah itu? 1152 01:04:55,530 --> 01:04:56,410 Orang punya ide? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Ya. 1155 01:05:00,210 --> 01:05:03,195 >> AUDIENCE: Segala sesuatu di bahwa baris akan menjadi Elliot. 1156 01:05:03,195 --> 01:05:04,570 SPEAKER: Segala sesuatu di mana berturut-turut? 1157 01:05:04,570 --> 01:05:06,067 AUDIENCE: Pada baris pertama. 1158 01:05:06,067 --> 01:05:07,150 SPEAKER: Pada baris pertama? 1159 01:05:07,150 --> 01:05:09,724 Mengapa baris pertama? 1160 01:05:09,724 --> 01:05:10,890 Saya tidak bermaksud untuk memilih pada Anda. 1161 01:05:10,890 --> 01:05:13,287 >> AUDIENCE: Mungkin semuanya di seluruh meja? 1162 01:05:13,287 --> 01:05:15,120 SPEAKER: Segala sesuatu di seluruh tabel, ya. 1163 01:05:15,120 --> 01:05:19,520 Dan itulah yang benar because-- Saya hanya membantu Anda keluar sedikit 1164 01:05:19,520 --> 01:05:22,650 there-- karena kita dihilangkan opsional klausa WHERE. 1165 01:05:22,650 --> 01:05:27,260 Jika Anda tidak memiliki WHERE klausa, apa perintah ini akan melakukan 1166 01:05:27,260 --> 01:05:32,240 apakah itu akan bekerja dengan setiap baris tunggal dalam tabel. 1167 01:05:32,240 --> 01:05:35,430 Nama semua orang akan menjadi Elliott, pada dasarnya, 1168 01:05:35,430 --> 01:05:37,360 yang Elliot sangat senang. 1169 01:05:37,360 --> 01:05:40,070 Atau Yanni, salah satu dari dua. 1170 01:05:40,070 --> 01:05:42,490 Tapi nama semua orang akan berubah. 1171 01:05:42,490 --> 01:05:47,880 >> Jadi cara kita menggunakan WHERE clause-- dan ini berlaku untuk semua wheres 1172 01:05:47,880 --> 01:05:51,410 yang berada di masing-masing hal-hal yang berbeda. 1173 01:05:51,410 --> 01:05:54,380 Jadi Anda akan melihat bahwa SET memiliki nilai yang sama kolom. 1174 01:05:54,380 --> 01:05:55,190 Dan begitu juga MANA. 1175 01:05:55,190 --> 01:06:00,040 Tapi ini berbeda jenis laporan. 1176 01:06:00,040 --> 01:06:04,400 Jadi kolom sama nilai di SET dalam tugas. 1177 01:06:04,400 --> 01:06:08,320 Seperti kita katakan kita ingin untuk mengatur nama sama dengan Elliot. 1178 01:06:08,320 --> 01:06:15,390 Namun dalam klausul MANA, ini adalah pernyataan kesetaraan. 1179 01:06:15,390 --> 01:06:20,410 Jadi katakanlah kita hanya ingin mengubah nama seseorang untuk Elliot 1180 01:06:20,410 --> 01:06:23,940 jika nama mereka adalah Ryan, katakanlah. 1181 01:06:23,940 --> 01:06:24,920 >> Jadi ketika kita mengatakan 1182 01:06:24,920 --> 01:06:32,700 >> WHERE nama sama Ryan, yang akan berhasil hanya perubahan 1183 01:06:32,700 --> 01:06:37,440 name-- itu hanya akan ubah field nama di baris 1184 01:06:37,440 --> 01:06:40,770 dimana kolom nama sama dengan Ryan. 1185 01:06:40,770 --> 01:06:44,430 Jadi jika kita memiliki beberapa orang bernama Ryan, semua nama-nama mereka 1186 01:06:44,430 --> 01:06:45,730 akan berubah ke Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Hal ini mirip dengan contoh dari jika garis patahan membagi 1188 01:06:48,169 --> 01:06:50,960 New York City dan setiap orang harus pindah ke New Haven, cara kita bisa 1189 01:06:50,960 --> 01:06:56,570 melakukan itu dalam satu pernyataan adalah UPDATE table1 SET kampung = New Haven 1190 01:06:56,570 --> 01:07:00,210 di mana kampung halaman sama dengan New York City. 1191 01:07:00,210 --> 01:07:03,410 Ini adalah kekuatan pernyataan UPDATE. 1192 01:07:03,410 --> 01:07:10,530 Kita bisa memilih sejumlah baris melalui pernyataan benar 1193 01:07:10,530 --> 01:07:12,860 tentang bidang di baris itu. 1194 01:07:12,860 --> 01:07:19,510 Kita tidak bisa mengatakan UPDATE table1 set name = Elliot MANA baris = 1, 1195 01:07:19,510 --> 01:07:24,820 kecuali bahwa kita dapat jika kita katakan ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Jadi kita akan menjadi bekerja dengan kesetaraan 1198 01:07:29,830 --> 01:07:32,830 bidang, kesetaraan kolom. 1199 01:07:32,830 --> 01:07:38,030 Tetapi menggunakan bidang ID adalah cara untuk pilih baris individu secara khusus, 1200 01:07:38,030 --> 01:07:43,210 karena bidang ID adalah unik identifier dalam database SQL. 1201 01:07:43,210 --> 01:07:45,860 Jadi seperti memperbarui baris satu, ID sama dengan 1. 1202 01:07:45,860 --> 01:07:49,560 Memperbarui baris dua, hanya mengubah nomor ID. 1203 01:07:49,560 --> 01:07:51,610 Tapi kekuatan MANA pernyataan adalah kita bahwa 1204 01:07:51,610 --> 01:07:57,480 dapat memperbarui sesuatu berdasarkan apa yang mereka nilai-nilai saat ini hal-hal tertentu yang. 1205 01:07:57,480 --> 01:07:58,155 Ya Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> AUDIENCE: Dan bagaimana jika Anda ingin to-- lagi, ini adalah pertanyaan lain. 1207 01:08:02,678 --> 01:08:07,660 Tapi pertanyaan pertama saya adalah, di mana hal ini terjadi? 1208 01:08:07,660 --> 01:08:09,130 Dimana saya memperbarui ini? 1209 01:08:09,130 --> 01:08:11,100 Apakah ini dalam kode PHP? 1210 01:08:11,100 --> 01:08:13,379 >> SPEAKER: Dimana Anda memperbarui, ya. 1211 01:08:13,379 --> 01:08:15,170 Kita akan berbicara tentang di mana semua ini 1212 01:08:15,170 --> 01:08:18,729 terjadi semacam setelah kami pergi melalui semua perintah. 1213 01:08:18,729 --> 01:08:21,130 Tapi apa yang Anda butuhkan untuk tahu untuk saat ini pada dasarnya adalah 1214 01:08:21,130 --> 01:08:26,279 bahwa database SQL Anda ada sebagai sesuatu 1215 01:08:26,279 --> 01:08:30,090 untuk diakses oleh query fungsi, yang CS50 mendefinisikan. 1216 01:08:30,090 --> 01:08:33,800 Jadi, jika Anda menggunakan fungsi query, Anda dapat mengakses tabel ini. 1217 01:08:33,800 --> 01:08:39,529 >> Jadi Anda akan mengirim ini perintah ke meja Anda dalam file PHP 1218 01:08:39,529 --> 01:08:41,420 melalui fungsi query. 1219 01:08:41,420 --> 01:08:45,410 Anda juga dapat bermain-main dengan meja Anda langsung. 1220 01:08:45,410 --> 01:08:49,050 Dan itulah cara terbaik untuk menguji hal-perintah. 1221 01:08:49,050 --> 01:08:52,720 Dan kita akan pergi melalui persis bagaimana untuk melakukan itu hanya sedikit. 1222 01:08:52,720 --> 01:08:54,910 >> Jadi itu perintah UPDATE. 1223 01:08:54,910 --> 01:08:57,939 Dan sisa perintah akan menjadi semacam sama, 1224 01:08:57,939 --> 01:08:59,069 mengerjakan hal yang serupa. 1225 01:08:59,069 --> 01:09:02,740 INSERT INTO mungkin yang paling berbeda dari UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Aku akan meninggalkan di sana untuk hanya sedikit dan bekerja di sini. 1227 01:09:06,170 --> 01:09:10,215 Jadi INSERT INTO, Anda akan melihat tabel yang masih sama. 1228 01:09:10,215 --> 01:09:17,010 Anda ingin INSERT INTO. 1229 01:09:17,010 --> 01:09:20,286 Kapitalisasi, SQL adalah kasus sensitif. 1230 01:09:20,286 --> 01:09:22,160 Jadi Anda tidak perlu memanfaatkan hal-hal ini. 1231 01:09:22,160 --> 01:09:27,960 Dengan konvensi, kata-kata putih dikapitalisasi. 1232 01:09:27,960 --> 01:09:31,590 Tapi saya juga kode warna mereka. 1233 01:09:31,590 --> 01:09:34,390 Satu-satunya alasan bahwa Anda memanfaatkan mereka ketika Anda mengetik mereka 1234 01:09:34,390 --> 01:09:36,609 hanya untuk menekankan bahwa mereka adalah konstanta. 1235 01:09:36,609 --> 01:09:39,189 Dan sehingga Anda dapat melihat kapitalisasi atau fakta 1236 01:09:39,189 --> 01:09:40,740 bahwa saya telah berwarna mereka berbeda. 1237 01:09:40,740 --> 01:09:44,910 >> Jadi kita punya INSERT INTO, mari kita lakukan table1 lagi. 1238 01:09:44,910 --> 01:09:45,930 Ini semua dalam satu baris. 1239 01:09:45,930 --> 01:09:48,609 Aku hanya memisahkannya dengan laporan yang berbeda. 1240 01:09:48,609 --> 01:09:52,399 Jadi jangan khawatir tentang fakta bahwa table1 membuat ke baris kedua. 1241 01:09:52,399 --> 01:09:56,130 >> Jadi kami ingin INSERT INTO table1 beberapa nilai. 1242 01:09:56,130 --> 01:09:58,922 Dan Anda akan melihat opsional bit, yang saya akan sampai ke dalam kedua. 1243 01:09:58,922 --> 01:09:59,755 Jadi kita punya NILAI. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Jadi katakanlah kita ingin menambahkan Andi ke meja kami, karena kami kehilangan Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi sakit. 1247 01:10:09,390 --> 01:10:12,490 Jadi mari kita tambahkan Andi ke meja kami. 1248 01:10:12,490 --> 01:10:15,150 Ingat bahwa nomor ID diperbarui secara otomatis. 1249 01:10:15,150 --> 01:10:17,320 Jadi satu-satunya bidang kita perlu khawatir tentang 1250 01:10:17,320 --> 01:10:20,230 adalah nama, negara adidaya, dan kampung halaman. 1251 01:10:20,230 --> 01:10:23,660 >> Dan cara kita melakukan itu, melihat sintaks kami, adalah kita sudah 1252 01:10:23,660 --> 01:10:28,780 baru saja kurung, dengan koma nilai dipisahkan, masing-masing 1253 01:10:28,780 --> 01:10:29,890 adalah nilai. 1254 01:10:29,890 --> 01:10:35,530 Jadi jika kita ingin memasukkan Andi ke kami tabel, yang harus kita lakukan adalah benar Andi. 1255 01:10:35,530 --> 01:10:38,630 Apa adidaya Andi, orang di bagian Andi? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Dia suka penerbangan, atau seperti kecepatan, atau sesuatu. 1258 01:10:47,545 --> 01:10:48,920 Apa yang sudah kita miliki di sana? 1259 01:10:48,920 --> 01:10:53,425 Kami memiliki CS50, penerbangan, kecepatan, dan kekuatan. 1260 01:10:53,425 --> 01:10:54,850 >> AUDIENCE: perjalanan waktu. 1261 01:10:54,850 --> 01:10:56,180 >> SPEAKER: Waktu perjalanan, menakjubkan. 1262 01:10:56,180 --> 01:11:04,280 Jadi kita punya Andi, waktu perjalanan, dan kota kelahirannya. 1263 01:11:04,280 --> 01:11:05,530 Itu pertanyaan yang benar-benar baik. 1264 01:11:05,530 --> 01:11:09,210 New York City, kecuali seseorang tahu. 1265 01:11:09,210 --> 01:11:13,600 Semua orang dari New York adalah pelajaran untuk mengambil dari hari ini. 1266 01:11:13,600 --> 01:11:17,710 >> Jadi pernyataan ini akan menyisipkan, sebagai baris kelima, 1267 01:11:17,710 --> 01:11:21,900 dengan perjalanan waktu adidaya dan kelahiran New York City. 1268 01:11:21,900 --> 01:11:25,660 Tapi bidang opsional pada dasarnya adalah cara 1269 01:11:25,660 --> 01:11:30,090 untuk menentukan dengan tepat yang kolom Anda ingin memasukkan hal-hal di. 1270 01:11:30,090 --> 01:11:33,710 >> Cara yang kita lakukan sekarang, Andi, perjalanan waktu, New York City, 1271 01:11:33,710 --> 01:11:38,150 akan dalam urutan yang tepat dari kami Nama table--, negara adidaya, kampung halaman. 1272 01:11:38,150 --> 01:11:42,290 Dan jika Anda ingin melakukan sesuatu selain itu, 1273 01:11:42,290 --> 01:11:44,970 seperti mengatakan Anda tidak tahu adidaya seseorang, 1274 01:11:44,970 --> 01:11:47,660 seperti bagaimana saya tidak tahu Andi adidaya di awal. 1275 01:11:47,660 --> 01:11:50,450 Jadi semua saya tahu adalah dia nama dan kota kelahirannya. 1276 01:11:50,450 --> 01:11:54,550 Apa yang bisa saya lakukan adalah saya bisa do-- Aku akan menghapus ini cepat. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Saya ingin hanya memperbarui kolom. 1279 01:12:00,090 --> 01:12:04,100 Dan ini adalah di mana opsional daftar kolom datang ke dalam bermain. 1280 01:12:04,100 --> 01:12:09,185 Saya hanya ingin memperbarui nama dan kampung halaman. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 Dan kemudian saya akan mengatakan NILAI. 1283 01:12:16,480 --> 01:12:24,430 Saya akan melakukan Andi dan New York City. 1284 01:12:24,430 --> 01:12:28,980 >> Jika saya telah dihilangkan daftar kolom dan hanya dilakukan dua hal, 1285 01:12:28,980 --> 01:12:32,450 di mana akan New York City telah pergi? 1286 01:12:32,450 --> 01:12:35,900 Kolom akan yang New York Kota telah ditempatkan di? 1287 01:12:35,900 --> 01:12:38,950 Orang punya ide? 1288 01:12:38,950 --> 01:12:40,160 Adidaya, persis. 1289 01:12:40,160 --> 01:12:41,890 >> Jadi ini hanya akan pergi dalam rangka. 1290 01:12:41,890 --> 01:12:45,530 Dan setelah mencapai akhir daftar, itu hanya akan berhenti mengisi hal-hal di. 1291 01:12:45,530 --> 01:12:49,080 Dan nilai-nilai yang akan tetap di semua kolom hanya akan menjadi NULL. 1292 01:12:49,080 --> 01:12:51,840 Jadi karena kita ditentukan Nama dan kampung halaman, 1293 01:12:51,840 --> 01:12:56,110 kita akan memiliki ID 5, nama Andi, negara adidaya NULL. 1294 01:12:56,110 --> 01:12:58,750 Jadi adidaya adalah nilai diinisiasi. 1295 01:12:58,750 --> 01:13:01,340 Anda tidak akan selalu mendapatkan kesalahan Valgrind yang sama jika Anda mencoba 1296 01:13:01,340 --> 01:13:01,970 dan mengaksesnya. 1297 01:13:01,970 --> 01:13:05,160 Semuanya akan baik memusatkan perhatian keluar, karena NULL adalah nilai di SQL. 1298 01:13:05,160 --> 01:13:06,780 Itu adalah sebuah konstanta. 1299 01:13:06,780 --> 01:13:08,980 Dan kemudian kampung halaman akan New York City. 1300 01:13:08,980 --> 01:13:11,860 Jadi itulah INSERT INTO perintah. 1301 01:13:11,860 --> 01:13:13,610 Sebelum kita bergerak, ada dua perintah lagi. 1302 01:13:13,610 --> 01:13:19,060 Apakah orang-orang memiliki pertanyaan tentang UPDATE, sekitar INSERT INTO, sekitar SQL 1303 01:13:19,060 --> 01:13:21,556 umumnya sebelum kita bergerak ke bit terakhir kami? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Orang merasa baik, besar. 1306 01:13:26,910 --> 01:13:27,410 Menyukainya. 1307 01:13:27,410 --> 01:13:29,480 Jadi mari kita bicara tentang SELECT. 1308 01:13:29,480 --> 01:13:33,445 Akan parit UPDATE di sini. 1309 01:13:33,445 --> 01:13:35,720 >> Dan SELECT akan menjadi sangat mirip. 1310 01:13:35,720 --> 01:13:38,790 Tujuan dari SELECT, Tujuan SELECT dalam kehidupan 1311 01:13:38,790 --> 01:13:45,910 adalah untuk memberikan sekelompok kolom yang memenuhi kondisi tertentu. 1312 01:13:45,910 --> 01:13:48,230 Dan ketika saya mengatakan memuaskan kondisi tertentu, 1313 01:13:48,230 --> 01:13:50,800 pikiran Anda segera mungkin kembali ke yang klausa WHERE 1314 01:13:50,800 --> 01:13:52,090 yang muncul di UPDATE. 1315 01:13:52,090 --> 01:13:54,880 Dan ayat yang tepatnya ada di SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Jika kita tidak menempatkan WHERE klausa dan kita katakan nama SELECT, 1317 01:14:06,020 --> 01:14:16,490 hometown-- dieja yang sedikit Nama SALAH, kampung halaman DARI table1. 1318 01:14:16,490 --> 01:14:19,690 Jika kita hanya mengatakan bahwa, apa SELECT akan memberi kita adalah itu 1319 01:14:19,690 --> 01:14:23,730 akan memberi kita double-- meja, bukan. 1320 01:14:23,730 --> 01:14:27,450 Sebuah array ganda jika kita berpikir tentang di PHP indra. 1321 01:14:27,450 --> 01:14:33,239 Tapi itu hanya akan memberi kita Array ganda dari dua nama columns--, 1322 01:14:33,239 --> 01:14:33,780 dan kampung halaman. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 Dan itu akan mengabaikan ID. 1325 01:14:38,130 --> 01:14:41,310 Dan itu akan mengabaikan adidaya. 1326 01:14:41,310 --> 01:14:44,696 Dan itu hanya akan memberi kita setiap baris tunggal dari meja itu. 1327 01:14:44,696 --> 01:14:46,570 Jadi jika kita hanya dimasukkan Andi, kita akan memiliki Andi. 1328 01:14:46,570 --> 01:14:48,605 Dan kita akan memiliki empat aslinya. 1329 01:14:48,605 --> 01:14:53,720 Jika mereka telah diperbarui, yang akan tercermin, dan sebagainya, dan sebagainya. 1330 01:14:53,720 --> 01:14:56,520 >> Jadi ini adalah karena kita tidak menggunakan klausa WHERE. 1331 01:14:56,520 --> 01:14:59,200 Tapi kita bisa menggunakannya dalam persis cara yang sama kita menggunakannya di UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Jika kita hanya ingin meja nama dan kekuatan super orang yang hidup 1333 01:15:05,310 --> 01:15:13,430 di New York, kita dapat mengeksekusi pernyataan seperti nama SELECT, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Aku hanya akan meninggalkan itu-- DARI table1 MANA kampung = New York City. 1335 01:15:27,190 --> 01:15:33,370 >> Jadi ini pergi untuk menunjukkan bahwa Anda dapat mendapatkan kolom yang sama sekali berbeda, 1336 01:15:33,370 --> 01:15:36,920 dan kemudian menempatkan kolom yang Anda tidak bahkan mendapatkan kembali klausa WHERE. 1337 01:15:36,920 --> 01:15:39,200 Kami bahkan tidak ingin kelahiran orang. 1338 01:15:39,200 --> 01:15:41,920 Tapi kami ingin nama dan negara adidaya orang 1339 01:15:41,920 --> 01:15:43,817 yang kampung halaman adalah New York City. 1340 01:15:43,817 --> 01:15:45,650 Jadi itu sesuatu yang kita dapat melakukan dengan WHERE 1341 01:15:45,650 --> 01:15:49,112 klausul adalah kita bisa berurusan dengan kolom bahwa kita tidak selalu ingin kembali. 1342 01:15:49,112 --> 01:15:52,320 Dengan cara yang sama di UPDATE, kita dapat menangani dengan kolom yang kita lakukan belum tentu 1343 01:15:52,320 --> 01:15:53,270 ingin memperbarui. 1344 01:15:53,270 --> 01:15:58,890 Kami dapat memperbarui kota orang yang nama yang adalah Sam, misalnya. 1345 01:15:58,890 --> 01:16:02,080 Kami dapat memperbarui kota setiap orang yang nomor ID adalah 2. 1346 01:16:02,080 --> 01:16:04,960 Jadi hanya memperbarui Kota baris kedua 1347 01:16:04,960 --> 01:16:08,220 di mana kita tidak harus berurusan dengan diperlukan pertanyaan umum. 1348 01:16:08,220 --> 01:16:13,264 >> Dan DELETE adalah, karena Anda akan berharap, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 Dan kemudian kami punya klausul MANA lain. 1350 01:16:14,930 --> 01:16:17,940 Jadi kita bisa mengatakan WHERE ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Hapus baris pertama. 1352 01:16:18,950 --> 01:16:23,240 Dan DELETE akan selalu menghapus berturut-turut, atau akan menghapus beberapa jumlah baris. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM tabel WHERE kampung = New York City 1354 01:16:26,990 --> 01:16:28,740 akan menghapus semua orang di New York City. 1355 01:16:28,740 --> 01:16:30,985 Itu jika ada wabah tragis tiba-tiba 1356 01:16:30,985 --> 01:16:33,360 dan Anda hanya ingin menghapus semua orang dari meja yang 1357 01:16:33,360 --> 01:16:35,760 tinggal di kota tertentu yang terkena wabah. 1358 01:16:35,760 --> 01:16:38,050 Semoga mereka beristirahat dalam damai. 1359 01:16:38,050 --> 01:16:43,849 >> Ini adalah empat perintah SQL bahwa Anda akan perlu menggunakan. 1360 01:16:43,849 --> 01:16:45,390 Anda bahkan tidak perlu menggunakan mereka semua. 1361 01:16:45,390 --> 01:16:47,690 Tapi ini adalah empat yang CS50 mengharapkan Anda 1362 01:16:47,690 --> 01:16:53,630 untuk menjadi nyaman dengan masuk ke baik kuis 1 dan juga pset7 dan pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Hanya ada meja itu lagi. 1364 01:16:55,820 --> 01:16:58,930 Dalam satu ini, Roy negara adidaya memiliki telah diperbarui untuk sinar laser, yang 1365 01:16:58,930 --> 01:17:00,880 adalah contoh saya tidak menggunakan. 1366 01:17:00,880 --> 01:17:05,480 Saya tidak tahu mana yang Roy lebih suka, tapi kekuatan. 1367 01:17:05,480 --> 01:17:07,670 Roy memiliki kekuatan adidaya. 1368 01:17:07,670 --> 01:17:09,090 Katherine tidak berhasil hari ini. 1369 01:17:09,090 --> 01:17:10,260 Itu disayangkan. 1370 01:17:10,260 --> 01:17:11,260 Tapi dia memiliki kecepatan super. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Baik itu PHP. 1373 01:17:14,670 --> 01:17:19,410 Sebelum kita berbicara tentang MVC, apakah ada yang punya pertanyaan tentang PHP? 1374 01:17:19,410 --> 01:17:23,864 Sekarang SQL, atau PHP jika Anda tiba-tiba memiliki datang dengan pertanyaan tentang PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Besar. 1377 01:17:28,460 --> 01:17:29,920 Baiklah, kita sudah siap saat itu. 1378 01:17:29,920 --> 01:17:33,660 >> Jadi berbicara sedikit tentang model tampilan kontroler, 1379 01:17:33,660 --> 01:17:38,770 mari kita kembali ke beberapa dari hal-hal di pset7. 1380 01:17:38,770 --> 01:17:42,470 Jadi apa model tampilan kontroler is-- aku tidak 1381 01:17:42,470 --> 01:17:45,660 akan menyimpan perubahan saya untuk login karena saya benar-benar dibantai itu. 1382 01:17:45,660 --> 01:17:49,220 Tapi pada dasarnya kita memiliki dua hal yang terpisah terjadi. 1383 01:17:49,220 --> 01:17:52,390 Kami memiliki publik direktori yang berisi 1384 01:17:52,390 --> 01:17:56,460 kode yang akan dieksekusi dan halaman web yang akan dikunjungi. 1385 01:17:56,460 --> 01:17:58,780 Dan kami juga memiliki direktori views ini. 1386 01:17:58,780 --> 01:18:01,780 Dan pandangan berisi template. 1387 01:18:01,780 --> 01:18:04,390 >> Ini adalah apa fungsi render-- kami melihat render 1388 01:18:04,390 --> 01:18:08,240 fungsi dalam sekelompok kode PHP CS50 yang telah ditulis untuk Anda, 1389 01:18:08,240 --> 01:18:10,550 yang mengambil parameter tertentu. 1390 01:18:10,550 --> 01:18:14,510 Apa kode yang melakukan yang itu akan menjadi pandangan, 1391 01:18:14,510 --> 01:18:18,000 yang set seperti Kode HTML prewritten, 1392 01:18:18,000 --> 01:18:20,720 dan itu memasukkan nilai-nilai ke tempat-tempat tertentu. 1393 01:18:20,720 --> 01:18:23,990 Ini adalah bagaimana ketika Anda masuk ke CS50 Keuangan, 1394 01:18:23,990 --> 01:18:25,760 header yang sama pada setiap halaman. 1395 01:18:25,760 --> 01:18:28,130 Footer sama pada setiap halaman. 1396 01:18:28,130 --> 01:18:31,880 Hal ini karena jalan yang membuat karya itu akan 1397 01:18:31,880 --> 01:18:36,720 otomatis menambal di header yang dan viewer yang dapat Anda temukan di tampilan. 1398 01:18:36,720 --> 01:18:41,400 >> Kami benar-benar bisa masuk ke header, dan lihat, itu sebuah file HTML dengan kepala. 1399 01:18:41,400 --> 01:18:43,280 Itu punya beberapa stylesheet. 1400 01:18:43,280 --> 01:18:48,450 Anda tidak perlu melihat CSS untuk pset7 jika Anda tidak ingin. 1401 01:18:48,450 --> 01:18:50,560 Tapi Anda bisa memodifikasi mereka jika Anda ingin, membuat 1402 01:18:50,560 --> 01:18:53,470 Keuangan Anda terlihat sedikit berbeda. 1403 01:18:53,470 --> 01:18:57,560 >> Itu punya beberapa PHP di header sedikit untuk melihat 1404 01:18:57,560 --> 01:19:01,240 jika ada judul yang berbeda itu harus dimasukkan ke dalam header ini. 1405 01:19:01,240 --> 01:19:04,300 Tapi hanya beberapa script lainnya, dan link, dan hal-hal lain. 1406 01:19:04,300 --> 01:19:08,700 Kepala berakhir, tubuh mulai, dan oops, kami memiliki aneh ini sedikit akhir bit. 1407 01:19:08,700 --> 01:19:14,730 Dan ada div, seperti semacam berbentuk elemen 1408 01:19:14,730 --> 01:19:17,120 yang memiliki ide menengah. 1409 01:19:17,120 --> 01:19:22,450 >> Dan kemudian ketika kita melihat footer, kami memiliki akhir div. 1410 01:19:22,450 --> 01:19:25,000 Kami memiliki bottom, yang di mana teks footer adalah. 1411 01:19:25,000 --> 01:19:26,770 Akhir div, akhir tubuh, akhir HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Jadi apa yang membuat adalah lakukan adalah membuat semacam 1413 01:19:29,070 --> 01:19:33,150 dari menambal header, sebuah file PHP yang berbeda yang 1414 01:19:33,150 --> 01:19:37,110 akan berisi hal-hal aktual yang Anda akan melihat, seperti meja Anda dari saham 1415 01:19:37,110 --> 01:19:39,690 jika Anda membeli atau menjual saham. 1416 01:19:39,690 --> 01:19:41,480 Dan kemudian akan menambahkan di footer. 1417 01:19:41,480 --> 01:19:44,890 Dan model tampilan Ide controller kita bahwa 1418 01:19:44,890 --> 01:19:49,590 ingin memisahkan bagaimana hal terlihat dari kode. 1419 01:19:49,590 --> 01:19:53,420 Ini kita ingin memisahkan frontend dan backend, di mana frontend adalah 1420 01:19:53,420 --> 01:20:00,440 hal-hal yang melihat pengguna, bagus visuals-- HTML, CSS, hal-hal seperti itu, 1421 01:20:00,440 --> 01:20:02,320 gambar, dan lain-lain. 1422 01:20:02,320 --> 01:20:05,780 Dan backend adalah PHP. 1423 01:20:05,780 --> 01:20:07,710 Ini adalah kode yang Anda tulis. 1424 01:20:07,710 --> 01:20:10,240 Ini adalah tempat kode itu melakukan operasi yang sebenarnya. 1425 01:20:10,240 --> 01:20:12,400 Ini adalah ketika Anda menambahkan saham ke meja Anda, 1426 01:20:12,400 --> 01:20:14,890 ketika Anda membeli dan jual, itu backend. 1427 01:20:14,890 --> 01:20:20,210 >> Dan kita bisa, seperti yang Anda lihat, termasuk PHP langsung dalam HTML. 1428 01:20:20,210 --> 01:20:23,210 Jadi apa yang bisa kami lakukan untuk tugas ini hanya memiliki 1429 01:20:23,210 --> 01:20:26,200 file HTML untuk setiap halaman, seperti login. 1430 01:20:26,200 --> 01:20:30,260 Dan kemudian pada halaman tersebut, hanya memiliki blok besar kode PHP, 1431 01:20:30,260 --> 01:20:33,822 termasuk semua kode yang Halaman yang secara khusus akan membutuhkan. 1432 01:20:33,822 --> 01:20:35,780 Dan kemudian kita bisa memiliki melakukan itu untuk portofolio. 1433 01:20:35,780 --> 01:20:40,250 Kita bisa melakukan semua pembelian dan menjual dalam halaman individual. 1434 01:20:40,250 --> 01:20:43,680 >> Tapi karena kita render terpisah dari mana 1435 01:20:43,680 --> 01:20:46,660 kita menulis backend kode, kita bisa dengan mudah 1436 01:20:46,660 --> 01:20:52,660 mengubah bagaimana hal-hal terlihat tanpa mengubah setiap file. 1437 01:20:52,660 --> 01:20:55,460 Kami melakukan hal-hal seperti hanya menambahkan div baru ke bawah 1438 01:20:55,460 --> 01:21:00,720 of-- Halo Saya diubah footer. 1439 01:21:00,720 --> 01:21:03,710 Anda hanya dapat melakukan hal-hal seperti itu. 1440 01:21:03,710 --> 01:21:07,250 Tapi juga, Anda dapat mengubah seluruh tata letak visual yang 1441 01:21:07,250 --> 01:21:09,290 tanpa mempengaruhi apa akan di backend. 1442 01:21:09,290 --> 01:21:12,000 Dan Anda dapat mengubah Seluruh backend dan masih 1443 01:21:12,000 --> 01:21:13,900 memiliki terlihat seperti itu sebelumnya. 1444 01:21:13,900 --> 01:21:14,400 Ini 1445 01:21:14,400 --> 01:21:16,170 >> Apakah ide model view controller. 1446 01:21:16,170 --> 01:21:19,992 Dan itu sebenarnya paradigma dikenakan di beberapa bahasa pemrograman 1447 01:21:19,992 --> 01:21:21,700 Anda mungkin ingin menggunakan untuk proyek-proyek akhir. 1448 01:21:21,700 --> 01:21:25,100 Jika Anda melakukan pengembangan iOS, mereka memiliki pandangan, 1449 01:21:25,100 --> 01:21:29,120 yang adalah apa yang Anda lihat pada iPhone, dan kemudian backend sebagai seperti hal yang terpisah. 1450 01:21:29,120 --> 01:21:31,260 >> Anda dapat berpikir tentang sedikit. 1451 01:21:31,260 --> 01:21:35,190 Ada banyak binari di ilmu komputer, yang lucu, 1452 01:21:35,190 --> 01:21:37,270 karena segala sesuatu yang ada di biner. 1453 01:21:37,270 --> 01:21:38,550 Aku tidak merencanakan itu. 1454 01:21:38,550 --> 01:21:41,590 Itu pelesetan yang tidak diinginkan. 1455 01:21:41,590 --> 01:21:43,860 Ya, pun tidak dimaksudkan. 1456 01:21:43,860 --> 01:21:49,070 >> Tapi seperti H file dan file c, ada banyak memisahkan dari hal-hal yang kita 1457 01:21:49,070 --> 01:21:49,900 mungkin tidak perlu. 1458 01:21:49,900 --> 01:21:54,330 Jadi kami hanya bisa mengedit file h, atau seseorang hanya dapat melihat file H dan tahu 1459 01:21:54,330 --> 01:21:57,650 persis fungsi yang berada di C file tanpa harus mengetahui 1460 01:21:57,650 --> 01:21:58,870 pelaksanaannya. 1461 01:21:58,870 --> 01:22:02,800 Gagasan komponen memisahkan yang bergantung pada satu sama lain 1462 01:22:02,800 --> 01:22:06,990 tetapi dapat semacam mengakses satu sama lain melalui saluran yang berbeda, lewat 1463 01:22:06,990 --> 01:22:09,310 variabel, hanya meliputi laporan, hal 1464 01:22:09,310 --> 01:22:14,440 seperti itu, prinsip ini membantu untuk membuat aplikasi 1465 01:22:14,440 --> 01:22:17,080 yang dapat lebih mudah disunting oleh beberapa orang, 1466 01:22:17,080 --> 01:22:20,440 dapat lebih mudah berubah atau dimodifikasi pada skala besar, 1467 01:22:20,440 --> 01:22:24,880 dan lebih mudah untuk debug di banyak cara. 1468 01:22:24,880 --> 01:22:28,254 >> Benar-benar cepat, saya harus beberapa tips untuk pset7, 1469 01:22:28,254 --> 01:22:31,420 yang saya akan membuat layar penuh sehingga Anda tidak hanya melihat the-- ujung ujung penerima informasi. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Ada tidak banyak tips. 1472 01:22:35,130 --> 01:22:38,060 >> Tapi saya sebutkan PHP sulit untuk debug. 1473 01:22:38,060 --> 01:22:39,290 Dua dan tiga memeriksa. 1474 01:22:39,290 --> 01:22:41,550 Jika kode Anda hanya tidak muncul pada halaman, 1475 01:22:41,550 --> 01:22:46,240 itu mungkin kesalahan PHP, maaf. 1476 01:22:46,240 --> 01:22:48,570 >> Anda tidak perlu melihat CSS jika Anda tidak ingin. 1477 01:22:48,570 --> 01:22:52,150 Tapi begitu Anda selesai, itu bisa sedikit menyenangkan hal yang baik untuk hanya pergi di 1478 01:22:52,150 --> 01:22:54,770 dan mess dengan parameter CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS dan HTML adalah contoh model lihat gaya pengendali hal juga, kan? 1480 01:22:58,700 --> 01:23:02,150 Anda bisa memiliki tag gaya dalam elemen HTML. 1481 01:23:02,150 --> 01:23:04,800 Tapi jika Anda semacam Outsourcing mereka untuk CSS, 1482 01:23:04,800 --> 01:23:08,180 mereka lebih mudah untuk mengedit, dan bermain main dengan, dan bersenang-senang dengan. 1483 01:23:08,180 --> 01:23:10,816 >> Perlakukan CS50 helper berfungsi sebagai kotak hitam. 1484 01:23:10,816 --> 01:23:12,940 Anda tidak perlu tahu apa render lakukan, 1485 01:23:12,940 --> 01:23:16,770 tapi percaya untuk selalu melakukan kanan Hal tergantung pada apa yang Anda lulus, 1486 01:23:16,770 --> 01:23:17,690 hal-hal seperti ini. 1487 01:23:17,690 --> 01:23:21,040 Dan saya akan merekomendasikan menonton walkthrough Daud, 1488 01:23:21,040 --> 01:23:24,490 melalui semua hal, bukan hanya todos, 1489 01:23:24,490 --> 01:23:26,960 tapi Anda benar-benar dapat mengobati kotak-kotak hitam. 1490 01:23:26,960 --> 01:23:29,280 Jangan pergi ke dalam fungsi mencari bug. 1491 01:23:29,280 --> 01:23:33,510 >> Dan menyambut kembalinya dari Zamyla tuan kami. 1492 01:23:33,510 --> 01:23:34,010 Besar. 1493 01:23:34,010 --> 01:23:40,430 >> Apakah ada pertanyaan terakhir sebelum kita semacam bangkit untuk hari? 1494 01:23:40,430 --> 01:23:42,610 Apakah aku masih hidup? 1495 01:23:42,610 --> 01:23:44,700 Besar. 1496 01:23:44,700 --> 01:23:47,120 Orang livestream Hi. 1497 01:23:47,120 --> 01:23:47,620 Besar. 1498 01:23:47,620 --> 01:23:50,260 Apakah ada lagi pertanyaan? 1499 01:23:50,260 --> 01:23:50,760 Tidak? 1500 01:23:50,760 --> 01:23:52,884 >> Dan kemudian saya pikir kami baik untuk pergi untuk hari ini. 1501 01:23:52,884 --> 01:23:55,550 Aku akan tetap sekitar sedikit sesudahnya jika orang memiliki pertanyaan 1502 01:23:55,550 --> 01:23:57,480 mereka takut untuk bertanya pada sungai. 1503 01:23:57,480 --> 01:23:59,790 Tapi sebaliknya, memiliki hari yang baik. 1504 01:23:59,790 --> 01:24:01,933