1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: ברוכים הבאים ל סעיף לשבוע. 3 00:00:08,440 --> 00:00:10,040 אני לא אנדי. 4 00:00:10,040 --> 00:00:14,590 אנדי נפל חולה היום הזה, ואני כבר בשם סוג של ברגע האחרון 5 00:00:14,590 --> 00:00:15,700 להשתלט על. 6 00:00:15,700 --> 00:00:20,920 זה עונת שפעת, כדי לוודא שאתה נשארים נקי, לשטוף את הידיים, 7 00:00:20,920 --> 00:00:24,800 ואכילה בריאה, כך ש גם לך, אינם מרותקים למיטה. 8 00:00:24,800 --> 00:00:26,870 >> אבל בלי נוסף ADO, בואו נתחיל. 9 00:00:26,870 --> 00:00:29,970 היום, אנחנו הולכים לדבר על PHP קצת bit-- איך 10 00:00:29,970 --> 00:00:33,900 PHP מתייחס ל- HTML, איך זה מתייחס ל- CSS, וכמה מהאינטרנט 11 00:00:33,900 --> 00:00:36,100 דברים שעשית במשימה האחרונה. 12 00:00:36,100 --> 00:00:37,930 אנחנו הולכים לדבר קצת על SQL 13 00:00:37,930 --> 00:00:41,360 ואיך אתה יכול לעבוד עם מסדי נתונים, שהוא מרכיב די מרכזי של P 14 00:00:41,360 --> 00:00:43,650 להגדיר 8-- P להגדיר 7. 15 00:00:43,650 --> 00:00:44,480 P להגדיר 7. 16 00:00:44,480 --> 00:00:48,400 >> ואז אנחנו הולכים לדבר קצת קצת על איך בקרי תצוגה לעבוד 17 00:00:48,400 --> 00:00:54,640 ומדוע זה פילוסופיה מאחורי כמה דפי האינטרנט מודרניים ועיצוב שונה. 18 00:00:54,640 --> 00:00:58,760 די הרבה הרבה סוגים של אפליקציות ויישומים ייתכן שספינה 19 00:00:58,760 --> 00:01:01,120 משתמשים במודל זה, מסגרת בקר נוף, 20 00:01:01,120 --> 00:01:02,890 שתהיו באמצעות בP להגדיר 7, אז אני 21 00:01:02,890 --> 00:01:05,220 לדבר קצת מדוע שהפך 22 00:01:05,220 --> 00:01:07,970 הפופולרי, למה זה חשוב ונחמד. 23 00:01:07,970 --> 00:01:12,052 ואז אני סוף סוף לעבור ל כמה טיפים על התמודדות עם P להגדיר 7. 24 00:01:12,052 --> 00:01:13,760 ואם יש לנו זמן נשאר בסוף, 25 00:01:13,760 --> 00:01:17,320 אנחנו באמת יכולים לעשות קצת לעבוד על זה יחד. 26 00:01:17,320 --> 00:01:20,380 >> אז, PHP. 27 00:01:20,380 --> 00:01:23,790 למעשה, אתה אולי שמת לב זה-- אתה לא באמת צריך לצלול לתוך it-- 28 00:01:23,790 --> 00:01:27,880 אבל P להגדיר 6 היה כמה PHP קוד שקורה. 29 00:01:27,880 --> 00:01:34,710 וכי PHP הוא C כמו- שפה, PHP, שלא כמו HTML ו- CSS, 30 00:01:34,710 --> 00:01:39,030 היא שפת תכנות, בעוד HTML ו- CSS הם סטטי. 31 00:01:39,030 --> 00:01:44,050 הם שפות סימון התמודדות עם סגנון ופריסה חזותית. 32 00:01:44,050 --> 00:01:46,230 PHP היא הדבר האמיתי. 33 00:01:46,230 --> 00:01:51,590 >> PHP יש לולאות, יש לו conditions-- כל הדברים האלה זה כיף על ג 34 00:01:51,590 --> 00:01:56,190 יש לו כמה דברים שהם קצת קצת יותר טוב מאשר C, שבו אנו תראו, 35 00:01:56,190 --> 00:01:59,760 אבל אני חושב שהדרך הקלה ביותר לדבר על PHP הוא רק כדי לצלול ב. 36 00:01:59,760 --> 00:02:04,087 אז אני הולך ללכת ימינה לIDE בשלב זה. 37 00:02:04,087 --> 00:02:06,170 הדבר הראשון שאנחנו הולכים לעשות הוא באמת נראה 38 00:02:06,170 --> 00:02:10,169 קצת בחלק מ קוד PHP שהיה בP להגדיר 6. 39 00:02:10,169 --> 00:02:13,600 לכן הדרך שאנחנו עושים לראות-- לפני, הדרך שאנחנו פועלים 40 00:02:13,600 --> 00:02:18,550 השרת למכשיר היה שהיינו צריך type-- 41 00:02:18,550 --> 00:02:21,750 גם להשתמש היישום שלך או היישום של צוות 42 00:02:21,750 --> 00:02:27,059 של server.c על ידי הולך לספרייה ופועל server.c עם או לא 43 00:02:27,059 --> 00:02:30,100 arguments-- כל כך פשוט קורא לזה ב מארח מקומי, וזה מה שאתה כנראה 44 00:02:30,100 --> 00:02:31,849 עשיתי את רוב time-- ואז מאכיל אותו 45 00:02:31,849 --> 00:02:35,380 directory-- עם אשר לשימוש כשורש שלה 46 00:02:35,380 --> 00:02:38,310 איפה היית באתר להיות לרוץ, בעצם. 47 00:02:38,310 --> 00:02:42,180 >> שבוע לP זה נקבע 7, כ גדול כמו הקוד שלנו לserver.c 48 00:02:42,180 --> 00:02:47,580 הוא, שיש אנשים שיש להם כבר נכתב על הדברים היפים האלה בCS50 49 00:02:47,580 --> 00:02:49,630 שיש לי קצת יותר פונקציונלי, 50 00:02:49,630 --> 00:02:52,920 תכנית שרת שמסוגלת התמודדות עם קצת יותר 51 00:02:52,920 --> 00:02:56,350 של המורכבויות שנוסיף ל לראות בשני P להגדיר 7 וP להגדיר 8. 52 00:02:56,350 --> 00:03:01,410 ואופן שבו אתה מתחיל את שרת הוא רק על ידי הקלדה, "apache50." 53 00:03:01,410 --> 00:03:03,960 >> ולפני שאתה עושה משהו, אתה רוצה לוודא 54 00:03:03,960 --> 00:03:06,070 שאפצ'י 50 הוא לא כבר פועל כפי שהוא 55 00:03:06,070 --> 00:03:08,130 במכונה שלי, זה מה שעשיתי כדי לבדוק את זה. 56 00:03:08,130 --> 00:03:10,320 ואתה עושה את זה על ידי קורא apache50. 57 00:03:10,320 --> 00:03:14,070 לעצור, ואתה תראה שזה עוצר שרת האינטרנט, אם אתה יכול להסתכל שם 58 00:03:14,070 --> 00:03:16,340 בחלק התחתון של חלון המסוף. 59 00:03:16,340 --> 00:03:21,090 ואז פשוט להתחיל, אנחנו הולך להתקשר, "apache50 להתחיל." 60 00:03:21,090 --> 00:03:23,150 ואז אנחנו הולכים להאכיל אותו בספרייה. 61 00:03:23,150 --> 00:03:26,950 >> עכשיו, בגלל שאנחנו רוצים להיראות בחלק מP להגדיר 6 קוד 62 00:03:26,950 --> 00:03:32,850 שיישמנו, אני באמת העתיק קצת P 63 00:03:32,850 --> 00:03:37,090 להגדיר 6 קוד לתיקייה שלי, שבו אתה יכול לראות בצד השמאל יש. 64 00:03:37,090 --> 00:03:40,170 זה נקרא "SECTION8" בכל האותיות הגדולות 65 00:03:40,170 --> 00:03:44,510 כי אני פשוט כל כך מתרגש להיות חי-זרם היום. 66 00:03:44,510 --> 00:03:47,330 >> אז אם אנחנו רצים זה, שהוא צריך כל עובדים די ביעילות. 67 00:03:47,330 --> 00:03:52,350 זה אומר, בסדר, באתר שלנו הוא עכשיו זמין בכתובת של IDE, 68 00:03:52,350 --> 00:03:57,710 בעצם, זה מה שאתה משתמש בדיוק כפי שהיה בP להגדיר 7-- P להגדיר 6. 69 00:03:57,710 --> 00:04:00,899 כל המדדים שלי נמצאים היום מדד אחד. 70 00:04:00,899 --> 00:04:02,940 אז אנחנו יכולים ללכת של כתובת, אם אתה זוכר, 71 00:04:02,940 --> 00:04:05,710 רק על ידי לחיצה קטנה הזה כפתור בפינה הימנית העליונה. 72 00:04:05,710 --> 00:04:14,200 >> ואתה זוכר את קוד, זה ש קרה כאשר אתה נכנס לhello.php. 73 00:04:14,200 --> 00:04:18,000 ומה הקוד נועד ל לעשות הוא כאשר הקלדת בשם 74 00:04:18,000 --> 00:04:20,550 כאן-- אם אתה אומר סם כי זה name-- 75 00:04:20,550 --> 00:04:23,620 ואני לוחץ להגיד שלום, כאשר הלכנו לדף הבא, 76 00:04:23,620 --> 00:04:25,270 שם שהיה אמור להיות מוצג. 77 00:04:25,270 --> 00:04:28,550 זה הייתי אומר, "שלום, סם" או "שלום," כל מה שאתה שם 78 00:04:28,550 --> 00:04:32,470 מכניס אותו למרות שאנחנו הלכנו לדף אינטרנט חדש לגמרי. 79 00:04:32,470 --> 00:04:36,610 >> וזה מסוג הדברים ש שPHP יכול לעשות בשבילך. 80 00:04:36,610 --> 00:04:42,840 PHP היא מסוגלת להעביר נתונים בין שני דפי אינטרנט. 81 00:04:42,840 --> 00:04:44,390 זהו דף אחר לגמרי. 82 00:04:44,390 --> 00:04:46,990 תראה את הכותרת היא "שלום" כאן. 83 00:04:46,990 --> 00:04:49,080 למעשה, יש להם באותו השם, אבל אני 84 00:04:49,080 --> 00:04:52,560 הם מבטיחים אינטרנט שונה דפים אם אנחנו מסתכל על המקור. 85 00:04:52,560 --> 00:04:55,890 ואתה יכול להעביר נתונים זה נכנס בשדה טקסט זה, 86 00:04:55,890 --> 00:04:59,830 אתה שולח אותו לבא דף, שנקרא, 87 00:04:59,830 --> 00:05:02,490 ולאחר מכן הנתונים כי הוא מסוגל להיות שם בצורתו הנוכחית. 88 00:05:02,490 --> 00:05:04,810 >> עכשיו יש לנו עדיין לא מיושמים זה את עצמנו, ש 89 00:05:04,810 --> 00:05:08,710 זה מה שאנחנו הולכים לעשות עכשיו כדי סוג לקבל טעם לאיך PHP עובד, 90 00:05:08,710 --> 00:05:15,070 אבל הרעיון המרכזי הוא שאתה יכול PHP-- סוג של חושב על זה כמו פונקציה. 91 00:05:15,070 --> 00:05:18,570 משהו שPHP יכול לתת לך אין זה יכול לקחת פרמטרים 92 00:05:18,570 --> 00:05:24,710 שקלטך לתוך דף HTML באמצעות PHP וצורות, 93 00:05:24,710 --> 00:05:29,960 וזה יכול לעבור אותם כפרמטרים לדף הבא שהוא טוען עד. 94 00:05:29,960 --> 00:05:35,110 >> במקרה זה, אנחנו טוענים את זה דף עם הכפתור "תגיד שלום". 95 00:05:35,110 --> 00:05:38,960 אבל לעת עתה, אני ממש נמחק חלק מהקוד ש 96 00:05:38,960 --> 00:05:44,850 בhello.php שמתנהל שלמעשה בו מוצגות "שלום, 97 00:05:44,850 --> 00:05:49,680 או עולם "או" שלום, סם " "שלום," כל מה שהיה רק ​​קלט. 98 00:05:49,680 --> 00:05:53,620 אז לעכשיו, אנחנו הולך לעשות את זה, בעצם. 99 00:05:53,620 --> 00:05:56,570 אנחנו הולכים לשחזר את זה ו גם להוסיף קצת פונקציונלי יותר, 100 00:05:56,570 --> 00:06:00,210 לעשות קצת יותר עם זה, לראות מה PHP הוא באמת מסוגל. 101 00:06:00,210 --> 00:06:04,870 >> אז קודם כל, בואו נדבר על קובץ זה, hello.php. 102 00:06:04,870 --> 00:06:07,440 אז אם אנחנו להגדיל קצת bit-- ועכשיו אני 103 00:06:07,440 --> 00:06:10,520 סוג של מנסה לגלול את כל הדרך around-- שם אנחנו הולכים. 104 00:06:10,520 --> 00:06:14,220 אתה תראה שזה נקרא hello.php, אבל התחביר שלו 105 00:06:14,220 --> 00:06:16,880 נראה כמו קובץ HTML. 106 00:06:16,880 --> 00:06:20,380 סיבה לכך הוא PHP בפועל בקובץ זה 107 00:06:20,380 --> 00:06:25,220 הוא כל תקוע בין אלה בלוקים סימן-שאלת תו. 108 00:06:25,220 --> 00:06:28,610 הכל כאן נחשב קוד PHP. 109 00:06:28,610 --> 00:06:32,040 >> ותשים לב ש כשעשיתי את ההערה, 110 00:06:32,040 --> 00:06:35,320 תראה מוכר שני לוכסנים. 111 00:06:35,320 --> 00:06:38,440 ואם אתה זוכר, ב HTML, אם אני מקליד תגובה, 112 00:06:38,440 --> 00:06:42,540 זה נראה משהו קרוב יותר ל זה, שהוא תגובה ב- HTML. 113 00:06:42,540 --> 00:06:46,570 אז באמת כל מה שבין שני סוגריים זווית אלה 114 00:06:46,570 --> 00:06:50,060 עכשיו קוד PHP, ש באו לידי ביטוי בעובדה 115 00:06:50,060 --> 00:06:53,270 שסמל תגובה הקטן הזה הוא הפך לתגובה. 116 00:06:53,270 --> 00:06:58,420 >> אז בכל פעם שאתה כותב קוד PHP, אפילו אם אין קוד HTML מחוצה לה, 117 00:06:58,420 --> 00:07:02,720 זה תמיד הולך להיות בסוגר זווית אלה 118 00:07:02,720 --> 00:07:04,080 עם סימני שאלה. 119 00:07:04,080 --> 00:07:08,260 אתה סוג של יכול לחשוב על איך כל it-- של הקוד שרץ בתוכניות שלך C 120 00:07:08,260 --> 00:07:13,950 היה מוקף בעיקרי, חלל int, סד מתולתל, הצהרת סד מתולתלת הסוף. 121 00:07:13,950 --> 00:07:17,100 ותראה סוגריים מסולסלים ב PHP, מדי, אבל זה סוג של 122 00:07:17,100 --> 00:07:20,490 כמו השיטה העיקרית של PHP. 123 00:07:20,490 --> 00:07:25,630 >> אז עכשיו, איך אנחנו עושים כל דבר ב- PHP? 124 00:07:25,630 --> 00:07:29,190 עכשיו, PHP היא תכנות שפה שמאוד כמו C-, 125 00:07:29,190 --> 00:07:30,970 אבל זה פועל באינטרנט. 126 00:07:30,970 --> 00:07:33,270 אז דבר אחד ש אתה immediately-- אחד 127 00:07:33,270 --> 00:07:38,130 הדברים הראשונים שאתה באמת עשית עם C היה לך מודפס דברים החוצה, נכון? 128 00:07:38,130 --> 00:07:42,290 אז ב- C שעשינו את זה עם פונקצית printf. 129 00:07:42,290 --> 00:07:46,430 אנחנו נתנו לו מחרוזת, כנראה עם קו חדש, 130 00:07:46,430 --> 00:07:49,850 ואז אנחנו הופסקו זה עם נקודה-פסיק. 131 00:07:49,850 --> 00:07:53,790 >> לכן הדרך שאנחנו הולכים לעשות את זה בPHP-- כי זה לא ממש printf. 132 00:07:53,790 --> 00:07:55,940 זה קצת תחביר שונה. 133 00:07:55,940 --> 00:08:02,580 הדרך שאנחנו להדפיס את הדברים ב- PHP הוא שאנחנו אומרים, "הד שלום" 134 00:08:02,580 --> 00:08:04,180 או "הד" כל מילה. 135 00:08:04,180 --> 00:08:09,830 וכי יש לו את ההשפעה של עשייה printf עם מחרוזת, "שלום". 136 00:08:09,830 --> 00:08:11,990 והוא מוסיף קו החדש אליו. 137 00:08:11,990 --> 00:08:16,000 >> אז בואו עכשיו לעשות sure-- אני התרחקתי שוב קצת bit-- 138 00:08:16,000 --> 00:08:18,250 בואו נוודא ש קוד שהוא עובד 139 00:08:18,250 --> 00:08:21,030 כי מאוד יש אולי גם להיות באג בקוד זה 140 00:08:21,030 --> 00:08:22,880 שיהיה לנו להתמודד. 141 00:08:22,880 --> 00:08:25,860 אז השרת כבר פועל. 142 00:08:25,860 --> 00:08:30,630 אז אם אנחנו לגלול למטה לתחתית, יאפ, השרת עדיין פועל. 143 00:08:30,630 --> 00:08:34,510 אז אם אנחנו פשוט הקישו על זה קצת ימינה כאן-- 144 00:08:34,510 --> 00:08:37,620 , ברוך הבא אנחנו צריכים get-- גדולים. 145 00:08:37,620 --> 00:08:39,930 >> אנחנו עדיין נתקלתי ב דיאלוג מוכר "תגיד שלום", 146 00:08:39,930 --> 00:08:45,750 אבל כשאני מקליד ב" היי, "אנו רואים שהטקסט "שלום" היה אכן 147 00:08:45,750 --> 00:08:50,080 הדפיס, וזה בדיוק כמו שציפינו כי ההד ב- PHP 148 00:08:50,080 --> 00:08:53,190 הוא בדיוק כמו הצהרת printf. 149 00:08:53,190 --> 00:09:01,410 אז בחזרה לקוד, איך בP להגדיר 6 עשו קוד ההפצה אתה מסופק 150 00:09:01,410 --> 00:09:05,920 לעשות את זה כך שPHP היית תפוקת הדבר ש 151 00:09:05,920 --> 00:09:07,920 הקליד במסך הקודם? 152 00:09:07,920 --> 00:09:10,350 >> ולבחון סוג של למה זה קורה, אנחנו 153 00:09:10,350 --> 00:09:15,510 הולך להיכנס index.html, ש הוא הקובץ המקורי, הקובץ ש 154 00:09:15,510 --> 00:09:18,710 מופיע במסך זה עם הכפתור "תגיד שלום". 155 00:09:18,710 --> 00:09:20,950 אתה שם לב שיש כל הדברים הקלאסיים 156 00:09:20,950 --> 00:09:26,910 אנחנו כבר הגענו כדי לצפות HTML כגון כדברים האלה, אלה תגים סגורים 157 00:09:26,910 --> 00:09:31,080 בסוגריים זווית, כמו PHP אבל בלי סימני השאלה, 158 00:09:31,080 --> 00:09:34,650 המצביע על דבר מיוחד ל- HTML. 159 00:09:34,650 --> 00:09:36,895 יש לנו כותרת, אשר היא "שלום". 160 00:09:36,895 --> 00:09:41,010 ותשימו לב שכפי שראינו, הכותרת היא "שלום" בשני המקרים. 161 00:09:41,010 --> 00:09:43,260 בואו לשנות את זה ל" אומר "רק כדי ש 162 00:09:43,260 --> 00:09:48,170 ניתן להבחין בעצמנו איפה אנחנו נמצאים. 163 00:09:48,170 --> 00:09:49,600 >> אבל יש לנו גוף. 164 00:09:49,600 --> 00:09:52,690 ואז קצת המעניין, קצת שמופיע ב- HTML, 165 00:09:52,690 --> 00:09:54,530 הוא אלמנט טופס זה. 166 00:09:54,530 --> 00:09:56,370 וכך יש לנו טופס. 167 00:09:56,370 --> 00:09:58,330 וזה המפתח. 168 00:09:58,330 --> 00:10:00,530 כך אנחנו עובדים עם PHP. 169 00:10:00,530 --> 00:10:05,790 פרמטר הפעולה של טופס אומר שhello.php 170 00:10:05,790 --> 00:10:09,310 זה מה שאנחנו הולכים לשלוח הערכים בטופס זה כדי. 171 00:10:09,310 --> 00:10:13,830 זה המקום שבו אנחנו עוברים הפרמטרים, כביכול. 172 00:10:13,830 --> 00:10:18,680 >> תוכל להבחין דבר אחר כאן הוא שהשיטה היא "מקבלת". 173 00:10:18,680 --> 00:10:24,450 ישנן שני עיקרי שיטות שבי תהיה 174 00:10:24,450 --> 00:10:28,750 להיות באמצעות PHP להעביר נתונים בין דפי האינטרנט websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- במשימה זו. 176 00:10:30,500 --> 00:10:34,070 ושיטות אלה הן "מקבל" ו- "הודעה". 177 00:10:34,070 --> 00:10:37,010 יש כמה עדין הבדלים בין גט ופוסט 178 00:10:37,010 --> 00:10:40,520 שנקבל into-- יהיה "לקבל" ל, אם תרצה. 179 00:10:40,520 --> 00:10:44,030 >> אבל לכל דבר ו מטרות, לקבל ולפרסם 180 00:10:44,030 --> 00:10:47,120 שניהם רק הדרכים ש אתה עובר פרמטרים 181 00:10:47,120 --> 00:10:49,500 עם הוצאות להורג מעט שונים. 182 00:10:49,500 --> 00:10:53,500 לעת עתה, אנחנו הולכים להשתמש בנקבל כי לקבל את מה שהיה שימש במקור 183 00:10:53,500 --> 00:10:57,340 בקובץ PHP של P להגדיר 6. 184 00:10:57,340 --> 00:11:00,850 ובעצם, אם אנחנו הולכים ובלחפש לפני שערכנו כל דבר אחר, 185 00:11:00,850 --> 00:11:03,090 אני הולך להגיד שלום צריכה-- מה שמך? 186 00:11:03,090 --> 00:11:03,812 >> קהל: אליוט. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: הו, אלוהים. 188 00:11:04,770 --> 00:11:05,600 אני לא יודע איך לאיית את זה. 189 00:11:05,600 --> 00:11:06,766 האם אתה יכול לאיית את זה בשבילי? 190 00:11:06,766 --> 00:11:08,710 קהל: E-L-L-אני-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: אני O-T? 192 00:11:09,720 --> 00:11:10,440 >> קהל: כן. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: מושלם. 194 00:11:10,960 --> 00:11:11,210 אוקיי. 195 00:11:11,210 --> 00:11:12,751 אני מניח שעשיתי יודע איך לאיית את זה. 196 00:11:12,751 --> 00:11:13,510 מצטער על זה. 197 00:11:13,510 --> 00:11:16,560 אבל אם אנחנו אומרים "תגידו שלום," זה לא זה לא הולך להופיע על המסך 198 00:11:16,560 --> 00:11:18,476 עדיין, כי אנחנו שונה הקוד קצת. 199 00:11:18,476 --> 00:11:21,290 אבל אם אנחנו "תגידו שלום" - אוקיי, אז "שלום" הוא כאן. 200 00:11:21,290 --> 00:11:24,137 אבל אם אנחנו לוקחים קרובים מסתכל על כתובת האתר עצמו, 201 00:11:24,137 --> 00:11:26,220 אנחנו תראו שזה נגמר עם hello.php? name = אליוט. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> אז, זו דרך של תקשורת לדף האינטרנט הבא 204 00:11:37,180 --> 00:11:39,240 הפרמטרים שאנחנו כבר עברנו. 205 00:11:39,240 --> 00:11:40,870 אנחנו אמרתי את השם = אליוט. 206 00:11:40,870 --> 00:11:46,290 וזה סופו של דבר איך P להגדיר 6 גישה משתנה שעברנו ב 207 00:11:46,290 --> 00:11:47,520 באמצעות הטופס. 208 00:11:47,520 --> 00:11:51,470 וזה משהו ש הוא מוזר לבקשת גט. 209 00:11:51,470 --> 00:11:57,480 בקשת גט הופכת את הפרמטרים ידוע בכתובת של האתר. 210 00:11:57,480 --> 00:12:01,190 >> ואתה זוכר, גם, בP להגדיר 6 ש 211 00:12:01,190 --> 00:12:04,450 הייתי צריך לכתוב פונקציה שעסק בעובדה 212 00:12:04,450 --> 00:12:09,700 כי מחרוזת שאילתא זו יכול להתקיים לאחר קובץ. 213 00:12:09,700 --> 00:12:14,684 יכול להיות שיש סימן שאלה ואחרי על ידי בעצם כל מספר התווים. 214 00:12:14,684 --> 00:12:16,350 וזה בדיוק מה שקורה כאן. 215 00:12:16,350 --> 00:12:21,280 והסיבה הייתה לך לנתח ש ביישום שלך של server.c בP 216 00:12:21,280 --> 00:12:27,570 להגדיר 6 הוא, כך שאתה יכול לספר לי קוד PHP שname = אליוט. 217 00:12:27,570 --> 00:12:30,460 אתה צריך להיות מסוגל לנתח כי מתוך את כתובת האתר 218 00:12:30,460 --> 00:12:35,900 כך שקובץ PHP בשאלה ידע מה זה היה התמודדות עם. 219 00:12:35,900 --> 00:12:39,350 >> אז אני מקווה שזה נותן לי המוטיבציה לserver.c 220 00:12:39,350 --> 00:12:43,900 עכשיו שאנחנו עוברים על מחוץ לC ל- PHP. 221 00:12:43,900 --> 00:12:48,240 אז בואו באמת להתמקד בגישה דברים עברו בבקשת גט עכשיו 222 00:12:48,240 --> 00:12:48,880 בנקודה זו. 223 00:12:48,880 --> 00:12:50,157 אני הולך להציל את זה. 224 00:12:50,157 --> 00:12:51,240 אנחנו לא שינינו דבר. 225 00:12:51,240 --> 00:12:56,080 זה נראה כאילו יש לנו שדה קלט. 226 00:12:56,080 --> 00:12:58,550 >> אנחנו קביעת כמה מאפיינים, כפי שאנו יכולים לעשות HTML. 227 00:12:58,550 --> 00:12:59,550 אלה הם דברים פשוטים. 228 00:12:59,550 --> 00:13:00,580 אנחנו לא צריכים אלה. 229 00:13:00,580 --> 00:13:03,750 אבל יש לנו השלמה אוטומטית את, אשר בעצם says-- אתה יודע, 230 00:13:03,750 --> 00:13:05,710 כאשר אתה מקליד דברים לאינטרנט, לפעמים 231 00:13:05,710 --> 00:13:07,355 הוא מנסה למלא שבבשבילך. 232 00:13:07,355 --> 00:13:08,230 אז זה דבר נחמד. 233 00:13:08,230 --> 00:13:11,700 אנחנו רוצים לכבות אותו למטרה זו. 234 00:13:11,700 --> 00:13:13,970 זו הייתה החלטת CS50. 235 00:13:13,970 --> 00:13:15,640 אז אנחנו יכולים למחוק כי אם אנחנו רוצים. 236 00:13:15,640 --> 00:13:19,510 >> פוקוס אוטומטי רק מקלות הסמן בימין הטופס בתחילת. 237 00:13:19,510 --> 00:13:21,060 שוב, לא יותר מדי חשוב. 238 00:13:21,060 --> 00:13:26,220 >> אבל name = "שם" - זה קצת מסובך, כי זה שם ושם זה. 239 00:13:26,220 --> 00:13:28,730 אבל אנחנו יכולים כבר השתנו זה למשהו אחר. 240 00:13:28,730 --> 00:13:30,563 ולמעשה, זה מה שנעשינו עכשיו. 241 00:13:30,563 --> 00:13:34,830 אנחנו נגיד "אדם", ש הוא כמו סוג של שם 242 00:13:34,830 --> 00:13:36,790 אם אדם מוגדר בשמם. 243 00:13:36,790 --> 00:13:41,480 >> אז בואו נסגור את זה, לפתוח מחדש את האתר שלנו 244 00:13:41,480 --> 00:13:46,110 מאז השרת שלנו עדיין פועל 50 אפאצ'י, ואנו אומרים, שלום, הנה 245 00:13:46,110 --> 00:13:47,200 אליוט שוב. 246 00:13:47,200 --> 00:13:48,460 למה לא? 247 00:13:48,460 --> 00:13:49,220 שלום. 248 00:13:49,220 --> 00:13:52,880 ואם תלכו עד כאן, אנחנו תראו אז במקום name = אליוט, 249 00:13:52,880 --> 00:13:55,200 זה אומר אדם = אליוט. 250 00:13:55,200 --> 00:14:00,060 וזה תוצאה ישירה של העובדה שאנחנו פשוט שיניתי את השם = "אדם". 251 00:14:00,060 --> 00:14:06,840 >> אז באלמנט קלט של טופס HTML, שם השדה 252 00:14:06,840 --> 00:14:10,590 הוא מזהה ל פרמטר זה מועבר. 253 00:14:10,590 --> 00:14:14,250 זה כמו שאם אתה יוצר פונקציה "להוסיף" שלקח בשני מספרים שלמים 254 00:14:14,250 --> 00:14:16,670 ואתה אמר int וint ב. 255 00:14:16,670 --> 00:14:22,680 זה יהיה שם, ואם אתה רוצה צורה אחרת, ש 256 00:14:22,680 --> 00:14:27,800 אנחנו יכולים לעשות רק על ידי העתקה ו ההדבקה, אז תהיה לנו שם ב. 257 00:14:27,800 --> 00:14:31,030 >> אז עכשיו תהיה לנו שני פרמטרים כי הם עברו ב 258 00:14:31,030 --> 00:14:36,970 להגיע לwebsite-- הבא דף האינטרנט הבא, hello.php. 259 00:14:36,970 --> 00:14:39,770 ואנחנו באמת יכולים לראות כי שוב, אם אנחנו רוצים. 260 00:14:39,770 --> 00:14:44,830 זוהי הדרך הקלה ביותר להתמודד עם קוד האינטרנט בIDE, בעצם. 261 00:14:44,830 --> 00:14:47,940 אתה מתחיל את השרת, לקבל את זה פועל, ולאחר מכן בכל פעם ש 262 00:14:47,940 --> 00:14:50,649 לעשות כמה שינויים, רק קרוב קובץ שרק כדי להיות בטוח. 263 00:14:50,649 --> 00:14:52,440 לחיצה על לחצן חזרה הוא קצת מסובך 264 00:14:52,440 --> 00:14:55,800 כי זה עלול לטעון קודם לכן גרסה, לא המעודכן ביותר. 265 00:14:55,800 --> 00:14:59,200 >> ואז אתה פשוט לחץ כפתור שוב, פופ תקין up-- הו, 266 00:14:59,200 --> 00:15:00,510 ועכשיו יש שתי צורות. 267 00:15:00,510 --> 00:15:10,440 ולכן אם אנחנו מקלידים דבר אחד לכל אחד one-- "הירשהורן ג'ייסון," לinstance-- 268 00:15:10,440 --> 00:15:11,590 אנחנו אומרים שלום. 269 00:15:11,590 --> 00:15:12,840 אנחנו מסתכלים למעלה בפרמטרים שלנו. 270 00:15:12,840 --> 00:15:18,910 זה נראה כאילו יש לנו, כ צפוי, = ג'ייסון ו- B = הירשהורן, 271 00:15:18,910 --> 00:15:23,760 המייצג את שני הפרמטרים שעברנו לתפקיד זה. 272 00:15:23,760 --> 00:15:27,900 >> אז עכשיו בואו בעצם להגיע ל יישום פונקציונלי ש 273 00:15:27,900 --> 00:15:30,840 היה בP להגדיר 6. 274 00:15:30,840 --> 00:15:32,490 אז עכשיו אנחנו רק מהדהדים שלום. 275 00:15:32,490 --> 00:15:34,310 וזה לא מאוד שימושי. 276 00:15:34,310 --> 00:15:38,530 אנו מבקשים להדהד כמה משתנים שעבר אלינו. 277 00:15:38,530 --> 00:15:40,320 ואנחנו יודעים את שמו של משתנה זה. 278 00:15:40,320 --> 00:15:41,770 יש לנו ויש לנו b. 279 00:15:41,770 --> 00:15:43,500 כדי שנוכל לבחור להד גם אחד. 280 00:15:43,500 --> 00:15:45,470 >> אבל איך אנחנו לגשת אליו? 281 00:15:45,470 --> 00:15:48,820 ובכן, יש מסוימים משתנים גלובליים ב- PHP. 282 00:15:48,820 --> 00:15:51,240 ואני הולך לכתוב שלהם בתגובות כאן. 283 00:15:51,240 --> 00:15:59,910 שני החשוב ביותר הם גט ולפרסם למטרות שלנו עכשיו. 284 00:15:59,910 --> 00:16:05,350 אלו הם המערכים או, מבחינה טכנית, המילונים 285 00:16:05,350 --> 00:16:10,540 שבו המשתנים שלנו שאנחנו עובר לשידור החי בדף האינטרנט הבא. 286 00:16:10,540 --> 00:16:14,520 ואנחנו בקרוב לראות כיצד להשתמש בם. 287 00:16:14,520 --> 00:16:19,720 >> עוד הערה קצרה על קוד PHP וכמה פרטים של it-- ב- C, 288 00:16:19,720 --> 00:16:23,260 להכריז משתנה או להשתמש במשתנים, 289 00:16:23,260 --> 00:16:24,570 אתה היה ראשון להכריז עליהם. 290 00:16:24,570 --> 00:16:30,860 ומה היה לך לעשות כאשר אתה הכריז עליהם היה אומרים int או char ב. 291 00:16:30,860 --> 00:16:35,630 היית צריך להכריז על סוגים אלה משתנים לפני שיצרו אותם. 292 00:16:35,630 --> 00:16:38,800 PHP-- אתה לא צריך לעשות את כל זה. 293 00:16:38,800 --> 00:16:42,522 PHP לא שואל ל הסוג של משתנה. 294 00:16:42,522 --> 00:16:44,480 והאופן שבו אתה ליצור variable-- לא 295 00:16:44,480 --> 00:16:49,930 מ אומר int, char, string-- וזה באמת char *, כפי שאנו יודע-- 296 00:16:49,930 --> 00:16:52,180 ולא עושה את כל כי, משום שכל מה ש 297 00:16:52,180 --> 00:16:54,620 הוא מאותו הסוג, typeless, אנחנו רק יכולים 298 00:16:54,620 --> 00:16:59,210 להשתמש תו אחד, ש הוא סימן הדולר. 299 00:16:59,210 --> 00:17:03,700 ואתה תראה את זה כבר צץ עד, דברים קטנים השלמה אוטומטית. 300 00:17:03,700 --> 00:17:11,380 וזה אומר ש_GET ו_POST שתי אפשרויות שיש לי זמין 301 00:17:11,380 --> 00:17:11,900 לי. 302 00:17:11,900 --> 00:17:16,430 חלק מדברים האחרים אלה הם משתנים גלובליים אחרים בPHP 303 00:17:16,430 --> 00:17:18,430 כי אתה תהיה באמצעות למעלה במהלך P להגדיר 7. 304 00:17:18,430 --> 00:17:20,569 לעת עתה אנחנו הולכים להתמקד בגט ופוסט. 305 00:17:20,569 --> 00:17:22,910 אבל זה מועיל דבר שעושה IDE 306 00:17:22,910 --> 00:17:24,980 שבו ברגע שהקלדת שבסימן הדולר, 307 00:17:24,980 --> 00:17:28,760 זה יתחיל במילוי משתנה הגלובלי או משתנה כבר מוגדר. 308 00:17:28,760 --> 00:17:34,360 >> אז אם אתה רוצה להגדיר משתנה בשם "מחרוזת" 309 00:17:34,360 --> 00:17:38,290 רק אתה יכול להגדיר את זה שווה ל" היי. " 310 00:17:38,290 --> 00:17:40,100 וזה בעצם פשוט כמו ש. 311 00:17:40,100 --> 00:17:44,720 ואז אנחנו יכולים לעשות משהו כמו "$ string הד." 312 00:17:44,720 --> 00:17:48,524 IDE יש לזרוק כמה שגיאות אם אני עושה משהו לא בסדר, 313 00:17:48,524 --> 00:17:50,190 כך אני מקווה שאני עושה הכל נכון. 314 00:17:50,190 --> 00:17:52,060 אבל באגים תמיד מתעוררים. 315 00:17:52,060 --> 00:17:56,670 >> עוד דבר מסובך על PHP היא שזה לא הידור. 316 00:17:56,670 --> 00:18:00,640 אז עם תוכניות C, היית עושה השגרה היומית ל-- בעצם, 317 00:18:00,640 --> 00:18:02,710 היית לבצע עריכות ל הקוד שלך, היית לשמור אותו, 318 00:18:02,710 --> 00:18:04,460 ואז היית לעשות את זה, שבו האיפור היה 319 00:18:04,460 --> 00:18:08,830 הצעד שנקרא מהדר, , טקסט להרעיש, ולהפוך את הקוד שלך זה 320 00:18:08,830 --> 00:18:10,570 להגיש, להפעלה. 321 00:18:10,570 --> 00:18:15,550 PHP היא כמו C-, אבל זה בוצע על לטוס בדפדפן האינטרנט שלך. 322 00:18:15,550 --> 00:18:17,640 כך שאין דרך לדעת. 323 00:18:17,640 --> 00:18:19,790 >> הפוך היה זורק אותם שגיאות מועילות, נכון? 324 00:18:19,790 --> 00:18:22,190 זה כמו, אתה יהיה לא הכריז משתנה זה 325 00:18:22,190 --> 00:18:23,320 לפני שאתה ניסית להשתמש בו. 326 00:18:23,320 --> 00:18:29,120 אתה עשית את כל segfault stuff-- הרע זה, segfault, פעמים כיף כל סוג של 327 00:18:29,120 --> 00:18:31,000 שהגיע עם איפור. 328 00:18:31,000 --> 00:18:33,920 PHP היא חרב פיפיות בגלל שאתה לא תקבל שגיאות אלה, 329 00:18:33,920 --> 00:18:37,770 אבל זה גם אומר שאתה לא יודע באמת מה רע בתכנית שלך 330 00:18:37,770 --> 00:18:39,840 אם אתה רק להפעיל אותו וזה לא עובד. 331 00:18:39,840 --> 00:18:45,130 אבל הבאגים צריכים להצביע כמה דברים קטנים בתקווה מועילה 332 00:18:45,130 --> 00:18:47,950 מבחינה תחבירית שאתה יכול לתקן. 333 00:18:47,950 --> 00:18:52,850 >> אז עכשיו אם אנחנו הולכים על צריכה-- אומר, בואו נסגור את זה. 334 00:18:52,850 --> 00:18:54,522 פתח מחדש. 335 00:18:54,522 --> 00:18:55,480 ואנחנו חוזרים לכאן. 336 00:18:55,480 --> 00:18:57,210 אז יש לנו משתנים וb משתנה. 337 00:18:57,210 --> 00:18:58,626 ואלה לא סופו של דבר משנה. 338 00:18:58,626 --> 00:19:01,850 אנו קוראים להם שעות וגרמו בלי שום סיבה מיוחדת. 339 00:19:01,850 --> 00:19:03,120 >> ואנחנו אומרים שלום. 340 00:19:03,120 --> 00:19:07,480 עכשיו זה נראה כמו המחרוזת שלנו "היי" הוא אכן הדפסה. 341 00:19:07,480 --> 00:19:10,460 יצרנו משתנה בשם "מחרוזת", להגדיר אותו שווה ל" היי. " 342 00:19:10,460 --> 00:19:15,520 שימו לב שאנחנו לא צריכים לעשות malloc או לעשות מערך תווים. 343 00:19:15,520 --> 00:19:19,110 >> ב- PHP, כי משתנים הם typeless, מחרוזת 344 00:19:19,110 --> 00:19:22,230 הוא אותו הדבר כמו char ל כל דבר ועניין. 345 00:19:22,230 --> 00:19:23,570 זה יכול להיות "היי". 346 00:19:23,570 --> 00:19:26,340 זה יכול להיות רק k האופי. 347 00:19:26,340 --> 00:19:29,290 זה יכול להיות מספר 1. 348 00:19:29,290 --> 00:19:30,300 ולא אכפת לו. 349 00:19:30,300 --> 00:19:33,560 לא אכפת PHP על סוג המשתנה שלך. 350 00:19:33,560 --> 00:19:34,390 או, זה עושה טיפול. 351 00:19:34,390 --> 00:19:36,240 זה אכפת כשאתה מנסה ולעשות דברים עם זה, 352 00:19:36,240 --> 00:19:38,790 אבל לא אכפת לו ב צעד ההצהרה. 353 00:19:38,790 --> 00:19:46,960 >> ובדיוק כמו שאתה יכול ב- C, אתה יכול להכריז על מחרוזות הערימה כמו זה 354 00:19:46,960 --> 00:19:51,130 למרות שאומר "ערימה" הוא קצת קצת מטעה פוטנציאלי כאשר 355 00:19:51,130 --> 00:19:52,230 על PHP אנחנו מדברים. 356 00:19:52,230 --> 00:19:54,020 אבל אנחנו לא צריכים לדאוג בקשר לזה. 357 00:19:54,020 --> 00:19:55,936 אז יש לנו המחרוזת שלנו "היי," ואנחנו הד מחרוזת. 358 00:19:55,936 --> 00:19:58,880 אז עכשיו אנחנו כבר דנו משתנים. 359 00:19:58,880 --> 00:20:06,060 אז עכשיו אנחנו צריכים לדבר על גט ו לפרסם ולבצע את הדבר האחרון זה 360 00:20:06,060 --> 00:20:12,660 באמת צריך לקום בחזרה זה לפונקציונליות של P להגדיר 6. 361 00:20:12,660 --> 00:20:14,990 אז עכשיו אנחנו מהדהד את המחרוזת, אבל אנחנו 362 00:20:14,990 --> 00:20:17,080 יש לי משתנה אלה לקבל ולפרסם. 363 00:20:17,080 --> 00:20:19,430 ובגלל שאנחנו משתמשים ב השיטה מקבלת, זה 364 00:20:19,430 --> 00:20:24,810 נראה טבעי שמשתנים ש אנחנו מעוניינים ב, שני ו- B, 365 00:20:24,810 --> 00:20:29,870 יהיה ממוקם במערך או מילון, מקבל מבחינה טכנית. 366 00:20:29,870 --> 00:20:33,510 >> אז אם אנחנו מקימים לקבל כזה עם groups-- לחצתי להיכנס 367 00:20:33,510 --> 00:20:36,770 וזה לא מצא חן בit-- אבל כאן יש לנו לקבל. 368 00:20:36,770 --> 00:20:38,000 וכך תקבל כבר קיים. 369 00:20:38,000 --> 00:20:41,380 אז אנחנו כבר יכולים להתחיל לגישה חלק מהאלמנטים של גט. 370 00:20:41,380 --> 00:20:45,000 אם אנחנו מקבלים, תחביר זה ל מערכים ב- PHP הוא מאוד כמו C-. 371 00:20:45,000 --> 00:20:47,900 יש לנו שני סוגריים מרובעים שלנו. 372 00:20:47,900 --> 00:20:53,440 >> אז אם אנחנו אומרים לקבל בנורמלי מערך, אנחנו יכולים לגשת ל 373 00:20:53,440 --> 00:20:55,600 מדד האפס, המדד הראשון. 374 00:20:55,600 --> 00:20:56,840 PHP היא אפס מדד. 375 00:20:56,840 --> 00:21:00,550 אנחנו יכולים לומר אפס, אחד, דברים two-- כמו זה. 376 00:21:00,550 --> 00:21:03,420 ואני כבר אומר שאקבל מבחינה טכנית מילון. 377 00:21:03,420 --> 00:21:08,290 אז מה עושה PHP מתחת למכסת המנוע, שהוא קצת יותר נחמד מאשר C, 378 00:21:08,290 --> 00:21:12,760 זה כבר נותן לך כמה פונקציונלי מילון, ש 379 00:21:12,760 --> 00:21:16,240 הוא שולחנות באמת חשיש, או מנסה, כביכול. 380 00:21:16,240 --> 00:21:19,360 או, מבחינה טכנית זה יכול להיות לנסות גם כן. 381 00:21:19,360 --> 00:21:25,500 אבל PHP מיישם שולחן חשיש, המהווה מילון יעיל. 382 00:21:25,500 --> 00:21:28,400 >> וכך אנו יודעים את השם של המשתנה שלנו, נכון? 383 00:21:28,400 --> 00:21:32,440 זה שעבר ב מחרוזת השאילתה על ידי PHP. 384 00:21:32,440 --> 00:21:37,290 יש לנו = h ו- B = g בי וב השמות של המשתנים. 385 00:21:37,290 --> 00:21:41,580 לכן הדרך שאנחנו יכולים לגשת ל ערך שמתאים למפתח 386 00:21:41,580 --> 00:21:45,055 במילון שלנו הוא רק באומר _GET_GET [""]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> אז עכשיו יש לנו _GET [""]. 389 00:21:51,365 --> 00:21:56,930 ואם אנחנו פשוט להחליף בתוך ההד שלנו, אם אנחנו הד _GET_GET [""] - 390 00:21:56,930 --> 00:22:02,410 ונראה אם ​​הבאגים זורק את כל שגיאות על זה-- 391 00:22:02,410 --> 00:22:05,620 אנחנו נשמור את זה ולסגור את זה. 392 00:22:05,620 --> 00:22:07,130 לפתוח אותו. 393 00:22:07,130 --> 00:22:10,390 אז אנחנו רק עושים תקין עכשיו, כל כך ב לא משנה. 394 00:22:10,390 --> 00:22:12,980 "" ו- "לו" - "זִמזוּם." ו" זמזום "." אותה " 395 00:22:12,980 --> 00:22:14,810 נשמע טוב. 396 00:22:14,810 --> 00:22:18,040 >> וזה הדפיס "," שהוא משוגע. 397 00:22:18,040 --> 00:22:21,920 אבל זה בדיוק מה ש קורה בP להגדיר 6. 398 00:22:21,920 --> 00:22:27,240 בעיקרון, מה שP להגדיר 6 היה עשות-- הד שלום, 399 00:22:27,240 --> 00:22:31,580 name-- בו היה לי שם משתנה וזה פשוט 400 00:22:31,580 --> 00:22:35,520 מבקש ממך להקליד שקצת טקסט. 401 00:22:35,520 --> 00:22:37,380 היה גם כמה קוד נוסף שבי 402 00:22:37,380 --> 00:22:40,550 זה כלול אם הצהרות, שאנחנו יכולים לעשות כרגע. 403 00:22:40,550 --> 00:22:50,120 >> אנחנו יכולים לומר אם קיימים, ש הוא פונקציונלי בתוך PHP, 404 00:22:50,120 --> 00:22:55,110 _GET עם הקו התחתון, "שם" - שבעצם אומר, 405 00:22:55,110 --> 00:22:58,760 "אם שם כבר מלא ב" כי היינו יכול פשוט לוחץ על הכפתור 406 00:22:58,760 --> 00:23:02,580 לשלוח את הטופס ללא הקלדת כל דבר לתחום זה. 407 00:23:02,580 --> 00:23:07,760 ואנחנו עוטפים שבנו ידידותיים סוגריים מסולסלים. 408 00:23:07,760 --> 00:23:09,175 אנחנו יכולים להיות הצהרה אחרת. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 וזה כל מה שבתוך זווית PHP הסוגר, סימן שאלה, תושבת זווית, 411 00:23:18,820 --> 00:23:20,040 אם אתה. 412 00:23:20,040 --> 00:23:21,750 >> ועכשיו נראה אם ​​זה עובד. 413 00:23:21,750 --> 00:23:26,300 אני כל הזמן מחכה שזה באגים ושטויות עליי, בעצם, 414 00:23:26,300 --> 00:23:28,410 אבל יש לו עדיין לא. 415 00:23:28,410 --> 00:23:30,830 אולי זה יהיה עכשיו כי אני מדבר עליהם. 416 00:23:30,830 --> 00:23:31,330 כן. 417 00:23:31,330 --> 00:23:32,510 זה עשה, למעשה. 418 00:23:32,510 --> 00:23:34,610 אז, שום דבר לא מופיע. 419 00:23:34,610 --> 00:23:38,750 זה בגלל משהו לא בסדר שכתבתי בקוד PHP. 420 00:23:38,750 --> 00:23:42,844 והזכרתי את הניפוי הוא מסובך, כי ב- PHP, אנחנו 421 00:23:42,844 --> 00:23:45,260 לא לקמפל אותו מראש והמהדר לא אוהב, 422 00:23:45,260 --> 00:23:46,710 כאן המקום שבו השגיאות שלך הן. 423 00:23:46,710 --> 00:23:49,690 >> אבל מה אנחנו יכולים לעשות הוא-- לעשות אנשים זוכרים 424 00:23:49,690 --> 00:23:57,010 איך להסתכל על הרשת שונה בקשות שPHP-- או שאתרים 425 00:23:57,010 --> 00:23:57,620 לִשְׁלוֹחַ? 426 00:23:57,620 --> 00:24:00,290 [? אלין?] עשה את זה ב להרצות פעם או פעמיים. 427 00:24:00,290 --> 00:24:05,830 אתה זוכר איפה אנחנו הולכים למצוא החובות השונים ו -200 OKs, 428 00:24:05,830 --> 00:24:09,780 כל קודים אלה שנשלחים דרך HTTP מדף האינטרנט לדף אינטרנט? 429 00:24:09,780 --> 00:24:12,514 האם מישהו זוכר לאן אנחנו הולכים לעשות את זה? 430 00:24:12,514 --> 00:24:13,787 >> קהל: מקור דף. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: מקור דף. 432 00:24:14,870 --> 00:24:15,890 בְּדִיוּק. 433 00:24:15,890 --> 00:24:19,230 אם אתה הולך למושלם הדף Source--. 434 00:24:19,230 --> 00:24:21,630 אז מקור הדף מושך את המפקח. 435 00:24:21,630 --> 00:24:23,140 >> ואני משתמש בספארי. 436 00:24:23,140 --> 00:24:25,790 הרבה מכם יהיה כנראה להיות באמצעות Chrome או Firefox. 437 00:24:25,790 --> 00:24:27,750 אבל כל עוד אתה בכל browser-- המודרני 438 00:24:27,750 --> 00:24:29,500 ואל תהסס מעקב לאורך אם אתה רוצה. 439 00:24:29,500 --> 00:24:32,560 ניתן להקליד את הקוד הזה או רק להסתכל פנימה סט P 6 440 00:24:32,560 --> 00:24:35,820 ספרייה לכמה דברים דומים. 441 00:24:35,820 --> 00:24:41,020 hello.php הוא מה שאנחנו כרגע עובד על חיקוי. 442 00:24:41,020 --> 00:24:42,476 >> אז יש מגוון של כרטיסיות. 443 00:24:42,476 --> 00:24:43,850 אנחנו יכולים להסתכל על כל המשאבים. 444 00:24:43,850 --> 00:24:45,810 אנחנו יכולים לראות את קוד המקור. 445 00:24:45,810 --> 00:24:49,900 אז נראה שזה לא לקבל את הגוף האחרון בסופו של הדבר. 446 00:24:49,900 --> 00:24:54,890 זה מצא שגיאה ב- PHP ו הפסיק טעינת דף האינטרנט השלם. 447 00:24:54,890 --> 00:24:58,320 אפילו אין לנו סוף תג לHTML או כל דבר. 448 00:24:58,320 --> 00:25:07,189 >> ואם אנחנו מסתכל על הרשת, שביכולתנו רואה שאנחנו נשלחים בקשה. 449 00:25:07,189 --> 00:25:07,980 זה תחום. 450 00:25:07,980 --> 00:25:09,270 זוהי הכתובת. 451 00:25:09,270 --> 00:25:10,070 זה מסמך. 452 00:25:10,070 --> 00:25:14,310 אנו משתמשים בשיטת הגט. 453 00:25:14,310 --> 00:25:15,760 >> וזה אדום. 454 00:25:15,760 --> 00:25:19,030 או, זה היה אדום כש לא היה בחירתו. 455 00:25:19,030 --> 00:25:22,680 איך אני לבטל את בחירתו? 456 00:25:22,680 --> 00:25:23,980 ובכן, זה היה אדום. 457 00:25:23,980 --> 00:25:25,201 תן לי לרענן. 458 00:25:25,201 --> 00:25:25,700 הנה זה. 459 00:25:25,700 --> 00:25:26,640 עכשיו זה אדום. 460 00:25:26,640 --> 00:25:30,530 >> אז זה אדום, מה שאומר ש זה נכשל, וזה רע. 461 00:25:30,530 --> 00:25:32,280 אז בואו לבחון מדוע זה לא מצליח. 462 00:25:32,280 --> 00:25:37,070 אז כל מה שיכול מקור הדף בעצם אומר לך הוא הדבר שלך 463 00:25:37,070 --> 00:25:38,720 לא עבד, שבו אנו כבר יכולים לראות. 464 00:25:38,720 --> 00:25:42,100 אז באופן אידיאלי יש היית להיות כלי שימושי יותר. 465 00:25:42,100 --> 00:25:45,710 ויש כמה הרחבות דפדפן המאפשר לך לאתר באגים PHP, 466 00:25:45,710 --> 00:25:50,490 אבל אנחנו לא הולכים ל כותב טון של PHP, 467 00:25:50,490 --> 00:25:53,190 אז זה כנראה רק הטוב ביותר להסתכל דרך הקוד שלך 468 00:25:53,190 --> 00:25:56,760 בזהירות ורק לוודא ש זה לא עושה שום דבר אחר. 469 00:25:56,760 --> 00:26:03,876 >> אז בואו לראות אם הפורמט של זה אם הצהרה היא היכן הבעיה. 470 00:26:03,876 --> 00:26:07,420 אני רוצה לטעון שאחזור לכאן. 471 00:26:07,420 --> 00:26:09,830 שלום היי. 472 00:26:09,830 --> 00:26:11,350 אז יש בעיה שם. 473 00:26:11,350 --> 00:26:15,130 >> אז לתחביר נכון של PHP, PHP הולך 474 00:26:15,130 --> 00:26:17,369 להיות שבתראו לולאות כמו C-. 475 00:26:17,369 --> 00:26:18,410 תראה אם ​​הצהרות. 476 00:26:18,410 --> 00:26:20,920 אתה תראה את כל החברים האלה כי אתה כבר להכיר 477 00:26:20,920 --> 00:26:24,820 עם מעל הקורס של סמסטר CS50 זה. 478 00:26:24,820 --> 00:26:29,960 אבל הדרך הטובה ביותר להבין איך לעשות משהו ב- PHP הוא גוגל זה 479 00:26:29,960 --> 00:26:33,170 או להסתכל על כמה דוגמאות של קוד PHP כי אתה יודע את הפונקציונליות. 480 00:26:33,170 --> 00:26:35,080 >> אתה יודע מה שאתה יכול לעשות עם התכנית. 481 00:26:35,080 --> 00:26:35,976 אתה יכול לולאה. 482 00:26:35,976 --> 00:26:37,600 אתה יכול פעמים לולאה רבות ככל שאתה רוצה. 483 00:26:37,600 --> 00:26:39,433 אתה יכול לולאה בכל מיני דרכים שונות. 484 00:26:39,433 --> 00:26:40,700 אתה יכול ליצור פונקציות. 485 00:26:40,700 --> 00:26:43,241 אתה יכול ליצור פונקציות ש לקרוא לפונקציות, פונקציות אחרות 486 00:26:43,241 --> 00:26:44,150 שקורא לעצמם. 487 00:26:44,150 --> 00:26:45,733 ויש לך שמות למושגים אלה. 488 00:26:45,733 --> 00:26:49,860 יש לך רקורסיה, לולאות, אם, תזרים שליטה אחר. 489 00:26:49,860 --> 00:26:51,300 וכך גוגל הוא החבר הכי טוב שלך. 490 00:26:51,300 --> 00:26:53,540 אפילו לומר, "אם PHP הצהרה "ויהיו 491 00:26:53,540 --> 00:26:57,740 להיות טונות של הודעות עם תשובות לאנשים אחרים 492 00:26:57,740 --> 00:27:02,090 שהיה לי שאלות דומות לך, שרק מתחילים עם PHP 493 00:27:02,090 --> 00:27:03,820 וסקרנים לגבי דבר תחביר. 494 00:27:03,820 --> 00:27:08,480 >> כי יש לנו את המותרות של להיות תוכל לעיין בקוד בסט P 6, 495 00:27:08,480 --> 00:27:14,980 אנחנו בעצם למשוך אותו למעלה ורואים ש אישור, הנה משהו מעניין. 496 00:27:14,980 --> 00:27:18,070 אז זה מה שהוא באמת נראה כמו בP להגדיר 6. 497 00:27:18,070 --> 00:27:20,340 אז אם אנחנו עוברים את זה, אנחנו יכולים לראות שיש לנו 498 00:27:20,340 --> 00:27:27,150 יש כמה קטן האלה ביטים סימן שאלה כמו PHP. 499 00:27:27,150 --> 00:27:29,050 >> ויש לא סוגריים מסולסלים. 500 00:27:29,050 --> 00:27:30,250 יש נקודותיים. 501 00:27:30,250 --> 00:27:32,340 ויש מתולתל פלטה ב- PHP, אבל זה 502 00:27:32,340 --> 00:27:38,700 היא תבנית ודרך לעשות PHP שעובד היטב עם HTML 503 00:27:38,700 --> 00:27:43,830 כי כפי שתראה, אנחנו סוגרים את PHP אלה bits-- elses 504 00:27:43,830 --> 00:27:49,770 והטענות וכל לראות-- ולאחר מכן אנחנו interspersing HTML בתוכם 505 00:27:49,770 --> 00:27:54,640 ועדיין הבאים בקרת זרימה שנקבעה על ידי PHP. 506 00:27:54,640 --> 00:27:58,480 >> אז רק אני הולך הליכה מהירה דרך זה 507 00:27:58,480 --> 00:28:01,740 בגלל זה הרבה מאותו מושגים שאנחנו עושים לפני. 508 00:28:01,740 --> 00:28:07,280 יש לנו אם לא ריק, סוגריים, _GET_GET ["שם"]. 509 00:28:07,280 --> 00:28:08,500 כל זה באותו החומר. 510 00:28:08,500 --> 00:28:15,430 אנו משתמשים במילון _GET ש PHP שולח על פי בקשה של צורות, 511 00:28:15,430 --> 00:28:20,720 בגלל זה הוא הפרמטרים של הפעולה, והשיטה היא לקבל. 512 00:28:20,720 --> 00:28:22,110 ואז שמסתיים ש. 513 00:28:22,110 --> 00:28:27,420 המעי הגס הוא מסמן רק כדי לעשות את זה אם אם ההצהרה מעריכה לאמיתי. 514 00:28:27,420 --> 00:28:29,490 זה כמו סד מתולתל. 515 00:28:29,490 --> 00:28:33,320 ולמעשה, זה סד מתולתל בשפות אחרות כמו פייתון, 516 00:28:33,320 --> 00:28:37,070 שבו אתה עלול להיתקל אם אתה רק לעשות את זה לפרויקט הגמר שלך. 517 00:28:37,070 --> 00:28:40,170 >> ולאחר מכן את הקו הזה, שלום. 518 00:28:40,170 --> 00:28:41,510 אז יש לנו הדבר המוזר הזה. 519 00:28:41,510 --> 00:28:43,190 יש לנו יותר סוגריים. 520 00:28:43,190 --> 00:28:46,140 אין HTTP יניהם-- או PHP, מצטער. 521 00:28:46,140 --> 00:28:47,250 אבל יש סימן שוויון. 522 00:28:47,250 --> 00:28:50,625 ואז יש לנו פונקציה, htmlspecialchars (_GEThtmlspecialchars (_GET ["שם"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 זה כמו סוג של יותר גרסה מתקדמת של הד. 525 00:28:58,040 --> 00:29:01,450 כמו שהיו הד כדרך להדפיס דברים בPHP. 526 00:29:01,450 --> 00:29:03,890 זוהי פונקציה זה מוגדר ב- PHP ש 527 00:29:03,890 --> 00:29:08,160 יעסוק בכמה מגעיל יותר דמויות וערכים בייט 528 00:29:08,160 --> 00:29:09,540 כי אתה יכול להעביר את זה. 529 00:29:09,540 --> 00:29:11,070 זה תמיד הבטוח ביותר לשימוש זה. 530 00:29:11,070 --> 00:29:14,930 אבל הד יעשה את העבודה בסדר גמור אם אנחנו לא 531 00:29:14,930 --> 00:29:17,620 התמודדות עם כל דבר מגעיל מדי. 532 00:29:17,620 --> 00:29:20,340 >> וכך זה יש את אותו השפעה בעצם, 533 00:29:20,340 --> 00:29:26,360 החומר הזה בין השאלה סימנים מוערך על ידי PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars חוזר HTML נחמד ערך מודפס של _GET_GET ["שם"], דהיינו 535 00:29:34,490 --> 00:29:36,010 כל מה שאנחנו הקלדתי בטופס. 536 00:29:36,010 --> 00:29:40,025 ואז זה יגיד שלום, חלל פסיק, ולאחר מכן ש. 537 00:29:40,025 --> 00:29:42,910 שכל דבר בין הסוגריים זוויתיים 538 00:29:42,910 --> 00:29:47,390 יוחלף על ידי מה ש htmlspecialchars מעמיד. מתוך 539 00:29:47,390 --> 00:29:49,390 אז זה בעצם דומה למה שאנחנו עושים. 540 00:29:49,390 --> 00:29:54,760 ויש לנו הצהרה אחרת זה שלום עולם, מה שהופך את התחושה. 541 00:29:54,760 --> 00:29:58,070 אז עכשיו בואו נחזור לנו קוד ולראות exactly-- הו. 542 00:29:58,070 --> 00:30:02,200 אמרתי קיימת, שאינו דבר שאנחנו רוצים לעשות. 543 00:30:02,200 --> 00:30:05,370 רצינו לומר לא ריק. 544 00:30:05,370 --> 00:30:10,020 >> וכך זה צריך לעבוד קצת קצת יותר טוב, לא _GET_GET הריק ["שם"]. 545 00:30:10,020 --> 00:30:12,710 ושסד מתולתל תואם לזה סד מתולתל. 546 00:30:12,710 --> 00:30:15,210 יש לנו הסוגריים המסולסלים שלנו כאן. 547 00:30:15,210 --> 00:30:17,790 הד שלום ["שם"] _GET. 548 00:30:17,790 --> 00:30:19,912 בואו אראה אם ​​זה עובד קצת יותר טוב. 549 00:30:19,912 --> 00:30:21,350 אנחנו עדיין פועלים בשרת שלנו. 550 00:30:21,350 --> 00:30:23,910 שלום ג'ייסון. 551 00:30:23,910 --> 00:30:24,780 שלום ג'ייסון. 552 00:30:24,780 --> 00:30:25,810 וזה עבד הפעם. 553 00:30:25,810 --> 00:30:29,860 ואז זה הוכחה כי אכן אתה יכול 554 00:30:29,860 --> 00:30:35,180 להשתמש בסוגריים המסולסלים ש מכיר ואוהב בקוד PHP ב- HTML. 555 00:30:35,180 --> 00:30:41,100 קוד PHP הניתן ל אתה בpset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 מספק דרך נוספת עושה אותו דבר. 557 00:30:44,760 --> 00:30:49,220 >> אז עכשיו יש לנו את הכח. 558 00:30:49,220 --> 00:30:55,740 יש לנו את הפונקציונליות ליישם קוד PHP שראינו בpset 6 559 00:30:55,740 --> 00:30:57,390 בעצמנו, בעצם. 560 00:30:57,390 --> 00:31:01,350 לפני שאני ממשיך הלאה, מה הם כמה מ שאלות שיש לך בשלב זה? 561 00:31:01,350 --> 00:31:02,066 כן [לא ברור]. 562 00:31:02,066 --> 00:31:06,512 >> קהל: אז בגרסה בpset6, כאשר אתה מפעיל אותו, יש מקום. 563 00:31:06,512 --> 00:31:09,330 ואני יכול לראות בו החלל הוא אחרי הפסיק. [לא ברור] התחלה 564 00:31:09,330 --> 00:31:10,700 הסוגר הפתוח. 565 00:31:10,700 --> 00:31:15,420 איך אתה משלב את המרחב ב הדרך בה אתה כתב קודים משלך? 566 00:31:15,420 --> 00:31:17,910 >> דובר: זו שאלה טובה. 567 00:31:17,910 --> 00:31:21,650 ואז בואו להבין את זה. 568 00:31:21,650 --> 00:31:24,450 אז זה באמת שאלה טובה ואחד שאני לא רואה. 569 00:31:24,450 --> 00:31:25,950 אבל בואו נעשה את זה ביחד. 570 00:31:25,950 --> 00:31:30,280 >> אז קודם כל, מה ש אני עושה עם הד 571 00:31:30,280 --> 00:31:33,690 כאשר אנחנו רק הד שלום, זה פלטי שלום. 572 00:31:33,690 --> 00:31:41,310 אם הד עכשיו זה לעלות על נפרד קו, בואו נבדוק מה קורה. 573 00:31:41,310 --> 00:31:43,740 אז אנחנו לחצו זה. 574 00:31:43,740 --> 00:31:45,220 אנו חוזרים ואומרים, היי ג'ייסון. 575 00:31:45,220 --> 00:31:48,690 אז שוב, אין לנו את המרחב הזה. 576 00:31:48,690 --> 00:31:53,090 >> וזה בגלל, ב PHP, כאשר יש לנו הד, 577 00:31:53,090 --> 00:31:55,820 לא משנה כמה spaces-- לא, לא V-- 578 00:31:55,820 --> 00:32:01,770 לא משנה כמה חללים שאנחנו מכניסים ל כאן-- אם אנחנו עכשיו לטעון את זה שוב, 579 00:32:01,770 --> 00:32:03,010 היי ג'ייסון. 580 00:32:03,010 --> 00:32:05,770 כן, תראה, כל אלה רווחים ירדו לאכול עד. 581 00:32:05,770 --> 00:32:08,020 וזה משהו ש פונקצית ההד עושה. 582 00:32:08,020 --> 00:32:11,110 >> אז לטפל ב חלל ש, וזה 583 00:32:11,110 --> 00:32:14,960 אחת הסיבות למה אתה לא משתמש בהד 584 00:32:14,960 --> 00:32:18,200 ואתה משתמש htmlspecialchars במקום. 585 00:32:18,200 --> 00:32:22,140 אני סקרן לדעת מה היית יקרה אם עשיתי את זה 586 00:32:22,140 --> 00:32:26,700 שבו אנו מוקפים חלל במחרוזת. 587 00:32:26,700 --> 00:32:29,720 אני בכנות לא בטוח מה יקרה כאשר אני עושה את זה. 588 00:32:29,720 --> 00:32:30,790 >> כך שדרך אחת. 589 00:32:30,790 --> 00:32:32,210 זאת דרך אחת לטפל בזה. 590 00:32:32,210 --> 00:32:34,840 אם אתה עוטף את החלל ב מחרוזת, אז החלל 591 00:32:34,840 --> 00:32:36,920 יהיה פלט יפה על ידי הד. 592 00:32:36,920 --> 00:32:41,930 הדבר הבטוח ביותר לעשות הוא לעשות htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 זה תמיד ההימור הבטוח. 594 00:32:43,800 --> 00:32:47,050 אבל עכשיו יש לנו דרך לעשות זה עם הד במידת צורך. 595 00:32:47,050 --> 00:32:50,700 ובאופן דומה, אנחנו יכולים הד קווים חדשים, כל הסוג 596 00:32:50,700 --> 00:32:53,550 דברים שאתה מכיר עושה ב- PHP. 597 00:32:53,550 --> 00:32:57,460 >> כל אחד אחר, מה הם יותר שאלות שיש לאנשים אחרים 598 00:32:57,460 --> 00:33:01,090 בשלב זה על PHP? 599 00:33:01,090 --> 00:33:04,620 אם אנשים הגיעו קצת באיחור, אני שמח להישאר אחרי קצת 600 00:33:04,620 --> 00:33:06,420 ולדבר על כמה מההתחלה. 601 00:33:06,420 --> 00:33:10,380 וזה גם כל livestreamed, וארכיון, שהוא משוגע. 602 00:33:10,380 --> 00:33:13,960 >> בכל מקרה, אז עכשיו בואו נעשה קצת דברים מתקדמים יותר עם PHP. 603 00:33:13,960 --> 00:33:18,790 ואחד הדברים הראשונים שאתה הוכנסו ב- C היה ללולאות. 604 00:33:18,790 --> 00:33:24,060 ויש לי PHP חזק יותר ל לולאת foreach נקראת הלולאה. 605 00:33:24,060 --> 00:33:37,940 וזה נראה כמו זה-- לכל ריק כסוגריים ריקים, מתולתל, לעשות את הדבר. 606 00:33:37,940 --> 00:33:41,500 אז זה בעצם קיצור. 607 00:33:41,500 --> 00:33:45,380 >> ראה, ללולאה כ בנייה תחבירית 608 00:33:45,380 --> 00:33:50,590 תוכנן ב- C והרכבה שפה ודברים כאלה. 609 00:33:50,590 --> 00:33:56,300 המציא ב- C, בדיוק, כמו קצרנות להרבה סוגים של לולאות 610 00:33:56,300 --> 00:33:57,750 שאנשים רואים. 611 00:33:57,750 --> 00:34:01,230 כמו כשאתה כתב לולאה, יש היה לעתים קרובות שלב אתחול 612 00:34:01,230 --> 00:34:04,700 להורג מייד בהתחלה, מצב שבו הלולאה הייתה stop-- 613 00:34:04,700 --> 00:34:07,030 וזה התכונה זה רק בלולאה בזמן, 614 00:34:07,030 --> 00:34:10,040 או שבעוד יש בדיוק רק שfeature-- ולאחר מכן 615 00:34:10,040 --> 00:34:12,320 צעד incrementation בסוף. 616 00:34:12,320 --> 00:34:16,489 וכך היית לעתים קרובות מוצא את עצמך כתיבת קוד כמו הבא. 617 00:34:16,489 --> 00:34:19,780 אני הולך למחוק חלק מזה. 618 00:34:19,780 --> 00:34:23,850 >> אבל אם אנחנו iterating דרך דמויות במערך, 619 00:34:23,850 --> 00:34:26,960 למשל, כמו שיש לנו יש מערך של תווים. 620 00:34:26,960 --> 00:34:29,400 מצטער להחזיר ג אני יודע, חשב שאתה עשית. 621 00:34:29,400 --> 00:34:31,900 אבל זה רק לצורך לימוד PHP, אני מבטיח. 622 00:34:31,900 --> 00:34:38,880 אז אם יש לך str char אורך 8, ובואו 623 00:34:38,880 --> 00:34:46,760 אומר שזה אומר hellooo עם אפס נגרר. 624 00:34:46,760 --> 00:34:48,270 גדול, אז זה המחרוזת שלנו. 625 00:34:48,270 --> 00:34:51,469 >> ואז היו לנו ללולאה. 626 00:34:51,469 --> 00:34:53,730 יש לנו int i שווה 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 ואנחנו רוצים לצאת כאשר str שלי שווה לא שווה ל null, 629 00:35:09,110 --> 00:35:11,590 כי אנחנו לצאת כשזה שווה null. 630 00:35:11,590 --> 00:35:19,170 ואז אנחנו עושים i ++ בכל נקודה ללולאה. 631 00:35:19,170 --> 00:35:30,480 עושה משהו עם str שלי. 632 00:35:30,480 --> 00:35:34,950 >> אז הנוסחה הבסיסית הייתה, היו לנו מערך זה ש 633 00:35:34,950 --> 00:35:37,910 רציתי לטפל אלמנטים נפרדים. 634 00:35:37,910 --> 00:35:45,170 אבל מה שהיינו צריך לעשות הוא שהיו לנו ל בעצם ליצור שלם נפרדת 635 00:35:45,170 --> 00:35:50,530 משתנה שסופר את כל זמן שעברנו את הלולאה. 636 00:35:50,530 --> 00:35:55,240 ואז יהיה לנו אז לקרוא strstr [i] כאשר מה שאנחנו באמת רוצים לעשות 637 00:35:55,240 --> 00:35:57,280 פשוט ללכת אופי על ידי דמות, נכון? 638 00:35:57,280 --> 00:36:00,185 אנחנו לא רוצים להגדיל מספר שלם ולאחר מכן להשתמש במספר שלם ש 639 00:36:00,185 --> 00:36:02,780 כדי לגשת לכל דמות בנפרד. 640 00:36:02,780 --> 00:36:04,410 אנחנו באמת רוצים תו אחרי תו. 641 00:36:04,410 --> 00:36:08,600 >> וכך לכל אחד בתבונה מחשבים את זה בשבילנו. 642 00:36:08,600 --> 00:36:11,875 אם יש לנו מערך, ש אנחנו יכולים להכריז ב- PHP 643 00:36:11,875 --> 00:36:15,900 כפשוט-- אם יש לנו משתנים בשם, בואו נקראים לזה מערך. 644 00:36:15,900 --> 00:36:19,840 הנסים של לא הקלדה, זה בדיוק כמו כל משתנה אחרים. 645 00:36:19,840 --> 00:36:20,730 זה פשוט מערך. 646 00:36:20,730 --> 00:36:26,890 ויש לי [לא ברור] כמו קטן 1, 2, 3, רק סוג של מערך אותחל. 647 00:36:26,890 --> 00:36:29,680 זה בסדר, זה לא כמו foreach שלי. 648 00:36:29,680 --> 00:36:33,120 >> אבל אם אנחנו foreach-- למעשה הקלדתי שקצת לא בסדר. 649 00:36:33,120 --> 00:36:34,840 ישנן שתי דרכים לעשות לולאת foreach. 650 00:36:34,840 --> 00:36:37,400 יש תחביר וכבתחביר. 651 00:36:37,400 --> 00:36:40,580 ואנחנו הולכים לעשות בתחביר הראשון, לא כ. 652 00:36:40,580 --> 00:36:41,780 זה הטעות שלי. 653 00:36:41,780 --> 00:36:53,785 >> num אז foreach במערך, הד num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 ו- PHP צועק ב שלי מסיבה כלשהי. 656 00:36:59,500 --> 00:37:03,520 זה מציאת בלתי צפוי במשהו, 657 00:37:03,520 --> 00:37:05,820 שהוא קצת מפריע. 658 00:37:05,820 --> 00:37:09,105 אבל אנחנו להבין למה שהוא ברגע. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 אז לא כזה. 661 00:37:13,610 --> 00:37:15,040 בואו ננסה באמצעות כ. 662 00:37:15,040 --> 00:37:17,310 הוא מעדיף כתחביר הוא נראה. 663 00:37:17,310 --> 00:37:22,550 אז בואו לעשות מערך foreach כnum. 664 00:37:22,550 --> 00:37:24,520 >> אז הסבר קטן של מה בדיוק קרה 665 00:37:24,520 --> 00:37:30,670 הוא כמו התחביר הוא saying-- הבאר ראשון, בואו נסתכל על מה זה מדפיס. 666 00:37:30,670 --> 00:37:32,260 אז אנחנו פותחים את IDE שלנו. 667 00:37:32,260 --> 00:37:33,110 אנחנו הולכים כאן. 668 00:37:33,110 --> 00:37:35,845 אנחנו אומרים, הלו ג'ייסון. 669 00:37:35,845 --> 00:37:41,390 וזה עשה 123, אשר היה התוכן של המערך שיצרנו למעלה. 670 00:37:41,390 --> 00:37:45,500 >> אז צולל לתוך לולאת foreach זה, יש לנו מערך משתנה בשם 671 00:37:45,500 --> 00:37:47,470 אשר הוא מערך של שלושה מספרים. 672 00:37:47,470 --> 00:37:52,120 ואז אנחנו עושים foreach מערך כnum, הד num. 673 00:37:52,120 --> 00:37:54,990 וזה יותר אינטואיטיבי מאשר ללופ. 674 00:37:54,990 --> 00:38:02,380 אנחנו אומרים, טיפול בכל אחד מ הדברים במערך כnum, 675 00:38:02,380 --> 00:38:05,180 אני רוצה שתיתן לי num. 676 00:38:05,180 --> 00:38:06,640 וזה בדיוק מה שהוא עושה. 677 00:38:06,640 --> 00:38:12,000 >> PHP היא חישוב ש כשאתה אומר מערך foreach, 678 00:38:12,000 --> 00:38:16,080 עם מערך ויש לך עסק, מה ש אתה הולך רוצה לחזר על 679 00:38:16,080 --> 00:38:19,950 היא הדמויות במערך ש, הוא ints במערך ש, 680 00:38:19,950 --> 00:38:21,920 הוא האלמנטים במערך ש. 681 00:38:21,920 --> 00:38:26,110 וזה מאפשר לך לאחסן אלה משתנים כnum, 682 00:38:26,110 --> 00:38:29,360 וnum אז פשוט פלט מייד ולא אומרים, 683 00:38:29,360 --> 00:38:34,090 יש לי משתנה בשם i, ו אז אני רוצה strstr פלט [i]. 684 00:38:34,090 --> 00:38:39,130 >> וכך המאפשר לנו לעשות דברים מגניבים. 685 00:38:39,130 --> 00:38:43,330 כמו בעצם אנחנו לא צריכים ליצור משתנה אלה כמוני של ולעשות את כל 686 00:38:43,330 --> 00:38:45,090 דברים incrementation זה בסוף. 687 00:38:45,090 --> 00:38:48,290 PHP מטפל בכל זה בשבילך. 688 00:38:48,290 --> 00:38:54,470 >> אז עכשיו בואו נדבר על foreach כ הוא חל על מילון _GET. 689 00:38:54,470 --> 00:38:57,170 אז אנחנו להגיב זה במהירות. 690 00:38:57,170 --> 00:39:02,030 אז יש לנו מערך _GET. 691 00:39:02,030 --> 00:39:04,361 יש לנו משתנים זה. 692 00:39:04,361 --> 00:39:05,610 ויש לו כמה דברים בזה. 693 00:39:05,610 --> 00:39:10,275 >> נכון לעכשיו, יש לנו משתנים אחד בלבד שעבר אליו, שהוא שם. 694 00:39:10,275 --> 00:39:13,420 אבל אם אנחנו הקש Enter, עכשיו יכול להיות לנו שני משתנים. 695 00:39:13,420 --> 00:39:17,910 אנחנו יכולים להיות שם וגיל, למשל, אם אנחנו רוצים להגיע לגיל וגם 696 00:39:17,910 --> 00:39:20,960 שמו של אדם, באפן מצחיק מספיק. 697 00:39:20,960 --> 00:39:25,690 >> אז עכשיו _GET הולך להיות מילון עם שני אלמנטים, 698 00:39:25,690 --> 00:39:27,980 עם שני זוגות ערך מפתח. 699 00:39:27,980 --> 00:39:33,490 וkey-- הראשון אני הולך לכתוב את זה על הלוח מדי. 700 00:39:33,490 --> 00:39:37,136 יש לנו המילון שלנו הוא _GET. 701 00:39:37,136 --> 00:39:39,520 מצטער, זה קצת קשה לראות. 702 00:39:39,520 --> 00:39:46,690 אבל בתוך המילון שלנו יש לנו שם, שהולך להיות משהו 703 00:39:46,690 --> 00:39:47,680 כי אנחנו נתון. 704 00:39:47,680 --> 00:39:53,040 ויהיה לנו גיל, שהוא גם הולך להיות משהו שאנחנו נתון. 705 00:39:53,040 --> 00:39:56,020 וזה השלמות המילון שלנו. 706 00:39:56,020 --> 00:39:57,730 >> אז יש לו שני אלמנטים בזה. 707 00:39:57,730 --> 00:40:01,310 וזאת משום שforeach לולאות חכמות, אנחנו 708 00:40:01,310 --> 00:40:04,900 אולי חושב, ובצדק אולי חושב שforeach 709 00:40:04,900 --> 00:40:08,080 יכול לחזר דרך זה מילון, הדפסה החוצה 710 00:40:08,080 --> 00:40:10,850 הערכים שניתנו על ידי שם וגיל. 711 00:40:10,850 --> 00:40:14,510 >> אז בואו למעשה לעשות בדיוק את זה. 712 00:40:14,510 --> 00:40:17,520 בואו לבנות לולאת foreach. 713 00:40:17,520 --> 00:40:23,351 ואנחנו הולכים לעשות ל_GET כ. 714 00:40:23,351 --> 00:40:24,850 ואנחנו הולכים לעשות את הדברים הבאים. 715 00:40:24,850 --> 00:40:34,186 אז בואו לראות מה קורה אם אנחנו מקלידים רק מילה, ולאחר מכן לומר מילת הד. 716 00:40:34,186 --> 00:40:40,540 אנחנו גם הולכים להד קו חדש רק כדי לעשות את זה קצת יותר ברור, 717 00:40:40,540 --> 00:40:41,260 מה הולך. 718 00:40:41,260 --> 00:40:42,890 >> אז בואו לראות. 719 00:40:42,890 --> 00:40:44,390 זה לא נותן לי את כל שגיאות. 720 00:40:44,390 --> 00:40:46,810 ואנחנו נסגור את זה. 721 00:40:46,810 --> 00:40:51,020 באתר שלנו, אתה הולך לעשות הרבה שבמשך pset7. 722 00:40:51,020 --> 00:40:53,890 אז אנחנו אומרים את השם שלי הוא סם. 723 00:40:53,890 --> 00:40:58,560 הגיל שלי הוא 45. 724 00:40:58,560 --> 00:41:01,060 זה לא. 725 00:41:01,060 --> 00:41:05,640 אבל זה מדפיס, כצפוי, סם 45. 726 00:41:05,640 --> 00:41:08,930 >> וכך תוכל להבחין כי מה foreach לולאת did-- כאן, 727 00:41:08,930 --> 00:41:12,360 בואו נחזור לזה אז זה תלוי על board-- אנחנו מקבלים _GET כמילה. 728 00:41:12,360 --> 00:41:15,130 והיו ארבעה דברים ב_GET. 729 00:41:15,130 --> 00:41:17,410 אבל זה הדפיס רק שני דברים. 730 00:41:17,410 --> 00:41:21,290 foreach, להיות עצמי המודיעין שלה, ההנחה היא כי מה שאנחנו באמת רוצים 731 00:41:21,290 --> 00:41:24,100 היה הערכים, לא על המקשים. 732 00:41:24,100 --> 00:41:27,800 >> אבל יש דרך שנוכל להדפיס את המפתחות כמו גם, אם אנחנו רוצים. 733 00:41:27,800 --> 00:41:30,810 אם אנחנו רוצים גם לדעת מה משתנים אלה נקראו, 734 00:41:30,810 --> 00:41:33,540 יש דרך ש תוכל לגשת לזה גם כן. 735 00:41:33,540 --> 00:41:36,840 והדרך לעשות סוג של ש, כך אנו יכולים לומר, מאפשר באמת 736 00:41:36,840 --> 00:41:39,485 לפצל אותו לזוגות ערך מפתח. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 אז בואו לראות מה קורה עכשיו. 739 00:41:47,580 --> 00:41:50,550 >> אז יש לנו מפתח. 740 00:41:50,550 --> 00:41:52,290 יש לנו ערך. 741 00:41:52,290 --> 00:41:56,650 יש לנו עוד חדש קו לקריאות. 742 00:41:56,650 --> 00:42:00,540 ובואו נראה מה קורה כאשר אנחנו עושים את זה עכשיו. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 אני לא יודע בן כמה ג'ייסון הוא. 745 00:42:06,720 --> 00:42:09,180 ג'ייסון של 15. 746 00:42:09,180 --> 00:42:11,650 אז יש לנו את השם ג'ייסון, גיל 15. 747 00:42:11,650 --> 00:42:15,830 אז היינו יכול לגשת למפתח וזוגות ערך של מילון זה 748 00:42:15,830 --> 00:42:18,590 רק באומר נקודות מפתח כמו לשווי. 749 00:42:18,590 --> 00:42:23,350 וזה תחבירי foreach קצת סוכר המאפשר 750 00:42:23,350 --> 00:42:25,960 לך לגשת דברים במילון. 751 00:42:25,960 --> 00:42:31,190 >> אז אני מקווה שזה סוג של דגש כוחו של foreach הלולאה. 752 00:42:31,190 --> 00:42:35,690 אתה יכול פחות או יותר לזרוק כל דבר שנראה iterable, 753 00:42:35,690 --> 00:42:38,922 כמו כל דבר שיש מספר רב של אלמנטים כמו מערך, 754 00:42:38,922 --> 00:42:41,880 כמו dictionary-- אלה הם שני דברים עיקריים שאתה עובד עם 755 00:42:41,880 --> 00:42:45,630 הן בחיים ובpset 7. 756 00:42:45,630 --> 00:42:49,350 אז אתה יכול לזרוק דברים ש בזה, וזה יהיה להבין 757 00:42:49,350 --> 00:42:51,030 מה שאתה רוצה לעשות עם זה. 758 00:42:51,030 --> 00:42:54,250 זה אומר, בסדר, אני הולך לקבל את הדברים האלה מנתונים ש 759 00:42:54,250 --> 00:42:55,680 עבר לי. 760 00:42:55,680 --> 00:43:02,470 וזה משהו שאתה הולך להיות באמצעות הרבה בpset 7. 761 00:43:02,470 --> 00:43:08,550 >> אני הולך לגלילה מהירה למטה רק כדי לראות איפה אני ב. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 האם יש לי אנשים שאלות בשלב זה? 764 00:43:13,070 --> 00:43:13,778 שאלות בכלל? 765 00:43:13,778 --> 00:43:14,400 כֵּן? 766 00:43:14,400 --> 00:43:18,320 >> קהל: אז עם המפתח וערך, אתה יכול שם זה משהו אחר 767 00:43:18,320 --> 00:43:20,507 וזה עדיין עובד? 768 00:43:20,507 --> 00:43:21,090 דובר: אופס. 769 00:43:21,090 --> 00:43:22,820 וואו, אני לגמרי נמחק כל הקו. 770 00:43:22,820 --> 00:43:23,380 עבודה נהדרת. 771 00:43:23,380 --> 00:43:26,502 אז,. 772 00:43:26,502 --> 00:43:30,109 מפתח וערך הוא רק מוסכמה. 773 00:43:30,109 --> 00:43:30,650 זה מועיל. 774 00:43:30,650 --> 00:43:34,010 היית מקבל כמה עיצוב נקודות, אולי כמה נקודות בסגנון 775 00:43:34,010 --> 00:43:36,970 לעושה את זה כי זה באמת מעביר את הכוונה. 776 00:43:36,970 --> 00:43:39,650 אבל אנחנו אומרים וyarp. 777 00:43:39,650 --> 00:43:42,476 >> קהל: אין לך ל לשנות משהו בקובץ HTML 778 00:43:42,476 --> 00:43:43,607 על מנת לשקף את זה? 779 00:43:43,607 --> 00:43:44,440 דובר: בכלל לא. 780 00:43:44,440 --> 00:43:47,260 קהל: וזה רק יודע ש בגלל שווה than-- יותר 781 00:43:47,260 --> 00:43:47,801 דובר: כן. 782 00:43:47,801 --> 00:43:49,489 קהל: מחוון --that שthat's-- 783 00:43:49,489 --> 00:43:50,030 דובר: כן. 784 00:43:50,030 --> 00:43:52,260 זה תחביר foreach, אבל כן. 785 00:43:52,260 --> 00:43:53,720 >> קהל: אין סוגים. 786 00:43:53,720 --> 00:43:57,230 אז מה אם אתה רוצה גיל להיות רק מספר? 787 00:43:57,230 --> 00:43:59,510 האם יש דרך לעשות את זה? 788 00:43:59,510 --> 00:44:04,550 >> דובר: יש דרכים לבדוק אם משתנים מתאימים לסוגים מסוימים. 789 00:44:04,550 --> 00:44:08,482 אז PHP שואל קצת יותר מ שלך כי אין בסוגים. 790 00:44:08,482 --> 00:44:09,440 מבחינות מסוימות הוא מבקש פחות. 791 00:44:09,440 --> 00:44:11,070 במובנים מסוימים הוא מבקש יותר. 792 00:44:11,070 --> 00:44:13,320 כי אם יש לך רק משהו במשתנה, 793 00:44:13,320 --> 00:44:14,960 אין לך מושג איזה סוג זה. 794 00:44:14,960 --> 00:44:19,310 אבל אם אתה חכם על המשתנים שאתה מקצה לסוגים ולוודא 795 00:44:19,310 --> 00:44:22,750 שפונקציות return-- אתה רק רוצה פונקציות להחזר רק 796 00:44:22,750 --> 00:44:26,210 סוג אחד של ערך כל כך כי בעצם אתה יכול 797 00:44:26,210 --> 00:44:31,090 מצפה שהמשתנה שאתה מקבל בחזרה מפונקציה יהיה מהסוג 798 00:44:31,090 --> 00:44:32,780 כי אתה חושב שזה יהיה, בעצם. 799 00:44:32,780 --> 00:44:36,550 >> אבל יש כמה שיטות שבו אתה יכול לבדוק. 800 00:44:36,550 --> 00:44:39,801 אני לא זוכר אותם את החלק העליון של הראש שלי. 801 00:44:39,801 --> 00:44:43,300 אני מחכה לזה להכחיל. 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 ישנן שיטות שיכול שנבנה לתוך PHP 805 00:44:52,000 --> 00:44:54,440 לבדוק את הסוג של משתנים בשבילך. 806 00:44:54,440 --> 00:44:58,250 אבל אם אתה מקצה משתנים בזריזות, אתה לא צריך 807 00:44:58,250 --> 00:45:01,330 צריך לעשות את זה יותר מדי בpset 7. 808 00:45:01,330 --> 00:45:02,780 אבל שיטות אלה אכן קיימות. 809 00:45:02,780 --> 00:45:06,704 וזה משהו ש הוא בשפה עצמה. 810 00:45:06,704 --> 00:45:08,370 ואני לא זוכר את התחביר המדויק. 811 00:45:08,370 --> 00:45:09,930 אנחנו יכולים אפילו לבדוק את זה. 812 00:45:09,930 --> 00:45:11,974 אבל הזמן הוא המהות. 813 00:45:11,974 --> 00:45:13,890 יש לי האם מישהו אחר יש עוד שאלות? 814 00:45:13,890 --> 00:45:14,660 כֵּן. 815 00:45:14,660 --> 00:45:15,951 >> קהל: יש לי רק אחד יותר. 816 00:45:15,951 --> 00:45:19,050 אז אתה הזכרת את שיטת GET, אבל לא הזכיר את שיטת POST. 817 00:45:19,050 --> 00:45:20,500 האם אנחנו חוזרים לזה? 818 00:45:20,500 --> 00:45:21,540 >> דובר: כן, אנחנו אחזור לזה. 819 00:45:21,540 --> 00:45:24,840 זה בדיוק מה שאני מחפש בטלפון שלי, שעכשיו נרדם, 820 00:45:24,840 --> 00:45:26,960 אבל אני תמצא אותו. 821 00:45:26,960 --> 00:45:30,680 רק כדי לוודא שפגענו כל הערות PHP. 822 00:45:30,680 --> 00:45:35,640 כן, אין גרסת ניפוי. 823 00:45:35,640 --> 00:45:41,940 כן, יש לנו עוד כמה דברים ש אנחנו רוצים לעשות עכשיו, בשלב זה. 824 00:45:41,940 --> 00:45:45,980 >> אז דיבר על POST, שההזכרה, 825 00:45:45,980 --> 00:45:49,630 ההבדל היחיד בין לקבל ולפרסם הוא 826 00:45:49,630 --> 00:45:53,150 שזוכר שהסתכלנו בכתובת אתר זו וראינו, הו, 827 00:45:53,150 --> 00:45:58,270 שם שווה ושווה גיל yarp צודק ב- URL יש לנו. 828 00:45:58,270 --> 00:46:03,300 POST הוא חשאי קצת יותר עם פטירתו של מידע. 829 00:46:03,300 --> 00:46:08,090 >> אז אם אתה לא רוצה משתמש לדעת, למשל, אתה 830 00:46:08,090 --> 00:46:11,160 לא רצה את שם המשתמש וסיסמא של האדם 831 00:46:11,160 --> 00:46:15,080 כרגע מחוברים ליוצג ב כתובת האתר, וזה דבר סביר 832 00:46:15,080 --> 00:46:17,770 לא רוצה את כתובת האתר, בגלל שמישהו יכול לראות את זה. 833 00:46:17,770 --> 00:46:21,520 אם הם מקשרים מישהו לדף, אתה לא רוצה כתובת האתר שלהם מטויחת שם, 834 00:46:21,520 --> 00:46:27,850 בגלל שיאפשר לאנשים להתחבר רק עם ההדבקה של כתובת אתר במקום 835 00:46:27,850 --> 00:46:29,670 של ממש מילוי טופס. 836 00:46:29,670 --> 00:46:31,710 POST הוא קצת חשאי יותר. 837 00:46:31,710 --> 00:46:34,150 >> והדברים היחידים ש נצטרך לשנות 838 00:46:34,150 --> 00:46:38,550 הם שיטה, שינוי זה מלהגיע להודעות. 839 00:46:38,550 --> 00:46:42,367 ואז בתוך HTTP, במקום לגישה ל_GET המערך, 840 00:46:42,367 --> 00:46:43,950 אנחנו הולכים כדי לגשת ל_POST המערך. 841 00:46:43,950 --> 00:46:48,600 >> ואנחנו שמים לב ש, אם אנחנו פותחים את זה בחזרה שוב, 842 00:46:48,600 --> 00:46:51,910 ג'ייסון יורד לאט בגיל. 843 00:46:51,910 --> 00:46:53,230 שם ג'ייסון, גיל 14. 844 00:46:53,230 --> 00:46:54,280 אותו החומר צץ. 845 00:46:54,280 --> 00:46:57,190 אבל אנחנו הולכים לכתובת האתר ו משתנים אלה לא נמצאים שם. 846 00:46:57,190 --> 00:47:00,540 >> ואופן שבו POST passes-- כך זוכר 847 00:47:00,540 --> 00:47:02,750 איך להסתכל על המקור של דף. 848 00:47:02,750 --> 00:47:04,570 אנחנו הולכים לרשת. 849 00:47:04,570 --> 00:47:06,920 אנו לרענן. 850 00:47:06,920 --> 00:47:10,690 וזה עוד דבר ש POST ייתן לך אזהרות על. 851 00:47:10,690 --> 00:47:15,050 אולי ראו תיבה, טקסט תיבה כמו זה בדפדפן שלך. 852 00:47:15,050 --> 00:47:18,170 אתה בטוח שאתה רוצה לשלוח טופס שוב? 853 00:47:18,170 --> 00:47:21,170 POST הוא מה זה שליחת טפסים אלה. 854 00:47:21,170 --> 00:47:24,680 >> כי בעצם אם אתה נשלחת פרטי כרטיס אשראי למישהו, 855 00:47:24,680 --> 00:47:26,350 זה לא הולך להופיע ב- URL. 856 00:47:26,350 --> 00:47:28,180 זה הולך להיות בקשת POST. 857 00:47:28,180 --> 00:47:32,905 לכן, כאשר אתה לרענן את הדף, זה לשלוח שוב כי לאחר בקשה. 858 00:47:32,905 --> 00:47:35,530 אז עכשיו אנחנו רוצים לשלוח טופס שוב, כי זה לא הולך 859 00:47:35,530 --> 00:47:37,340 ליצור כל רכישות כפולות. 860 00:47:37,340 --> 00:47:41,160 >> ואנחנו שמים לב שכאן למטה, השיטה אנו משתמשים היא POST. 861 00:47:41,160 --> 00:47:43,065 וזה אכן להעביר בתים. 862 00:47:43,065 --> 00:47:45,460 זה הועבר 401 מהם. 863 00:47:45,460 --> 00:47:47,190 התכנית של די זעיר. 864 00:47:47,190 --> 00:47:51,600 אבל אין לאן שאנחנו יכולים לראות הערכים שמועברים. 865 00:47:51,600 --> 00:47:59,540 דפי האינטרנט עצמם יכולים לראות, אבל אנחנו כמשתמשים לא מסוגלים לראות, 866 00:47:59,540 --> 00:48:01,650 אלא אם כן אתה האקר. 867 00:48:01,650 --> 00:48:05,340 אם אתה האקר טוב, אתה יכול להסתכל. 868 00:48:05,340 --> 00:48:09,360 >> אם אתה יודע בסיסי פורמט של HTML, 869 00:48:09,360 --> 00:48:11,790 הערכים יעשו את עצמם לדעת בדפים. 870 00:48:11,790 --> 00:48:13,160 תוכל לראות. 871 00:48:13,160 --> 00:48:16,720 הערכים יהיו שם, הם רק קצת פחות ברור לך 872 00:48:16,720 --> 00:48:19,522 לגישה, בעצם. 873 00:48:19,522 --> 00:48:23,620 >> האם יש לנו יותר שאלות על GET, POST 874 00:48:23,620 --> 00:48:26,800 before-- מה שאנחנו הולכים לעשות עכשיו למעשה מסתכל על חלק מהקוד 875 00:48:26,800 --> 00:48:30,837 שאתה נותן בpset 7, לדבר על איך הוא משתמש בחלק מהמושגים האלה, 876 00:48:30,837 --> 00:48:32,670 ולדבר על דברים שאתה הולך 877 00:48:32,670 --> 00:48:35,090 צריך לעשות קצת בpset 7. 878 00:48:35,090 --> 00:48:36,760 יותר שאלות לפני ש? 879 00:48:36,760 --> 00:48:38,047 יש עוד שאלות אתם? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 גדול. 882 00:48:41,840 --> 00:48:45,370 >> בסדר, בואו נסתכל קצת בpset 7, 883 00:48:45,370 --> 00:48:49,530 אין ספק מה אתה כל הנרגש ביותר על. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 אני מתכוון, זה משהו ש דוד עובר קצת. 886 00:48:54,750 --> 00:49:00,890 אבל תהיה לנו שלוש ספריות ב עליון, כמו גם קובץ תצורה. 887 00:49:00,890 --> 00:49:04,650 זה עבור מסדי נתונים, אשר נשלחה לדבר על בכחמש דקות. 888 00:49:04,650 --> 00:49:07,220 כולל, אתה אף פעם לא צריך לחפש בספרייה זו 889 00:49:07,220 --> 00:49:12,480 אם אתה לא רוצה, אבל זה נחמד יודע שיש כל מיני עוזרים. 890 00:49:12,480 --> 00:49:14,210 עוזרים הוא כמו פונקציות מועילות. 891 00:49:14,210 --> 00:49:18,120 ואז יש לנו config, אשר קובע כמה דברים עד. 892 00:49:18,120 --> 00:49:24,590 >> יש כמה פונקציות שיש CS50 נכתב כי הם בעוזר וconfig. 893 00:49:24,590 --> 00:49:27,250 וחלק מPHP ש כבר יוצא בקבצים 894 00:49:27,250 --> 00:49:30,880 יעשה הרבה יותר מיין עבודת רגליים של אטומה בשבילך. 895 00:49:30,880 --> 00:49:35,250 כמו אם תלכו לציבור login.php, וזה מה ש 896 00:49:35,250 --> 00:49:38,350 מופיע תקין כשאתה נכנסת לpset 7. 897 00:49:38,350 --> 00:49:40,580 אנחנו תראו שיש זה דורש הצהרה. 898 00:49:40,580 --> 00:49:43,420 וזה סוג של כמו חד כוללים, hashtag 899 00:49:43,420 --> 00:49:46,850 כולל אם אתה מדור חדש יותר. 900 00:49:46,850 --> 00:49:49,740 אבל זה בעצם אומר שאני צריך גישה 901 00:49:49,740 --> 00:49:52,260 לכל הפונקציות בconfig.php. 902 00:49:52,260 --> 00:49:55,290 ואתה יכול להיות דורש לכל מיני דברים אחרים. 903 00:49:55,290 --> 00:49:59,670 >> config למעשה דורש עוזרים. 904 00:49:59,670 --> 00:50:02,490 אז בכל פעם שאתה צריך config, אתה גם 905 00:50:02,490 --> 00:50:05,660 כולל או דורש עוזרים גם כן. 906 00:50:05,660 --> 00:50:09,590 אז זה נותן לך גישה לכל פונקציות מגניבים שאנחנו הולכים להשתמש, 907 00:50:09,590 --> 00:50:10,420 דברים כמו לדקלם. 908 00:50:10,420 --> 00:50:13,490 בעצם אני הולך להקל זה קצת למטה. 909 00:50:13,490 --> 00:50:16,280 אז הפונקציה אז אנחנו הולך לטייל ב 910 00:50:16,280 --> 00:50:22,380 רק לפני שאנחנו עוברים ל- SQL קטן קצת הוא פונקצית login.php, רק 911 00:50:22,380 --> 00:50:26,586 משום שהיא משתמשת חלק מהנושאים שאנחנו פשוט דיברנו על ב- PHP. 912 00:50:26,586 --> 00:50:30,840 >> אתה רואה את הדבר הראשון הוא אם $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 זהו עוד משתנים גלובלי ש אתה הולך להיות התמודדות עם. 914 00:50:34,500 --> 00:50:38,460 זה כמו _GET ו_POST, אבל מה שרת מכיל הוא זה יכול לתת לך 915 00:50:38,460 --> 00:50:42,730 יודע אם שיטת הבקשה היה GET או POST. 916 00:50:42,730 --> 00:50:47,250 כמו בעבר מה אנחנו עושים רק בקוד שלנו שאנחנו כתבנו, 917 00:50:47,250 --> 00:50:51,880 אנחנו רק היו משנים אותו להיות GET ו POST תלוי מה יש HTML. 918 00:50:51,880 --> 00:50:55,120 אבל יש דפים שיכולים להיות לגשת עם שני הסוגים של בקשות. 919 00:50:55,120 --> 00:50:57,410 ואולי כדאי לך לעשות דברים שונים בהתאם 920 00:50:57,410 --> 00:50:59,740 בסוג של בקשה, רק כניסה כמו עושה. 921 00:50:59,740 --> 00:51:04,400 >> אז אתה יכול לבדוק בקשה ש שיטה באמצעות מקשי גישה, 922 00:51:04,400 --> 00:51:08,630 באמצעות שימוש במפתח ומקבל ערך של משהו במילון 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 אז זה עוד גלובלי משתנה כמו _GET ו_POST. 925 00:51:13,800 --> 00:51:16,990 >> אם זה נהיה, אנחנו רוצים מציג את טופס כניסה. 926 00:51:16,990 --> 00:51:21,920 לדקלם היא פונקציה שבעצם רק מכניס את ה- HTML המתאים עד 927 00:51:21,920 --> 00:51:24,500 ומעביר אותו כמה פרמטרים. 928 00:51:24,500 --> 00:51:28,740 התואר הזה הוא פרמטר זה שימוש במוצגות, למרבה הפלא, 929 00:51:28,740 --> 00:51:32,670 הכותרת של הדף ב שאלה, הדבר עד כאן, 930 00:51:32,670 --> 00:51:34,850 אומרים שלום או בדוגמא הקודמת שלנו. 931 00:51:34,850 --> 00:51:36,100 עכשיו יש לנו דבר שונה. 932 00:51:36,100 --> 00:51:38,570 אחר אם זה POST, אנחנו לעשות כמה דברים אחרים. 933 00:51:38,570 --> 00:51:40,790 אנו משתמשים בשיטה שריקה. 934 00:51:40,790 --> 00:51:42,750 זה לא קיים, זה ריק. 935 00:51:42,750 --> 00:51:45,440 וראינו לפני, PHP יש כמות נבנה הוגנת 936 00:51:45,440 --> 00:51:52,370 בשיטות שהדוד will-- אם יש שיטות שהם שימושיים לך, 937 00:51:52,370 --> 00:51:55,560 הם יהיו התראה לך בהליכה דרך שהדוד 938 00:51:55,560 --> 00:51:59,770 נותן בסקירה מתחילה, וגם הפיסות מועילות של Zamyla. 939 00:51:59,770 --> 00:52:01,040 היא חזרה כולם. 940 00:52:01,040 --> 00:52:03,100 כולנו יכול לשמוח. 941 00:52:03,100 --> 00:52:06,530 להתנצל היא פונקציה בשם צדק שרק בעצם מדפיס 942 00:52:06,530 --> 00:52:10,130 כמה הודעות שגיאה, כי CS50 מאוד מנומס. 943 00:52:10,130 --> 00:52:14,770 >> ועכשיו זה, זה הוא מסובך קצת, כי זה 944 00:52:14,770 --> 00:52:16,697 המקום שבו אנחנו שאילתות מסד הנתונים. 945 00:52:16,697 --> 00:52:18,280 עכשיו יש לנו לא דיברנו על מסדי נתונים. 946 00:52:18,280 --> 00:52:22,220 ואנחנו הולכים בעולם הבא חמש דקות בערך, מקסימום. 947 00:52:22,220 --> 00:52:24,980 אבל זה פונקציה CS50 שכתב 948 00:52:24,980 --> 00:52:38,050 כדי לקבל שולחן בעצם מבסיס נתונים כי אנחנו עובדים עם בpset 7. 949 00:52:38,050 --> 00:52:40,860 אני ממש רע עם שלי אפס אינדקס היום. 950 00:52:40,860 --> 00:52:42,060 אבל כן, זה הוא 7. 951 00:52:42,060 --> 00:52:46,340 >> אז שאילתה שזה הולך לחזור מערך, בעצם הוא קצת מפתח. 952 00:52:46,340 --> 00:52:54,130 וכי אין לי הדברים האלה הקלדה, כך שורות היא מערך של מערכים. 953 00:52:54,130 --> 00:52:59,480 משום שכאשר אנחנו חושבים על שולחן, מה שאנחנו הולכים לעשות 954 00:52:59,480 --> 00:53:04,830 הוא, כפי שאתה למדת בpsets כמו במשחק של 15, בכל מקרה 955 00:53:04,830 --> 00:53:06,990 שבו אתה צריך להשתמש ב מערך כפול, אנחנו בעצם 956 00:53:06,990 --> 00:53:15,210 יש מערך של אחרים מערכים עושה שולחן. 957 00:53:15,210 --> 00:53:18,150 ויש לך את שורות ועמודות. 958 00:53:18,150 --> 00:53:24,450 ואז אתה יכול לגשת אליהם כמו [0] [1], אתה מקבל [0] [1]. 959 00:53:24,450 --> 00:53:26,900 דברים בסיסיים כמו ש. 960 00:53:26,900 --> 00:53:29,380 >> אז מה שאנחנו עושים כאן בפונקציה זו, 961 00:53:29,380 --> 00:53:35,070 אנחנו מבקשים את מסד הנתונים אם המשתמש זה 962 00:53:35,070 --> 00:53:40,200 מנסה להתחבר, שיהיה נשלח באמצעות שיטת POST. 963 00:53:40,200 --> 00:53:43,950 אנחנו תראו שאנחנו מקבלים שם המשתמש מ_POST. 964 00:53:43,950 --> 00:53:46,900 הם שלחו, המשתמש או שאתה, תשלח ערך 965 00:53:46,900 --> 00:53:50,750 באמצעות טופס דרך POST כי זה חומר את שם המשתמש וסיסמא. 966 00:53:50,750 --> 00:53:54,830 אנחנו בודקים את שם המשתמש לראות, היא זו בטבלה? 967 00:53:54,830 --> 00:53:58,070 כי אם משתמש כניסה ב, אז את שם המשתמש שלהם 968 00:53:58,070 --> 00:54:03,320 יש לאחסן בטבלה משתמשים שקיימים באתר זה. 969 00:54:03,320 --> 00:54:09,360 אז בעצם אם משתמש הוא באתר, 970 00:54:09,360 --> 00:54:16,400 שאילתא הולכת לחזור שורה ש, שהוא מערך. 971 00:54:16,400 --> 00:54:24,560 >> אבל החלק הבעייתי הוא שאם גם אם המערך הכפול הוא רק של שורה אחת, 972 00:54:24,560 --> 00:54:31,900 גם אם זה שורה אחת array-- כמו שיש לך basically-- 973 00:54:31,900 --> 00:54:36,900 אם יש לך מערך אחד בגודל שמחזיק מערך אחר, 974 00:54:36,900 --> 00:54:38,940 אתה באמת מתעסק עם עמודה אחת. 975 00:54:38,940 --> 00:54:41,420 אבל עדיין התייחס לזה כמו מערך כפול. 976 00:54:41,420 --> 00:54:44,560 >> וזה המקום שבו יכול לפעמים להגיע מסובך, משום שיש לנו בשורות כאן. 977 00:54:44,560 --> 00:54:46,440 משתנים הוא שורות. 978 00:54:46,440 --> 00:54:48,590 ואז אנחנו יוצרים שורה משתנה בשם חדש 979 00:54:48,590 --> 00:54:51,450 והגדרת אותו שווה ל השורה הראשונה של שורות. 980 00:54:51,450 --> 00:54:55,150 ותשימו לב שתגובה אומר שזה בשורה הראשונה ורק. 981 00:54:55,150 --> 00:54:57,080 >> אז זה מסובך פונקציות חלק שבו החברה 982 00:54:57,080 --> 00:54:59,660 יכול לחזור מערכים מאוד בקלות. 983 00:54:59,660 --> 00:55:01,270 אין mallocs. 984 00:55:01,270 --> 00:55:02,280 אתה לא תראה את mallocs. 985 00:55:02,280 --> 00:55:03,940 אז אתה לא תראה את פגמי SEG. 986 00:55:03,940 --> 00:55:08,380 אבל פונקציות עדיין תהיינה עוברות סביב מערכים ונתונים בקבוצות. 987 00:55:08,380 --> 00:55:12,250 ואתה צריך להיות זהיר של מה ש בדיוק הפונקציות שלך תחזור. 988 00:55:12,250 --> 00:55:15,160 וגם אם זה אחד טור כזה, שאילתה 989 00:55:15,160 --> 00:55:17,520 עדיין עומד לחזור מערך כפול. 990 00:55:17,520 --> 00:55:21,390 אז לגישה שcolumn-- או שאתה יכול לחשוב על כל זה כהפוך 991 00:55:21,390 --> 00:55:22,870 מאז על שורות אנחנו מדברים. 992 00:55:22,870 --> 00:55:26,810 אבל כדי לגשת שלשורה אחת, אתה לא יכול פשוט להגיד שורות. 993 00:55:26,810 --> 00:55:31,540 למרות שזה שורה אחת, שיש לך אל rowsrows [0] לחסל סוג זה 994 00:55:31,540 --> 00:55:37,360 חיצוני קצת את המערך ו יש רק שורה אחת שלך. 995 00:55:37,360 --> 00:55:38,342 >> לעשות כמה דברים אחרים. 996 00:55:38,342 --> 00:55:40,050 יש פונקציה password_verify נקרא 997 00:55:40,050 --> 00:55:42,980 שמאמת את סיסמא שפורסמה. 998 00:55:42,980 --> 00:55:48,500 ואז אנחנו רואים אחר בעולם משתנה כאן, _SESSION. 999 00:55:48,500 --> 00:55:51,340 בעיקרון מזהה הפעלה איך אתה לעקוב אחר 1000 00:55:51,340 --> 00:55:53,990 של אם מישהו מחובר או לא. 1001 00:55:53,990 --> 00:55:58,590 אז עכשיו עם login.php, אנחנו כניסה משתמש ב. 1002 00:55:58,590 --> 00:56:01,920 אז מה אנחנו רוצים לעשות הוא שאנחנו רוצים אומר מזהה ההפעלה שווה לשורה 1003 00:56:01,920 --> 00:56:05,890 id, שרק הגיוני כי כל שורה תהיה id שונה 1004 00:56:05,890 --> 00:56:07,239 מספר כחלק מהשולחן. 1005 00:56:07,239 --> 00:56:09,280 נגיע אל SQL ב שני, כך שאם משהו מכל זה 1006 00:56:09,280 --> 00:56:13,500 נראה קצת כמו בלה, אז כל ינוקה עד. 1007 00:56:13,500 --> 00:56:18,450 אבל אנחנו הולכים להגדיר id שווה ל הדבר הנכון, כניסה המשתמש ב. 1008 00:56:18,450 --> 00:56:20,530 מתנצל אם משהו ישתבש. 1009 00:56:20,530 --> 00:56:27,600 וכי הוא מטרת כניסות ב חיים כפרופסור מלאן היינו אומרים. 1010 00:56:27,600 --> 00:56:29,130 >> אז זה היה login.php. 1011 00:56:29,130 --> 00:56:33,750 והרבה קוד PHP שאתה כותב בpset 7, הם יהיו קצת. 1012 00:56:33,750 --> 00:56:36,470 אל תשכח chmod ל ההרשאות המתאימות. 1013 00:56:36,470 --> 00:56:40,180 יהיה קצת על כי בתחילת המפרט. 1014 00:56:40,180 --> 00:56:46,382 >> אבל PHP שאתה כתיבה הולכת להיות 1015 00:56:46,382 --> 00:56:47,840 עושה דברים זה דומה לזה. 1016 00:56:47,840 --> 00:56:49,715 אתה הולך להיות גישה כמה דברים ש 1017 00:56:49,715 --> 00:56:52,760 ניתנים לך ב משתנים הגלובליים של PHP ש 1018 00:56:52,760 --> 00:56:56,105 הם עם זרם התמודדות משתמש מחובר, אם יש 1019 00:56:56,105 --> 00:57:00,460 יש בקשות נשלחו לזו דף, דברים שונים כמו ש. 1020 00:57:00,460 --> 00:57:05,790 וזה יהיה גם פוטנציאל iterating דרך שורות של הדבר הזה. 1021 00:57:05,790 --> 00:57:09,010 >> בפונקציה, שאילתא שונה מחזיר מערך הכפול הזה. 1022 00:57:09,010 --> 00:57:11,450 ואם יש יותר משורות בזה, 1023 00:57:11,450 --> 00:57:15,080 אם יש הן-- כן, אם יש יותר מפעם אחת שורות בזה, 1024 00:57:15,080 --> 00:57:16,870 אז זה יהיה שולחן. 1025 00:57:16,870 --> 00:57:20,500 ואולי כדאי לך לחזר בין השורות של מערך זה באמצעות 1026 00:57:20,500 --> 00:57:22,860 foreach הלולאה שתיארנו. 1027 00:57:22,860 --> 00:57:30,270 >> אז אם אתה עושה את foreach על כפול מערך, מה יהיה word-- כאן, 1028 00:57:30,270 --> 00:57:31,909 אני באמת אכתוב את זה. 1029 00:57:31,909 --> 00:57:32,950 אני אכתוב את זה מהר כאן. 1030 00:57:32,950 --> 00:57:44,280 >> אם יש לנו foreach שורות כשורה, מה הסוג של שורה? 1031 00:57:44,280 --> 00:57:45,390 האם מישהו יודע? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 יש לך את זה? 1034 00:57:54,500 --> 00:57:57,110 אז שורות הוא מערך כפול. 1035 00:57:57,110 --> 00:58:02,810 אז מה foreach הולך להסיק שאנחנו רוצים ממערך הכפול הזה 1036 00:58:02,810 --> 00:58:04,280 אם אנחנו iterating על זה? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 אנחנו בעצם יכולים להניח ש זה הולך להיות או אלמנטים, 1039 00:58:10,770 --> 00:58:14,970 או שורות, או עמודות, בעצם. 1040 00:58:14,970 --> 00:58:18,740 וכך שורות ועמודות ש ניתן לטפל באותו הדבר. 1041 00:58:18,740 --> 00:58:23,880 >> בעיקרון מה שforeach הלולאה הולכת לעשות הוא שזה הולך לחזור שורות. 1042 00:58:23,880 --> 00:58:28,500 השורה הולכת להיות של שורת סוג, בעוד שורות הוא מערך כפול. 1043 00:58:28,500 --> 00:58:32,290 אז אם אתה נותן foreach מערך כפול, זה 1044 00:58:32,290 --> 00:58:35,830 לא הולך לחזר יותר מפעם אחת ברמה עמוקה. 1045 00:58:35,830 --> 00:58:44,464 שהוא בעצם לומר אם יש שמונה תאים בזה table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, 8-- foreach לולאה היא לא 1047 00:58:48,110 --> 00:58:51,880 הולך לעבור כל אחד מהתאים הללו. 1048 00:58:51,880 --> 00:58:56,390 מה foreach הלולאה תעשה היה זה ילך דרך שורה זו, 1049 00:58:56,390 --> 00:58:57,870 אתן לך כל שורה זו. 1050 00:58:57,870 --> 00:58:59,410 ואז זה ילך דרך השורה ש. 1051 00:58:59,410 --> 00:59:01,850 >> אז זה רק סובב רמה אחת עמוקה. 1052 00:59:01,850 --> 00:59:05,310 אם תוסיף מקונן foreach לולאה, אז אתה 1053 00:59:05,310 --> 00:59:16,280 ניתן לטפל בכל שורה חזרו מ שורות, שאתה עושה שורת foreach כאלמנט, 1054 00:59:16,280 --> 00:59:17,640 נניח. 1055 00:59:17,640 --> 00:59:22,750 ואז אתה יכול להדהד האלמנט. 1056 00:59:22,750 --> 00:59:24,930 אז זה קצר רענון קטן על איך 1057 00:59:24,930 --> 00:59:30,220 ייתכן שאתה משתמש foreach לולאות בהקשר של שאילתא. 1058 00:59:30,220 --> 00:59:32,840 >> האם יש שאלות על PHP? 1059 00:59:32,840 --> 00:59:36,520 כל דבר לפני ש לעבור למדברים על SQL 1060 00:59:36,520 --> 00:59:37,820 והכיף של מסד הנתונים? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 מרגיש טוב? 1063 00:59:42,110 --> 00:59:42,750 מרגיש טוב. 1064 00:59:42,750 --> 00:59:43,470 בסדר. 1065 00:59:43,470 --> 00:59:49,130 >> בואו נעבור על חזרה ל PowerPoint, שבו אתה כנראה מתגעגע. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 אנשים שנמצאים בסעיף שלי בדרך כלל אדע שכותרות משנה של ראשי תיבות 1068 00:59:57,900 --> 01:00:01,220 הם תמיד רק את המילים הראשונות אני חושב על המשחק ש 1069 01:00:01,220 --> 01:00:02,690 algorithm-- ראשי התיבות ש. 1070 01:00:02,690 --> 01:00:04,090 זה לא אלגוריתם. 1071 01:00:04,090 --> 01:00:08,050 >> אז SQL הוא מסד נתונים. 1072 01:00:08,050 --> 01:00:11,060 זו שפה ש עובד עם מסדי נתונים. 1073 01:00:11,060 --> 01:00:14,440 וכל מסדי הנתונים הם הוא שולחנות, לפחות בדרך 1074 01:00:14,440 --> 01:00:17,220 SQL שמייצג אותם. 1075 01:00:17,220 --> 01:00:23,610 >> דרך נוספת לחשוב על מסדי נתונים היא מאגרי מידע הם קבוצה של מפתחות וערכים 1076 01:00:23,610 --> 01:00:24,110 באופן בסיסי. 1077 01:00:24,110 --> 01:00:29,530 אתה יכול לחשוב על מסד הנתונים כ מילון וגם כשולחן. 1078 01:00:29,530 --> 01:00:34,300 בעיקרון זה דרך לשייך נתונים שונים עם נתונים אחרים, 1079 01:00:34,300 --> 01:00:36,270 לעתים קרובות דרך שורות ועמודות. 1080 01:00:36,270 --> 01:00:38,470 וככה זה SQL עובד הכי טוב. 1081 01:00:38,470 --> 01:00:40,880 >> אז זה הוא דוגמא אחת של שולחן. 1082 01:00:40,880 --> 01:00:44,610 יש לי כמה דוגמאות של אנשים בסעיף שלי, ש 1083 01:00:44,610 --> 01:00:45,970 לא היו לי זמן לשנות. 1084 01:00:45,970 --> 01:00:52,020 אבל יש לנו דברים כמו זיהוי, שם, מעצמה, ועיר הולדתו. 1085 01:00:52,020 --> 01:00:54,100 אני לא יודע איפה כל אחד זה בסעיף שלי, 1086 01:00:54,100 --> 01:00:56,266 אז אני פשוט הולך להניח כולם מניו יורק 1087 01:00:56,266 --> 01:00:59,370 עיר כי יש לי גבוה סטטיסטי סיכוי להיות נכון. 1088 01:00:59,370 --> 01:01:04,200 >> SQL באופן אוטומטי לקחת אכפת לי של העמודה מזהה בשבילך. 1089 01:01:04,200 --> 01:01:07,560 אם תכניס שורה חדשה לתוך מסד נתונים SQL, 1090 01:01:07,560 --> 01:01:09,700 זה יהיה להגדיל ש מספר תעודת זהות ורק 1091 01:01:09,700 --> 01:01:14,890 בעצם מקל כמו חמישה שמות, מעצמה, עיר הולדתו, מי ש 1092 01:01:14,890 --> 01:01:16,430 על הסוף של שולחן ש. 1093 01:01:16,430 --> 01:01:19,160 אז זיהוי הוא טור אתה אף פעם לא צריך לדאוג. 1094 01:01:19,160 --> 01:01:22,770 אבל, כמו במקרה של login.php, כאשר אנו 1095 01:01:22,770 --> 01:01:26,610 היו מקבל את מזהה ההפעלה משולחן ורק באמצעות תעודת זהות, 1096 01:01:26,610 --> 01:01:30,320 זיהוי הוא דרך לזהות באופן ייחודי אלמנט של מסד הנתונים. 1097 01:01:30,320 --> 01:01:34,980 >> אז אם היו לנו שני סאמס, שניהם שלימד CS50, והן של מי ש 1098 01:01:34,980 --> 01:01:39,370 היו ממילווקי, הייתם אלה עדיין יש לי מספרי זהות מובחנים 1099 01:01:39,370 --> 01:01:43,420 ובכך להיות שונה ב ההקשר של הטבלה. 1100 01:01:43,420 --> 01:01:48,700 אז זה מה SQL הוא התמודדות עם, עבודה עם בקצה האחורי. 1101 01:01:48,700 --> 01:01:54,160 >> עכשיו אלה הם ארבע פקודות כי אתה צריך לעבוד עם SQL. 1102 01:01:54,160 --> 01:01:56,390 והקאתי את כולם בשקופית אחת. 1103 01:01:56,390 --> 01:01:59,530 אבל אנחנו הולכים לעבור כל אחד מהם בנפרד. 1104 01:01:59,530 --> 01:02:03,300 >> הפקודה הראשונה היא עדכון, אשר עושה את מה שאתה יכול לצפות. 1105 01:02:03,300 --> 01:02:07,240 אומר שיש לך כמה נתונים ב השולחן שמחוץ למועד. 1106 01:02:07,240 --> 01:02:09,470 כמו אם אתה שומר אחר השמות של אנשים 1107 01:02:09,470 --> 01:02:13,350 וגילים, אם מישהו עם עלייה בגיל, ואז 1108 01:02:13,350 --> 01:02:18,590 אתה הולך רוצה ללכת וב לעדכן את הגיל רק של אותו האדם. 1109 01:02:18,590 --> 01:02:21,902 לדוגמא שעובדת עם table-- הראשון שלנו 1110 01:02:21,902 --> 01:02:24,610 אל תדאגו על כתיבת כל פקודות אלה באותו הזמן. 1111 01:02:24,610 --> 01:02:27,640 אבל אם יש לך עדכון כלפי מטה, זה יהיה טוב לחלק זה, 1112 01:02:27,640 --> 01:02:29,790 כי אנחנו הולכים ל לחזור לשולחן. 1113 01:02:29,790 --> 01:02:33,920 >> אז אם נחזור לשולחן, נניח משהו שקרה 1114 01:02:33,920 --> 01:02:38,480 הייתה הייתה רעידת אדמה או קו שבר שנפרד ישירות 1115 01:02:38,480 --> 01:02:39,920 דרך ניו יורק. 1116 01:02:39,920 --> 01:02:45,130 ורצינו לעדכן את כולם שחי בניו יורק. 1117 01:02:45,130 --> 01:02:49,670 כולם היה צריך לעבור לפנסילבניה. 1118 01:02:49,670 --> 01:02:51,130 זה לא עיר הולדתו. 1119 01:02:51,130 --> 01:02:53,180 כולם היה צריך לעבור לניו הייבן. 1120 01:02:53,180 --> 01:02:54,030 הנה. 1121 01:02:54,030 --> 01:02:57,630 אז כולם בניו יורק עובר לניו הייבן. 1122 01:02:57,630 --> 01:03:01,300 >> ואז זה משהו ש עריכת שלוש שורות בטבלה זו. 1123 01:03:01,300 --> 01:03:04,716 אבל בSQL, אתה יכול לעשות שרק משפט אחד. 1124 01:03:04,716 --> 01:03:05,715 אז אנחנו חוזרים לעדכון. 1125 01:03:05,715 --> 01:03:09,670 תן לי מהיר למחוק לוח זה שוב. 1126 01:03:09,670 --> 01:03:14,570 כאשר אנחנו מדברים על עדכון, יש 1127 01:03:14,570 --> 01:03:17,640 כמה חלקים של התחביר שהם מפתח. 1128 01:03:17,640 --> 01:03:19,770 ובכן, כל התחביר הוא מפתח. 1129 01:03:19,770 --> 01:03:22,210 אבל הדברים בירוק הוא אופציונאלי. 1130 01:03:22,210 --> 01:03:25,680 הלבן נדרשים, שמות כמו שהוגדרו מראש. 1131 01:03:25,680 --> 01:03:30,750 ותכלת דברים שמשתנה בהתאם לשולחן. 1132 01:03:30,750 --> 01:03:34,640 אז זה מה שקורה עם ערכת הצבעים כאן, שם למעלה. 1133 01:03:34,640 --> 01:03:40,250 >> אז אם אנחנו רוצים לעדכן רק שורות אלה של האנשים שגרים בניו יורק, 1134 01:03:40,250 --> 01:03:43,490 אז מה היינו עושה אם אמרתי עדכון? 1135 01:03:43,490 --> 01:03:46,320 אז שולחן שבו אנחנו שמים שמו של השולחן שלנו. 1136 01:03:46,320 --> 01:03:49,170 בואו נגיד את השם השולחן שלנו הוא שולחן אחד. 1137 01:03:49,170 --> 01:03:52,515 אז אנחנו רוצים לעדכן את הטבלה אחת. 1138 01:03:52,515 --> 01:03:57,470 ואנחנו רוצים set-- מה שאנחנו רוצים להגדיר? 1139 01:03:57,470 --> 01:04:05,160 ובכן, אנו רוצים לומר, PHP כך column-- מטפל בשורות כמזהים ייחודיים. 1140 01:04:05,160 --> 01:04:07,930 ולאחר מכן העמודות תחומים השונים 1141 01:04:07,930 --> 01:04:09,940 מאותם אלמנטים של מסד הנתונים. 1142 01:04:09,940 --> 01:04:14,210 >> אז האלמנט הראשון של מסד הנתונים יש לו שם של סם, מעצמה של CS50, 1143 01:04:14,210 --> 01:04:16,210 ועיר הולדתו של מילווקי. 1144 01:04:16,210 --> 01:04:20,710 אז אם אמרתי שנקבע, בואו נסתכל על הפרמטרים שוב הסט שלוקח. 1145 01:04:20,710 --> 01:04:23,880 יש לנו טור שווה ערך. 1146 01:04:23,880 --> 01:04:27,290 אז אנחנו רוצים לומר כמה column-- שזוכר 1147 01:04:27,290 --> 01:04:31,850 הוא field-- אנחנו רוצים לראות שדה שווה למשהו חדש. 1148 01:04:31,850 --> 01:04:42,340 >> אז אם אנחנו פשוט אמרו עדכון טבלת 1, אליוט שווה שם נקבע. 1149 01:04:42,340 --> 01:04:46,310 קבל כמה אנשים מ סעיף חדש בזה. 1150 01:04:46,310 --> 01:04:51,540 אבל אם אנחנו רק עשינו שולחן עדכון 1 אליוט שווה שם נקבע, מה שהיית 1151 01:04:51,540 --> 01:04:55,530 נראה כמו אחרי שהשולחן? 1152 01:04:55,530 --> 01:04:56,410 לאנשים יש מושג? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 כֵּן. 1155 01:05:00,210 --> 01:05:03,195 >> קהל: כל דבר שב שורה תהפוך אליוט. 1156 01:05:03,195 --> 01:05:04,570 דובר: הכל שבשורה? 1157 01:05:04,570 --> 01:05:06,067 קהל: בשורה הראשונה. 1158 01:05:06,067 --> 01:05:07,150 דובר: בשורה הראשונה? 1159 01:05:07,150 --> 01:05:09,724 למה השורה הראשונה? 1160 01:05:09,724 --> 01:05:10,890 אני לא מתכוון לקחת עליך. 1161 01:05:10,890 --> 01:05:13,287 >> קהל: אולי כל מה ש בכל השולחן? 1162 01:05:13,287 --> 01:05:15,120 דובר: הכל ב כל השולחן, כן. 1163 01:05:15,120 --> 01:05:19,520 וזה דבר משום שבדיוק נכון רק עוזר לך קצת 1164 01:05:19,520 --> 01:05:22,650 יניהם-- כי אנחנו הושמטו הסעיף האופציונלי איפה. 1165 01:05:22,650 --> 01:05:27,260 אם אין לך איפה סעיף, מה פקודה זו תעשה 1166 01:05:27,260 --> 01:05:32,240 הוא זה יעבוד עם כל שורה אחת בטבלה. 1167 01:05:32,240 --> 01:05:35,430 שמו של כולם הפך אליוט, בעצם, 1168 01:05:35,430 --> 01:05:37,360 שאליוט הוא מאוד שמח על. 1169 01:05:37,360 --> 01:05:40,070 או יאני, אחד משני. 1170 01:05:40,070 --> 01:05:42,490 אבל השם של כולם ישתנה. 1171 01:05:42,490 --> 01:05:47,880 >> אז הדרך בה אנו משתמשים באיפה clause-- וזה חל על כל Wheres 1172 01:05:47,880 --> 01:05:51,410 שנמצאים בכל אחד מ הדברים השונים הללו. 1173 01:05:51,410 --> 01:05:54,380 אז תוכל להבחין SET ש יש ערך שווה טור. 1174 01:05:54,380 --> 01:05:55,190 וכך גם איפה. 1175 01:05:55,190 --> 01:06:00,040 אבל אלה הם שונים סוגים של דוחות. 1176 01:06:00,040 --> 01:06:04,400 אז הטור שווה ערך בSET הוא במשימה. 1177 01:06:04,400 --> 01:06:08,320 כמו שאנחנו אומרים שאנחנו רוצים כדי להגדיר שם שווה לאליוט. 1178 01:06:08,320 --> 01:06:15,390 אבל בסעיפים שבו, אלה הם הצהרות שוויון. 1179 01:06:15,390 --> 01:06:20,410 אז בואו נגיד שרק רצינו לשנות את שמו של האדם לאליוט 1180 01:06:20,410 --> 01:06:23,940 אם השם שלהם היה ריאן, נניח. 1181 01:06:23,940 --> 01:06:24,920 >> לכן, כאשר אנו אומרים 1182 01:06:24,920 --> 01:06:32,700 >> איפה שם שווה ריאן, ש היית שינוי בהצלחה רק 1183 01:06:32,700 --> 01:06:37,440 name-- זה רק היית לשנות את שם השדה בשורות 1184 01:06:37,440 --> 01:06:40,770 איפה את שם השדה שווה לריאן. 1185 01:06:40,770 --> 01:06:44,430 אז אם היו לנו מספר רב של אנשים בשם ראיין, כל השמות שלהם 1186 01:06:44,430 --> 01:06:45,730 אשנה לאליוט. 1187 01:06:45,730 --> 01:06:48,169 >> זה דומה לדוגמא של אם קו שבר מתפצל 1188 01:06:48,169 --> 01:06:50,960 עיר ניו יורק וכל אחד יש ל לעבור לניו הייבן, הדרך שנוכל 1189 01:06:50,960 --> 01:06:56,570 לעשות את זה במשפט אחד הוא עדכון עיר הולדתו SET table1 = ניו הייבן 1190 01:06:56,570 --> 01:07:00,210 שם עיר הולדתו שווה בעיר ניו יורק. 1191 01:07:00,210 --> 01:07:03,410 זה כוחה של הצהרת העדכון. 1192 01:07:03,410 --> 01:07:10,530 אנחנו יכולים לבחור כל מספר של שורות באמצעות הצהרות האמיתיות 1193 01:07:10,530 --> 01:07:12,860 על השדות בשורות אלה. 1194 01:07:12,860 --> 01:07:19,510 אנחנו לא יכולים לומר סט table1 העדכון שם = אליוט איפה שורה = 1, 1195 01:07:19,510 --> 01:07:24,820 חוץ מזה שאנחנו יכולים, אם אנחנו אומרים ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> אז אנחנו הולכים להיות עבודה עם שוויון 1198 01:07:29,830 --> 01:07:32,830 של שדות, שוויון של עמודות. 1199 01:07:32,830 --> 01:07:38,030 אבל שימוש בשדה מזהה היא דרך ל בחר שורות בודדות במיוחד, 1200 01:07:38,030 --> 01:07:43,210 בגלל השדה מזהה הוא ייחודי מזהה במסד נתוני SQL. 1201 01:07:43,210 --> 01:07:45,860 אז כמו עדכון שורה אחת, מספר שווה 1. 1202 01:07:45,860 --> 01:07:49,560 עדכון שורה שתיים, רק לשנות את זה מספר תעודת זהות. 1203 01:07:49,560 --> 01:07:51,610 אבל כוחו של איפה הצהרה היא ש 1204 01:07:51,610 --> 01:07:57,480 תוכל לעדכן את הדברים על סמך מהם ערכים הנוכחיים של דברים מסוימים הם. 1205 01:07:57,480 --> 01:07:58,155 כן אליוט? 1206 01:07:58,155 --> 01:08:02,678 >> קהל: ומה אם אתה רוצה צריכה-- שוב, זה כבר שאלה אחרת. 1207 01:08:02,678 --> 01:08:07,660 אבל השאלה הראשונה שלי הייתה, איפה זה קורה? 1208 01:08:07,660 --> 01:08:09,130 איפה אני מעדכן את זה? 1209 01:08:09,130 --> 01:08:11,100 האם זה בקוד PHP? 1210 01:08:11,100 --> 01:08:13,379 >> דובר: איפה אתה מעדכן, כן. 1211 01:08:13,379 --> 01:08:15,170 אנחנו הולכים לדבר איפה כל זה 1212 01:08:15,170 --> 01:08:18,729 קורה סוג של פעם שאנחנו הולכים דרך כל הפקודות. 1213 01:08:18,729 --> 01:08:21,130 אבל מה שאתה צריך יודע לעת עתה הוא בעצם 1214 01:08:21,130 --> 01:08:26,279 כי מסד נתוני SQL שלך קיים כמשהו 1215 01:08:26,279 --> 01:08:30,090 כדי לקבל גישה על ידי השאילתה פונקציה, אשר מגדירה CS50. 1216 01:08:30,090 --> 01:08:33,800 אז אם אתה משתמש בפונקצית השאילתה, אתה יכול לגשת לשולחן הזה. 1217 01:08:33,800 --> 01:08:39,529 >> אז אתה תשלח אלה פקודות לשולחן שלך בקבצי PHP 1218 01:08:39,529 --> 01:08:41,420 באמצעות פונקצית השאילתה. 1219 01:08:41,420 --> 01:08:45,410 גם אתה יכול לשחק עם השולחן שלך ישירות. 1220 01:08:45,410 --> 01:08:49,050 וכי הדרך הטובה ביותר ל לבדוק מיני פקודות אלה. 1221 01:08:49,050 --> 01:08:52,720 ונלך דרך בדיוק איך לעשות את זה בקצת. 1222 01:08:52,720 --> 01:08:54,910 >> אז זה פקודת UPDATE. 1223 01:08:54,910 --> 01:08:57,939 ואת שאר הפקודות הולכים להיות סוג של דומה, 1224 01:08:57,939 --> 01:08:59,069 עובד על דברים דומים. 1225 01:08:59,069 --> 01:09:02,740 INSERT INTO הוא כנראה השונים ביותר מעדכון. 1226 01:09:02,740 --> 01:09:06,170 אני הולך להשאיר את זה שם למעלה ל רק קצת ולעבוד כאן. 1227 01:09:06,170 --> 01:09:10,215 אז INSERT INTO, תראה שולחן שהוא עדיין אותו. 1228 01:09:10,215 --> 01:09:17,010 אתה רוצה להכניס לתוך. 1229 01:09:17,010 --> 01:09:20,286 היוון, SQL הוא מקרה רגיש. 1230 01:09:20,286 --> 01:09:22,160 אז אין לך לנצל את הדברים האלה. 1231 01:09:22,160 --> 01:09:27,960 לפי אמנה, המילים בלבן המהוון. 1232 01:09:27,960 --> 01:09:31,590 אבל אני גם צבע המקודד. 1233 01:09:31,590 --> 01:09:34,390 הסיבה היחידה שאתה לנצל אלה כאשר אתה מקליד אותם 1234 01:09:34,390 --> 01:09:36,609 רק להדגיש כי אלה הם קבועים. 1235 01:09:36,609 --> 01:09:39,189 ואז אתה יכול גם להסתכל היוון או העובדה 1236 01:09:39,189 --> 01:09:40,740 כי אני כבר בצבעם בצורה שונה. 1237 01:09:40,740 --> 01:09:44,910 >> אז יש לנו INSERT INTO, בואו לעשות table1 שוב. 1238 01:09:44,910 --> 01:09:45,930 כל זה בשורה אחת. 1239 01:09:45,930 --> 01:09:48,609 אני רק מפריד אותו על ידי הדוחות השונים. 1240 01:09:48,609 --> 01:09:52,399 אז אל תדאגו לגבי העובדה ש הטבלה 1 עשתה את זה על הקו השני. 1241 01:09:52,399 --> 01:09:56,130 >> אז אנחנו רוצים להכניס INTO Table1 כמה ערכים. 1242 01:09:56,130 --> 01:09:58,922 ותשימו לב אופציונאלי קצת, שאני אגיע בשני. 1243 01:09:58,922 --> 01:09:59,755 אז יש לנו ערכים. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> אז בואו נגיד שאנחנו רוצים להוסיף אנדי לשולחן שלנו, כי אנחנו מתגעגעים אנדי. 1246 01:10:08,100 --> 01:10:09,390 אנדי הוא חולה. 1247 01:10:09,390 --> 01:10:12,490 אז בואו להוסיף אנדי לשולחן שלנו. 1248 01:10:12,490 --> 01:10:15,150 זכור כי מספר תעודת הזהות מתעדכן באופן אוטומטי. 1249 01:10:15,150 --> 01:10:17,320 אז השדות היחידים ש צריך לדאוג 1250 01:10:17,320 --> 01:10:20,230 הם שם, מעצמה, ועיר הולדתו. 1251 01:10:20,230 --> 01:10:23,660 >> ולכן הדרך שאנחנו עושים את זה, מסתכל על התחביר שלנו, הוא שיש לנו 1252 01:10:23,660 --> 01:10:28,780 פשוט יש לי סוגריים, עם פסיק ערכים מופרדים, כל אחד מהם 1253 01:10:28,780 --> 01:10:29,890 הוא ערך. 1254 01:10:29,890 --> 01:10:35,530 אז אם אנחנו רוצים להכניס לאנדי שולחן, כל שעלינו לעשות הוא תקין אנדי. 1255 01:10:35,530 --> 01:10:38,630 מה המעצמה של אנדי, אנשים בסעיף של אנדי? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 היא אוהבת טיסה, או רוצה מהירות, או משהו. 1258 01:10:47,545 --> 01:10:48,920 מה כבר יש לנו שם למעלה? 1259 01:10:48,920 --> 01:10:53,425 יש לנו CS50, טיסה, מהירות, וכוח. 1260 01:10:53,425 --> 01:10:54,850 >> קהל: מסע בזמן. 1261 01:10:54,850 --> 01:10:56,180 >> דובר: מסע בזמן, מדהים. 1262 01:10:56,180 --> 01:11:04,280 אז יש לנו אנדי, זמן נסיעות, ועיר הולדתה. 1263 01:11:04,280 --> 01:11:05,530 זו שאלה טובה באמת. 1264 01:11:05,530 --> 01:11:09,210 עיר ניו יורק, אלא אם כן מישהו יודעת. 1265 01:11:09,210 --> 01:11:13,600 כולם מניו יורק הוא שיעור לקחת מהיום. 1266 01:11:13,600 --> 01:11:17,710 >> אז הצהרה זו היית הכנס, כמו שורה החמישית, 1267 01:11:17,710 --> 01:11:21,900 עם המסע בזמן המעצמה ועיר הולדתו של העיר ניו יורק. 1268 01:11:21,900 --> 01:11:25,660 אבל השדה האופציונלי היא בעצם דרך 1269 01:11:25,660 --> 01:11:30,090 כדי לציין בדיוק אילו עמודות אתה רוצה להכניס דברים ב. 1270 01:11:30,090 --> 01:11:33,710 >> הדרך שאנחנו עושים את זה עכשיו, אנדי, מסע בזמן, בעיר ניו יורק, 1271 01:11:33,710 --> 01:11:38,150 הוא הולך לפי הסדר המדויק שלנו שם table--, מעצמה, עיר הולדתו. 1272 01:11:38,150 --> 01:11:42,290 ואם אתה רוצה לעשות משהו אחר מזה, 1273 01:11:42,290 --> 01:11:44,970 כמו לומר שאתה לא יודע המעצמה של מישהו, 1274 01:11:44,970 --> 01:11:47,660 כמו איך אני לא יודע אנדי של מעצמה בתחילת. 1275 01:11:47,660 --> 01:11:50,450 אז כל מה שידעתי היה שם ועיר הולדתה. 1276 01:11:50,450 --> 01:11:54,550 מה אני יכול לעשות הוא שאני יכול do-- אני אמחק את זה מהר. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> אני רוצה לעדכן רק את העמודות. 1279 01:12:00,090 --> 01:12:04,100 וזה המקום שבי אופציונאלי רשימת טור נכנסה לשחק. 1280 01:12:04,100 --> 01:12:09,185 אני רק רוצה לעדכן את שם עיר הולדתו ו. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 ואז אני אומר ערכים. 1283 01:12:16,480 --> 01:12:24,430 אני אעשה את אנדי ועיר ניו יורק. 1284 01:12:24,430 --> 01:12:28,980 >> אם אני השמטתי את רשימת העמודות ורק לעשות את שני הדברים האלה, 1285 01:12:28,980 --> 01:12:32,450 שבו היה בניו יורק הלכה? 1286 01:12:32,450 --> 01:12:35,900 שהטור היית ניו יורק העיר הוצב ב? 1287 01:12:35,900 --> 01:12:38,950 לאנשים יש מושג? 1288 01:12:38,950 --> 01:12:40,160 מעצמה, בדיוק. 1289 01:12:40,160 --> 01:12:41,890 >> אז זה רק ילך לפי סדר. 1290 01:12:41,890 --> 01:12:45,530 וברגע שהוא מגיע לסוף רשימה, שזה פשוט להפסיק מילוי דברים ב. 1291 01:12:45,530 --> 01:12:49,080 והערכים שהוא יישארו ב כל העמודות פשוט תהיה NULL. 1292 01:12:49,080 --> 01:12:51,840 אז בגלל שצוינו שם ועיר הולדתו, 1293 01:12:51,840 --> 01:12:56,110 אנחנו הולכים יש מספר 5, שם אנדי, NULL מעצמה. 1294 01:12:56,110 --> 01:12:58,750 אז מעצמה הוא ערך שלא אותחל. 1295 01:12:58,750 --> 01:13:01,340 אתה לא בהכרח תקבל אותו שגיאות Valgrind אם תנסה 1296 01:13:01,340 --> 01:13:01,970 ולגשת אליו. 1297 01:13:01,970 --> 01:13:05,160 הכל יהיה מאופס יפה החוצה, כי NULL הוא ערך ב- SQL. 1298 01:13:05,160 --> 01:13:06,780 שהוא קבוע. 1299 01:13:06,780 --> 01:13:08,980 ולאחר מכן עיר הולדתו תהיה ניו יורק. 1300 01:13:08,980 --> 01:13:11,860 אז זה INSERT INTO הפקודה. 1301 01:13:11,860 --> 01:13:13,610 לפני שאנחנו עוברים, יש עוד שתי פקודות. 1302 01:13:13,610 --> 01:13:19,060 האם יש לי אנשים שאלות על עדכון, על INSERT INTO, על SQL 1303 01:13:19,060 --> 01:13:21,556 בדרך כלל לפני שנעבור על הפיסות הסופיות שלנו? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 לאנשים להרגיש טובים, נהדרים. 1306 01:13:26,910 --> 01:13:27,410 אוהב את זה. 1307 01:13:27,410 --> 01:13:29,480 אז בואו נדבר על SELECT. 1308 01:13:29,480 --> 01:13:33,445 הולך UPDATE תעלה לכאן. 1309 01:13:33,445 --> 01:13:35,720 >> ובחר הולך להיות דומה מאוד. 1310 01:13:35,720 --> 01:13:38,790 המטרה של SELECT, המטרה של SELECT בחיים 1311 01:13:38,790 --> 01:13:45,910 הוא לתת לך חבורה של עמודות המקיימים תנאים מסוימים. 1312 01:13:45,910 --> 01:13:48,230 וכשאני אומר לספק תנאים מסוימים, 1313 01:13:48,230 --> 01:13:50,800 מייד אולי המוח שלך לחזור לזה המשפט WHERE 1314 01:13:50,800 --> 01:13:52,090 שעלה בעדכון. 1315 01:13:52,090 --> 01:13:54,880 וסעיף שהוא בדיוק שם בSELECT. 1316 01:13:54,880 --> 01:14:06,020 >> אם אנחנו לא לשים איפה סעיף ואנחנו אומרים שם SELECT, 1317 01:14:06,020 --> 01:14:16,490 hometown-- כוסמין שקטן שם wrong--, עיר הולדתו מטבלת 1. 1318 01:14:16,490 --> 01:14:19,690 אם אנחנו רק אומרים את זה, מה SELECT הוא הולך לתת לנו הוא זה 1319 01:14:19,690 --> 01:14:23,730 הולך לתת לנו double-- שולחן, ולא. 1320 01:14:23,730 --> 01:14:27,450 מערך כפול אם אנחנו חושב על בPHP החושים. 1321 01:14:27,450 --> 01:14:33,239 אבל זה רק הולך לתת לנו מערך כפול של שני שם columns--, 1322 01:14:33,239 --> 01:14:33,780 ועיר הולדתו. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 וזה יהיה להתעלם מזהה. 1325 01:14:38,130 --> 01:14:41,310 וזה יהיה להתעלם מעצמה. 1326 01:14:41,310 --> 01:14:44,696 וזה יהיה רק ​​לתת לנו כל שורה אחת של שולחן ש. 1327 01:14:44,696 --> 01:14:46,570 אז אם אנחנו פשוט הוכנסו אנדי, יהיה לנו אנדי. 1328 01:14:46,570 --> 01:14:48,605 ויהיה לנו ארבעה המקוריים. 1329 01:14:48,605 --> 01:14:53,720 אם הם כבר מעודכנים, שיהיו תבואו לידי ביטוי, וכולי, וכולי. 1330 01:14:53,720 --> 01:14:56,520 >> אז זה בגלל שאנחנו לא השתמש בסעיף איפה. 1331 01:14:56,520 --> 01:14:59,200 אבל אנחנו יכולים להשתמש בו בדיוק ב אותו אופן שנהגנו זה בעדכון. 1332 01:14:59,200 --> 01:15:05,310 אם אנחנו רוצים רק שולחן של השמות וכוחות העל של אנשים שחיים 1333 01:15:05,310 --> 01:15:13,430 בניו יורק, אנו יכולים לבצע הצהרה כמו שם SELECT, superpower-- 1334 01:15:13,430 --> 01:15:27,190 אני רק הולך לעזוב לראות-- מ טבלה 1 איפה עיר הולדה = עיר ניו יורק. 1335 01:15:27,190 --> 01:15:33,370 >> אז זה הולך להראות כי אתה יכול תקבל עמודות שונות לחלוטין, 1336 01:15:33,370 --> 01:15:36,920 ואז לשים את העמודות שאתה לא אפילו לחזור בסעיף איפה. 1337 01:15:36,920 --> 01:15:39,200 אנחנו אפילו לא רוצים עיר הולדתו של כולם. 1338 01:15:39,200 --> 01:15:41,920 אבל אנחנו רוצים את השם ו המעצמה של אנשים 1339 01:15:41,920 --> 01:15:43,817 עיר הולדתו היא בעיר ניו יורק. 1340 01:15:43,817 --> 01:15:45,650 אז זה משהו שאנחנו יכול לעשות עם איפה 1341 01:15:45,650 --> 01:15:49,112 סעיף הוא שאנחנו יכולים להתמודד עם עמודות כי אנחנו לא בהכרח רוצים בחזרה. 1342 01:15:49,112 --> 01:15:52,320 באותו אופן בעדכון, אנחנו יכולים להתמודד עם עמודים שאנחנו עושים לא בהכרח 1343 01:15:52,320 --> 01:15:53,270 רוצה לעדכן. 1344 01:15:53,270 --> 01:15:58,890 אנחנו יכולים לעדכן את העיר של כולם מי שם הוא סם, למשל. 1345 01:15:58,890 --> 01:16:02,080 אנחנו יכולים לעדכן את העיר כולם מזהה שמספר הוא 2. 1346 01:16:02,080 --> 01:16:04,960 אז רק לעדכן עיר של השורה השנייה 1347 01:16:04,960 --> 01:16:08,220 שבו אנחנו לא צריכים להתמודד עם צורך השאלה הנפוצה. 1348 01:16:08,220 --> 01:16:13,264 >> ולמחוק הוא, שכהיית מצפה, DELETE מטבלת 1. 1349 01:16:13,264 --> 01:16:14,930 ולאחר מכן יש לנו סעיף איפה עוד. 1350 01:16:14,930 --> 01:16:17,940 אז אנו יכולים לומר איפה ID = 1. 1351 01:16:17,940 --> 01:16:18,950 מחק את השורה הראשונה. 1352 01:16:18,950 --> 01:16:23,240 ולמחוק תמיד למחוק שורה, או שזה יהיה למחוק חלק מספר השורות. 1353 01:16:23,240 --> 01:16:26,990 DELETE משולחן שבו עיר ההולדה = עיר ניו יורק 1354 01:16:26,990 --> 01:16:28,740 ימחק את כולם בעיר ניו יורק. 1355 01:16:28,740 --> 01:16:30,985 זה אם היה מגפה טרגית פתאומית 1356 01:16:30,985 --> 01:16:33,360 ואתה רק רוצה להסיר כולם מהשולחן ש 1357 01:16:33,360 --> 01:16:35,760 גר בעיר מסוימת שנפגע מהמגפה. 1358 01:16:35,760 --> 01:16:38,050 ייתכן שהם ינוחו בשלום. 1359 01:16:38,050 --> 01:16:43,849 >> אלו הם ארבע פקודות SQL שתצטרך להשתמש. 1360 01:16:43,849 --> 01:16:45,390 אולי אפילו לא צריכים להשתמש בכולם. 1361 01:16:45,390 --> 01:16:47,690 אבל אלה הם ארבעה שCS50 מצפה ממך 1362 01:16:47,690 --> 01:16:53,630 להיות נוח עם הולך ל שני חידון 1 וגם pset7 וpset8. 1363 01:16:53,630 --> 01:16:55,820 >> יש רק שולחן ששוב. 1364 01:16:55,820 --> 01:16:58,930 בזה, יש המעצמה של רוי עודכן לקרן לייזר, ש 1365 01:16:58,930 --> 01:17:00,880 הוא דוגמא אני לא משתמש. 1366 01:17:00,880 --> 01:17:05,480 אני לא יודע איזה מהם רוי מעדיף, אבל כוח. 1367 01:17:05,480 --> 01:17:07,670 יש רוי מעצמה של כוח. 1368 01:17:07,670 --> 01:17:09,090 קתרין לא עשה את זה היום. 1369 01:17:09,090 --> 01:17:10,260 זה מצער. 1370 01:17:10,260 --> 01:17:11,260 אבל יש לה מהירות סופר. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> ובכן זה היה PHP. 1373 01:17:14,670 --> 01:17:19,410 לפני שנידבר על MVC, עושה למישהו יש שאלות על PHP? 1374 01:17:19,410 --> 01:17:23,864 עכשיו SQL, או PHP אם פתאום יש לך לבוא עם שאלה על PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 גדול. 1377 01:17:28,460 --> 01:17:29,920 בסדר, כולנו להגדיר אז. 1378 01:17:29,920 --> 01:17:33,660 >> אז דיבר קצת על בקרים להציג מודל, 1379 01:17:33,660 --> 01:17:38,770 בואו נחזור לחלק של החומר בpset7. 1380 01:17:38,770 --> 01:17:42,470 אז מה להציג מודל בקר הוא-- אני לא 1381 01:17:42,470 --> 01:17:45,660 הולך כדי לשמור את השינויים שלי להתחבר כי אני לגמרי נטבח זה. 1382 01:17:45,660 --> 01:17:49,220 אבל בעצם יש לנו שני דברים נפרדים קורה. 1383 01:17:49,220 --> 01:17:52,390 יש לנו ציבור ספרייה המכילה 1384 01:17:52,390 --> 01:17:56,460 הקוד זה הולך להיות מוצא להורג ודפי האינטרנט שיהיה ביקרו. 1385 01:17:56,460 --> 01:17:58,780 ויש לנו גם ספריית הנוף הזה. 1386 01:17:58,780 --> 01:18:01,780 ונופים מכילים תבניות. 1387 01:18:01,780 --> 01:18:04,390 >> זה מה שהפונקציה render-- ראינו לדקלם 1388 01:18:04,390 --> 01:18:08,240 פונקציה בחבורה של קוד PHP CS50 שכבר כתב לך, 1389 01:18:08,240 --> 01:18:10,550 שלוקח בפרמטרים מסוימים. 1390 01:18:10,550 --> 01:18:14,510 מה הקוד שעושה הוא זה הולך לנוף, 1391 01:18:14,510 --> 01:18:18,000 שהם קבוצות של כמו קוד ה- HTML שנכתב מראש, 1392 01:18:18,000 --> 01:18:20,720 וזה החדרת ערכים למקומות מסוימים. 1393 01:18:20,720 --> 01:18:23,990 כך כאשר אתה להיכנס לCS50 האוצר, 1394 01:18:23,990 --> 01:18:25,760 באותו הכותרת היא על כל עמוד. 1395 01:18:25,760 --> 01:18:28,130 אותו תחתונה הוא בכל דף. 1396 01:18:28,130 --> 01:18:31,880 סיבה לכך הוא הדרך ההופכים את העבודות הוא זה ימצא 1397 01:18:31,880 --> 01:18:36,720 באופן אוטומטי לתקן בכותרת וש צופה בו אתה יכול למצוא בנוף. 1398 01:18:36,720 --> 01:18:41,400 >> אנחנו באמת יכולים להיכנס לכותרת, ו תראו, זה קובץ HTML עם ראש. 1399 01:18:41,400 --> 01:18:43,280 יש לו כמה גיליונות סגנון. 1400 01:18:43,280 --> 01:18:48,450 אתה לא צריך להסתכל על CSS לpset7 אם אתה לא רוצה. 1401 01:18:48,450 --> 01:18:50,560 אבל אתה יכול לשנות שלהם אם אתה רוצה, לעשות 1402 01:18:50,560 --> 01:18:53,470 האוצר שלך נראה קצת שונה. 1403 01:18:53,470 --> 01:18:57,560 >> יש לו כמה PHP ב הכותרת קצת לראות 1404 01:18:57,560 --> 01:19:01,240 אם יש כותרת שונה זה צריך לשים בכותרת זו. 1405 01:19:01,240 --> 01:19:04,300 אבל רק כמה תסריטים אחרים, וקישורים, ודברים אחרים. 1406 01:19:04,300 --> 01:19:08,700 הראש מסתיים, גוף מתחיל, ואופס, יש לנו קצת מוזר זה הסוף. 1407 01:19:08,700 --> 01:19:14,730 ויש div, בדיוק כמו סוג חסר צורה של אלמנט 1408 01:19:14,730 --> 01:19:17,120 שיש לו רעיון של אמצע. 1409 01:19:17,120 --> 01:19:22,450 >> ואז, כאשר אנו רואים תחתונות, יש לנו את סוף div. 1410 01:19:22,450 --> 01:19:25,000 יש לנו תחתון, שהוא שבו הטקסט התחתונה הוא. 1411 01:19:25,000 --> 01:19:26,770 סוף div, סוף הגוף, סוף HTML. 1412 01:19:26,770 --> 01:19:29,070 >> אז מה הופך אותו עושה הוא לדקלם סוג 1413 01:19:29,070 --> 01:19:33,150 של תיקון מעלה כותרת, קובץ PHP שונה ש 1414 01:19:33,150 --> 01:19:37,110 יכיל את הדברים בפועל ש אתה רואה, כמו השולחן של מניות שלך 1415 01:19:37,110 --> 01:19:39,690 אם אתה קונה או מוכר מניות. 1416 01:19:39,690 --> 01:19:41,480 ואז זה תוסיף בכותרת התחתונה. 1417 01:19:41,480 --> 01:19:44,890 ולהציג המודל רעיון הוא שאנחנו בקר ש 1418 01:19:44,890 --> 01:19:49,590 רוצה להפריד בין איך דברים נראים מהקוד. 1419 01:19:49,590 --> 01:19:53,420 זה שאנחנו רוצים להפריד את הממשק וbackend, שבו הממשק הוא 1420 01:19:53,420 --> 01:20:00,440 הדברים שהמשתמש רואה, נחמד visuals-- HTML, CSS, דברים כאלה, 1421 01:20:00,440 --> 01:20:02,320 תמונות, וכולי. 1422 01:20:02,320 --> 01:20:05,780 וbackend הוא PHP. 1423 01:20:05,780 --> 01:20:07,710 זה קוד שאתה כותב. 1424 01:20:07,710 --> 01:20:10,240 זה המקום שבי הקוד זה עושה פעולות בפועל. 1425 01:20:10,240 --> 01:20:12,400 זה כאשר אתה מוסיף המניה לשולחן שלך, 1426 01:20:12,400 --> 01:20:14,890 כאשר אתה קונה ו מכירה, זה backend. 1427 01:20:14,890 --> 01:20:20,210 >> ואנחנו יכולים, כפי שראיתם, כולל PHP ישירות ב- HTML. 1428 01:20:20,210 --> 01:20:23,210 אז מה אנחנו יכולים לעשות ל משימה זו היא פשוט הייתה 1429 01:20:23,210 --> 01:20:26,200 קובץ HTML לכל דף, כמו התחברות. 1430 01:20:26,200 --> 01:20:30,260 ולאחר מכן בדף זה, פשוט היה גוש ענק של קוד PHP, 1431 01:20:30,260 --> 01:20:33,822 כולל את כל הקוד ש דף זה במיוחד היה צריך. 1432 01:20:33,822 --> 01:20:35,780 ואז תהיה לנו עשה את זה לתיק. 1433 01:20:35,780 --> 01:20:40,250 אנחנו יכולים לעשות את כל הקנייה ומכירה בדפים הבודדים. 1434 01:20:40,250 --> 01:20:43,680 >> אבל בגלל שאנחנו טיוח בנפרד ממקום שבי 1435 01:20:43,680 --> 01:20:46,660 אנחנו כותבים backend קוד, אנחנו יכולים בקלות 1436 01:20:46,660 --> 01:20:52,660 לשנות את האופן שהדברים נראים ללא שינוי כל קובץ. 1437 01:20:52,660 --> 01:20:55,460 אנחנו עושים את דברים כמו רק להוסיף div חדש לתחתית 1438 01:20:55,460 --> 01:21:00,720 ל-- שלום שיניתי את הכותרת התחתונה. 1439 01:21:00,720 --> 01:21:03,710 אתה פשוט יכול לעשות דברים כאלה. 1440 01:21:03,710 --> 01:21:07,250 אבל גם, אתה יכול לשנות הפריסה ויזואלית שלמה 1441 01:21:07,250 --> 01:21:09,290 מבלי להשפיע על מה הולך בbackend. 1442 01:21:09,290 --> 01:21:12,000 ואתה יכול לשנות את backend כל ועדיין 1443 01:21:12,000 --> 01:21:13,900 יש לו נראה בדיוק כמו שעשה לפני. 1444 01:21:13,900 --> 01:21:14,400 זֶה 1445 01:21:14,400 --> 01:21:16,170 >> האם הרעיון של בקר להציג מודל. 1446 01:21:16,170 --> 01:21:19,992 וזה בעצם הפרדיגמה שהוטלה בחלק משפות תכנות 1447 01:21:19,992 --> 01:21:21,700 אולי כדאי לך להשתמש ב לפרויקטי גמר. 1448 01:21:21,700 --> 01:21:25,100 אם אתה עושה את פיתוח iOS, יש להם דעות, 1449 01:21:25,100 --> 01:21:29,120 וזה מה שאתה רואה ב- iPhone, ו אז Backend כמו כמו דבר נפרד. 1450 01:21:29,120 --> 01:21:31,260 >> אתה יכול לחשוב על קצת. 1451 01:21:31,260 --> 01:21:35,190 יש הרבה של קבצים בינאריים ב מדעי מחשב, שהוא מצחיק, 1452 01:21:35,190 --> 01:21:37,270 כי הכל זה בינארי. 1453 01:21:37,270 --> 01:21:38,550 לא תכננתי את זה. 1454 01:21:38,550 --> 01:21:41,590 זה היה משחק מילים לא מכוון. 1455 01:21:41,590 --> 01:21:43,860 כן, משחק מילים לא נועד. 1456 01:21:43,860 --> 01:21:49,070 >> אבל כמו קבצי .c קבצים ו.h, יש הרבה הפרדה של דברים שאנחנו 1457 01:21:49,070 --> 01:21:49,900 אולי לא צריך. 1458 01:21:49,900 --> 01:21:54,330 אז אנחנו יכולים רק לערוך את קבצי h, או מישהו יכול רק לראות את קובץ .h ויודע 1459 01:21:54,330 --> 01:21:57,650 בדיוק הפונקציות שנמצאות ב קובץ .c בלי בהכרח לדעת 1460 01:21:57,650 --> 01:21:58,870 יישומם. 1461 01:21:58,870 --> 01:22:02,800 רעיון זה של רכיבי הפרדה שתלוי זה בזה 1462 01:22:02,800 --> 01:22:06,990 אבל סוג של יכול לגשת לכל אחר באמצעות ערוצים שונים, חולף 1463 01:22:06,990 --> 01:22:09,310 של משתנים, רק כוללים הצהרות, דברים 1464 01:22:09,310 --> 01:22:14,440 כמו ש, עיקרון זה עוזר ליצור יישומים 1465 01:22:14,440 --> 01:22:17,080 זה יכול להיות בקלות רבה יותר נערך על ידי מספר רב של אנשים, 1466 01:22:17,080 --> 01:22:20,440 ניתן לשנות בקלות רבה יותר או שונה בקנה מידה גדול, 1467 01:22:20,440 --> 01:22:24,880 והם קלים יותר ל באגים בהרבה דרכים. 1468 01:22:24,880 --> 01:22:28,254 >> באמת מהיר, יש לי כמה טיפים לpset7, 1469 01:22:28,254 --> 01:22:31,420 שאני אעשה מסך מלא, כך שלא רק מסתכל על tippee קצה קצה כל--. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 אין טיפים שרבים. 1472 01:22:35,130 --> 01:22:38,060 >> אבל הזכרתי PHP קשה באגים. 1473 01:22:38,060 --> 01:22:39,290 כפול ומשולש לבדוק את זה. 1474 01:22:39,290 --> 01:22:41,550 אם הקוד שלך הוא פשוט לא להופיע בדף, 1475 01:22:41,550 --> 01:22:46,240 זה כנראה שגיאת PHP, מצטער. 1476 01:22:46,240 --> 01:22:48,570 >> אתה אף פעם לא צריך להסתכל על CSS אם אתה לא רוצה. 1477 01:22:48,570 --> 01:22:52,150 אבל ברגע שתסיים, זה יכול להיות דבר כיף קטן ונחמד, רק כדי ללכת ב 1478 01:22:52,150 --> 01:22:54,770 ולהתעסק עם הפרמטרים CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS ו- HTML הם דוגמא למודל דבר בסגנון בקר תצוגה מדי, נכון? 1480 01:22:58,700 --> 01:23:02,150 יש לך יכול תגי סגנון בתוך האלמנטים של HTML. 1481 01:23:02,150 --> 01:23:04,800 אבל אם אתה סוג של מיקור חוצם ל- CSS, 1482 01:23:04,800 --> 01:23:08,180 הם קלים יותר לערוך, ולשחק מסביב עם, ויש לי כיף איתו. 1483 01:23:08,180 --> 01:23:10,816 >> פנק את עוזר CS50 פונקציות כקופסות שחורות. 1484 01:23:10,816 --> 01:23:12,940 אתה לא צריך לדעת בדיוק מה לדקלם עושה, 1485 01:23:12,940 --> 01:23:16,770 אבל תאמין לו תמיד לעשות את הזכות דבר תלוי במה שאתה עובר את זה, 1486 01:23:16,770 --> 01:23:17,690 דברים כאלה. 1487 01:23:17,690 --> 01:23:21,040 ואני ממליץ צפייה בהדרכתו של דוד, 1488 01:23:21,040 --> 01:23:24,490 עובר את כל הדברים, לא רק todos, 1489 01:23:24,490 --> 01:23:26,960 אבל אתה באמת יכול לטפל ב קופסות שחורות כמו אלה. 1490 01:23:26,960 --> 01:23:29,280 אל תלכו לאלה פונקציות מחפשים באגים. 1491 01:23:29,280 --> 01:23:33,510 >> ומקדם בברכה את החזרה של Zamyla אדוננו. 1492 01:23:33,510 --> 01:23:34,010 גדול. 1493 01:23:34,010 --> 01:23:40,430 >> האם יש שאלות האחרונות לפני אנחנו סוג של להקפיץ ליום? 1494 01:23:40,430 --> 01:23:42,610 אני עדיין חייתי? 1495 01:23:42,610 --> 01:23:44,700 גדול. 1496 01:23:44,700 --> 01:23:47,120 אנשי Livestream היי. 1497 01:23:47,120 --> 01:23:47,620 גדול. 1498 01:23:47,620 --> 01:23:50,260 האם יש עוד שאלות? 1499 01:23:50,260 --> 01:23:50,760 לֹא? 1500 01:23:50,760 --> 01:23:52,884 >> ואז אני חושב שאנחנו טוב ללכת להיום. 1501 01:23:52,884 --> 01:23:55,550 אני אשאר בסביבה קצת אחר כך, אם אנשים היו שאלות 1502 01:23:55,550 --> 01:23:57,480 הם פחדו לשאול על הזרם. 1503 01:23:57,480 --> 01:23:59,790 אבל חוץ מזה, יש לך יום טוב. 1504 01:23:59,790 --> 01:24:01,933