[เล่นเพลง] DOUG LLOYD: ในวิดีโอของเรา ในหัวข้อการพัฒนาเว็บ เราได้กล่าวถึงแนวคิดของ ฐานข้อมูลไม่กี่ครั้งใช่มั้ย? ดังนั้นฐานข้อมูลคุณ อาจคุ้นเคยกับจาก บอกว่าใช้โปรแกรม Microsoft Excel หรือ Google Spreadsheets มันจริงๆเพียงแค่การจัดระเบียบ ชุดของตารางแถวและคอลัมน์ และฐานข้อมูลเป็นที่ที่ ร้านค้าที่เว็บไซต์ของเรา ข้อมูลที่มีความสำคัญ สำหรับเว็บไซต์ของเราที่จะทำงานอย่างถูกต้อง อีกครั้งเช่นกันที่นี่จริงๆ มีการจัดเก็บชื่อผู้ใช้และรหัสผ่าน ในฐานข้อมูลเพื่อที่ว่าเมื่อ ผู้ใช้บันทึกลงในเว็บไซต์ของเรา ฐานข้อมูลสามารถสอบถามเพื่อดู หากผู้ใช้ที่มีอยู่ในฐานข้อมูล และถ้าพวกเขามีการตรวจสอบว่า รหัสผ่านที่ถูกต้อง และถ้ารหัสผ่านถูกต้อง แล้วเราสามารถให้พวกเขามีสิ่งที่หน้า พวกเขากำลังขอ ดังนั้นคุณอาจจะอีกครั้งคุ้นเคย กับความคิดนี้จาก Excel หรือ Google Spreadsheets เรามีฐานข้อมูล ตารางแถวและคอลัมน์ และนั่นคือการจัดเรียงจริงๆ ของชุดพื้นฐาน ลำดับชั้นของรายละเอียดที่นี่ ดังนั้นนี่คือกระดาษคำนวณ Excel และถ้าคุณได้เคยเปิดนี้ หรืออีกโปรแกรมที่คล้ายกัน คุณรู้ว่าสิ่งเหล่านี้ที่นี่ rows-- 1, 2, 3, 4, 5, 6, 7 เหล่านี้เป็นคอลัมน์ อาจจะลงที่นี่ถึงแม้ว่าคุณอาจจะ ไม่ใช้คุณลักษณะนี้ชะมัด much-- ฉันจะซูม in-- เรามี ความคิดของแผ่นนี้ ดังนั้นบางทีแผ่นเหล่านี้ถ้า ผมสลับกันไปมา ตารางที่แตกต่างกัน ที่มีอยู่ในฐานข้อมูลของฉัน และถ้าเรายังคงตัวอย่างทั้งหมด วิธีการที่ชื่อของฐานข้อมูลนี้ เป็นเล่ม 1 บางทีฉันอาจจะมีหนังสือ 2 เล่ม 3 ดังนั้นแต่ละไฟล์ Excel เป็น ฐานข้อมูลแต่ละแผ่นตาราง และภายในของแต่ละตารางฉันมี ความคิดของแถวและคอลัมน์นี้ ดังนั้นฉันจะทำงานกับฐานข้อมูลนี้หรือไม่? ฉันจะได้รับข้อมูลจากมันได้หรือไม่ ดีมีภาษาที่เรียกว่า SQL-- ซึ่งผมมักจะเพียงแค่เรียก Sequel-- และมันหมายถึง ภาษาของแบบสอบถาม และมันก็เป็นภาษาการเขียนโปรแกรม แต่มันเป็นการเขียนโปรแกรมที่ค่อนข้าง จำกัด ภาษา. ก็ไม่เชิงเหมือนคนอื่น ๆ ที่เราได้ทำงานร่วมกับ แต่จุดประสงค์ของการนี​​้ การเขียนโปรแกรมภาษา คือการสืบค้นฐานข้อมูลเพื่อ ขอข้อมูลจากฐานข้อมูล ค้นหาข้อมูลใน ฐานข้อมูลและอื่น ๆ นอกจากนี้เรายังอยู่ใน CS50-- และมันเป็นอย่างมาก แพลตฟอร์มร่วมกันก็เรียกว่า MySQL นั่นคือสิ่งที่เราใช้ในการเรียนการสอน มันเป็นโอเพนซอร์ส แพลตฟอร์มที่กำหนด database-- สัมพันธ์ที่เรียกว่า ฐานข้อมูลได้อย่างมีประสิทธิภาพ เราไม่จำเป็นต้องที่จะได้รับ ลงรายละเอียดมากเกินไป เกี่ยวกับสิ่งที่ฐานข้อมูลเชิงสัมพันธ์คือ แต่ภาษา SQL เป็น เก่งมากในการทำงาน กับ MySQL และอื่น ๆ ที่คล้ายกัน รูปแบบของฐานข้อมูลเชิงสัมพันธ์ และการติดตั้งหลาย MySQL มาพร้อมกับบางสิ่งบางอย่าง เรียกว่า phpMyAdmin ซึ่ง เป็นผู้ใช้แบบกราฟิก interface-- GUI-- ที่ ทำให้มันเล็ก ๆ น้อย ๆ ใช้งานง่ายที่จะดำเนินการ สืบค้นฐานข้อมูล เพราะฐานข้อมูลที่ไม่ได้ใช้เพียงแค่ โดยการเขียนโปรแกรมขั้นสูงใช่มั้ย? บางครั้งมี เหล่านี้ธุรกิจขนาดเล็ก และพวกเขาไม่สามารถที่จะ จ้างทีมงานของโปรแกรมเมอร์ แต่พวกเขายังคงต้องเก็บ ข้อมูลในฐานข้อมูล บางอย่างเช่น phpMyAdmin ทำให้มันง่ายมากสำหรับคน ที่ไม่เคยตั้งโปรแกรมก่อน รับและกลายเป็นที่คุ้นเคยกับวิธีการ จะทำงานร่วมกับฐานข้อมูล ปัญหาคือ phpMyAdmin ในขณะที่ มันเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการเรียนรู้ เกี่ยวกับฐานข้อมูลมันเป็นคู่มือ คุณจะต้องเข้าสู่ และรันคำสั่งและชนิด สิ่งที่อยู่ในตนเอง และในขณะที่เรารู้จากเรา ตัวอย่างเช่นในการเขียนโปรแกรม PHP เว็บ ต้องทำด้วยตนเอง สิ่งที่อยู่บนเว็บไซต์ของเรา ถ้าเราต้องการแบบไดนามิกที่ใช้งานที่ตอบสนองต่อ เว็บไซต์อาจจะไม่วิธีที่ดีที่สุด เราอยากที่จะหาวิธีการ อาจจะโดยอัตโนมัตินี้อย่างใด และ SQL จะทำให้เราสามารถทำเช่นนี้ ดังนั้นเมื่อเรากำลังจะไป เริ่มต้นการทำงานกับ SQL, ครั้งแรกที่เราจะต้องมี ฐานข้อมูลในการทำงานร่วมกับ การสร้างฐานข้อมูลเป็น บางสิ่งบางอย่างที่คุณอาจ จะทำใน phpMyAdmin เพราะ คุณจะต้องทำมันครั้งเดียว และไวยากรณ์สำหรับการทำเช่นนั้น เป็นจำนวนมากตรงไปตรงมามากขึ้น มันง่ายมากที่จะทำมัน ในอินเตอร์เฟซผู้ใช้แบบกราฟิก กว่าการพิมพ์ออกเป็นคำสั่ง คำสั่งจะได้รับความยุ่งยากน้อย ในทำนองเดียวกันการสร้างตารางสามารถ ได้รับไม่น้อยยุ่งยากเช่นกัน และเพื่อให้สิ่งที่ต้องการสร้างฐานข้อมูล และการสร้างตารางที่คุณ อาจเป็นเพียงจะทำ once-- ครั้งต่อตารางครั้งต่อ database-- มันตกลงที่จะทำใน ส่วนติดต่อแบบกราฟิก ในกระบวนการของ การสร้างตารางที่คุณจะ ยังมีการระบุทั้งหมดของ คอลัมน์ที่จะอยู่ในตารางที่ สิ่งที่จัดเรียงข้อมูลทำ คุณต้องการที่จะเก็บไว้ในตารางหรือไม่ บางทีชื่อผู้ใช้และวันเดือนปีเกิด รหัสผ่านหมายเลข ID ผู้ใช้และอาจ เมืองและรัฐใช่มั้ย? และทุกครั้งที่เราต้องการที่จะเพิ่มผู้ใช้ ไปยังฐานข้อมูลที่เราต้องการที่จะได้รับทั้งหก ของชิ้นส่วนเหล่านั้นของข้อมูล และเราจะทำอย่างนั้นได้โดยการเพิ่ม แถวในตาราง ดังนั้นครั้งแรกที่เราสร้างฐานข้อมูล แล้วเราสร้างตาราง ในฐานะที่เป็นส่วนหนึ่งของการสร้าง ตารางที่เราจะถาม เพื่อระบุว่าทุกคอลัมน์ เราต้องการในตารางนี้ และแล้วในขณะที่เราเริ่มที่จะเพิ่ม ข้อมูลในฐานข้อมูล และสืบค้นฐานข้อมูลมากขึ้น generally-- ไม่ได้เป็นเพียงการเพิ่ม แต่ทุกอย่างอื่นที่เรา do-- เราจะจัดการ กับแถวของตารางซึ่งเป็นหนึ่งใน ข้อมูลของผู้ใช้จากการตั้งค่าทั้งหมด ดังนั้นทุกคอลัมน์ SQL เป็นความสามารถในการ ถือข้อมูลชนิดข้อมูลที่เฉพาะเจาะจง ดังนั้นเราจึงจัดเรียงของการตัดออกนี้ ความคิดของชนิดข้อมูลใน PHP แต่พวกเขากลับมาที่นี่ใน SQL และมีจำนวนมากของชนิดข้อมูล นี่เป็นเพียง 20 ของพวกเขา แต่ ก็ไม่ได้ทั้งหมดของพวกเขา ดังนั้นเราจึงมีความคิดเช่น INTs-- Integers-- เราอาจจะรู้ ที่คอลัมน์นี้สามารถถือจำนวนเต็ม และมีรูปแบบที่มีความ thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT บางทีเราไม่เคยต้องสี่กัด บางทีเราต้องแปดไบต์และเพื่อให้เรา สามารถใช้รูปแบบเหล่านี้บนจำนวนเต็ม จะเป็นพื้นที่เล็กน้อยมีประสิทธิภาพมากขึ้น เราสามารถทำตัวเลขทศนิยมเรา สามารถทำตัวเลขทศนิยม เหล่านี้จะคล้ายสวย มีความแตกต่างบางอย่างที่ และถ้าคุณจะ ชอบที่จะมองขึ้น การเรียงลำดับของ SQL คู่มือคุณ สามารถมองเห็นสิ่งเล็กน้อย ความแตกต่างระหว่างพวกเขา บางทีเราต้องการจัดเก็บ ข้อมูลเกี่ยวกับวันที่และเวลา บางทีเรากำลังติดตามความเคลื่อนไหวของ เมื่อผู้ใช้เข้าร่วมเว็บไซต์ของเรา และดังนั้นบางทีเราต้องการ ที่จะมีคอลัมน์ที่เป็น ช่วงเวลาวันที่หรือการประทับเวลาที่ บ่งชี้ว่าเมื่อผู้ใช้จริง ลงทะเบียน. เราสามารถทำรูปทรงเรขาคณิตและ linestrings นี้เป็นจริงเย็นสวย เราสามารถแผนที่ออก พื้นที่ทางภูมิศาสตร์ที่ใช้ ระบบสารสนเทศภูมิศาสตร์พิกัดพล็อตออกจากพื้นที่ ดังนั้นจริงสามารถจัดเก็บการจัดเรียงที่ ของข้อมูลในคอลัมน์ SQL ข้อความเป็นเพียงหยดยักษ์ของข้อความที่อาจจะ enums เป็นชนิดที่น่าสนใจของ จริงๆแล้วพวกเขามีอยู่ในซีเราไม่ พูดคุยเกี่ยวกับพวกเขาเพราะพวกเขาไม่ได้ ชะมัดที่ใช้กันทั่วไปอย่างน้อย CS50 แต่มันเป็นชนิดข้อมูลที่ระบุซึ่ง มีความสามารถในการถือครองค่า จำกัด เป็นตัวอย่างที่ดีจริงๆที่นี่จะเป็น เพื่อสร้าง enum ที่เจ็ด ค่าที่เป็นไปได้วันอาทิตย์วันจันทร์ วันอังคารวันพุธวันพฤหัสบดีวันศุกร์ วันเสาร์ที่ใช่มั้ย? วันที่ชนิดข้อมูลของ สัปดาห์ที่ไม่ได้อยู่ แต่เราสามารถสร้าง ชนิดข้อมูลที่ระบุเช่น คอลัมน์ที่สามารถเท่านั้นที่เคยถือ หนึ่งในบรรดาเจ็ดค่าที่เป็นไป เราได้แจกแจงทั้งหมด ของค่าที่เป็นไปได้ แล้วเรามี CHAR และ VARCHAR, และผมสีเหล่านี้เป็นสีเขียว เพราะเราจริง จะใช้เวลาเป็นครั้งที่สอง พูดคุยเกี่ยวกับความแตกต่าง ระหว่างทั้งสองสิ่ง ดังนั้น CHAR ซึ่งแตกต่างจาก C ที่ CHAR เป็นตัวละครเดียว ใน SQL ถ่านหมายถึง สตริงความยาวคงที่ และเมื่อเราสร้างนี้ คอลัมน์เราจริง สามารถระบุความยาวของสตริง ดังนั้นในตัวอย่างนี้ เราอาจจะบอกว่า CHAR (10) นั่นหมายความว่าทุก องค์ประกอบของคอลัมน์นั้น จะประกอบด้วย 10 ไบต์ของข้อมูล ไม่มากไม่น้อย. ดังนั้นถ้าเราพยายามและใส่ใน 15 บิตหรือองค์ประกอบ 15 ตัวอักษร หรือค่าลงในคอลัมน์นี้ เรากำลังจะได้รับครั้งแรก 10 ถ้าเราใส่ในสอง ตัวอักษรค่ายาว เรากำลังจะมีทั้งสอง ตัวอักษรแล้วแปดกัด null เราจะไม่เคยจะมีประสิทธิภาพมากขึ้นกว่าที่ VARCHAR เป็นชนิดเช่น ความคิดของเราของสตริง ที่เราคุ้นเคย กับการจาก C หรือจาก PHP มันเป็นความยาวตัวแปรสตริง และเมื่อคุณสร้าง คอลัมน์นี้คุณเพียงแค่ ระบุความยาวเป็นไปได้สูงสุด ดังนั้นอาจจะ 99 หรือ 255 ทั่วไป ที่จะเป็นความยาวสูงสุด ดังนั้นถ้าเราได้รับการจัดเก็บ 15 ตัวอักษร, เราจะใช้ 15 ไบต์อาจจะ 16 ไบต์สำหรับเทอร์มิ null ถ้าเราได้รับการจัดเก็บ สามตัวอักษร, เราจะใช้สามหรือสี่ไบต์ แต่เราจะไม่ใช้เต็ม 99 ดังนั้นทำไมเราจะมีทั้งสอง? ดีถ้าเราจำเป็นต้องคิดออกว่า บางสิ่งบางอย่างที่มีความยาวเป็น VARCHAR ที่ เรามีชนิดของย้ำ ข้ามมันเช่นเดียวกับที่เราทำใน C และคิดออกว่าจะหยุด ในขณะที่ถ้าเรารู้ว่าทุกอย่าง ในคอลัมน์นี้คือ 10 ไบต์อาจจะ เรารู้ว่าข้อมูลที่เราสามารถกระโดด 10 ไบต์ 10 ไบต์ 10 ไบต์ 10 ไบต์ และมักจะพบ จุดเริ่มต้นของสตริง ดังนั้นเราอาจจะมีบางส่วน การสูญเสียพื้นที่ที่มี CHAR ที่ แต่อาจจะมีการค้า ออกจากการมีความเร็วที่ดีกว่า ในการนำฐานข้อมูล แต่บางทีเราต้องการ ความยืดหยุ่นของ VARCHAR แทนการ having-- หาก CHAR ของเรา เป็น 255 แต่ส่วนใหญ่ของผู้ใช้ของเรา เป็นเพียงป้อนสามหรือสี่ไบต์ มูลค่าของข้อมูลหรือสามหรือสี่ ตัวอักษรมูลค่าของข้อมูล แต่ผู้ใช้บางคนได้ใช้ ทั้งหมด 255 อาจจะ VARCHAR จะมีความเหมาะสมมากขึ้นมี มันเรียงลำดับของการค้าออกและ โดยทั่วไปสำหรับวัตถุประสงค์ของการ CS50, คุณไม่จำเป็นต้องกังวลมากเกินไปเกี่ยวกับ ไม่ว่าคุณจะใช้ CHAR หรือ VARCHAR แต่ในโลกแห่งความจริงสิ่งเหล่านี้ ไม่สำคัญเพราะทั้งหมดของคอลัมน์เหล่านี้ ใช้พื้นที่ทางกายภาพที่เกิดขึ้นจริง และพื้นที่ทางกายภาพใน โลกแห่งความจริงมาในพรีเมี่ยม ดังนั้นหนึ่งในการพิจารณาอื่น ๆ เมื่อคุณกำลังสร้างตาราง คือการเลือกคอลัมน์หนึ่งที่จะเป็น สิ่งที่เรียกว่าคีย์หลัก และที่สำคัญหลักคือคอลัมน์ ที่ทุกค่าเดียวจะไม่ซ้ำกัน และนั่นหมายความว่าคุณสามารถได้อย่างง่ายดาย เลือกออกแถวเดียวเพียงแค่มอง ที่คีย์หลักของแถวนั้น ดังนั้นสำหรับตัวอย่างเช่นคุณ โดยทั่วไปกับผู้ใช้ ไม่ต้องการให้ผู้ใช้ที่สอง มีจำนวนผู้ใช้ ID เดียวกัน ดังนั้นบางทีคุณอาจมี จำนวนมากของข้อมูล และอาจจะสองผู้ใช้สามารถ มี name-- เดียวกัน คุณมีจอห์นสมิ ธ และจอห์นสมิ ธ ที่ไม่จำเป็นต้องมีปัญหา เพราะมีคนหลายคน ในโลกที่ชื่อจอห์นสมิ ธ แต่เรามีเพียงหมายเลขรหัสผู้ใช้คนหนึ่ง 10 ID ผู้ใช้จำนวนหนึ่ง 11, 12, 13 เราไม่ได้มีผู้ใช้สองคน ที่มีหมายเลขเดียวกัน และดังนั้นบางทีหมายเลข ID ผู้ใช้ จะเป็นคีย์หลักที่ดี เราไม่ได้มีการทำสำเนาใด ๆ และที่เราสามารถทำได้ในขณะนี้ไม่ซ้ำกัน ระบุทุกเพียงแถวเดียว โดยดูที่คอลัมน์นั้น การเลือกคีย์หลักสามารถจริง ทำให้การดำเนินงานตารางที่ตามมา มากขึ้นเพราะคุณสามารถใช้ประโยชน์จาก ความจริงที่ว่าแถวบางอย่างจะ จะไม่ซ้ำกันหรือคอลัมน์บางอย่าง ของฐานข้อมูลหรือตารางของคุณ จะไม่ซ้ำกันที่จะเลือก โดยเฉพาะอย่างยิ่งแถวออก นอกจากนี้คุณยังสามารถมีหลักร่วมกัน ที่สำคัญที่คุณอาจพบโอกาส ในการใช้งานซึ่งเป็นเพียง การรวมกันของสองคอลัมน์ที่ รับประกันได้ว่าจะไม่ซ้ำกัน ดังนั้นบางทีคุณมีหนึ่ง คอลัมน์ที่เป็นและชัด ๆ คอลัมน์หนึ่งที่หนึ่งสอง และสาม แต่คุณจะเท่านั้นที่เคย มี A1 เดียวเดียว A2 และอื่น ๆ และอื่น ๆ แต่คุณอาจจะมี B2 เป็น C2 หรือ A1, A2, A3, A4 ดังนั้นคุณอาจจะมีหลาย ๆ คนขณะที่หลาย Bs คนหลายเจ้าตัวหลาย แต่คุณสามารถเท่านั้นที่เคยมี เดียว A1, B2, C3 และอื่น ๆ ดังนั้นที่ผมกล่าวว่า SQL เป็น ภาษาโปรแกรม แต่มันก็มีคำศัพท์ที่ค่อนข้าง จำกัด มันไม่ได้ค่อนข้างเป็นที่ขยายตัวเป็น C และ PHP และภาษาอื่น ๆ ที่เราพูดคุยในหลักสูตร มันเป็นความละเอียดมากขึ้น ภาษากว่าสิ่งที่เรากำลัง จะพูดถึงในเรื่องนี้ วิดีโอเพราะในวิดีโอนี้ ที่เรากำลังจะพูดคุยเกี่ยวกับ สี่การดำเนินงานที่เรา สามารถดำเนินการบนโต๊ะ มีมากกว่านี้ เราสามารถทำอะไรได้มากกว่านี้ แต่สำหรับวัตถุประสงค์ของเรา โดยทั่วไปเราจะต้องใช้ เพียงสี่แทรก operations--, เลือกปรับปรุงและลบ และคุณอาจจะสามารถคาดเดาสังหรณ์ใจ สิ่งที่ทั้งสี่ของสิ่งเหล่านี้ทำ แต่เราจะไปลงเล็กน้อย รายละเอียดในแต่ละ ดังนั้นเพื่อวัตถุประสงค์ในการนี​​้ วิดีโอสมมติ เราได้ที่สองต่อไป ตารางในฐานข้อมูลเดียว เรามีตารางที่เรียกว่าผู้ใช้ที่มี สี่ columns-- หมายเลขรหัสชื่อผู้ใช้ รหัสผ่านและชื่อเต็ม และเรามีสอง ตารางในฐานข้อมูลเดียวกัน เรียกว่าคุณแม่ที่เพิ่งเก็บข้อมูล เกี่ยวกับชื่อผู้ใช้และแม่ ดังนั้นสำหรับตัวอย่าง ในวิดีโอนี้เราจะ จะใช้ฐานข้อมูลนี้และ การปรับปรุงที่ตามมากับมัน ดังนั้นสมมติว่าเราต้องการที่จะ เพิ่มข้อมูลในตาราง นั่นคือสิ่งที่ดำเนินการแทรกไม่ ในการอธิบายทั้งหมดของ คำสั่งเหล่านี้ฉันจะ เพื่อให้คุณมีโครงกระดูกทั่วไปที่จะใช้ เพราะโดยทั่วไปแบบสอบถาม จะดูสวยคล้ายกัน เรากำลังจะมีการเปลี่ยนแปลง ชิ้นส่วนที่แตกต่างกันเล็กน้อยจากข้อมูล ที่จะทำสิ่งที่แตกต่างกับโต๊ะ ดังนั้นสำหรับ INSERT, โครงกระดูก ลักษณะชนิดเช่นนี้ เราต้องการที่จะใส่ลงใน ตารางโดยเฉพาะอย่างยิ่ง แล้วเรามีวงเล็บเปิด และรายชื่อของคอลัมน์ ว่าเราต้องการที่จะนำค่าลง วงเล็บปิดที่ ต่อไปนี้ค่าแล้ว อีกครั้งที่เราออกรายการค่า เราต้องการที่จะใส่ในตาราง ดังนั้นตัวอย่างนี้ จะเป็นดังต่อไปนี้ ฉันต้องการที่จะใส่ลงในตาราง ผู้ใช้ columns-- ดังต่อไปนี้ ชื่อผู้ใช้รหัสผ่านและชื่อเต็ม ดังนั้นแถวใหม่ที่ฉันวาง ในบรรดาสามคอลัมน์และเรา ไปใส่ในค่า นิวแมน USMAIL และนิวแมน ดังนั้นในกรณีนี้ผม วางนิวแมนตัวพิมพ์เล็ก ลงในคอลัมน์ชื่อผู้ใช้รหัสผ่าน USMAIL และเมืองหลวงชื่อเต็มยังไม่มี นิวแมนลงในคอลัมน์ชื่อเต็ม ดังนั้นนี่คือสิ่งฐานข้อมูล มองเหมือนก่อน นี่คือสิ่งที่ผู้ใช้ตารางบน ด้านบนดูเหมือนก่อนที่เราจะทำอย่างนี้ หลังจากที่เราดำเนินการนี​​้ แบบสอบถามที่เราได้รับนี้ เราได้เพิ่มแถวใหม่ในตาราง แต่แจ้งให้ทราบนี้สิ่งหนึ่งที่ ที่ฉันไม่ได้ระบุ แต่อย่างใดฉันมีค่า สำหรับซึ่งเป็น 12 ขวาที่นี่ ผมไม่ได้บอกว่าผมต้องการที่จะ ใส่หมายเลข ID ในการมี ผมอยากที่จะใส่ชื่อผู้ใช้ รหัสผ่านชื่อเต็ม และผมว่าที่ดี แต่ฉันยังมี 12 ฉันไม่ได้รับนี้ 12 ทำไม? ดีก็ปรากฎว่า เมื่อคุณกำหนด คอลัมน์ที่เป็นไปได้ของคุณ คีย์หลักซึ่งเป็นปกติ ชอบพูดว่าจำนวนประชาชน มันไม่จำเป็นเสมอ จะเป็นหมายเลขประจำตัวที่ แต่ก็มักจะเป็นความคิดที่ดีที่จะ จะเรียงลำดับของค่าจำนวนเต็มบาง คุณมีตัวเลือกใน phpMyAdmin เมื่อคุณกำลังสร้างฐานข้อมูลของคุณ หรือตารางของคุณเพื่อตั้งว่า คอลัมน์เป็น incrementing อัตโนมัติ ซึ่งเป็นความคิดที่ดีจริงๆเมื่อ คุณกำลังทำงานกับคีย์หลัก เพราะคุณต้องการให้ค่าทุก ในคอลัมน์ที่จะไม่ซ้ำกัน และถ้าคุณลืมที่จะระบุ มันสำหรับคนมากกว่าหนึ่งคน, ขณะนี้คุณมีสถานการณ์ที่ คอลัมน์ที่ไม่ซ้ำกัน คุณมีสองช่องว่างเพื่อให้คุณไม่สามารถ อีกต่อไปไม่ซ้ำกันระบุ column-- หรือคุณไม่สามารถที่ไม่ซ้ำกัน ระบุแถวขึ้นอยู่กับคอลัมน์ว่า มันหายไปทั้งหมดของมัน ค่าเป็นคีย์หลัก และเห็นได้ชัดดังนั้นสิ่งที่ฉันได้ทำ ที่นี่มีการกำหนดค่า ID ผู้ใช้ คอลัมน์ที่เพิ่มขึ้นรถยนต์เพื่อให้ทุก ทุกครั้งที่ผมเพิ่มข้อมูลในตาราง ก็จะให้ฉัน ค่าสำหรับคีย์หลัก ดังนั้นผมจึงไม่เคยลืมที่จะทำเพราะ ฐานข้อมูลจะทำเพื่อฉัน เพื่อให้เป็นชนิดของความสุข และนั่นเป็นเหตุผลที่เราได้รับ 12 ในที่นั่นเพราะผมได้ ตั้งคอลัมน์ว่าจะเพิ่มขึ้นโดยอัตโนมัติ ถ้าฉันจะเพิ่มคนอื่น มันจะเป็นแค่ 13 ถ้าผมเพิ่ม คนอื่นมันจะเป็นวันที่ 14 และอื่น ๆ ดังนั้นขอเพียงแค่ทำแทรกอีกหนึ่ง เราจะใส่ลงในตารางแม่ใน โดยเฉพาะอย่างยิ่งชื่อผู้ใช้และแม่ คอลัมน์ค่า kramer แบ็บส์และเครเมอ และเพื่อให้เรามีแบบนี้มาก่อน หลังจากที่เราดำเนินการที่ แบบสอบถาม SQL เรามีนี้ เราได้เพิ่มและเครเมอส์ เครเมอตารางแม่ ดังนั้นที่ใส่ เลือกเป็นสิ่งที่เราใช้ในการสกัด ข้อมูลจากตาราง ดังนั้นนี่คือวิธีการที่เราได้รับ ข้อมูลจากฐานข้อมูล และคำสั่ง SELECT เพื่อให้เป็นไปได้ ที่ใช้บ่อยมากในการเขียนโปรแกรม ทั่วไป framework-- โครงกระดูกโดยทั่วไปมีลักษณะเช่นนี้ เลือกชุดของคอลัมน์จาก ตารางแล้วเลือก คุณสามารถระบุสภาพที่หรือ สิ่งที่เรามักจะเรียกกริยาที่ มักจะเป็นคำที่เราใช้ในการ SQL แต่มันก็เป็นสิ่งที่ แถวโดยเฉพาะอย่างยิ่งคุณต้องการที่จะได้รับ หากคุณต้องการแทนการรับ ทุกอย่างแคบลง นี่คือที่ที่คุณจะทำอย่างนั้น และจากนั้นก็เลือกที่คุณยังสามารถ สั่งซื้อโดยเฉพาะคอลัมน์ ดังนั้นบางทีคุณอาจต้องการที่จะมีสิ่งที่เรียง ตามลำดับตัวอักษรในหนึ่งคอลัมน์ ที่หรือตัวอักษรขึ้นอยู่กับอีกคนหนึ่ง อีกครั้งที่สถานที่และตามคำสั่งเป็นตัวเลือก แต่พวกเขาอาจจะ useful-- โดยเฉพาะอย่างยิ่ง สถานที่จะเป็นประโยชน์กับ แคบลงเพื่อให้คุณทำไม่ได้ ได้รับฐานข้อมูลทั้งหมดของคุณกลับมาและ มีการประมวลผลนั้นคุณเพิ่งได้รับ ชิ้นส่วนของว่าที่คุณดูแลเกี่ยวกับ ดังนั้นสำหรับตัวอย่างเช่นผมอาจต้องการที่จะเลือก หมายเลขรหัสและชื่อเต็มจากผู้ใช้ ดังนั้นสิ่งนี้อาจจะมีลักษณะอย่างไร ดังนั้นนี่คือตารางผู้ใช้ของฉัน ฉันต้องการที่จะเลือก idnum และชื่อเต็มจากผู้ใช้ สิ่งที่ฉันจะได้รับ? ฉันจะได้รับนี้ ผมไม่ได้แคบลงดังนั้นฉัน ได้รับหมายเลขประจำตัวสำหรับทุกแถว และฉันได้รับเต็มรูปแบบ ชื่อจากทุกแถว ตกลง. เกิดอะไรขึ้นถ้าผมต้องการที่จะเลือกรหัสผ่าน จากผู้ใช้ WHERE-- ดังนั้นตอนนี้ ฉันเพิ่มสภาพเป็น predicate-- ที่ idnum น้อยกว่า 12 ดังนั้นนี่คือฐานข้อมูลของฉันอีกครั้ง ตารางผู้ใช้ของฉันด้านบน สิ่งที่ฉันจะได้รับหากฉันต้องการ เลือกข้อมูลที่รหัสผ่าน ที่ ID ผู้ใช้หรือ idnum น้อยกว่า 12 ฉันจะได้รับนี้ ข้อมูลกลับไปใช่มั้ย? มันเกิดขึ้นที่ idnum 10 น้อย กว่า 12 หมายเลขประจำตัว 11 น้อยกว่า 12 ฉันได้รับรหัสผ่านสำหรับผู้ที่แถว นั่นคือสิ่งที่ฉันขอ อะไรเกี่ยวกับเรื่องนี้? เกิดอะไรขึ้นถ้าผมต้องการที่จะเลือกดาวจาก ตารางที่คุณแม่ชื่อผู้ใช้เท่ากับเจอร์รี่? ตกลงเลือกดาวเป็นพิเศษ การเรียงลำดับของป่าการ์ดที่เรียกว่า ที่เราใช้ทุกอย่างที่จะได้รับ ดังนั้นพวกเขากำลังจะบอกว่าเลือก แม่ชื่อผู้ใช้เครื่องหมายจุลภาคซึ่ง เกิดขึ้นจะเป็นเพียง สองคอลัมน์ของตารางนี้ ฉันสามารถเลือกดาว และได้รับทุกอย่าง ชื่อผู้ใช้ที่เท่ากับเจอร์ และนั่นคือสิ่งที่ผมจะได้รับ ถ้าฉันทำว่าแบบสอบถามโดยเฉพาะอย่างยิ่ง ตอนนี้มีฐานข้อมูล ที่ดีเพราะพวกเขาช่วยให้ เราสามารถจัดระเบียบข้อมูลอาจจะ บิตมีประสิทธิภาพมากขึ้นกว่าที่เรา อาจจะเป็นอย่างอื่น เราไม่จำเป็นต้องในการจัดเก็บ ทุกชิ้นที่เกี่ยวข้องของข้อมูล เกี่ยวกับผู้ใช้ในตารางเดียวกัน เรามีสองตารางมี เราจำเป็นต้องมีการจัดเก็บ ชื่อแม่ของทุกคนของ และบางทีเราไม่ได้มีการรักษาความปลอดภัยทางสังคม จำนวนที่เรามีวันเกิดของพวกเขา แต่นั่นไม่ได้มักจะต้อง ที่จะอยู่ในตารางเดียวกัน ตราบใดที่เราสามารถกำหนด ความสัมพันธ์ระหว่าง tables-- และที่ที่ว่าสัมพันธ์ ระยะฐานข้อมูลชนิดของมา เข้า play-- ตราบใดที่เราสามารถกำหนด ความสัมพันธ์ระหว่างตารางที่ เราสามารถจัดเรียงของ compartmentalize หรือสิ่งที่เป็นนามธรรมทาง ที่เรามีเพียง ข้อมูลที่สำคัญจริงๆ เราดูแลเกี่ยวกับในตารางของผู้ใช้ แล้วเรามีข้อมูลเสริม หรือข้อมูลเพิ่มเติมในตารางอื่น ๆ ที่เราสามารถเชื่อมต่อกลับไปหลัก ตารางผู้ใช้ในทางหนึ่ง ดังนั้นที่นี่เรามีทั้งสองตาราง แต่ มีความสัมพันธ์ระหว่างพวกเขา ขวา? ดูเหมือนว่าชื่อผู้ใช้ อาจจะมีสิ่ง ที่มีอยู่ในร่วมกันระหว่าง ทั้งสองตารางที่แตกต่าง ดังนั้นสิ่งที่ถ้าตอนนี้เรามี สถานการณ์ที่เรา ต้องการที่จะได้รับชื่อเต็มของผู้ใช้จาก ตารางของผู้ใช้และแม่ของพวกเขา ชื่อจากตารางแม่? เราไม่ได้มีวิธีการที่จะได้รับ ที่มันยืนใช่มั้ย? ไม่มีตารางเดียวที่มีคือ ทั้งชื่อเต็มและชื่อของแม่ เราไม่ได้มีตัวเลือกที่ จากสิ่งที่เราได้เห็นเพื่อให้ห่างไกล และเพื่อให้เรามีที่จะแนะนำ ความคิดของการเข้าร่วม และเข้าร่วมอาจจะ complex-- มากที่สุด ก็จริงๆการดำเนินงานที่ซับซ้อนมากที่สุด ที่เรากำลังจะพูดคุยเกี่ยวกับในวิดีโอ พวกเขากำลังมีความซับซ้อนน้อย แต่เมื่อคุณได้รับการแขวนของมัน พวกเขากำลังจริงไม่ได้เลวร้ายเกินไป มันเป็นเพียงกรณีพิเศษของ SELECT เรากำลังจะไปเลือกชุดของ คอลัมน์จากตารางการเข้าร่วม ในตารางที่สองในกริยาบาง ในกรณีนี้คิดเกี่ยวกับมันชอบ this-- โต๊ะหนึ่งเป็นหนึ่งในวงกลมมากกว่าที่นี่ ตารางที่สองคือวงกลมมากกว่าที่นี่อีก และนั่นเป็นส่วนหนึ่งกริยา ที่อยู่ตรงกลางก็ ประเภทเช่นถ้าคุณคิด เกี่ยวกับการเป็นแผนภาพเวนน์สิ่งที่ พวกเขามีเหมือนกัน? เราต้องการที่จะเชื่อมโยงทั้งสองตาราง ขึ้นอยู่กับสิ่งที่พวกเขามีเหมือนกัน และสร้างตารางสมมุตินี้ ที่มีการควบรวมกิจการของทั้งสองเข้าด้วยกัน ดังนั้นเราจะเห็นสิ่งนี้ใน ตัวอย่างและอาจที่จะช่วยให้ ชัดเจนขึ้นนิด ๆ หน่อย ๆ ดังนั้นบางทีคุณอาจต้องการที่จะเลือก USER.FULLNAME และ moms.mother จากผู้ใช้ในการเข้าร่วม ตารางแม่ในทุกสถานการณ์ ที่คอลัมน์ชื่อผู้ใช้ จะเหมือนกันระหว่างพวกเขา และนี่คือใหม่ ไวยากรณ์ที่นี่ผู้ใช้นี้ และคุณแม่ .. ถ้าฉันทำหลายตาราง ร่วมกันฉันสามารถระบุตาราง ฉันสามารถแยกแยะความแตกต่างในโดยเฉพาะอย่างยิ่ง ว่าเมื่อวันที่ด้านล่างสุดมี ฉันสามารถแยกแยะความแตกต่างชื่อผู้ใช้ คอลัมน์ของตารางผู้ใช้ จากคอลัมน์ชื่อผู้ใช้ของ ตารางที่คุณแม่ซึ่งเป็น otherwise-- ถ้าเราเพียงแค่บอกชื่อผู้ใช้เท่ากับ ชื่อผู้ใช้ที่ไม่ได้จริงๆ หมายถึงอะไร เราต้องการที่จะทำมันตรงกับที่พวกเขา ดังนั้นผมจึงสามารถระบุโต๊ะและ ชื่อคอลัมน์ในกรณีของสถ​​านการณ์ ที่มันจะไม่ชัดเจน สิ่งที่ฉันพูดคุยเกี่ยวกับ ดังนั้นนั่นคือทั้งหมดที่ผมทำมีฉัน บอกว่าคอลัมน์นี้จากตารางนี้ และเป็นที่ชัดเจนมาก ดังนั้นอีกครั้งฉันเลือก ชื่อเต็มและชื่อของแม่ จากตารางผู้ใช้เชื่อมโยงกัน กับตารางแม่ในทุกสถานการณ์ ที่พวกเขาร่วมกัน column-- ว่า พวกเขาร่วมกันคิดชื่อผู้ใช้ว่า ดังนั้นนี่คือตารางที่เรามีมาก่อน นี่คือสถานะของเรา ฐานข้อมูลที่มีอยู่ในขณะนี้ ข้อมูลที่เรากำลังสกัด นี้จะเริ่มต้นด้วย นี่คือตารางใหม่ที่เรากำลังจะ เพื่อสร้างการรวมเหล่านี้ร่วมกัน และแจ้งให้ทราบเราไม่ได้ไฮไลท์ แถวนิวแมนในตารางของผู้ใช้ และเราไม่ได้ไฮไลท์ แถวเครเมอร์ในตารางแม่ เพราะไม่อยู่ใน ทั้ง sets-- ในตารางทั้งสอง ข้อมูลเพียงอย่างเดียวที่เหมือนกัน ระหว่างพวกเขาเป็นเจอร์รี่อยู่ในตารางทั้งสอง และ gcostanza อยู่ในตารางทั้งสอง ดังนั้นเมื่อเราทำ SQL JOIN สิ่งที่เรา get-- และเราทำจริงได้รับนี้ มันเรียงลำดับของตัวแปรชั่วคราว มันก็เหมือนกับการสมมุติ การควบรวมกิจการของทั้งสองตาราง เราได้รับจริงบางสิ่งบางอย่าง เช่นนี้ที่ เราได้รวมกันตารางบน ข้อมูลที่พวกเขามีเหมือนกัน ดังนั้นสังเกตเห็นว่า users.username และคอลัมน์ moms.username, มันตรงเดียวกัน นั่นคือข้อมูลที่ สอดคล้องจากผู้ใช้ ตารางและตารางแม่ และเพื่อให้เรารวมไว้ด้วยกัน เราทิ้งเพราะเขาเครเมอ ไม่ได้อยู่ในตารางผู้ใช้ และเราทิ้งนิวแมนเพราะ เขาไม่ได้อยู่ในตารางแม่ ดังนั้นนี่คือการควบรวมกิจการสมมุติ โดยใช้การดำเนินการเข้าร่วมของ SELECT และจากนั้นเรากำลังมองหา ชื่อเต็มของผู้ใช้และแม่ของผู้ใช้ และเพื่อให้เป็นข้อมูลที่ เราจะได้รับจากแบบสอบถามโดยรวม ที่เราทำด้วย SELECT ดังนั้นเราจึงได้เข้าร่วมโต๊ะด้วยกัน และเราสกัดทั้งสองคอลัมน์ และนั่นคือสิ่งที่เราจะได้รับ แต่ SQL ร่วมชนิดของซับซ้อน คุณอาจจะไม่ทำพวกเขามากเกินไป แต่ก็มีความคิดของโครงกระดูกบาง ที่คุณสามารถใช้ในการผสานสอง ตารางร่วมกันหากคุณจำเป็นต้อง สุดท้ายทั้งสองเป็น บิตง่ายฉันสัญญา ดังนั้นการปรับปรุงเราสามารถใช้ UPDATE ในการเปลี่ยนแปลงข้อมูลในตาราง รูปแบบทั่วไปคือการปรับปรุงบางส่วน ตาราง SET คอลัมน์บางอย่างเพื่อให้ค่าบางอย่าง WHERE กริยาบางอย่างเป็นที่พอใจ ดังนั้นสำหรับตัวอย่างเช่นเราอาจต้องการ การปรับปรุงตารางผู้ใช้ และตั้งรหัสผ่านเพื่อญาดา ญาดาที่หมายเลขประจำตัวคือ 10 ดังนั้นในกรณีนี้เรา การปรับปรุงตารางผู้ใช้ หมายเลขประจำตัวคือ 10 ที่แถวแรกที่นั่น และเราต้องการที่จะปรับปรุง รหัสผ่านเพื่อญาดาญาดา และเพื่อให้เป็นสิ่งที่จะเกิดขึ้น มันตรงไปตรงสวยใช่มั้ย? มันเป็นเพียงที่ง่ายมาก การปรับเปลี่ยนตาราง ลบการดำเนินงานที่เราเคยเป็น เอาข้อมูลจากตาราง ลบตารางจากที่ไหน กริยาบางอย่างเป็นที่พอใจ เราต้องการที่จะลบจาก ตารางผู้ใช้ตัวอย่างเช่น ชื่อผู้ใช้ที่เป็นนิวแมน คุณอาจจะคิดว่าสิ่งที่จะ เกิดขึ้นที่นี่หลังจากที่เราดำเนินการ SQL ที่ แบบสอบถามนิวแมนจะหายไปจากโต๊ะ ดังนั้นการดำเนินการทั้งหมดเหล่านี้ที่ผมได้กล่าวว่า เป็นเรื่องง่ายมากที่จะทำใน phpMyAdmin มันเป็นผู้มากได้ง่าย แต่จะต้องใช้ความพยายามด้วยตนเอง เราไม่ต้องการที่จะจ้างงานพยายามด้วยตนเอง เราต้องการให้โปรแกรมของเราไป ทำเช่นนี้สำหรับเราใช่มั้ย? ดังนั้นเราอาจจะต้องการที่จะทำ โปรแกรมนี้ เราต้องการที่จะรวม SQL และมี บางสิ่งบางอย่างอื่นที่จะทำเช่นนี้สำหรับเรา แต่สิ่งที่เราได้เห็นว่าจะช่วยให้ เราสามารถเขียนโปรแกรมทำอะไร? เราได้เห็น PHP ใช่มั้ย? แนะนำบางอย่าง แคล่วคล่องในโปรแกรมของเรา และเพื่อให้โชคดี SQL และ PHP เล่นกันอย่างมาก มีฟังก์ชั่นใน PHP ครับ เรียกว่าแบบสอบถามซึ่งสามารถนำมาใช้ และคุณสามารถผ่านการเป็น พารามิเตอร์หรือโต้แย้ง เพื่อสอบถามแบบสอบถาม SQL ที่ คุณต้องการที่จะดำเนินการ และ PHP จะทำในนามของคุณ ดังนั้นหลังจากที่คุณได้เชื่อมต่อ ไปยังฐานข้อมูลของคุณด้วย PHP, มีสองพรรคคุณทำเช่นนี้ มีบางอย่างที่เรียกว่า MySQLi และสิ่งที่เรียกว่า PDO เราจะไม่ไปเป็นอย่างมาก รายละเอียดจำนวนเงินที่มี ใน CS50 เราใช้ PDO หลังจากที่คุณได้เชื่อมต่อ ไปยังฐานข้อมูลของคุณคุณ แล้วสามารถทำให้คำสั่งฐานข้อมูลของคุณ โดยผ่านแบบสอบถามเป็นข้อโต้แย้ง ฟังก์ชั่น PHP และเมื่อคุณทำเช่นนั้นคุณจัดเก็บ ผลตั้งอยู่ในอาเรย์ และเรารู้วิธีการทำงานกับ เชื่อมโยงอาร์เรย์ใน PHP ดังนั้นผมอาจจะบอกว่าบางสิ่งบางอย่าง เช่น this-- $ results-- นี้อยู่ใน PHP-- เท่ากับแบบสอบถาม และจากนั้นภายในของ ฟังก์ชั่นการสอบถามที่โต้แย้ง ที่ฉันผ่านไปสอบถาม ที่มีลักษณะเช่น SQL และในความเป็นจริงที่เป็น SQL นั่นคือสตริงแบบสอบถามที่ฉันจะ ชอบที่จะดำเนินการเกี่ยวกับฐานข้อมูลของฉัน และเพื่อให้เป็นสีแดงนี้เป็น PHP นี่คือ SQL ที่ฉัน การบูรณาการเข้าไปใน PHP โดยการ มันอาร์กิวเมนต์ฟังก์ชั่นแบบสอบถาม ฉันต้องการที่จะเลือกจากชื่อเต็ม ผู้ใช้ที่หมายเลขรหัสเท่ากับ 10 และแล้วหลังจากที่ผมอาจจะทำที่ ผมอาจจะพูดอะไรบางอย่างเช่นนี้ ฉันต้องการที่จะพิมพ์ ข้อความขอบคุณสำหรับการเข้าสู่ระบบ และฉันต้องการมัน interpolate-- ฉันต้องการ การสอดแทรกผล $ ชื่อเต็ม และเพื่อให้เป็นวิธีที่ผมทำงานกับที่ อาเรย์ที่ผมได้กลับมา $ ผลชื่อเต็มจะ โดยทั่วไปจะจบลงด้วยการพิมพ์ออกมา ขอบคุณสำหรับการเข้าสู่ระบบเจอร์รี่ นั่นคือชื่อเต็ม ที่ idnum เท่ากับ 10 และเพื่อให้ทุกคนที่ฉันทำ คือฉัน now-- ฉันเก็บไว้ แบบสอบถามของฉันผลลัพธ์ของแบบสอบถามของฉัน และผลในอาเรย์, และชื่อเต็มคือชื่อของ คอลัมน์ผมได้รับสำหรับ ดังนั้นที่สำคัญของฉันเป็นผล อาเรย์ที่ฉันต้องการ ดังนั้นขอบคุณสำหรับการเข้าสู่ระบบในผล $, ชื่อเต็มจะพิมพ์ออกมาจะติด ที่ถูกต้องในระหว่างหยิกเหล่านั้น วงเล็บเจอร์รี่ และผมก็จะชอบที่จะพิมพ์ออกข้อความ ขอบคุณสำหรับการเข้าสู่ระบบในเจอร์รี่ ตอนนี้เราอาจไม่ต้องการที่จะยาก สิ่งรหัสต้องการที่อยู่ในใช่มั้ย? เราอาจจะต้องการที่จะทำบางสิ่งบางอย่างเช่นการพิมพ์ ฉที่เราสามารถใช้แทนและอาจจะ เก็บรวบรวมข้อมูลที่แตกต่างกัน หรืออาจจะมีขั้นตอนการสอบถาม ข้อมูลที่แตกต่าง และเพื่อให้แบบสอบถามฟังก์ชั่นการค้นหาที่มี ความคิดของการจัดเรียงของการแทนนี้ คล้ายกับพิมพ์ฉ s ร้อยละ c และร้อยละเป็นเครื่องหมายคำถาม และเราสามารถใช้คำถาม เครื่องหมายมาก analogously พิมพ์ f เพื่อตัวแปรแทน ดังนั้นบางทีผู้ใช้ของคุณเข้าสู่ระบบก่อนหน้านี้ และคุณได้บันทึกหมายเลข ID ผู้ใช้ของพวกเขา ใน $ _SESSION ของ PHP สุด ระดับโลกใน ID ที่สำคัญ ดังนั้นบางทีหลังจากที่พวกเขาเข้าสู่ระบบ คุณตั้ง $ _SESSION ID เท่ากับ 10 คะเนจากตัวอย่าง เราเพิ่งเห็นที่สองที่ผ่านมา ดังนั้นเมื่อเราดำเนินการจริง นี้ผลการค้นหาในขณะนี้ มันจะเชื่อมต่อ 10 หรืออะไรก็ตาม ค่า ID $ _SESSION คือ และอื่น ๆ ที่ช่วยให้เรา เป็นบิตแบบไดนามิกมากขึ้น เราไม่ได้เข้ารหัสยากอีกต่อไปสิ่งที่อยู่ใน เรากำลังบันทึกข้อมูล ที่ไหนสักแห่งแล้ว เราสามารถใช้ข้อมูลนั้นอีกครั้งเพื่อ การเรียงลำดับของคุยสิ่งที่เราต้องการจะทำ และเพียงแค่ plug-in และการเปลี่ยนแปลง พฤติกรรมของหน้าของเรา ขึ้นอยู่กับสิ่งหมายเลขประจำตัวของผู้ใช้ เป็นจริงหลังจากที่พวกเขาได้เข้าสู่ระบบ นอกจากนี้ยังเป็นไปได้ว่า ว่าผลของคุณตั้ง อาจประกอบด้วยหลายแถว ซึ่งในกรณีที่คุณมี อาร์เรย์ของ arrays-- อาร์เรย์ของเชื่อมโยงอาร์เรย์ และคุณก็ต้องย้ำผ่านมัน และเรารู้วิธีที่จะย้ำ ผ่านแถวใน PHP แล้วใช่มั้ย? ดังนั้นนี่คืออาจจะมากที่สุด สิ่งที่ซับซ้อนที่เราได้เห็นเพื่อให้ห่างไกล มันจริงรวม สามภาษาด้วยกัน ที่นี่เป็นสีแดงนี้เป็น HTML บาง ฉัน starting-- เห็นได้ชัดนี้ ตัวอย่างของ HTM​​L ที่ฉันมีบาง ฉันเริ่มย่อหน้าใหม่ที่ กล่าวว่าแม่ของไฟล์ทีวี และแล้วหลังจากนั้นทันที ฉันเริ่มที่โต๊ะ และแล้วหลังจากนั้นผม มีบาง PHP ใช่มั้ย? ฉันมีทั้งหมดของรหัส PHP นี้มี เห็นได้ชัดว่าผมจะทำแบบสอบถาม และเพื่อให้แบบสอบถามฉันจะ จะใช้แม่เลือกจากคุณแม่ ดังนั้นนี้จะ getting-- นี้ SQL ดังนั้นสีฟ้าเป็น SQL สีแดงที่เราเห็นเป็นครั้งที่สองที่ผ่านมาคือ HTML และสีเขียวนี่คือ PHP ดังนั้นฉันทำแบบสอบถาม ไปยังฐานข้อมูลของฉันฉัน เลือกทั้งหมดของ มารดาในตารางแม่ ไม่เพียง แต่ลดลงไปโดยเฉพาะอย่างยิ่ง แถวที่ฉันขอทั้งหมดของพวกเขา แล้วฉันจะตรวจสอบว่าผลที่ได้คือ ไม่เท่ากับเท่ากับเท็จ นี่เป็นเพียงวิธีการของฉันของการตรวจสอบการจัดเรียง หากผลไม่เท่ากับโมฆะ, ที่เราจะได้เห็นคตัวอย่างเช่น โดยทั่วไปนี้เป็นเพียงการตรวจสอบเพื่อให้ แน่ใจว่ามันเป็นจริงได้ข้อมูลกลับ เพราะผมไม่ต้องการที่จะเริ่มต้นการพิมพ์ จากข้อมูลหากฉันไม่ได้รับข้อมูลใด ๆ จากนั้นเพื่อให้ได้ผลลัพธ์ในแต่ละเป็นผล ไวยากรณ์ foreach PHP จากทั้งหมดที่ฉันทำ จะถูกพิมพ์ออกมารดาผล $ และเพื่อที่ฉันจะได้รับการตั้งค่า ทั้งหมดของคุณแม่ของ each-- มันเป็นอาเรย์ของสมาคม arrays-- และฉันพิมพ์ออก แต่ละคนเป็นแถวของตัวเองของตาราง และที่สวยจริงๆ มากทั้งหมดที่มีให้มัน ฉันรู้ว่ามีเล็ก ๆ น้อย ๆ บิตเกิดขึ้นที่นี่ ในตัวอย่างที่ผ่านมานี้กับอาร์เรย์ของ arrays-- อาร์เรย์ของอาร์เรย์เชื่อมโยง แต่จริงๆมันไม่เพียงแค่ต้ม ลงใน SQL ในการทำแบบสอบถาม มักจะเลือกหลังจากที่เราได้อยู่แล้ว ใส่ข้อมูลลงในตาราง แล้วก็ดึงมันออกมา และนี่คือที่เราจะดึงมัน ออกมาในกรณีนี้โดยเฉพาะ เราจะดึงทั้งหมดของแต่ละบุคคล แม่จากตารางแม่ เรามีทั้งชุดของพวกเขาและเรา ต้องการที่จะย้ำถึงและพิมพ์ออกมา แต่ละอัน, แต่ละคน. ดังนั้นครั้งนี้น่าจะเป็น ตัวอย่างที่ซับซ้อนมากที่สุด ที่เราเคยเห็นเพราะเรากำลังผสมสาม ภาษาที่แตกต่างกันใช่มั้ย? อีกครั้งที่เรามีที่นี่ใน HTML แดง ผสมกับ SQL บางอย่างที่นี่สีฟ้า ผสมกับ PHP สีเขียวบาง แต่สิ่งเหล่านี้เล่น กันอย่างก็ เพียงเรื่องของการพัฒนา นิสัยที่ดีเพื่อที่คุณจะได้รับ พวกเขาจะทำงานร่วมกันแบบที่คุณต้องการ และวิธีเดียวที่จะทำจริงๆที่ คือการปฏิบัติปฏิบัติปฏิบัติ ฉันลอยด์ดั๊กนี้เป็น CS50