
set_query ו-get_query, וכך מקבלים את הטבלה כמשתנה אחד.num_rows מחזיר כמה שורות יש בטבלה, כדי לדעת מתי מגיעים לסוף. בדוגמה מדובר בכ-127 שורות.min ומפתח max, והמערכים נדחפים לתוך מערך אב בעזרת array_push.mysql_data_seek מחזיר את המצביע לשורה הראשונה אחרי השליפה הראשונית, כדי שהלולאה הראשית תתחיל מההתחלה.case.case לא מתאים.case גדול-שווה וקטן-שווה, כדי לשייך מספר לטווח. כך מתאימים את מזהה המוצר לתיקייה הנכונה.print_r כדי לוודא שהטווחים נבנו נכון לפני שממשיכים לשלב הבא, שבו נבנה את מסך העימוד.הטקסט המלא של הדקות הראשונות בהרצאה «קורס PHP - הרצאה 6» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אוקיי, בוקר טוב, יותר נכון צהריים טובים. אנחנו ממשיכים את ההרצאות על מערכים ב-PHP. הכינותי מראש ב-Word מסמך שיתאר בעצם את האלגוריתם שאנחנו הולכים לבצע. בואו נפתח רגע את המסמך.
תזכורת קצרצרה לפני תחילת ההרצאה. אז האלגוריתם עובד ככה. בעיקרון, אם אני אכנס לשרת האישי שלי בואו רגע נפתח אותו כך c.w.w.w. בואו ניכנס סתם לאחת התיקיות אתם תראו פה, תיקיה בשם אימג' שזה בעיקרון התמונות של המוצרים אם אתם תשימו לב, באייגס יש לי תמונות של מוצרים, של הביצים
וכן הלאה והלאה, זאת אומרת אנחנו בעיקרון ניצור מבנה של תיקיות בשרת ולשם באופן מסודר יוכנסו התמונות ששייכות לאותה תיקייה. עכשיו, מה המטרה בתרגיל הזה שאנחנו עכשיו הולכים לדעת?
המטרה היא כזאת, בואו נראה רגע את המסך, אני אכנס פה לסך 127.0.1 פייל אקספלואוד, ונשים לב, לדוגמה אני רוצה כרגע להכניס מוצרים לביצים אז אני מציג את התפריט, הנה יש לי פה את הביצים והסברתי כבר בהרצאה הקודמת מה הבעייתיות ופה אני מסביר רק שוב את הפתרון, לא את הבעייתיות כשאנחנו עושים עיון, אז
בעצם מי ששמר את התמונה של המוצר יחד עם השם בואו נראה את זה בדסקטופ, רואים? הוא שמר את זה בעיקרון עם כך שם המוצר, נקודה, ושם החברה, אוקיי? הנה, שם המוצר, נקודה, שם החברה, גליקס.
כשאני עושה על התמונה הזאת אופן, ולדוגמה אני ארחות פה על הכפתור הזה, פרק את הקובץ ואכנס למסד הנתונים, שימו לב, הוא יודע שזה שייך לביצים, כן? הוא יודע גם לפרק את השם של הקובץ כאן לטקסט הזה, ואת שם החברה לטקסט הזה, ובעיקרון את התמונה הוא שתל בתוך התיקייה של הביצים עם השם 9.jpg.
בואו נראה את זה פה, כן, בואו תראו, זה לא נמצא פה כי זה נמצא בווירצ'ואל 4, בעצם אני הפעלתי פה את ווירצ'ואל 4, אם אני אכנס כרגע לתיקיית ווירצ'ואל 4, ל-image p, ל-a, הנה 9, זה התמונה שהתבצעה.
מה בעצם אנחנו הולכים לעשות? התרגיל שעכשיו אנחנו נבצע במערכים, ידע לומר לי, האלגוריתם שאנחנו נבנה ידע לומר לי שאם אני בחרתי לדוגמה בביצים כאן ואני מעלה תמונה הוא ידע להחזיר לי שהתיקייה שאליה אני אמור להחזיר את התמונה, להעלות את התמונה בשרת היא תיקיית A. אז כאן יש את האלגוריתם
בוורק ובואו נראה את זה ככה. אז להחזיר לדוגמה בואו נאמר במוצרי חלב להחזיר שם של תיקייה מילק במידה וזה קודם כל שייך למוצרי חלב מיין פרודקט איי די אחד.
בואו נאמר, הגבול ההתחלתי הוא 1 ונגמר הגבול הסופי הוא 23. יש לי פה הרבה מוצרים. טוב, נעמוד תחת, יש לי פה מ-1 עד 23. זאת אומרת, שאם אני בחרתי תת-תפריט, סתם נאמר, גבינה צהובה, ניגש שוב לכאן, מוצרי חלב, ולדוגמה בחרתי גבינה צהובה, אז בעיקרון אני יודע שהוא נמצא בטווח של מ-1 עד 23,
ואכן זה כך, הנה 4 הוא בטווח של מ-1 עד 23, אז הוא יחזיר לי תיקיית מילק, אז הגבול ההתחלתי הוא 1 והגבול הסופי הוא 23. כאן אני הסברתי איך בעצם אני בונה את כל האלגוריתם, רק אני אראה את זה פה באיור.
זה יהיה לכם בדף של הדוגמאות, ככה שתוכלו לקרוא, אבל אני רק מראה כרגע באיור. ככה, איור לדוגמה. הוא נתקל בתפריט ID 1, נכון?
ה-Main Product ID זה 1. אוקיי, עדיין זה זה, אז הגבול ההתחלתי המינימלי הוא 1. ממשיך, ממשיך, ממשיך, ממשיך. פה פתאום זה אבא אחר, אז רגע, תעצור אז בעצם הגבול שלאומי 1 עד 6, הנה זה קורה פה חוזרים אחורה, מקסימום שווה 6, מינימום שווה 1 דוחפים את זה למערך ומתקדמים
אבל לשים לב, המינימום זה 7 עכשיו עד שהוא נתקל במשהו שונה שזה פה, בעצם אז זה אתם יכולים לראות את זה פה, הנה מיין פרודקטיידי שונה, נכון? 3, מיין פרודקטיידי 3 הוא שונה מ-2 חוזרים אחורה ובעצם שלפנו כבר את השורה הזאת אז אני חוזר לפה מקסימום זה 9 מינימום זה 7 דוחפים למערך ומתקדמים וכן הלאה והלאה והלאה ובסוף אנחנו נחזיר נראה את הטווח אם זה מן
הטווח הזה עד הטווח הזה תחזיר לי שם של תיקייה מילק אם זה מהטווח הזה עד הטווח הזה תחזיר לי אקס וכן הלאה והלאה אז זה קשור למערכים ב-PHP בואו נראה איך אנחנו בונים את האלגוריתם הזה, ככה.
קודם כל, אני הולך לבנות את הכל עם קלאס, אוקיי? בואו נעשה קלאס, ונקרא לזה Dismantling Array, אוקיי?
דיס, אני מקווה שאני מגלה את זה נכון. מנטלינג אריי, כן, אני מאמין. כן, זה פירוק המערך, אוקיי? כך, אוקיי, דולר, דולר, דולר, דולר, דולר, קורן, רואו, סיק, אוקיי?
אנחנו נסביר את הכל למה זה משמש var-dollar-id var-dollar-mean-range אתם זוכרים את הגבול המינימלי? ו-var-dollar-max-range זה הגבול המקסימלי שמים אותו var-dollar-range זה המערך של התחומים בעצם ו-var-dollar-mp זאת אומרת נסביר את ה-range וה- var-dollar-close-counter אוקיי, בואו נבנה פונקציה בונה לקלאס הזה,
אוקיי? פונקצ'ן, פונקציה בונה זה כשם הקלאס שהגדרנו. פונקצ'ן, דיסמלטלינג, אריי, וכאן נעשה דבר כזה.
בואו קודם כל נאמר דולר דיס שמצביע ל-MP ריינג' הוא בעצם מסוג אריי, מסוג מערך, אוקיי? ונגיד שכרגע דולר דיס אין Close Counter, אני כרגע לא נמצא, אני מתחיל רק את הספירה של השורות, שווה 0, אוקיי.
function row זה לשלוף, כן, data base first row, אוקיי. זאת תהיה לי בעצם פונקציה שהיא שולפת את השורה הראשונה ממסד הנתונים, אוקיי.
אז בואו קודם כל נגדיר, כן, מאיפה אנחנו בעצם צריכים לשלוף את השאילתה של מסד הנתונים, אוקיי. בעיקרון אני מתכוון לעשות את זה כרגע, הרי שימו לב שאני, המסך הזה בעצם אנחנו כבר בנינו בהרצאה, כשאני בעיקרון אלחץ לפה ואני אלחץ על הלחיץ הזה, הוא בעיקרון אמור להעביר לי את ה-ID הזה,
את ה-ID הזה שבעצם זה התפריט ההיא, ואז בעצם אני עושה סלקט, אני עושה כאילו בחירה בשאילתא מתוך תסריט של המוצרים, בואו תסתכלו, זאת אומרת אני ניגש כאן, בואו רגע ניגש לנתונים, אוקיי, לא לזה, כאן כן, לכל זה, זאת אומרת אני צריך בעיקרון, כן, אני בעיקרון צריך לעשות לי, כן, לעשות לי שאילתא שהיא בעצם תשלוף לי את כל הנתונים
הללו ותתחיל לפרק לי את הטבלה הזאת בעצם למערכים, שהמערך הראשון יהיה מ-1, מין ריינג' עד 23. המערך השני יהיה מ-24 עד 27, וכן הלאה ואהלה ואהלה, שזה יהיה בתוך המערך הזה.
שנייה, בואו ניגש ונפתח את הכובד, פייל אקסטרים. אוקיי, בואו ניגש לפה. בעיקרון, אני רוצה, כן, שכאן בריזולט יהיה לי את המערך של כל הנתונים הללו, כל הנתונים הללו, כן, של כל הטבלה.
בואו נעשה את זה, אוקיי, ונרשום כך, דולר, דאטה בייט, כן, האובייקט, מסד הנתונים, סט קוויירי, כן, סט קוויירי, ונרשום כך, סלקט, תפריט איידי, שיק, מייל, פרודקט, שיק, תפריט אין, פרום, יכלתי גם לעשות את זה עם כוכבית, כן, שהוא בעצם בוחר את כל השדות, אבל אני מעוניין לעשות את זה ככה, לפעמים אני משתמש בשדה מסוים,
אז אין לי כוח ללכת למסד הנתונים להתחיל להעתיק אותו, כבר יש לי אותו, אני פשוט בעצם חוסך לי מעבר בין מסכים, אוקיי, בואו נגדיר עכשיו מופע מסוג ה-Undel-Array-Cלאס אבל כמובן אנחנו קודם כל צריכים לכלול את הקלאס הזה פה אצלנו, אז בואו נעשה ככה, אינקלוט, עכשיו בגלל שאנחנו נמצאים באותה תיקייה,
כן, הפייל אקספורט וה-Undel-Cלאס-Array נמצאים בעצם באותה תיקייה, אז אנחנו לא צריכים לעשות שום path, כן, שום נתיב, אלא פשוט לרשום את הכובד הזה, כן, אנדל אריי קלאס עקודה אש בואו נעשה ככה בואו נגדיר עכשיו משתנה מסורב אריי אנדלר נקרא לו ככה דולר אריי אנדלר שווה ניו וזה היה לי
דיסמנטלינג אריי נכון דיסמנטלינג אריי בואו ניקח מהטיקט המשתנה הזה שעשיתי אובייקט הזה ונרשום ככה ש-result שלו שווה דאטה בייסט דולר דאטה בייסט get query וזה בעצם מפעיל את השאילתה get query בואו רק נראה דאטה קליטס לא קורא לי את התשובה אוקיי עכשיו בואו נתחיל לעבוד בעצם יש לי כרגע ב-result יש לי בעיקרון את הסבלה
שתפעילה את כל המוצרים שיהיה בחנות הווירטואלית בואו נמשיך הלאה. אוקיי, אז פה בעיקרון אני הולך לשלוף כרגע את השורה הראשונה ממסד הנתונים, כן?
זאת אומרת, השורה הזאת, בואו נראה איך אנחנו עושים. כל הכבוד, דולר, דיסק, קאונט. זוכרים את קאונט, המשתנה הזה?
מה? הוא יחזיר לי קודם כל כמה בכלל שורות יש לי בתוך הטבלה. אוקיי, אז קאונט, בואו נחזיר לפה את כל הרשומות של דאטה, של מסד הניסויים של הטבלה, אז זה נקרא הפונקציה MySQL, כן, NumRows, אוקיי?
מי? של דולר, דיס, ריזולט, ריזולט, ריזולט, בדיוק, אוקיי? בעיקרון כרגע, במשתנה, במאפיין המחלקה יותר נכון, ככה מדברים בשפה המקצועית, זה לא משתנה, זה מאפיין, במאפיין קאונט יש לנו בעצם בעיקרון את מספר השורות שבטבלה, כן?
שבעיקרון, אני חושב, בואו נראה כמה שורות יש פה, אז אני רואה פה נראה לי שבסך הכל 127, כן, הנה אפשר לראות. בעיקרון המשתנה קאונט הזה קיבל 127. עתידה שיש לך פה אתה קודם כל מתמודד עם 127 שורות.
אוקיי, אז זה בעצם המספר השורות שיש. בגלל שאנחנו עובדים עם מערכים, אז בעיקרון מערכים אנחנו בדרך כלל מתחילים מאפס, אז בואו נאמר שיש לנו בינתיים דולר דיסקאונט, אני אגיד לו, כן, מינוס מינוס, שזה יעבוד בהתאם למערך.
אני בעצם מוריד אותו בערך 1, כי היא כאילו כביכול היא מתחילה מאפס. במקום מ-1 עד 127, יש לי מ-0 עד 126. אוקיי, בואו נשלוף את השורה הראשונה. דולר דיס, אוקיי?
דוחים את קורנט רואו, הנה הוא, קורנט רואו, שווה. מיי sql, fetch array, זה בעצם שלוף לי שורה, כן, מדולר דיס של ריזולט, כן?
בעיקרון, בקורנט רואו, אם אני אגש למסד הנתונים, תופיע לי שורה הראשונה, קורנט רואו, יש לי בעצם, זה מערך, ומכיל לי תפריט ID, מן פרודקט ID, תפריט name, זה המפתחות של המערך, והערכים בהתאם תפריט ID 1, מן פרודקט ID 1,
ותפריט name, תופן, זה השליפה של השורה, נמשיך הלאה, דולר דיס איידי כזה, ועוד שניה נסביר מה זה אומר המשתנה הזאת, דיס קורנט דולר דיס קורנט גו, כן, משל מיין, אוקיי, והנה בואו נלך לפה,
אוקיי, אוקיי, למה? זוכרים בוורד את האלגוריתם שלנו? כאן, דולר ID שווה 1, זה מיין פרודקט ID. תגלוש, תגלוש, תגלוש, תגלוש, או, נתקלת במיין פרודקט ID שונה, תתחיל לעבור, כן?
אוקיי, אז הנה דולר ID, ID, סליחה, מאפיין ID, מחזיק לי בעצם את המיין פרודקט ID, שהוא בעצם האינדיקטור שמורה לי שאם היה שינוי