מקור
http://penguin.whatsup.org.il/%D7%9E%D7 ... %D7%9D_php
מטרת התוכנית היא לתת מונה של צפיות בעמודים (מספר הצפיות בעמודים שונים באתר).
כדי לאפשר זאת, נתבסס על מסד הנתונים Mysql לאכסון של הנתונים ולקבלת המידע הרלוונטי.
המטרה: תוכנית גמישה ככל שניתן, שתאפשר לנו להוסיף עוד ועוד עמודים למנייה בהתאם לגדילת ושינוי האתר עם הזמן.
כדי לפשט את ההסבר, לא ניתן את הקוד לניהול המערכת, אלא ביצירת המסד נתונים נכניס שלושה ערכים להדגמה (שיהוו שלושה עמודים שונים באתר, שלהם נבצע מניה).
הקוד הוא קוד מפושט, ולא נכנס לנושאים כגון שימוש בעוגיות על מנת למנוע הקלקות כפולות של משתמש, ומבחינתנו, כל צפיה בעמוד (גם בעת ביצוע רענון של התצוגה אצל המשתמש) תספר.
[[|6.2]] בנית מסד הנתונים.
אנחנו נשתמש במסד נתונים מסוג Mysql.
אחרי שדאגנו שהמסד מותקן במערכת ורץ, נצטרך ליצור מסד בשם counter, שלתוכו יוכנסו הנתונים.
כדי לסבר את האוזן למי שלא מכיר את Mysql: מסד הנתונים של Mysql כולל מערכת הרשאות פנימית שכוללת שם משתמש וסיסמא.
כל משתמש יכול לקבל הרשאות שימוש על מסד אחד או יותר.
החלוקה למסדים מאפשרת למשתמש לנהל ביעילות פרוייקטים שונים, עם טבלאות שונות בלי שתהיה התנגשות בינהם.
העבודה מול mysql נעשית בד”כ תוך שימוש בכלים טקסטואלים.
אפשר לראות במסד ה SQL כאוסף של טבלאות, שניתן לעבוד מולם במהירות וביעילות רבה יחסית.
נחזור לדוגמא שלנו.
ראשית, יוצרים את מסד הנתונים/
התחביר ליצירת מסד הנתונים הוא:
mysqladmin -u username -ppassword create databasename
כשאם הססמא של המסד SQL שלנו היא 123456, שם המשתמש שלנו הוא root (זה מסד שאינו קשור למשתמש root במערכות יוניקס !), ובהנחה שאנחנו רוצים ששם המסד יהיה counter אז מה שצריך להקליד יראה ככה:
mysqladmin -u root -p123456 create counter
עכשיו, אנחנו רוצים לבנות את הטבלאות של Mysql ולהכניס להם ערכים ראשונים של שלושה עמודים שונים בתור הדגמה.
כדי לבצע זאת עלינו ליצור קובץ של מסד הנתונים, שאותו נוכל להעביר ל mysql.
ככה נראה קובץ ה mysql בתצורת טקסט:
############
# SQL schema
############
DROP TABLE IF EXISTS counter;
CREATE TABLE counter (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
label varchar(255) NOT NULL,
count int(10) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO counter VALUES (””,”עמוד ראשי”,”0”);
INSERT INTO counter VALUES (””,”עמוד שני”,”0”);
INSERT INTO counter VALUES (””,”עמוד שלישי”,”0”);
יש לשמור את התוכן של הקוד בתיבה הנ”ל בתור קובץ טקסט, אני קראתי לו schema.sql שכן זה השם שמתאר אותו נכון.
קובץ זה (שלא קשור ל php עדיין) הוא קובץ טיפוסי של Mysql
הוא בשורה הראשונה מבצע DROP, כלומר מחיקה של טבלה בשם counter אם קיימת ואח”כ יוצר טבלה בשם counter
לטבלה נקבעים שלושה שדות:
א.
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
השדה הראשון הוא שדה ששמו id והוא משתנה מספרי שלם (int) חיובי (שכן הוא unsigned) , שערכו בברירת מחדל הוא 0 והוא מסוג auto_increment כלומר, בכל פעם שיוצרים רשומה חדשה במסד הנתונים (שאילתה מסוג insert) הרשומה תקבל ערך שגודל באחד.
המספר 10 בסוגריים מתאר את מספר הספריות שיכולות לייצג את המספר, במקרה שלנו החל מ 0 ועד למספרים בני 10 ספרות… (מספרים מאוד גדולים שסביר להניח שלא נעבור לעולם….).
זה מאפשר לנו לתת ערך חד חד ערכי לכל רשומה, בתצורת מספר שגדל עם כל רשומה חדשה, מאוד נוח ככה לפנות לרשומות השונות, כפי שנראה בהמשך.
ב.
label varchar(255) NOT NULL,
כאן הוגדרה עמודה מסוג varchar שהוא שדה שיכול להכיל משתנים תווים ששמו label והוא למעשה ישמש אותה להגדרה של הסבר מילולי לגבי כל עמודה ועמודה, ככה שנוכל בהמשך הדרך, לראות בקלות למה קשורה כל רשומה (בעזרת המאפיין הזה, שהוא לא חד חד ערכי אבל הוא ברור יותר במבט אינושי מסתם מאשר המספרים שמיצגים כל רשומה בשדה id).
גודל השדה הוא עד 255 תווים שונים… בקיצור.