ג'ייסון הירשהורן: ברוכים הבאים לכולם בשבוע שמונה. יש לנו בשבוע שלפנינו מרגש. אתם כבר צללו בזוג הזה בעבר הרצאות לPHP, SQL, HTML, CSS, ולכן ארבע שפות מותג חדש שהולכות לקחת את שאר קורס זה. אנחנו תלמדו גם כמה אחרים שפות לפני סוף הקורס. אבל בכל מקרה, אין צורך לומר, זה הוא זמן מאוד מרגש בCS50, עכשיו אתה שולט C, לכאורה, והם עובר לתכנות לאתרי אינטרנט. אז השבוע, אנחנו הולכים ללכת על סיור סופה דרך ארבעה שפות רק שציינתי, HTML, CSS, PHP ו-SQL. ואני מקווה, נשאיר הרבה זמן בסופו של סעיף לדבר על סט P השבוע ותשובה כל שאלות שיש לך הכל. בכל שבוע, באותה הרשימה של משאבים בשבילך, לעזור לך עם של השבוע בעיה להגדיר והולך על החומר - אבל השבוע בפרט, לאלה סטי בעיה מבוסס אינטרנט, יש שורה של משאבים אחרים מתוך יש שסביר להניח שאתה יהיה למצוא מועיל מאוד. יש לי אותם כאן. אני בדוא"ל זה אתה אחרי הסעיף, וזה גם יהיה באינטרנט. אבל בפרט, יש הרבה משאבים רב שם בחוץ. יש גם כמה לא כל כך גדול אלה, כך שיש להיזהר מהם. אבל בשקופית זו, יש לי ארבעה טוב משאבים, אחד לכל אחת מ שפות שאתה תהיה עובד עם זה שבוע - גיליון התייחסות אחת לHTML, גיליון התייחסות CSS. זכות זו הנה המדריך-PHP. אז במקום איש הקלדה ולאחר מכן PHP הפקודה, זה מקום שבו שהיית הולכים לחפש את אב טיפוס הפונקציה ודוגמאות וגם כמה טיפים ו טריקים לשימוש בפונקציות ה-PHP. תוכל להשתמש באתר זה לעתים קרובות, אז אני ממליץ לך להיות מכיר את זה. זה יכול להיות קצת טכני, אבל זה גם מספק המון משאבים ו דוגמאות לכל הפונקציות ו גם אחר, כמו איך להשתמש במערכים או סוגים שונים של משתנים. אתר זה מועיל מאוד עבור PHP. ולאחר מכן, עבור SQL, אם אתה צלל לתוך זה סט הבעיה של השבוע, שתדע כי אנחנו משתמשים במסד נתונים. ואנחנו גישה למסד נתונים שדרך ממשק משתמש יחסית נחמד. או שדרך אחת לגישה מסד נתונים זה. ממשק המשתמש הוא בשם phpMyAdmin. יש כרטיסיית SQL, שבו אנחנו יהיו מסתכל בהמשך היום. ואתה יכול להקליד לתוך SQL המדגם שלהם שאילתות, לעשות דברים במסד הנתונים שלך ולאחר מכן להפעיל שאילתות אלה. ואם הם נכונים, זה יהיה אומר, הנכון של זה. אם הם לא נכונים, זה יהיה נניח, זה לא נכון. זה מקום מצוין לתרגל שלך שאילתות SQL לפני כתיבתם לתוך הקוד שלך, כדי לוודא שאתה יש נכון בפורמט. לבסוף, באתר אחר אחד כאן. זהו האתר שבו אתה יכול ללכת ולבדוק כדי להפוך אותך בטוחה קוד ה-HTML הוא חוקי. אז לפני שפונה הבעיות שלך להגדיר השבוע, לעשות את כל בטוח HTML שלך תקף. בשבוע שעבר, אתה ניהל valgrind, כדי לוודא שאין לך דליפות זיכרון. השבוע, אתה צריך לוודא שכל הקוד שלך הוא HTML5 בתוקף. אם זה לא HTML5 תקף, אתה הולך לקבל נקודות משם. אז לוודא - רק בגלל שזה עובד לא אומר שזה חוקי לחלוטין. הפעל את הקוד שלך באמצעות אתר זה לפני הפעלתו פנימה שוב, הנה האתר. אם יש לך משוב בשבילי, יש לנו עוד כמה סעיפים עזבו, ואני תמיד רוצה לעשות את מה שאני יכול כדי לספק לך את החלק הטוב ביותר כל מה שאתה לחוות אפשרי. אז תן לי לדעת אם יש משהו שאני יכול לעשות כדי לשפר או אם יש דברים שאתה רואה שאני יכול לעשות טוב יותר. תודה לך, אבי. שים את זה באתר. זה היה האופניים היו לי כש היה, נניח, ארבעה בבית. זה הנינג'ה צב רכיבה על אופניים, במקרה שאתה לא יכול להגיד, כי זה קצת מטושטש. אתה יכול לקבל את זה עכשיו בToysRUs ל, אני חושב, כ -100 דולרים. אבל התכונה של האופנוע הזה שאני רוצה לך לשים לב אליהם הם אלה ממש כאן. אלה הם גלגלי העזר. עד עכשיו, יש לך כבר מחשב כף יד דרך ג ואנחנו כבר לקחנו ארוכים זמן, בתוספת שני חודשים, לעבור ג לזוג הבא אלה של שפות, אנחנו לא הולכים לבזבז כל כך הרבה זמן. גלגלי העזר הם יורדים. ואנחנו הולכים לצלול לתוך אלה שפות במהירות ולעבור אותם במהירות, וזה לא אומר ש אנחנו פשוט הולכים לעזוב את החייה בחוץ ללא דרך כדי לתמוך את עצמך או להבין איך אלה שפות עבודה. אני רק הראיתי לך רשימה של משאבים כדי לעזור לך. אבל יש לזכור כי PHP היא מאוד בדומה לג נלך על זה היום וחלק מההבדלים. אבל על פי רוב, יש ללולאות. ישנן אם תנאים. כשאתה רוצה לפתור את בעיה, אתה הולך להשתמש שילוב של אלה. זה דומה מאוד. ההיגיון צריך להיות דומה מאוד ל מה שעשית בעבר. מה באמת חדש השבוע הוא תחביר ואיך אתה מבטא את עצמך. ואתה רוצה לכתוב ללולאה, אבל זה עשוי להיראות קצת שונה. או שאתה רוצה ליצור מערך, אבל זה עשוי להיראות קצת שונה. אז יש לזכור כי, לנוע קדימה, ההיגיון הוא דומה מאוד למה מה שעשית בעבר. אבל אתה עכשיו הולך להיות מפגש הרבה תחביר חדש. ואנחנו לא הולכים לך ללכת דרך כל האלמנטים של התחביר. אז זה באמת תלוי בך כדי להבין, באינטרנט או דרך להגיע אל על דיון או דואר אלקטרוני אותי או מדבר אל אחד לשני, איך לכתוב דברים ב PHP ואיך לכתוב שאילתות SQL וכיצד להשתמש ב-HTML ו-CSS. אבל רק שתדעו, זה לא כל כך אנחנו מנסים לזרוק אותך לשם שוב לשחות כרישים. זה מה שסביר להניח שאתה תעשה עם פרויקט הגמר שלך, אם תבחר שפה שונה, כמו IOS ו Objective-C, או אם אתה מחליט להתחיל תכנות בעתיד ו לצלול לתוך שפות אחרות, כמו פייתון או רובי. לעתים קרובות, את ההיגיון דומה מאוד בכל השפות האלה, ו תחביר הוא מה שונה. וזה יהיה תלוי בך, כמו מתכנת, ללכת להשתמש באינטרנט משאבים העומדים לרשותך ודמות איך לבטא את מה שאתה יודע איך להביע ב-C, ב שפה שונה. אז זהו תרגול טוב, הן עבורך פרויקט גמר, ושוב, ל מה שסביר להניח שיעשה אחרי שאתה עוזב CS50. לפני שאנחנו עוברים, עושה לאף אחד יש לך שאלות על מה מה שעשיתי עד כה? גדול. בואו נעבור הלאה. ראשית, אנחנו הולכים לדבר בקצרה על פקודת chmod. זה, אנחנו נעשה בתחילת מהבעיות שלך להגדיר. אחת ההוראות הראשונות בשבילך, אחרי שאתה מוריד קוד הפצה, הוא לשנות את הרשאות של הקבצים ו ספריות שאתה מקבל. מישהו יכול לנחש או לדעת מדוע זה חשוב כדי לשנות את הרשאות של קבצים מסוימים ו ספריות במחשב שלך? אבי - קהל: אז אף אחד מלבד אתה יכול לראות מה שאתה עושה? ג'ייסון הירשהורן: אישור. אז אם אנחנו רוצים לשים משהו על אינטרנט ויש לך הרשאות שנקבעו כי רק אתה יכול לראות משהו, אז אף אחד אחר לא יכול לראות מה שיצרת. מה עוד? כן. קהל: למנוע כל אחד אחר שאתה לא רוצה לראות משהו, מ רואה משהו. ג'ייסון הירשהורן: זה נכון גם. יש כנראה איזה קוד ש אתה כותב, שאתה לא יודע רוצה שאנשים יראו. אתה כנראה בסדר עם אנשים שראו ה-HTML ו-JavaScript שלך. אבל PHP שלך, קוד סוף חזרה, הרבה ההיגיון לקוד שלך, אולי דברים שלאחסן כמה סיסמאות שלך עבור מסד הנתונים שלך, אתה לא רוצה שאנשים יראו ש סוג של מידע. לכן חשוב שכל אחד מקבצים ו יש ספרייה אנו יוצרים הרשאות החלים על האם או לא אנחנו רוצים שאנשים יראו את אלה הסוגים של קבצים ו ספריות ותוכל לגשת אליהם ואולי אף לשנות אותם. אז יש שלושה סוגים של הרשאות. יש הרשאות קריאה, מה שאומר אתה יכול לקרוא את קובץ או רשימה תכולת הספרייה. יש אישור הכתיבה, אשר משמעו שאתה יכול לשנות את קובץ או שינוי ספרייה ולאחר מכן לבצע רשות, מה שאומר שאתה יכול להפעיל קובץ או ליתר דיוק, אתה יכול לעבור לספרייה. אז משהו תקליטור, אם יש לך רשות לבצע את זה, אתה יכול לעבור לספרייה זו. זוהי דוגמא קצרה. שוב, אתה כבר דברת על זה בבעיה מוגדרת. אבל אני יוצר ספרייה עם פקודת mkdir. אני משנה את ההרשאות. שני קווים אלה בעצם לעשות את אותו הדבר בדיוק. זה כדי להמחיש כי התחביר שינוי הרשאות, אם אתה עושה + X או 711, אלה הם אותו הדבר. אנחנו מסתכלים על טבלה זה נחמד. אנו רואים שיש משתמשים ההרשאות ראשונה. זה אתה, הפרט, ו השרת שלך, באופן פוטנציאלי. ויש גם את קבוצה ואחרים. ההבדלים בין מי שתי טריוויאליות. אז בדרך כלל, אנחנו גוש אלה יחד. אבל בעצם, אם יש לנו קובץ נקרא כולל שאנחנו רוצים להיות תוכל לערוך את עצמנו ושאנחנו רוצים אחרים כדי להיות מסוגל לבצע, זה האישור 711. ואנחנו רואים את זה כאן בטבלה זו. יש לנו קריאה, כתיבה וביצוע. לכל אחד מאתנו, אנחנו רוצים להיות מסוגל לעשות את אלה. קבוצה ואחרים, אנחנו רוצים רק שלהם כדי להיות מסוגלים לבצע. הדרך בה אנו מתרגמים את זה למספר רשות היא באמצעות בינארי. אז אם יש לנו שלושה אלה, זה 1 בעמודה אלה, 1 בזוגות עמודה, עמודת 1 ארבעה. זה 7 ממש שם. והרשאה זו היא 1. הרשאה זו היא 1. אז 711 כשהם אותו הדבר כמו לתת את עצמנו לקרוא, לכתוב, ולהוציא לפועל, וכל אחד אחר לבצע הרשאות. קו זה ממש כאן, אנחנו בדרך כלל יהיה לך לקרוא ולכתוב כשאנחנו ליצור ספרייה. אז הקו הזה כאן רק מוסיף לבצע הרשאות לכולם. כך שיהיה דומה ל, ב בנוסף למה שיש לנו, הוספת 1, 1, 1 לכולם. ואילו זה, זה מיותר להוסיף לקרוא ולכתוב. אבל אם אתה הולך להשתמש במספרים, אתה לא יכול פשוט להוסיף משהו. אתה לדרוס כל מה שהרשות היו יש וליישם אותם עם החדש מספר שאתה נותן. זה היה די מהיר. האם יש למישהו שאלות על שינוי הרשאות? על אישור. אם יש לי קובץ PHP, מה הרשאות אני רוצה שאהיה לו? זה במפרט סט בעיה. אז אתה יכול להסתכל במפרט ו לאחר מכן קרא לי את התשובה. קהל: אתה רוצה שמשתמש יש הרשאות לקריאה לכתוב. ואתה רוצה שכולם אחר אין לי מה. ג'ייסון הירשהורן: ומה מספרים הוא ש? קהל: 600. ג'ייסון הירשהורן: 600. אז chmod 600 - בכל פעם שאתה מדפיס קובץ PHP, chmod זה 600. על אישור. יש לי בספרייה. מישהו מלבד ג'ף, יש לי קובץ בתיקייה. מה הרשאות שאני רוצה לתת לתיקייה ש-- גם בבעיה להגדיר מפרט, ממש מתחת לתשובה או זה התשובה הקודמת? גם פוטנציאל בשקופית - מרקוס. קהל: ל תיקייה, זה 711. ג'ייסון הירשהורן: 711 - כך תיקייה, אתה רוצה לתת 711. אתה רוצה להיות מסוגל לקרוא אותה התיקייה, שנת מדריכים, להעביר לתוך תיקייה זו. ואתה רוצה שכולם כדי להיות מסוגל כדי לנווט בתיקייה זו, אבל לא בהכרח לשנות את התוכן שלה. מה לגבי קובץ שאינו PHP, אומר, קובץ JavaScript? מה הרשאות אנחנו רוצים לתת סוג של קובץ? קהל: 644. ג'ייסון הירשהורן: 644 - למה אנחנו רוצים לתת לזה 644? קהל: כדי לתת לאנשים אחרים לקרוא אותו. ולך לקרוא או לכתוב אותו. ג'ייסון הירשהורן: אז נכון, לכולם אחר לא יכול לקרוא כי JavaScript להגיש. ואתה יכול לשנות את זה, בנוסף כדי להיות מסוגל לקרוא אותו. אז אחד אנשי באגים הנפוצים ביותר יש עם זה בעיה להגדיר ו פרויקט גמר, אם זה סופי מבוסס אינטרנט פרויקט, הם לא הגדירו ההרשאות הנכונות. והם לא יהיו מסוגלים כדי לראות את אתר האינטרנט שלהם. או בחלק מסוים של אתר האינטרנט שלהם. אז לוודא שאתה מגדיר הרשאות בצורה נכונה. האם לא פשוט להניח שזה יהיה לעשות את זה באופן אוטומטי עבורך. על אישור. זה היה דבר קטן שבילינו כמות טובה של זמן, כך נוכל להוקיע אותו. בואו נעבור ל-HTML. ושוב, לארבעה הנושאים הבאים אלה, אנחנו הולכים לעבור אותם במהירות יחסית. אז אל תהסס לעצור אותי בכל זמן, אם יש לך שאלות, בין אם הן קשורות למה שאני מכסה או משהו מהרצאה או אפילו מהבעיה מוגדרת. לעצור אותי בכל פעם שאתה צריך. כשאנחנו מגיעים לסוף, אנחנו פשוט להתחיל ללכת על סט הבעיה. אז HTML מייצג HyperText שפת סימון. זה לא שפת תכנות. האם כל זה הוא מבנה התוכן שלך וגם לספק כמה מטה. כך למשל, יש להניח, שרבים מן יש לך להשתמש בפייסבוק בעבר. ואתה יכול לכלול קישורים ב, או שאתה יכול לשים את קישור כסטטוס שלך. ולאחר מכן, תוכל להבחין כי קישור תמיד יש לו תמונה יפה לזה וחלק מטקסט. באופן כללי, כי הוא חלק ממטה עבור דף אינטרנט. וזה מטה פייסבוק ספציפי. ולאחר מכן, כאשר פייסבוק הוא קריאה ש דף והחדרת קישור זה, זה מחפש את מטה הספציפי, כך שזה יודע מה תמונה לתצוגה, מה כותרת לתצוגה, ומה טקסט מופשט לתצוגה. כדי שנוכל לכלול מטה עם דף האינטרנט שלנו באמצעות HTML. וזה גם עוזר לנו מבנה התוכן, בדרך כלל, מה אנחנו רוצים ללכת בו. הכל ב-HTML הוא אלמנט. ואלמנטים ממש כאן - CS50 זה, טקסט הוא האלמנט. ויש לו כמה תגיות. יש לו את זה תג. ואנו מבחינים שיש ב מתחיל ולאחר מכן קו נטוי, ולכן סוגר את תג בסוף. לפעמים, יש לא פתוח תג ותג קרוב. יש רק דבר אחד. נצטרך לראות דוגמא לכך בשקופית הבאה. אז אתה לא צריך פתוח ותג קרוב. אבל בשביל זה, אנחנו עוטפים את זה אלמנט CS50 בתג עוגן. ובעצם, אלה תגים לספר הדפדפן מה לעשות עם אלמנט המסוים. אז שוב, CS50 הוא הטקסט אנחנו הולכים לראות. וזה הולך להיות סוג של עוגן. עוגן משמש למעשה עבור קישורים למשהו. בפרט, כפי שאתה יכול כבר לספר, זה הוא קישור לאתר בית CS50. החלק הבא של התג - או בדרך כלל, חלק מהתגיות הם תכונות. ואנו רואים כאן, כי יש תג אחד מייחס, מאפיין href הזה. והם מנסים לשנות את תג מסוים. למעשה, אם אתה הולך לאחד אתרי אינטרנט או אזכור שנתתי לך לפני או לחפש את תג באינטרנט, תוכל להבחין שיש המון תכונות פוטנציאליות. זו כנראה אחת הנפוץ ביותר. זה אומר לי ליצירה קישור לאתר הספציפי. ומייחס בדרך כלל נתון, אם לא באופן בלעדי נתון, בזוגות מפתח ערך. אז הנה המפתח, href. והערך הוא זכות זו כאן. ושיהיה שימושי בהמשך, כאשר אנו מתחילים להשתמש בכמה ספריות כדי לעזור לנו הקוד ב-JavaScript או לכתוב תוכן HTML. לעתים קרובות אנו הולכים להיות - בדיוק כמונו אעשה סוגר מערך 0 וכי היה נותן לנו ערך כלשהו. בעתיד, יהיה לנו לעשות הרבה דברים כמו href סוגר משהו. וזה ייתן לנו את הערך של href, או אם ברצוננו לעדכן את href מפתח ולאחר מכן לתת אותו ערך מסוים. אז בדיוק כמו עם מערכים שבו היו לנו או אפילו עם מקש 0 או 1 או 2 מפתח המפתח חשיש שולחן, טוב, עם שולחנות החשיש וכן, סביר להניח שהיה - זה היה מגוון, ולכן מקש 0, 1 מפתח, מפתח 2. מדד שיש, אנחנו יכולים חשב על זה כמפתח. והערך הוא מה היה מאוחסן שם. את כל התכונות האלה הם זוגות מפתח ערך. ושיהיה חשוב לשינוי שלהם או לעדכן אותם או הוסיף אותם בהמשך. לבסוף, ראית את המבנה הזה בעבר, אך זו היא בסיסית ביותר מבנה של דף ה-HTML. בחלק העליון, אנו אומרים לכם כי זו היא למעשה ה-HTML. ואז יש לנו בתבנית HTML תג ותג HTML קרוב. אז כל מה שבתוך זה HTML. אנו רואים בראש ובגוף. ראש מסמך בדרך כלל כולל מה? כל ניחושים על מה שאתה לשים בראש? קהל: אתה שם את הכותרת ואת הסגנון. ג'ייסון הירשהורן: הכותרת. זה היה ניחוש של גדול. אני אולי הטיתי אותך. מה הם כמה דברים אחרים? הזכרנו אחד מהם, כי יכול ללכת בראש. קהל: הוא אמר, סגנונות. ג'ייסון הירשהורן: סגנונות - כך שאם אתה רוצה לקשר בJavaScript או אפילו CSS, שאתה מדבר על מתי אתה מדבר על סגנונות. קובץ אחר, אתה רוצה לקשר ב מחוץ קובץ, שכנראה הולכים בראשו. מה עוד? הזכרנו כמה שקופיות לפני אחד הדברים ש HTML יכול לעשות בשבילך. זה יכול לספק - מתחיל עם M - קהל: מידע. ג'ייסון הירשהורן: מידע נוסף - כך הרבה ממטה ילך בראש, בגלל שלא צריך בהכרח להיות חלק מהגוף של הקוד שלך. זה בדרך כלל - הגוף הוא תוכן, מה שרואה מישהו. ואז אני פשוט נתתי את התשובה לשאלה הבאה שלי. אבל בגוף הוא בדרך כלל התוכן זה הולך להיות מוצג בעמוד האינטרנט. כפי שנראה, אתרי אינטרנט מסובכים נוטה להתערבב או לשנות את מה הם שמו בראש ובגוף. אבל בדרך כלל, הראש מכיל דברים כי המשתמש לא הולך רואה על המסך. זה קישורים בקבצים אחרים ומספק מטה. ואילו, הגוף מכיל את כל מה המשתמש הוא הולך לראות. יש לך מושג מה תג p זה אומר? קהל: סעיף? קהל: הדפסה. קהל: זה לא אומר שהדפסה. קהל: האם זה אומר סעיף? ג'ייסון הירשהורן: פיסקה - אז זה פסק. ותג p זה, הייתי יכול פשוט הקלדתי זה על המסך ולאחר מכן כלל מעבר שורה בסופו של אותו. מישהו יודע איך לכלול מעבר שורה? קהל: יחסי ציבור - ג'ייסון הירשהורן: יחסי ציבור - קהל: סלאש יחסי הציבור? ג'ייסון הירשהורן: קו נטוי יחסי ציבור עומד על מעבר שורה. אבל יש לי ספציפי פסקאות עיצוב. ועוד נגיע לעיצוב ב שני, כאשר אנו מדברים על ה-CSS. אבל הכל בתוך תגי p אלה יהיה כמה עיצוב ברירת מחדל הקשורים אליו, כנראה כמה מרווח בין שונה סעיפים. וזה יהיה בכיוון אחד כדי לבדל בלוקים של קוד. כל תגים אחרים - מה הם תגים אחרים שכבר ראו? ג'ייסון הירשהורן: H1 דרך H6. h1 דרך H6, ומה זה? קהל: זה יסמן כמה גדול ונועז האותיות. ג'ייסון הירשהורן: נכון, זה עומד על כותרת. וכך header1 היא כותרת גדולה. זה יהיה כנראה, כברירת מחדל, להיות נועז, גודל גופן גדול, כנראה שמרכז המסך, כל הדרך למטה עד h6, אשר הוא בגודל גופן קטן יותר, פחות הדגיש. כמובן, אתה יכול, אתה בקובץ CSS או איפשהו בקוד שלך - אשר, שוב, אנחנו נגיע לזה בשנייה - לשנות את מה שהתנהגות ברירת המחדל של תג h1 הוא. אבל יש לזכור כי הכרום, ספארי, Firefox, Internet Explorer לכולם יש ברירת מחדל נראית להרבה תגים סטנדרטיים אלה. אתה יכול, שוב, תמיד לשנות איך הם נראים. כל תגים אחרים, כי כולם ראה? כן - קהל: אתר div. ג'ייסון הירשהורן: תג div - תג div אין כל פורמט מובנה, לכל se, המשמש כדי לחסום את סוגים שונים של קוד. כל תגים אחרים? כן. קהל: לי - ג'ייסון הירשהורן: li - מה לי ל? קהל: רשימה. קהל: רשימה ג'ייסון הירשהורן: li הוא לאלמנטי רשימה. ישנם שני סוגים של רשימות. מה הם שני סוגים? קהל: מסודר ולא מסודר. ג'ייסון הירשהורן: הורה ו דוכנים כך ul - לא מסודרים לרשימה לא מסודרת. זה אם אתה רוצה כדור להצביע, רשימה של כדורים. רשימה ממוספרת היא רשימה ממוספרת. וכך תוכל לעשות תג ul פתוח ולאחר מכן טונות של אלמנטי רשימה ולאחר מכן לסגור את תג ul. ושרצונו ליצור רשימה לא מסודרת. אנחנו הולכים לראות כמה דוגמאות של ה-HTML בקצת. אבל לפני כן, אני רוצה להגיע ל-CSS. וCSS מייצג מדורג גיליונות סגנון. וזה קרוב מאוד ל-HTML, אבל שונה במקצת. זה עוזר לך לעצב את כל התוכן שמבני ה-HTML. אז ב-CSS, אנחנו בדרך כלל לא רוצים סגנון בכל כותרת או כל תמונה אחת או כל פסקה אחת. אנחנו רוצים לעצב את חלק מהרכיבים או אולי אלמנט ספציפי. והדרך בה אנו סגנון ספציפי רכיב הוא לתת לו תעודת זהות. אז זה תכונה. יש לה מפתח וערך. זהות היא המפתח. לוגו הוא הערך. הרמתי את הלוגו באופן אקראי. ואם אתה נותן משהו מזהה, בדרך כלל, כי יש לתת רק לאלמנט אחד. ולאחר מכן, בגיליון הסגנון שלך, אתה יכול סגנון שאלמנט מסוים, לעומת זאת אתה רוצה שזה ייראה. אם אתה רוצה לעצב את מספר אלמנטים, אולי זה סוג מסוים של כותרות, רק חלק מהכותרות שלך. אולי זה כותרת ותמונה ו פסקה כל מה שאתה רוצה להיות מרוכז. אז אתה יכול לתת אותן קבוצות אלמנטים כל כיתה. ואתה יכול לתת הכיתה סגנונות מסוימים. אז זהות ומעמד שתי דרכים לשבור את הקוד שלך, כך שאתה יכול לעזור להיות יותר ספציפי במה שאתה הסגנון. ישנן שלוש דרכים לסגנון. הראשון הוא, עם תכונת הסגנון הזה. אז אתה רואה, מפתח הסגנון הוא סגנון. ערך הסגנון הוא למעשה עוד רשימת ערכי מפתח. במקרה זה, הרמתי מפתח אחד, יישור טקסט. ואני אמרתי, מרכז. ייתכן שאתה שואל את עצמך בשלב זה נקודה, איך אני יודע על יישור טקסט. מה זה עושה אפילו? זאת שאלה מצוינת לשאול, ו אנחנו הולכים להגיע לשם תוך שני. אז זו דרך אחת לסגנון משהו, פשוט לתת לו את תכונת הסגנון. דרך נוספת לסגנון משהו - זה Akshar שהוזכר קודם לכן. אתה יכול להשתמש בתגים בסגנון ולשים את זה בראש מסמך ה-HTML שלך. אז אתה בעצם אומר, התוכן בתוך כאן הוא קצת תוכן בסגנון. והמתכונת לזה הדבר שאתה רוצה לעצב ולאחר מכן, בתוך סוגריים מסולסלים, זוג ערך המפתח של תכונות שאתה רוצה לתת ל כי סוג מסוים של אלמנט. לבסוף, וזה דרך הנפוצה ביותר. וזו היא הדרך בה אנו לעשות את זה בסט עמ '7. זה גיליון סגנונות חיצוני. אז יש לך קובץ css.. ובתוך זה, אתה רואה הרבה דברים שנראים כמו זה, שם של איזה סוג של אלמנט או זהות או בכיתה ולאחר מכן, בתוך מתולתל פלטה, רשימה של זוגות ערך מפתח. כמובן, אם אתה יוצר חיצוני קובץ, אתה הולך צריך לכלול אותו - חדה כוללת, שהיית להיות האנלוגיה C - בקובץ ה-HTML שלך. אז אתה צריך לכלול את זה קוד בקובץ ה-HTML שלך. זה להיות השם של הקובץ ו בהנחה שזה באותה הספרייה. על אישור. זה היה הרבה. ואנחנו עכשיו הולכים לנשום ולחפש בחלק מהאתר אמיתי, חי ו לחקור את זה יותר. אבל לפני שאנחנו עושים את זה, עושה לאף אחד יש לך שאלות? אז אם אתה רוצה לעשות את זה יחד עם לי, אנחנו יכולים ללכת למכשיר. ואני בחרתי בדף בית CS50. אתה יכול לעשות את זה עם כל אתר אינטרנט. אבל למה שלא תתחילו עם דף הבית של CS50? בואו לרענן. אני דווקא מאוד ממליץ לך לעשות זה יחד איתי, כי מה שאנו הולכים לעשות עכשיו הוא הולך להיות שימושי מאוד עבורך, לא רק ב 7 P-הגדר, אבל בP-סט 8 גם כן. כן. קהל: האם יש דרך לעשות את הדברים ב-HTML, ללא שימוש PHP? ג'ייסון הירשהורן: כן, אתה יכול להעיר הערות ב-HTML. קהל: מה התחביר? קהל: מקף מקף סימן קריאה. קהל: אישור. ג'ייסון הירשהורן: כן. זה התחביר. אתה יכול להעיר הערות ב-HTML. אתה יכול להעיר הערות ב-PHP. כפי שתראה, להגיב ב-HTML יהיה עדיין מופיע, כאשר אנו מסתכלים על קוד מקור של ה-HTML של אתר מסוים. אז cs50.net זה. אם אתה לוחץ לחיצה ימני ברוב מודרני דפדפנים ביותר על כל דף, אתה מציג המקור של הדף. אז בואו לעשות את זה בCS50. וראה זה פלא, אנחנו תראה את דבר ענק. CS50 נראה דווקא די נחמד. הרבה אתרים לא יהיה נראה נחמד הזה. אם אתה רוצה ללכת לדף הבית של גוגל ולפתוח אותו. זה לא נראה יפה זה. אבל אתה שם לב ש, בחלק העליון - זה סוג של קטן. בואו נעשיתי את זה גדול יותר. על אישור. בחלק העליון, DOCTYPE HTML, זה מוכר. ואז אנחנו רואים את תג ה-HTML והפתוח הראש, ממש כאן, כל של תגי ה-meta אלה. ואתם יכולים לראות עוג הזה, לא הולך להיכנס לזה עכשיו. אבל אני כמעט חיובי באותה אלה יהיו פייסבוק. זה הוא למעשה פייסבוק. אני חושב שעומד על גרף פתוח. אז תזכור, הייתי להזכיר שיש Faceboook הספציפי metadata שאתה יכול לתת לדף. זה מה שהוא כאן. לכן, כאשר אתה מקשר לדף הזה בפייסבוק, התמונה שזה הולך להראות הוא הדימוי הזה ממש כאן. ואתה באמת רואה שזה פייסבוק, כי זה תמונת פייסבוק. אבל בכל מקרה, אנחנו מקבלים בצד. אז יש לנו כמה תגים מטה כאן. אנו רואים את כותרת CS50. ושוב, הכותרת היא מה שקורה עד כאן בלשונית הדפדפן. אנחנו רואים את זה הוא קישור ב, ממש כאן, קובץ JavaScript חיצוני. לא דברנו על JavaScript הרבה, אבל בשבוע הבא - ובוודאי אם שאתה עושה סט בעיה מבוסס אינטרנט, אתה תהיה באמצעות JavaScript. זה איך אתה מקשר בחיצוני JavaScript קבצים. אנו רואים כאן, סוף סוף, את ה-CSS גיליון סגנונות, כי מסמכים אלה סגנונות של קוד זה. בואו באמת לפתוח את זה ו תסתכל ממש מהר. זה נראה מטורף. אין שום סיכוי שהייתי הצליח לקרוא עד הסוף. אז אתה בעצם אף יכול, אם אתה לוקח מראה, אתה יכול לראות את זה סוג של יש - שם אנחנו הולכים. זה נראה כמו משהו שראינו לפני, צבע רקע, הגדרת אותו שווה ערך כלשהו אדום ירוק כחול. החומר הזה סוג של צריך לא נראה כי זר, למרות ש, כאשר הציגו ככה, זה יכול להיות קצת מוחץ. אנחנו לא הולכים להסתכל על קובץ CSS זה או לבזבז זמן רב על זה, כי זה, שוב, די קשה לקריאה. בואו נחזור לזה דף ה-HTML לCS50. ובואו לגלול למטה לגוף. ובתוך אנו רואים תג div זה. אנחנו רואים את כותרת כאן. אנחנו רואים את תג העוגן. ואלמנט ברשימה זו הוא בהתחשב ברמה מסוימת. ואנו רואים ברמה שחזרה שוב ושוב. הנה אתה קרטיס. יש התגובה ב-HTML5. וכפי שאתם שמים לב, אנחנו עדיין יכולים לראות את זה, אבל זה לא מופיע. זה ממש ממש מעניין. זה נראה כמו רשימת ציונים זו אלמנט בהערות. אם נלך לדף זה, שוב, זה עדיין מופיע שם, כל כך מעניין. אה, זה למה, כי של קו זה הבא. מה עוד שאנו רואים עניין? שאר זה יותר מבלבל, ב התמודדות עם מחצית זכות זו של באתר, שהוא קטן קצת יותר מורכב. אז זה מה שקצת HTML הוא הולך להיראות. למרות שבשבילי, זה קצת מכריע, וזה לא תעזור לי כל כך הרבה. עם זאת, יש משהו ש אין, למעשה, לעזור לי הרבה. וזה מה שאני משתמש בכל פעם שאני מנסה להבין איך משהו נראה כמו שהוא נראה, או איך יכול אני עושה שינויים באתר האינטרנט שלי. וזה הוא כלי מפתח כי הוא בנוי ל-Chrome. אז אם אתה הולך לשלושה ברים זה תקין פה ולרדת לכלים לחץ על כלי פיתוח, חלון קטן יהיה צצים בחלק התחתון של הדף. ובפרט, Chrome, שכן הוא נפלא, יהיה לעצב את החלון הזה ו לקחת את ה-HTML ולגרום לזה להיראות הרבה יותר נחמד בשבילך. אז עכשיו זה בעצם חלק מתקפלים HTML, כי אתה יכול לחקור כדי לבדוק האלמנטים של הדף. אם אנחנו רוצים להסתכל על הגוף, הוא מדגיש למעשה. בעת גלילה על חלק של ה-HTML, למטה בחלון זה, זה יהיה להדגיש את חלקו מדבר על בחלון הגדול. אז תן לי לנסות שוב ו לפוצץ את זה קצת. על אישור. אז בואו לפתוח את הגוף. ואני גלילה על div השמאלי זה. ואתה שם לב שהוא מדגיש החצי שמאלי של המסך. אז בואו לחצו על זה ולהרחיב את זה. בתוכו, זה נראה כמו יש שני אלמנטים div. יש div הראשון הזה. אני לא רואה את זה מודגש. אני לא יודע, אבל זה נראה כך שנייה אחת, עזב פנימי, הוא התוכן בצד השמאל של המסך. ואז יש את הדבר הזה שנקרא כותרת. זה נראה כמו שההדגשה חלק CS50. אם נפתחנו את זה, אנחנו רואים שזה לא יותר מאשר כותרת 1. זה ניתנה תעודת זהות, וזה ניתנו cs50 הטקסט. אז שוב, מסתכל עליו דרך זה קונסולה או שימוש בכלי הפיתוח חלונית בחלק התחתון של המסך עושה לחקור את האתר הזה, בתקווה, הרבה פחות מאיים ו הרבה יותר נגיש. זה גם מאפשר לנו להבין כי אתר זה, למרות שזה נראה מאוד יפה ונחמד, לא כל כך הרבה יותר ממה שאתה הולך להיות עושה על הבעיה 7 סט. וזה לגמרי בתוך היכולת שלך ליצור. אם אנחנו רוצים - הדבר מגניב האחר על שימוש באלה כלים הוא, אם אתה לחץ לחיצה ימנית על כותרת, אתה יכול לערוך את ה-HTML. אז בואו נקראים לזה ג'ייסון. ועכשיו אתה תשים לב ששיניתי את HTML בדף זה. אני, כמובן, לא השתנה זה באופן קבוע. אם אני לרענן את הדפדפן שלי, אז זה היית לחזור לHTML המקורי. אבל לפעמים אני רוצה לאתר באגים בקוד שלי, ואני לא רוצה להיראות פשוט צריכה חלון gedit ולנסות ולהבין מה קורה. אני רוצה לראות מה יקרה בשידור חי. אז אני לערוך קוד כזה ולקבל את זה בדרך שאני רוצה שזה ייראה. ואז אני אכין לי שינויים בקוד שלי. ואני מוצא שזה הרבה יותר קל כאשר אתה יכול לעשות את הדברים באופן מיידי, כמו זה. תגיד, שוב, אנחנו רוצים לעשות עוד סיכוי, כי אנחנו בוחנים עם HTML ו-CSS עכשיו. אני יכול לערוך את ה-HTML עכשיו. ואני הולך לכלול קישור. אז אני הולך לשנות את הבית של CS50 דף, כך שזה יהיה קישור ל-- נניח - דף הבית שלי. מה שמו, אם מישהו זוכר, או מה התכונה שאני רוצה לתת לי לכרטיסיית עוגן מתי שאני רוצה זה לקשר במקום אחר? קהל: href? ג'ייסון הירשהורן: href - אז עכשיו, אתה תראה שיש הוא קו תחתון מתחת לג'ייסון. זה בגלל כרום, כברירת מחדל, נותן עוגנים קו תחתון. בטח כבר ראה את זה קודם כשאתה כבר הלך לדף אינטרנט. דברים שהם קישורים בקו תחתון ובצבע כחול. סגנון ברירת המחדל עבור קישור הוא להדגיש בדרך ולשים אותו בכחול. אם אני לא אוהב את זה, אני יכול לשנות את זה. ואנחנו נשנה את זה בשנייה. אבל עכשיו, גם שם לב שאם אני מרחף מעל זה, בפינה שמאלית התחתונה של מסך, ממש מעל מילת האלמנטים הוא הקישור שנתתי לו. אז אם אני עשיתי ללחוץ על זה - ואנחנו יכולים לחץ לחיצה ימנית על זה, לפתוח כרטיסייה חדשה. זה לא ממש הבית שלי. זה פשוט השם שלי. הנה לך. עכשיו יש לנו להפוך אותו לקישור. בואו לחקור כמה CSS גם כן. הדבר היפה - ואני הולך להפוך את זה לקצת יותר קטן - כ קונסולה זו היא, שגיליון CSS המטורף שראינו קודם, שהיה באמת קשה לנתח, הוא עכשיו יפה הניח לנו בצד שמאל של חלונית זו. אז אנחנו יכולים להסתכל. ואם ירחיבו כרטיסיית סגנונות זה, יכול לראות את כל הסגנונות השונים המשויכים, במקרה זה, אלמנט המסוים הזה, זה קישור אלמנט. אם אנחנו עושים את כרטיסיית סגנונות המורכבים, ה רק מראה לנו, ולא שבו הכל בא, אבל בעצם כל אלה סגנונות הפועלים על האלמנט הזה בפרט עכשיו. ונניח, שאנו רוצים כדי לשנות אותו קצת. אז זה כל הסגנונות הפועל על אלמנט המסוים הזה. אומר שאנחנו רוצים לשנות את זה, כי אנחנו רוצה לראות איך נראה משהו. ואנחנו רק משחקים סביב עכשיו. או שאנחנו רוצים לבדוק משהו, לפני כותב את זה בקוד ודוחף שלו ולהפוך אותו לחיות. אנחנו יכולים ללכת לכרטיסיית הסגנונות. ובתיבה הראשונה אותו אומר, element.style. וכאן, אתה יכול להוסיף, אתה יכול להוסיף משהו. אז אני רוצה - בואו נלך לקישור ו להגדיר את צבע הרקע. וזה ממש autofills את זה בשבילך, כל התכונות אפשריות. צבע רקע, ואני רוצה כדי להפוך את כחול ש. Blus הוא לא מילה. כחול הוא מילה. האם אני רואה אותה לבוא? אה, הוא שבגלל שזה בhref? על אישור. אז אני לא רואה שום שינוי כאן. וזה משום שאם אנו מדגישים את קישור, תוכל להבחין כי את הקישור הוא לא ממש שולט מאפיינים של אלמנט המסוים הזה. זה בעצם, אם אנחנו פותחים את הקישור, כותרת זו ממש כאן זה שליטה במה שזה נראה. אז אם אני רוצה לעשות את הרקע כחול, אני בעצם צריך לשנות צבע רקע על אלמנט כותרת. ועכשיו אנחנו רואים את זה רקע הוא כחול. אז שוב, זה במהירות אולי הולך באמצעות חומר זה די מהר. אבל זה בעצם מה אתה הולך לעשות. זה לא בבעיה 7 סט, אבל בהחלט כשאתה קידוד באינטרנט. על אישור. אני רוצה להפוך את הרקע הכחול. למרות, במקרה זה, כחול נראה די מכוער. אני יכול ללכת לכאן, לשחק. אני רואה שמשנה אותו לכחול לא עובד על. אני צריך בעצם לשנות את הכותרת אלמנט לכלול הכחול רקע. ולאחר מכן, אם לאחר מכן אני חוזר לCSS שלי קובץ, איך אני בעצם להגדיר את זה רקע להיות כחול ו לעשות שינוי זה מקל? כי אם אנחנו שמים לב אם אני לרענן את דף, כל השינויים שעשיתי נעלמו. אז הבנתי, בסדר, שלי רקע הוא כחול. אני צריך להיכנס לזה אלמנט header1 ולשנות את צבע רקע לכחול. איך אני בעצם עושה את השינוי? ובכן, זוכר את זה, אם אנחנו הולכים בתוך מכאן, כותרת זו, יש כותרת זהות. וזה כותרת. וכך, בקובץ CSS שלנו, אנו יכולים לומר, בסדר, לקחת שום דבר עם תעודת זהות של כותרת ו נותן לו תכונה נוספת. איך אפשר להפנות משהו עם תעודת זהות של כותרת, כל רעיון, או מישהו יודע איך להתייחס תעודות זהות בקובץ CSS שלנו? חשיש, זה בדיוק נכון. ויש לך שמץ של שממש כאן. אז איפשהו בקובץ CSS זה, יש הקו הזה של קוד - # # # עזב את הכותרת # כותרת שמאלית פנימית. וזה נותן לו מרווח תחתון, הגדרת תחתית השוליים של זה אלמנט מסוים. ובכן, אם אני רוצה לשנות את זה, הייתי הולך לקובץ CSS זה. ואני גם יכול למצוא את זה חלק מקובץ CSS. או שאני יכול לכתוב שלי. אני יכול לעשות סד הכותרת מתולתל חשיש ו לאחר מכן מעי גס בצבע רקע כחול פסיק וקרוב שסד מתולתל. וזה יהיה לשנות את הרקע צבע של האלמנט הזה לכחול. הסיבה שהם נותנים לך כל כך הרבה כאן היא כי, זה הכרחי במקרה הזה, בגלל הכותרת היא זיהוי ייחודי. אבל מה אתה יכול לעשות הוא דברים קן. אז זה אומר, בסדר, תלך לצד השמאל. זה קטן מאוד. אני מתנצל על כך. אבל ללכת לדבר עם שמאל מזהה. בתוך כך, חפש דבר עם תעודת זהות עזב פנימי. בתוך המבט הזה, חפש הדבר עם כותרת מזהה. בתוך כך, מחפש את הדבר הכותרת מזהה ולשנות את כותרת הזהות. אז זה רק דרך דברים קינון. יש אנשים שאוהבים את קינו, כי זה עושה את זה קצת יותר ברור. אתה תראה כאן למטה גם, נכון כאן, אין חשיש. זה פשוט H1. זה בגלל h1 הוא נתון שמו של תג גנריות. ויש כמה מאפייני CSS הקשורים לכל אחד וh1. אז אם מצאתי את h1 אחר בדף זה, אני רוצה גם לראות שסגנון זה היה להחיל את זה גם כן. אם אני רוצה להחיל סגנון לכיתה, איך אני התייחסות בכיתה או מדבר על כיתה בקובץ CSS? קהל: דוט. ג'ייסון הירשהורן: זה עם נקודה. אז בואו נחזור לדף הזה בעבר. אם אני עושה את זהות חשיש. זה משתנה בסגנון של הדבר עם תעודת זהות. או מצטער, אם אני עושה את הלוגו של חשיש, זה מציאת הדבר עם זיהוי של לוגו ונותן לו סגנון CSS בפרט. אם אני עושה משהו. עליון, שמוצא הכל בכיתה של עליון ו שינוי הסגנונות שלה. אם אני פשוט H1, שמוצא בכל h1 יחיד ונותן לו את כל מה סגנון שאני רוצה לתת לו. אם אני עושה את שטח H1 ולאחר מכן. עליונה. שילך למצוא את כל h1s ולאחר מכן כל אלה עם הכיתה של עליון ו לאחר מכן לשנות רק סגנונות אלה כדי כל מה שאני רוצה לתת לו. ושוב, אנחנו יכולים לכתוב חלק מזה בכוחות עצמנו. אבל אנחנו לא היינו מקבלים כל כך רחוקים. הרבה יותר טוב, זה נראה בעצם ללכת באתר אינטרנט חי ואמיתי ולראות איך הם עושים את זה ולהסתכל על כל דברים נפלאים שאתה מקבל לעשות. בואו נסתכל על אתר אחד יותר לפני שאנחנו עוברים. ואת זה הוא אחד שאתה בטח להכיר. זה CS50 האוצר. אז שוב, למעשה אתה יכול להיכנס ו להתבונן קובץ CSS זה עליך מחשב, בגלל שהורדת את זה קובץ CSS, אם הוריד בעיה מוגדרת. אנחנו יכולים ללכת לכלים ו כלים למפתחים. ואנחנו רואים את פריסת ה-HTML הרבה יותר פשוט. יש לנו למעלה, באמצע, ובתחתית. ושוב, משהו שאתה צריך להיות מכיר, כי אתה כבר נראה באמצעות קוד ההפצה לבעיה של השבוע שנקבעה. בחלק העליון הוא, לקוד, תמונה אחת בשם. וזה מקור של התמונה. להגיד שסיימתי את כל מה רציתי לבעיה 7 סט. וזה עובד בצורה נכונה, אבל אני רוצה לשנות את איך שזה נראה. ואני רוצה לשנות את הרקע מהחלק העליון של הדף ל, לדוגמא, כחול. אם היה לי, הייתי בא ב כאן ולהבין, על אישור מה אני רוצה לשנות. בואו נראה, div עליון זהות, שנראה כמו החלק העליון של הדף. אז בואו נלך לשם. בואו ננסה לשנות את צבע רקע. בואו נלך לעשות אליס כחולה, כי זה אחד יותר נחמד. ותוכל להבחין כי - אתה כנראה לא יכול לראות את זה. אבל יש אור כחול, לצד הלוגו של CS50. בואו לשנות אותו במקום לאדום. ותשימו לב עכשיו אני רק שיניתי את צבע הרקע לאדום. אז עכשיו אני אלך לקובץ CSS שלי ו הקלד # סוגריים מסולסלים ימני העליונים כאן. אתה יכול לראות את הקוד נכון כאן, סד מתולתל. ואז, הייתי מוסיף רקע צבע, אדום. ולאחר מכן, לא יהיו להיות סד מתולתל. אז זה איך הייתי לחקור ו להתנסות בעיצוב בCS50 אתר האוצר. אני יכול לעשות את זה כאן ומבחן את זה בדפדפן שלי. ואז, אני יכול להיכנס לקוד שלי בפועל ולבצע את השינויים שיהיו בעצם ללכת בשידור חי ושאנשים ממש לראות, אם הם היו באים אל האתר הספציפי שלי. על אישור. זה היה הרבה. אני מתנצל על עובר זה כל כך מהר. האם יש למישהו שאלות בכלל על HTML או CSS? קהל: אתה יכול פשוט ללכת על איך אתה מקושר מה הפך ג'ייסון, שוב? ג'ייסון הירשהורן: מה זאת אומרת קשורה? קהל: אתה סיפק קישור למשנהו באתר, תוך שימוש בעוגן. ג'ייסון הירשהורן: אז אתה שואל, רק בשמה הגנרי, איך אתה עושה את קישור? קהל: כן. ג'ייסון הירשהורן: אישור. הקוד ליצירת קשר - קהל: לא, כמו ב-HTML. ג'ייסון הירשהורן: כאן למטה, אתה מתכוון? אז אם אני רוצה לכלול קישור איפשהו, נניח, זה HTML עליי דף ממש כאן. זה HTML. אולי זה פתוח בקובץ, index.html. אני נכנס פנימה בואו זכויות יוצרים זה ג'ון קישור הרווארד למשהו. כך תהיה לנו לערוך את כל זה כ-HTML. כל שעליך לעשות הוא כולל, ולכן סוגר סוגר בהישג התחלה, ולאחר מכן קו נטוי סוגר סוגר קרוב בסוף. אז עכשיו צירפתי תג עוגן. ובעצם, אם תלחץ על מתוך זה, עכשיו זה יהיה לעצב אותו לערוך כ-HTML. ואומרים, אנחנו רוצים לקשר אותו. שלנו הייתי לך תכונת href. ואנחנו אומרים - ועכשיו, כפי שאתה שם לב, זכויות יוצרים ג'ון הרווארד הוא כחול. וכשאני לגלול על זה, עכשיו זה קישור. אז אתה יכול לכתוב קוד ש. אתה יכול להקיף כמעט כל דבר אתה רוצה בתג עוגן ולהפעיל אותו לקישור. קהל: אישור. קיבלתי את זה. ג'ייסון הירשהורן: ואם אני לא רוצה זה - כמובן, לפעמים אנשים נוטים לחשוב על דברים אלה כי רק להסתכל כחול הגנרי ועם הקו התחתי הם לא הדרך הכי יפה לעשות קישור. אז אם אני בא לכאן, אתה רואה את זה, אי שם בקובץ CSS, יש כתב את זה ואז שני סוגריים מסולסלים. אז בואו נגיד את זה, לקישורים, אני לא רוצה שהם יהפכו לכחולים, ולא אני רוצה את צבעו של קישור ל להיות מגנט זה נחמד. בואו לתת לו את הצבע. בואו לבחור מגנטה. עכשיו, יש את כל הקישורים בדף שלי הפך צבע זה נחמד של מגנטה. יש אנשים שלא אוהבים את הצבעים בכלל. יש אנשים שלא אוהבים את הקו תחתון. אתה מקבל לבחור. עם קישורים, אתה יכול לעצב איך הם נראה ברגע שביקרת אותם. כפי שאתה שם לב בהרבה דפים, קישורים יהפכו סגולים עליך לבקר אותם. ניתן לשנות את צבע זה גם כן. כן. קהל: אז אתה משנה אותו לכל קישור. אבל אם אתה רק רוצה לעשות קישור כי עצמו, היית פשוט עושה בזיהוי תחתון או משהו? ג'ייסון הירשהורן: שאלה כל כך גדולה. כפי שמת לב כאן, שיניתי קצת חלק מCSS שחל על כל מה שA. אם אני רוצה פשוט לעשות את הקישור שבתחתית, אני אלך לקובץ CSS שלי וכנראה תעשה בדיוק כמו שאמרת, חשיש חלל תחתון. ושתיתן לי כל כמו בתחתית. או שאני יכול, לחלופין, לתת לו זהות ייחודית ואז פשוט לעשות את קישור חשיש. ושתאפשר לי כדי לשנות את זה. עם זאת, רק מחלק את תעודות זהות של בעל כרחו הוא בדרך כלל רע בפועל, כי אלה צריך להיות ייחודי. וככל שיש לך אותם, זה יכול להיות קצת מבלבל. כן. קהל: האם אתה יכול לתת את אותו זיהוי לבעלים מרובים? ג'ייסון הירשהורן: מבחינה טכנית, כן. שום דבר לא הולך לעצור אותך, אבל אתה לא צריך אתה צריך לתת לו מעמד. בסדר, כל שאלות אחרות על HTML או CSS? על אישור. תן לנו לעבור ל-PHP. אה, כן. קהל: מה זה על אלה אתרים שאומר שאנחנו יכולים לערוך אותם לפני שאנחנו לרענן. אבל ברגע שנרענן אותו חוזר לגבות לHTML הראשוני? ג'ייסון הירשהורן: שאלה גדולה - ולכן כאשר אנו טעון זה דף אינטרנט, זה HTML. וזה ב-JavaScript. PHP מבוצע לתת כל מה סוג של אתר אינטרנט שאנו רואים. וזה יצר קצת HTML, חלקם JavaScript, CSS ועוד כמה. ושנגיש כעת במחשב שלנו. ועותק של קבצים אלה נשמר באופן מקומי על המחשב שלנו, לעת עתה. כדי שנוכל לערוך את העותק מקומי. אבל כמובן, אנחנו לא עורכים העותק בשרת. וכאשר אנו לרענן את הדף, אנחנו מקבלים עותק בשרת אחר. וכך אנו רואים את הדברים בחזרה כפי שהיו. אם היינו יכול, מכאן, כדי לערוך את אתר רשמי, שיש לנו הרבה של בעיות. קהל: כן, כדי שנוכל לקרוא ולכתוב עותק זה. ג'ייסון הירשהורן: נכון. אנחנו עושים רק שינויים מקומיים כאן, אבל שוב, מאוד מועיל עבור לחקור, לעתים קרובות. כשאני כותב את פרויקט הגמר שלי, עבור למשל, אני רוצה לראות איך כמה אתר עשוי להיראות משהו הדרך שהם עשו. אני אלך ובשימוש בחלונית זו למטה כאן, להסתכל על מה שהם נתנו לCSS אותו או באיזה צבע הם בחרו או איך הם קיבלתי את זה כל כך, שכאשר אתה ריחף על משהו, הרשימה ירדה באופן מדורג נחמד. זוהי דרך מצוינת לבדוק מה אחר אתרים לעשות וללוות מהם. בואו נעבור ל-PHP. PHP מייצג, במובן רקורסיבית, מעבד PHP Hypertext. ו-PHP, מה שהוא הולך לעשות הוא לבצע בצד שרת קוד. אז אנחנו אף פעם לא הולכים לראות את קוד ה-PHP. עם זאת, זה לשחק יפה עם HTML ולעתים קרובות יוצר הרבה קוד ה-HTML. אבל כפי שאתה אהיה מכיר את הבעיה הגדר 7, קוד PHP שלך לבצע, ליצור כמה HTML, וזה מה המשתמש יהיה בסופו של דבר לראות. PHP היא דומה להפליא לג עם זאת, ישנם כמה הבדלים, והבדלים אלה חשובים לשים לב. הבדל אחד הוא שמשתנים ב-PHP מוקלדים באופן רופף. האם יש למישהו תחושה של מה זה אומר? קהל: אין צורך להפיל אותו בעצמך. כמו שאין צורך לכתוב בטקסט. ג'ייסון הירשהורן: לא הייתי משתמש מילה יצוקה, אבל כן, אין צורך להכריז סוג למשתנה מסוימת. איך במקום אנחנו מכריזים על משתנה? קהל: השתמש בסימן דולר. ג'ייסון הירשהורן: השתמש בסימן דולר. אז x $ הוא משתנה. $ 1 הוא משתנה. $ string הוא משתנה. יכול אלה משתנים, x $ להיות מספר שלם. ואז, זה יכול להיות מחרוזת. ואז, זה יכול להיות אופי. זה לא משנה באמת. כמו כן, הדבר מגניב על PHP הוא, נניח, x $ הוא מיתר אחד. ו$ y הוא התו אחד. אתה יכול להוסיף $ x ו-y $, וזה יהיה אתן לך 2, מה שהיית מצפה. אז יש פעולות ב-PHP. כי זה באופן רופף הקליד משתנים, כמה ליהוק סמוי נעשה בשבילך וכמה פעולות. אתה יכול לעשות פעולות על דברים מסוגים שונים. בעוד שבעבר, לעתים קרובות אתה מקבל הודעת שגיאה באמרת C, זה לא הסוג זה אמור ללכת כאן. רק דברים מסוג זה יכול ללכת לכאן. אתה לא הולך לקבל סוג זה של שגיאה, בדרך כלל, ב-PHP. אז זה הבדל גדול אחד - כיצד אנו מתמודדים עם משתנים. ההבדל הגדול השני הוא כי קוד PHP מתפרש. Wheres, קוד C הידור. מה זה אומר? ובכן, לקוד C שרצת זה דרך מהדר. אתה נוצרת קובץ בינארי. ואתה רץ שקובץ בינארי. אתה דאג לכל השגיאות לפני אתה יצר את הקובץ בינארי. כמובן, יכול להיות שהיו פילוח תקלות, כאשר אתה רץ קובץ בינארי. אבל זה לא כמו שאתה שכחת לכלול ההגדרה של printf, או לא השתמש במשתנה ורק יצר משתנים בזבזן. או שאתה לא הגדרת אב טיפוס פונקציה. כל מה שקרה לפני שההידור. זה נתן לך את כל השגיאות או רעה דברים שחשב שעלול לקרות. ולאחר מכן, היו לך 0 ו קובץ 1 שאתה רץ. קוד PHP לא עובד ככה. אתה הולך לכתוב קוד PHP שלך. לאחר מכן, אתה הולך לשמור אותו, ככל הנראה. ולפחות ב -7 P-סט, אתה הולך כדי לרענן את דפדפן האינטרנט שלך, ו אתה הולך לראות מה קרה. אתה הולך לראות את הפלט שמקוד PHP. ייתכן שתראה גם, בחלק העליון של הדף שלך, שגיאה. בגלל שהיה לך כמה שגיאה ב-PHP שלך. ייתכן שעדיין לראות את שאר דף האינטרנט הוא בסדר להסתכל. אבל חלק אחד הוא שגוי, ויש שגיאה באותו מקום. וזה בגלל שחלק זה של קוד PHP שלך לא עובד. ואכן, בעת ביצוע, כאשר אתה ללכת למשהו כמו by.php. זה הולך לעבור PHP שלך קובץ שורה האחר שורה ולבצע אותה אז ורק אז. זה לא הולך לקמפל אותו מראש או זמן לקמפל עותק אחד ולאחר מכן לתת שנאסף על העתק לכולם. בכל פעם, זה הולך לעבור שורה אחרת שורה ולבצע את זה. אז אולי כמה שורות ולעבוד פלט משהו נכון. ויכולים להיות שבורים קווים אחרים ופלט שגיאה במקום. לכן, כאשר באגים עם PHP, שנתנו לך כמה דברים מועילים כדי לעזור לך באגים, כמו פונקצית ה-dump. אבל בדרך כלל, אתה הולך כדי לראות את השגיאות האלה. וככה אתה הולך יודע שעשית משהו לא בסדר. אבל אתה הולך רק כדי לראות את השגיאה ברגע שאתה בעצם מריץ את הקוד. היבט חשוב נוסף של PHP ו- התפתחות האינטרנט היא הרעיון של גט לעומת הודעה. מישהו יכול להסביר מה ההבדל בין לקבל ולפרסמם? אף אחד לא - כן. קהל: זה לא אחד מהם לאפשר למשתמש לראות את הנתונים, ואחד מהם לא? ג'ייסון הירשהורן: נהדר. כן, יש לך משהו להוסיף? קהל: דק לאחר שאני הוא משתנה סופר גלובלי. ג'ייסון הירשהורן: אז שני אלה ניתנים משתנים אליך. אלה הם רק משתנים. ואתה יודע שהם משתנים, כי כאן אני להשתמש בסימן הדולר. אלה הם משתנים נתון לך על ידי PHP. וכאשר אתה עובר בין דפי אינטרנט, אתה רוצה לחסוך קצת מידע. אתה כנראה רוצה לחסוך אם המשתמש מחובר פנימה זה לא נשמר בלקבל ולפרסם. מה שהציל במשהו אחר, משתנה שונה. מכיר אף אחד מה שמשתנה זה נשמר ב, או מה שמשתנה לך להשתמש ב P Set-7, על מנת לוודא כי המשתמש מחובר? _SESSION $, זה בדיוק נכון, חשוב כנראה להיות מוכר עם השמות של הדברים האלה אתה משתמש לעתים קרובות. אז אתה משתמש במשתנה ההפעלה לשמור מידע מדף לדף. זה משתנה סופר. היא קיימת בכל דף, אולי כמו משתנים גלובלי, אם אתה רוצה לחשוב על זה ככה. יש כמה משתנים אחרים שיאפשר לך להעביר מידע מדף לדף. בפרט, אלה אנחנו מתמקדים הם מקבלים ואת משתני POST. ב-PHP הם נראים כמו _GET $ _POST ו$. ואת ההבדל, כמו מרקוס הצביע החוצה, בין שניהם הוא ש, מידע ב_GET $ הוא מוצג ב-URL. אז אם אנחנו מסתכלים כאן למטה, אנו רואים קישור של YouTube. אנחנו רואים את סימן השאלה הזה. אנו רואים v = ולאחר מכן ערך כלשהו. חזרה לרעיון הזה של ערך מפתח זוג, v הוא המפתח. וכאן הוא הערך. אז אם היינו הולכים לדף זה או הקידוד בדף זה, יהיה לנו משתנים בשם _GET $. אם הלכנו ל_GET $ "v" סוגר פתוח קרוב סוגר, דומה מאוד למערך סימון, זה מערך לשייך כי אנחנו לא משתמשים במדדים. השתמש בחוטים כמפתחות. אבל רעיון דומה מאוד. אם הלכנו לנו, היית מקבל את הערך הזה. בדף זה, שנהיה מסוגל להשתמש בערך הזה. אם אנחנו באמת נראים, בואו לעבור לדף ב-YouTube. מה אנחנו צריכים לצפות בוידאו? זה אחד, הם אנשים ההוביט אוהדים? קהל: כן. ג'ייסון הירשהורן: אז אני מעתיק כתובת האתר של המניות ושלהם הדבקתו בחלון חדש. ועכשיו, אם אתה מסתכל פה, תוכל להבחין כי, שוב - אני הולך להעתיק ולהדביק את זה לתוך gedit, כדי שנוכל לראות אותו גדול יותר. אתה שם לב שיש לו סימן השאלה הזה. סימן השאלה מציין כי כל מה שאחרי זה הולך להיות נשמר במשתנה הגט. אז יש לו את v, זה ראשון מפתח וערך הראשון זה. האמפרסנד הוא מיוחד. אמפרסנד אומר, בסדר, אנחנו סיימתי את הערך הראשון. עכשיו אנחנו ממשיכים הלאה למקום אחר זוג ערך מפתח. כאן, המפתח נקרא תכונה, והערך הוא youtu.be. אז אם אני היה קידוד דף זה ו מישהו הלך לכתובת זו ולא היה לי אולי watch.php. ואני קידוד זה. ואני יכול להשתמש במשתנת _GET $. ושאהיה לי V, ו תהיה לי תכונה. ואם אני משתמש במפתח v, אני היית מקבל את הערך הזה. ואם עשיתי _GET $ "תכונה" סוגר קרוב סוגר, הייתי מקבל את הערך הזה. שוב, זה לא בהכרח תחול על - כמובן, את המפתחות של YouTube והערכים ולקבל מידע אינו חל על הבעיה שלנו הגדרת 7. אבל יש דברים מסוימים שאנחנו תעבור דרך GET בבעיה שלנו 7 סט. ובוודאי, כשאתה הולך לדף אינטרנט או קידוד דף משלך, _GET $ יהיו שימושיים כאשר הקידוד שלך. מהי אחת סיבות לשימוש _GET $ אז, אם זה מקנה אין פרטיות? אתה רואה את כל המידע הזה שמועבר. כל זה מוצג למשתמש. אבל מה סיבה אחת שאולי רוצה לחסוך משהו ב_GET $, כפי בניגוד ל_POST $? למה שתרצה לעשות את זה? בסדר. שאלתי אותך בחידון 1. מהו הפרו של _GET $? מה פרו אחד? כן - קהל: קל יותר לשתף מידע. ג'ייסון הירשהורן: אני חושב זה נהדר. זה קל יותר לשתף מידע. זה יותר קל לסימנייה. תוכל לסמן עכשיו, YouTube.com / watch? V = משהו וללכת כדי שוידאו ספציפי. אם YouTube תמיד עשה בקשות POST כדי דפים שונים, כל כתובת אתר YouTube יהיה YouTube.com. אתה לא יכול לסמן וידאו אחד. כי אם אתה אומר שקישור משותף עם מישהו אחר, הם לא באופן אוטומטי תקבל ההודעה משתנית. הם פשוט מקבלים את הקישור הזה, ו קישור הוא זהה עבור כולם. אז זה פרו אחד. זה מאפשר לך סימנייה זו מידע או לחלוק את המידע הזה או להפוך אותו קצת יותר ידידותי למשתמש. כמובן, אין פרטיות, אז יש לנו הודעה במשתנה זה. ופוסט מידע אינו מוצג ב-URL. זה לא פרטי לחלוטין. אבל זה שולי יותר פרטי. ואז אתה תראה את כתובת אתר כאן למטה, cs50.net. בין אם אתה מחובר ל אתר אינטרנט, זה הולך לקבל את אותו כתובת אתר, cs50.net. ברור, משהו שונה, אם אתה מחובר לאתר. יש לך, אחד, כנראה הקוד הסודי שלך קלט. וזה אישר כי עם השרת. וזה כנראה חיסכון קצת מידע אחר. אבל את כתובת האתר אינו משתנה כלל. וכדי שזה המקרה, כאשר משהו נשלח בדואר. כתובת האתר אינו משתנה. מידע הודעה זו הוא לא מוצג ב-URL. אבל כמה מדינה השתנתה, ואולי יש כמה פרטים שנשמרו ב משתנה POST. סליחה. לפני שאני הולך לSQL, כל שאלות על PHP, בפרט, שאלות על דברים שלא לעבור על כי אתה כבר נמצא או כל תחביר או שאלות היגיון על PHP? על אישור. השפה הסופית אתה תהיה אינטראקציה עם השבוע היא שפת שאילתות מובנית, SQL, מבוטא המשך לעתים קרובות. המאפשר לך אינטראקציה עם מסד הנתונים באופן רשמי. וזה משחק מאוד יפה עם PHP. כפי שתראה בבעיה 7 סט, יש לנו נתתי לך פונקציה שנקראת שאילתה. וזה לוקח מחרוזת SQL ומבצע שאילתה שעל מסד הנתונים. בשנים האחרונות, שלא היית בהתחשב בפונקציה זו. אתה צריך להשתמש בפונקציות PHP לעשות השאילתה על מסד הנתונים ובדיקה לשגיאות ולאחר מכן לקבל את התוצאות. ובעצם, זה לא כל כך קשה, כי שוב, זה משחק יפה מאוד עם PHP. וPHP נותן לך הרבה פונקציות כדי לקיים אינטראקציה עם מסד נתונים SQL. לעתים קרובות כל כך, שניהם אלה הולכים יחד. כמובן, אתה יכול לקיים אינטראקציה עם מסד הנתונים SQL עם כל מספר שפות אחרות. אבל PHP הוא אחד גדול לבחירה. מסד הנתונים - אנחנו נעבור על זה מהר, כי זו היא מילה באז אנחנו הולכים להתחיל להשתמש לעתים קרובות - הוא אוסף של שולחנות. אז אנחנו יכולים לחשוב על זה כקובץ Excel. יש קובץ Excel לשוניות מרובות בחלקו התחתון של המסך. כל כרטיסייה אנחנו עכשיו נתקשר אל שולחן, שבו שולחן הוא אוסף של שורות. ומה היא שורה? ובכן, שורה היא שאותו דבר בקובץ אקסל. כי פשוט יש ערכים מסוימים עבור כל נתן שדה או כל עמודה נתון. זה כמו כניסה בטבלה. זה תלמיד, שיש לו תעודת זהות, זיהוי ספציפי, ושם ספציפי ו בית ספציפי. אז מסד נתונים הוא אוסף של טבלאות. ושולחנות עצמם מספר השורות או רשומות. יש גם, בכל אחד שולחן, תחומים מסוימים. ושמציין מה היא כל רשומה הולך להיות, שדות המכונים לעתים עמודות אבל שדות נקראים בדרך כלל. בשולחן זה פשוט מאוד, יש לי שלוש שדות, שדה מזהה, שם משתמש שדה, ושדה חשיש. ויש לי שלוש שורות. נכון לעכשיו, הם ריקים. הם כנראה לא יהיו ריקים אם זה היה מסד נתונים האמיתיים שלי. אז רעיון אם השתמשו Excel, דומה למה שאתה עושה ב-Excel, אם כי, כמובן, עכשיו אנחנו הולכים להיות מסוגלים לעשות הרבה יותר חזק בדברים מידע המאוחסן במסד הנתונים שלנו. אתה תהיה יצירת עצמך אחד מסד הנתונים לבעיה 7 סט. אבל אתה תהיה יצירת מרובה טבלאות בתוך מסד הנתונים. אתה תהיה יצירת מסד נתונים או שולחן למשתמשים. אתה תהיה גם יצירת טבלה עבור כנראה עסקות במניות, כדי לשמור על מסלול שלהם, כי אתה צריך ליישם תכונת היסטוריה. שניהם יצטרכו טבלאות אלה תחומים שונים. לדוגמא, בשדה משתמש, אתה בטח רוצים שם המשתמש ו זיהוי וחשיש של הסיסמה שלהם. בטבלת המניות שעוקבת אחר היסטוריה או שולחן ההיסטוריה, אתה כנראה לא צריך את שם המשתמש והחשיש ואת הזהות. אתה כנראה צריך אחד מאותם בלבד ערכים שהם ייחודיים, כדי לשייך אותו עם משתמש מסוים. אבל אז, ברצונך לאחסן אחרים דברים כמו, מה שעה הייתה עסקה שנעשתה. מה המניות נקנתה או נמכר? מניות כמה מהמניות נקנה או נמכר? מה היה המחיר שבו מניות נקנו או נמכרו? אז שוב, אתה הולך להיות באינטראקציה עם מסדי נתונים זה הולך להיות מספר רב של שולחנות. כל טבלה הוא הולכת להיות סט משלו של שדות. עם זאת, יהיה ככל הנראה דומה שדה בכל שולחן, כי מתייחס אותם אחד לשני. בדרך כלל, זה הוא שדה מזהה. כי אם כל משתמש יש זיהוי ייחודי ואתה מקשר את הזהות שעם כל עסקה שהמשתמש עושה או כל ההיסטוריה של אותו המשתמש. ויש לך תעודת הזהות של המשתמש. אתה יכול לקבל מידע מכל אחת מהטבלאות. אתה יכול לקבל את שם המשתמש שלהם, ואתה ניתן לקבל את כל העסקות שלהם. כל שאלות על מסדי נתונים, או שאלות ספציפיות? בעצם, בואו נחזיק את זה. אנחנו נהיה שם בשני צדדים. אז יש ארבע פעולות על מסדי נתונים שאתה תהיה באמצעות ב בעיה הגדרת 7 וסביר אי פעם אשתמש. הדבר הראשון שאתה רוצה לעשות הוא להוסיף שיא חדש לטבלה או שורה החדשה לטבלה. זוהי הפונקציה גנרית, צורה גנרית, שמשאילתא SQL. INSERT INTO השולחן, מה שעמודות ברצונך להוסיף ולאחר מכן הערכים שאתה הולך רוצה הכניס לתוך אלה עמודות או שדות. אם יש לך מספר רב של שולחנות ב מסד נתונים או מסדי נתונים מרובים, גם ייתכן שיצטרך לציין את מסד הנתונים והטבלה שברצון כדי לשים את הדברים ב. אבל מאוד פשוט, אם ברצונך להוסיף למשהו, אתה אומר, הנה שדות שאני רוצה להכניס אליו. וכאן הם הערכים. בטבלאות מסוימות, גם, והמשתמש הזה של שולחן הוא דוגמא טובה. כנראה בשולחן זה למשתמש ו כנראה בשולחן של המשתמש שלך בP-Set 7, יש לא רק ערך שם משתמש. יש לא רק ערך מזומנים, או בשדה, ולא. יש גם שדה מזהה. אני לא מתכוון להוסיף את השדה מזהה. זה הולך להיות נתון ל לי באופן אוטומטי, כאשר השיא חדש נוסף. אז יש איזה שדה שאתה ניתן להגדיר להיות אוטומטי. אולי אתה רוצה לתת לכל משתמש $ 10,000 במזומן את הבת. אז אני לא צריך להכניס מספר המזומנים כאן. כל מה שאני צריך להכניס את שם המשתמש. ולאחר מכן, שדה המזומנים יהיה טרום מאוכלס, והשדה מזהה יהיה מראש מאוכלס. אז לעתים קרובות, אנחנו לא מכניסים משהו בכל תחום, כי תחומים אחרים אלה הם מראש מאוכלסים. כי ככה אנחנו להגדיר את הטבלה הזאת. הדבר השני שאתה הולך רוצה לעשות הוא למחוק את רשומה. מחיקת משהו היא מאוד פשוט. אתה נותן לשולחן שבו אתה רוצה כדי למחוק משהו מ. ואתה אומר, אוקיי, אני רוצה למחוק שיא שיש לו את שם המשתמש של מילוא. או שאני רוצה למחוק את כל הרשומות ש יש את שם המשתמש של מילו או שהיו עסקה מזיהוי משתמש מספר 2. כל שאלות על אלה שני סוגים של שאילתות? קהל: [לא ברור]. ג'ייסון הירשהורן: כן. אז אני הולך להשתמש בשורה ושיא לסירוגין וחלק עם עמודה ושדה. אבל שורה אחת היא רשומה אחת. עמודה אחת היא תחום אחד, הולך חזרה לטבלה זו. על אישור. הדבר הבא שאתה כנראה הולך לעשות הוא לקבל קצת מידע מהשולחן. זה שאילתת בחירה. ושוב, מה ששולחן אני בחירה מ? ומה עמודה אני רוצה לבחור, או מה ערך שאני רוצה לבחור ו מאיזו שורה? אז בחר הוא קצת ספציפי. אני אומר, אוקיי, אני רוצה את הטבלה. ולאחר מכן אני רוצה את שם המשתמש של הטור, ו אני רוצה את זה מהשורה עם תעודת זהות 2. זאת דרך אחת לעשות את בחירה. או שאני יכול לומר, תן לי כל שם משתמש אחד. או שאני יכול לומר, תן לי כל שורה מטבלה זו, שבה שם המשתמש הוא 1. אז יש כמה דרכים שונות כדי לעשות שאילתות בחירה, תלוי כמה כמות מידע שאתה רוצה, אתה תמיד יכול פשוט לבחור את כל מה שמטבלה מסוימת ולאחר מכן הלולאה דרכו, בוחרים הדברים שאתה רוצה. אבל יש לזכור, אם אתה בוחר הרבה דברים משולחן ולך יש שולחן ממש גדול, שייקח כמה זמן, ולכן עדיף לבחור רק דברים שאתה הולך בסופו של דבר באמצעות. כמו כן, עם בחירה ועם כל אלה SQL האחר פקודות, כמו גם, אני נותן לך את הגרסה המנוונת. אבל לומר, אני בחירת משתמשים ואני רוצה כדי להדפיס אותם לפי סדר אלפביתי, אני יכול לבחור את כל המשתמשים ולאחר מכן למיין אותם בסדר אלפביתי בקוד שלי. או שיש דרך לכתוב את בחר שאילתה, שבוחר דברים ב האופנה אלפביתי, המבוססת על הנחה של עמודה ספציפית, עולה או יורד. אז יש לזכור כי, הרבה ממה שאתה רוצה לעשות כנראה יכול להיעשות ב השאילתה באמצעות נוסף מייחס. אז אל לחפש שאילתות אלה באינטרנט או הדברים האחרים שאתה יכול לעשות עם אלה שאילתות להרחיב אותם. לבסוף, הדבר האחרון שאתה רוצה לעשות לא להכניס משהו או למחוק משהו, אלא לעדכן משהו. ושנעשה עם העדכון שאילתה, ושוב, מה שטבלה. ומה שינוי שאני רוצה לעשות? ואיזו שורה או להקליט לעשות אני רוצה לעשות את השינוי? כל שאלות על SQL? על אישור. אז יש לנו -15 דקות. וזו השקופית האחרונה יש לי. ובתקווה, השקופית האחרונה זה היא את קונצרט טוב לבעיה מוגדרת, בגלל הבנה שבו אנו רוצים להוסיף רשומות, מחק אותן, בחר שלהם, ולעדכן אותם יעזרו לנו להבין את ההיגיון הגדול יותר וזרימה של הבעיה 7 סט. אז אני יודע את כל התשובות לשאלות אלו. אני לא הולך לספר לכם את כל התשובות. אבל אם מישהו אחר הייתי רוצה להציג את שאלה לקבוצה או תשובה לאחת מהשאלות האלה, אנחנו יכולים להשתמש בזה כנקודה לקפיצה מדבר על סט הבעיה. או אם למישהו יש כללי יותר שאלה את קבוצת הבעיה, מרגיש חופשי לשאול את זה גם. ואנחנו יכולים להתחיל שם. זכור כי אתה שותק כואב לכולם. כן. קהל: אז זו הדרך היחידה לעבור משתנים ומאינטרנט שונה דפים, או הנוח ביותר אגב, באמצעות POST או GET? ג'ייסון הירשהורן: אז כן, זה הוא רוב הדרך הנוחה לומר - כש מישהו ממלא טופס - לקבל מידע על אתר אחר דף, באמצעות GET או POST. בגלל מסגרתו אנו משתמשים בסט בעיה זו, תוכל להבחין כי, הרבה פעמים, אנחנו להפוך את דף אחר. שלנו או שאנחנו הופכים את קובץ אחר, לא בהכרח דף אחר. אז אנחנו עוברים במשתנה. ואז, זה הופך דף HTML, באמצעות מידע ממשתנה זה. כי הוא לא מבחינה טכנית עובר מידע בין דפי אינטרנט שונים. כי הוא עובר מידע בין קבצים שונים. וכך אנחנו יכולים להשתמש בכל משתנה כדי לעשות את זה. אבל כן, אם אנחנו רוצים לעבור מידע מדף מסוים ל דף אחר, לקבל ולפרסם היית להיות הדרך לעשות את זה. שאלות אחרות על הבעיה להגדיר? על אישור. בואו נעבור, אם כן, ספציפי חלק מהבעיה מוגדר. אתה הולך צריך, בשלב מסוים, להציג התיק של מישהו על המסך. למה אני מתכוון כשאני אומר תיק, נקבע בהקשר של בעיה זו? קהל: זה כמו במניות שהם יש כמה, הרבה מניות שבבעלותם, את המחיר, וכמה כסף שנשאר להם. ג'ייסון הירשהורן: זה נשמע נהדר. אז אני רוצה להציג את כל המניות שבבעלותם לכל חברת מניות מניות וכנראה עד כמה זה שווה, ולאחר מכן משתנה בנפרד, כמה כסף שבבעלותם. אז להגיד שאני רוצה לתאר את זה. בואו נתחיל לדבר על איך שיכולתי ללכת על עושה את זה, מה שולחנות אני הולך צריך צריך להיות מסוגל לעשות את זה. כן - קהל: משתמשים ובכן, ולאחר מכן, אני מניח אתה יכול להפוך את טבלה בשם מניות או משהו כזה, שבו יהיה כמה שהם קנו. ג'ייסון הירשהורן: אישור. אז אני הולך לצריך טבלה בשם משתמשים, אשר עוקב אחר שם משתמש, מן הסתם, כנראה כמה זהות, כנראה הסיסמה של פרט. מה זה משהו אחר, כי אתה רק אמר שהוא קשור? מישהו מלבד מייקל, מה הוא משהו אחר שמשויך כל משתמש, ייחודי להם? קהל: זהות. ג'ייסון הירשהורן: ID - מה הדבר השני שאנחנו כנראה הולך רוצה להציג בדף זה? קהל: השם שלהם. ג'ייסון הירשהורן: השם שלהם - מה עוד דבר שקשור לזה בעיה מסוימת שנקבעה? קהל: מה מניות שבבעלותם - ג'ייסון הירשהורן: יש הולכים להיות הרבה מה במניות שבבעלותם. אם כי מה הערך אחד הספציפי, שהם הולכים להיות הקשורים בהם? איך הם הולכים לקנות ולמכור את המניות שלהם? קהל: מזומן. ג'ייסון הירשהורן: הם הולך להיות במזומן. אז כל משתמש הוא הולך להיות ערך אחד במזומן. וזה הולך להיות ייחודי לכל משתמש. אז בשולחן של המשתמש, זה עושה תחושה לשים במזומן. אתה יכול, כמובן, ליצור עוד שולחן שיש לו תעודות ומשתמש שלהם ערך של כסף מזומן. אבל זה לא הגיוני. זה הגיוני רק כדי לשים כל זה בשולחן אחד. אז אנחנו הולכים להיות שולחן עם מידע זה. ואז, מה זה השולחן האחר אנחנו הולכים להיות? אתה אמר, טבלת מניות. מה אנחנו מכניסים שולחן המניות? אף אחד, רעיונות - קהל: החברה. ג'ייסון הירשהורן: אנחנו הולכים לשים את שמו של חברה, ולכן AAPL עבור אפל. כן. קהל: כמה מניות וב כמה הם שווים. ג'ייסון הירשהורן: כמה מניות, כמה הם שווים - מה עוד משהו שאנו צריך בטבלה ש? קהל: זיהוי משתמש למדד זה. ג'ייסון הירשהורן: זיהוי משתמש. אז בטבלה ש, אנחנו סביר להניח שיש - נניח, אם זה מישהו שבבעלותו שלוש מניות, שלוש שורות, כל אחד עם שמזהים שימוש או הוראות שימוש של הפרט מזהה, אבל שם חברה שונה, מספר שונה של מניות ככל הנראה, וערך מחיר שונה עבור כל של מניות אלה. שוב, מה שאני אומר עכשיו זה לא בהכרח היישום, בגלל שאתה מבין שיש עוד קצת דרכים יעילים לביצועו. אבל זה מקום טוב להתחיל. על אישור. אז אלה הם שני שולחנות שיש לנו. עכשיו אנחנו רוצים להציג דף זה. מה הוא הסוג הראשון של שאילתה היינו צריך לעשות. בכל עמוד, הניח כי הוא משתמש הוא נכנס למערכת, יש לנו את מזהה המשתמש שלהם. אז מה הוא הסוג הראשון של שאילתה אנחנו צריכים לעשות? כן. קהל: זיהוי המשתמש שלהם. ג'ייסון הירשהורן: יש לנו את מזהה המשתמש שלהם, כאשר אנחנו מתחילים בקוד תחילתו של הדף שלנו. אז מה את הסוג הראשון שלנו שאילתה צריך לעשות, בהתחשב בזהותו של משתמש? ניגשנו ארבעה הסוגים. יש רק ארבע תשובות אפשריות. קהל: זה לבחור רשומה. ג'ייסון הירשהורן: בחר - אנחנו רוצים לבחור מהמשתמש של שולחן כדי לקבל, נניח, סכומם של מזומנים. ואנחנו יכולים להדפיס את כמות המזומנים בחלק העליון של המסך. על אישור. מה סוג הבא שאילתה שאנחנו רוצים לעשות? יש לנו כמה דברים אחרים אנחנו צריכים להציג. אלה נשמרים בטבלה אחרת. אז איך אנחנו הולכים לקבל את זה? קהל: אתה בוחר עבורם. ג'ייסון הירשהורן: בחר - שוב, יש רק ארבע אפשרויות. בחר כנראה צלילים כמו את האדם הנכון. אז אנחנו צריכים לעשות עוד שאילתת בחירה, שוב באמצעות שזיהוי המשתמש. ועכשיו, אנחנו רוצים לחזור ולא רק אחד שורה, bu כל השורות התואמות את שלנו קריטריונים, שבו זיהוי משתמש שווה 1. ואז אנחנו יכולים ללכת ולתת לולאה רק להדפיס את כל אלה על המסך, אולי להדפיס את החברה מ כל אחד מאלה שעל המסך. נהדר, זה נשמע כמו זה מוצגות תיק, לא הרבה יותר מסובך מזה. על אישור, המשתמש ואז מחליט שהם יש הרבה כסף שנשאר. והם רוצים לקנות מניות נוספות של מניות. בואו נגיד, שהם כבר בבעלותך המניות של חברה זו מדי. אז הם הולכים לדף שלך לקנות. שמה של החברה הם קלט. מהי השאילתה, לאחר הקלט שמה של החברה, שאתה צריך ביצוע הבא? כן. קהל: עדכון. ג'ייסון הירשהורן: עדכון - ומה שולחן אתה רוצה לעדכן? קהל: השולחן שלהם, המבוסס על מספר תעודת הזהות שלהם? ג'ייסון הירשהורן: אז לעדכן לא השולחן של המשתמש - כך לעדכן את טבלת המניות, שבו זיהוי המשתמש מתאים לא רק, אבל שם המניה גם גפרורים. אתה תקבל ערך כלשהו. ואז, אתה רוצה לקחת את הערך ש ולהוסיף מניות אולם רבות הם רוצה לקנות ממנו. אז אתה לא רוצה באופן עיוור לדרוס ערך זה. אבל אתה יכול, למעשה, לקחת ראשוני כי מעריך ורק לעדכן אותו. אתה יכול לעשות כמו בתוספת שווה, ולא רק שווים. למרות מהו משהו - אם יהיו לנו חשבתי על זה ואנחנו רוצים להיות חזק ככל האפשר - שאנחנו צריכים לעשות לפני שאנחנו רצים ששאילתא העדכון? הם רוצים לקנות חמש שנים של אפל. כל מניות של אפל היא 200 דולרים. קהל: אנחנו קודם צריכים לבדוק כסף. ג'ייסון הירשהורן: אנחנו צריכים קודם לבדוק כסף. אנחנו צריכים להפוך אותם בטוחים יש לי מספיק כסף. איזה סוג של שאילתה אנו יכולים לבצע כדי לוודא שיש להם מספיק כסף? קהל: בחר אחר. ג'ייסון הירשהורן: בחר - אנו בוחרים המבוססים על זיהוי המשתמש שלהם, כדי לקבל את ערכם של מזומנים. לעשות קצת מתמטיקה מהירה. ואם זה עובר לגייס, יש להם מספיק כסף. אז אנחנו יכולים להפעיל העדכון שלנו. או אולי, אם לא, אז אנחנו עוברים. אנחנו נותנים להם אזהרה. על אישור. אומר שאין להם חברה. הם קונים חברה חדשה. הם קונים מיקרוסופט. איזה סוג של שאילתות שאנחנו רוצים לעשות, אם הם רוצים לקנות את מיקרוסופט? והם לא לבד כל Microsoft. לא מנו, אף אחד אחר, אף אחד חוץ מזה מרקוס? קרלוס - קהל: בחירה, כדי לוודא יש להם מספיק כסף. ג'ייסון הירשהורן: נשמע טוב. קהל: ואז אתה מכניס על [לא ברור]. ג'ייסון הירשהורן: בדיוק, אנחנו הולך ברצונך להוסיף לטבלת המניות. ואנחנו הולכים ברצונך להוסיף. אנחנו יכולים להכניס את מזהה המשתמש שלהם, את השם של החברה, וכמה מניות הם רוצים לקנות. מה הן כמה פעולות אחרות ש הם דפים או פונקציונלי אתה אצטרך ליישם בP-Set 7, כי אנחנו צריכים ללכת על? קהל: למעשה, אני סוג של יש לי שאלה לגבי זה. לפני שתציג את התיק, צריך אתה בודק באתר הבית של יאהו לוודא את מחירי המניות לא השתנה? ג'ייסון הירשהורן: זה נשמע כמו רעיון טוב. אז מה מרקוס באמת אומר זה בסדר, המניה מחירים משתנים כל הזמן. במניות שבבעלותם שולחן, טבלה בשם מניות, אנחנו יכולים להציל את מחיר של המניה שהם קנו אותו ב. אבל זה לא נראה כי חזק, כי את המחיר של המניה הוא כל הזמן הולך להשתנות. אז למעשה, אתה כנראה לא צריך כדי לחסוך את המחיר של המניה. אבל בכל פעם שאתה מציג תיק, רענון או לעדכן מחיר של המניה. ואם יש לך - ו יש לך כבר. אני יודע שכולכם כבר הסתכלתי ב בעיה כבר קובע בחזרה. יש לך הבין שיש לנו בכתב קצת קוד בשבילך שיאפשר לך כדי לקבל את המחיר של המניה, קבל את השם של חברה. אז כן, זה בטח נשמע קצת יותר חזק. אבל טבלה שלא צריכה בהכרח כדי לחסוך את המחיר של המניה. על אישור. מה הן כמה פונקציות אחרות שאתה צריך ליישם את זה בשבוע ש אנחנו יכולים לדבר עליו? אני רוצה לדבר עליהם. מה אתה רוצה לדבר? זה כנראה במפרט הזה. הייתי לגלול למטה רק לתחתית של המפרט ושואל אותי את המילה הראשונה אתה רואה שזה לא הגיוני. פונקציונלי אחר אחד - בואו נדבר על אחד. נתחיל שם. קהל: הקלטת ההיסטוריה. ג'ייסון הירשהורן: הקלטה ההיסטוריה, אחד גדול. אז אתה תצטרך לעקוב אחר של היסטוריה של עסקות. אז אתה רוצה לעקוב אחר כל הפעם הם לקנות או למכור מניות. קניתי המניות שלי. פשוט אמרנו, זה כנראה הגיוני כדי לכלול בחירה, כדי לקבל אותם כמות המזומנים ולבדוק שוב. זה כנראה הוא חכם אז לכלול להכניס או עדכון, בהתאם אם הם בעלי המניות. אם אנחנו רוצים גם כדי לעקוב אחר היסטוריה, איך אנחנו יכולים לעשות את זה? האם זה הולך בטבלת המניות? קהל: לא. ג'ייסון הירשהורן: לא זה כנראה הולך בטבלה שונה. מכיוון שאומר שאתה קונה 10 מניותיה של אפל. ואז אתה קונה עוד 10 מניות. אתה רוצה לגרור את הרשומות נפרדות. אלה הם שתי עסקות נפרדות. אז יש לנו שולחן אחר, שולחן היסטוריה. אז שוב, שאנחנו קונים. אנו לבצע בחירה, ולאחר מכן הוספה או עדכון. מה שאנחנו עושים עכשיו? מה השאילתה הבאה שנבצע כשאנחנו קונים משהו? אנחנו רוצים לעקוב אחר ההיסטוריה. כן. קהל: אתה רוצה לשמור על מסלול של עסקות כושלות מדי. ג'ייסון הירשהורן: ובכן, לפנינו אומר איזה סוג של עסקה, מה שאנחנו רוצים - איזה סוג של שאילתה, קרלוס, היית תאפשר לנו לעקוב אחר דברים באופן כללי? יש לך ארבעה ניחושים. איזה מהם אתה חושב? קהל: עדכון. ג'ייסון הירשהורן: לא לעדכן. מה הניחוש השני שלך? קהל: בחירה. ג'ייסון הירשהורן: אם אתה רוצה לשמור על אחר משהו, אתה בטח רוצה לכתוב את זה באיזה מקום או לשמור אותו למועד מאוחר יותר. אז אם לא לעדכן, ולאחר מכן - קהל: הכנס אותו. ג'ייסון הירשהורן: הוספה, שם אנחנו הולכים. כן, אז אתה בוחר את כמות מזומנים שיש להם, נשמע נהדרים. אין להם מספיק כסף. העסקה כי הוא לא הולכת לעבודה. לא, אתה לא צריך לעקוב אחר עסקה אם זה לא עובד. או שאתה יכול, אם אתה רוצה לתת להם תקופה קשה. אבל אין לך. לאחר מכן, עליך להוסיף או עדכון בטבלת המניות שלהם. ועכשיו, יש לך השולחן האחר שלך. יש לך השולחן או את ההיסטוריה שלך כל מה שאתה רוצה לקרוא לזה. ובשולחן זה, אתה הולך כדי להוסיף שורה חדשה. זה כנראה הולך יש זיהוי של המשתמש. זה כנראה הולך להיות שמו של המלאי. זה כנראה הולך להיות זמן שהם עשו את זה. ובמקרה זה, סביר להניח ש"ל ברצונך להוסיף את המחיר. כי בשביל היסטוריה, אתה לא אכפת לי מה הוא המחיר הנוכחי. אכפת לך מהו המחיר שבי הם קנו או מכרו משהו. אז זה נשמע כמו, ליישם קנייה כרוך במספר שונה באופן מלא שאילתות SQL, אבל בכנות, לא כל כך הרבה כולל קוד. על אישור. ושמטפל בהיסטוריה. בואו נגיד, שאנחנו רוצים להציג את ההיסטוריה שלנו. דברנו על בו מוצגות תיק העבודות שלנו. איך היינו מציגה את ההיסטוריה שלנו? קהל: יש להניח באופן כרונולוגי. ג'ייסון הירשהורן: יש להניח מבחינה כרונולוגית - מה שאילתה אתה חושב שהייתי משתמש? קהל: בחר. ג'ייסון הירשהורן: בחר - בחר אולי כל השורות מהטבלה כי התואמים את זיהוי המשתמש ולאחר מכן להציג אותם בסדר כרונולוגי, נשמע טוב. האם אנחנו צריכים לכתוב קוד כדי למיין את הרשימה? קהל: לא, בגלל שאתה אמרת לי לנו יש עולה ויורד דבר. ג'ייסון הירשהורן: דבר? קהל: כן. ג'ייסון הירשהורן: כן. בסדר, לא פונה בקוד לי, כי ידני ממיין באמצעות השאילתות שלך, כדי למיין אותם. הקוד כי הוא כבר נתון. אתה יכול לכתוב שאילתת בחירה שממיין את הדברים. למיין אותם מראש ו לאחר מכן להדפיס אותם. זה עושה כל כך הרבה יותר הגיוני לעשות זה ככה, מאשר בדרך אחרת. כן. קהל: האם אנחנו צריכים למיין אותם לפני כן? האם זה אומר שאתה ממיין אותם במסד הנתונים? ג'ייסון הירשהורן: שאילתת בחירה מחזיר לך אותם ממוינת. אז לעשות את זה, ולא רק להם אחזור אליך בסדר אקראי ו לאחר מכן למיין אותם בעצמך. כן. קהל: האם יש דרך לשמור את זה מסודרים באתר עצמו, כך ש אתה לא צריך למיין זה כל פעם שאתה - קהל: אתה יכול להכניס אותו ממוין? ג'ייסון הירשהורן: שאלה - זה משנה שדברים מסודרים באתר? קהל: לא. ג'ייסון הירשהורן: ובכן, הם מסודרים. הם מסודרים באופן כרונולוגי. אבל בואו נניח שדברים מסודרים כרונולוגי, מלמעלה עד למטה. יש לנו טופס של גוגל. כל פעם שמישהו מגיב לגוגל שלנו יוצר, זה פשוט מקבל לשים חלק תחתון של הטבלה. האם זה משנה שדברים מסודרים לא כרונולוגי? קהל: אם זה לא כרונולוגי, אתה לא צריך למיין אותו בכל פעם אתה לוקח את המידע. אבל אם זה כבר מסודרים, אתה לא יכול לא צריך לעשות את זה נוסף קריאה לפונקציה? ג'ייסון הירשהורן: אז זה למעשה נקודה טובה. לנו כמתכנתים, זה אולי חשוב. ואנחנו אולי רוצים למצוא באתר זה לא לסדר את העניינים באופן כרונולוגי. או להגדיר את מסד הנתונים שלנו, כך שהוא שומר דברים מסודרים על ידי זיהוי משתמש. אז ככה, נניח, שיש לנו 1,000 תעודות זהות של משתמש. או פייסבוק, יש לנו מיליון של תעודות זהות של משתמש. אנחנו לא רוצים שהשולחן שלנו רק כדי להיות אקראי או מסד הנתונים שלנו להיות אקראי. זה יהיה נחמד אם כל מזהי משתמשים מוינו. אז אנחנו יכולים לבצע חיפושים בינארי על השולחן שלנו ולאחר מכן פשוט למצוא נתח מסוים. אז כן, בהתאם - אם אנחנו מדורגים עד, אנחנו אולי רוצים למצוא באתר כי דברים שמרו מסודרים בשונה דרך, כך ששאילתות אלה ייקח פחות זמן. ואנחנו לא צריכים לעבור אותנו מסד הנתונים כולו בכל שורה ב טבלת נתונה. אבל ברמה שאנחנו עובדים ב, אנחנו לא צריך לדאוג לשמירה על דברים מיון. אפשר להניח שהזמן שלוקח שאילתה שכדי להפעיל הולכת להיות זניח, בהתחשב במה עם יש לנו עסק. אבל כן, רעיון מצוין - כפי שאנו בהיקף של עד, זה אולי הגיוני לעיצוב שלנו מסד הנתונים בקצת דרך שונה. דבר אחד סופי באתר עיצוב שאני רוצה לדבר, כמו גם, כי אתה יהיה להיות מדורג, או כבש ולא, על את העיצוב של מסד הנתונים שלך. דברנו על זה. המזומן הוא ייחודי לכל משתמש. אז יש לך מזומן טבלה בשם ש יש זיהוי המשתמש שלהם וכמותם של במזומן ולאחר מכן טבלה בשם משתמשים שיש לו המשתמש שלהם זהות ושם המשתמש שלהם. טבלאות אלה המפה על כל אחר של אחד לאחד. כנראה שזה הגיוני להם להיות אחד בטבלה. אז בואו נניח שיש לך משתמש טבלה שעוקבת אחר שמות משתמש ומזומן. כעת יש לך שולחן שיש מניות בודדות בעלותה. ואדם יכול לבד יותר מ מניות אחד. אז אלה לא מפה על כל אחד מהם אחד על השני. זה לא הגיוני שיש אחד ענק שולחן שיש 30 רשומות ה כל לחזור על שם משתמש, שכל לחזור על סיסמא, שכל לחזור על מספר במזומן. אבל לכל אחד יש אולי מניות שונות שם או מחיר המניה שונה. זה לא הגיוני שיהיה לי כי רבות רשומות גדולות. להיות חכם על כשאתה יוצר אלה מאגרי מידע, כך שאתה לא עושה משהו טיפשי כזה, חוזר הרבה מידע מיותר. על אישור. יש לנו שתי דקות לסיום. אנשים מחוץ שמחים להצטרף שלנו או כנראה, ככל הנראה, תתחיל בכיתה שלהם. האם יש למישהו שאלות לפני שנסיים? אוקיי, זה אכן היה מערבולת דרך כל דבר. אני מתנצל שזה היה צריך להיות כל כך מהר ושאנחנו לא יכולים להיות כמו ידיים על השבוע שהייתי מצפה לי אהבתי להיות. אבל אם יש לך שאלות כלשהן על כל דבר שאנו ניגשנו או כל דבר ב בעיה זו מוגדרת - בהנחה שיש לך לקרוא אותו ולשים את במאמץ בתום לב - אל תהסס שלח לי או צור איתי קשר. אני יותר משמח לעבוד דרך הקוד שלך איתך או לענות על כל שאלות שיש לך. זכור כי, בשבוע זה, הרבה הזמן שלך יוקדש למידה תחביר חדש ומנסה להבין איך לכתוב שאילתות SQL או PHP פונקציות או עסקה עם מסגרת MVC. הרבה הזמן שלך השבוע כנראה לא מנסה להבין היגיון מטורף שאנחנו מבקש ממך לעשות. מזה הרבה פשוט הלכנו על זה פשוט יחסית. אז זה לא אומר שתחכה עד הרגע האחרון. אבל זה כן אומר להתאים איך אתה עושה את שלך עובד בהתאם לכך, על מנת לוודא אתם מבינים ו לימוד התחביר. אז אתה לא, פתאום, בידיעה בדיוק מה שאתה רוצה לעשות, אבל עם אין לי מושג איך בדיוק לכתוב את זה. בסדר, אני אראה אותך בשבוע הבא.