איך אני מגדיר בphp שיתחיל להציג בדף שלי ספרות מ0 וכל כניסה לדף תעלה את המספר לאחד יותר גבוה. תודה

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

איך אני מגדיר בphp שיתחיל להציג בדף שלי ספרות מ0 וכל כניסה לדף תעלה את המספר לאחד יותר גבוה. תודה

שליחהעל ידי מנחם מענדל מענדי » 15:21 21/06/2018

איך אני מגדיר בphp שיתחיל להציג בדף שלי ספרות מ0 וכל כניסה לדף תעלה את המספר לאחד יותר גבוה. תודה

957
הודעות: 31
הצטרף: 10:04 28/07/2017

Re: איך אני מגדיר בphp שיתחיל להציג בדף שלי ספרות מ0 וכל כניסה לדף תעלה את המספר לאחד יותר גבוה. תודה

שליחהעל ידי 957 » 13:37 24/06/2018

מקור 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 תווים שונים… בקיצור.
נערך לאחרונה על ידי 957 ב 13:39 24/06/2018, נערך פעם 1 בסך הכל.

957
הודעות: 31
הצטרף: 10:04 28/07/2017

Re: איך אני מגדיר בphp שיתחיל להציג בדף שלי ספרות מ0 וכל כניסה לדף תעלה את המספר לאחד יותר גבוה. תודה

שליחהעל ידי 957 » 13:38 24/06/2018

ג.

count int(10) unsigned DEFAULT '0' NOT NULL,


כאן הגדרנו משתנה מסוג מספר (int) שהוא חיובי (unsigned) שערכו בברירת המחדל הוא אפס.
שדה זה הוא השדה שישמש אותנ למנית מספר הצפיות בכל עמוד ועמוד.




PRIMARY KEY (id)


בשורה זו פשוט ציינו שהערך בשדה id הוא מסוג PRIMARY KEY מה שבגדול אומר שהוא חד חד ערכי.


INSERT INTO counter VALUES (””,”index”,”0”);
INSERT INTO counter VALUES (””,”who”,”0”);
INSERT INTO counter VALUES (””,”where”,”0”);


השורות הנ”ל פשוט מכניסות שלושה ערכים לתוך מסד הנתונים.
כל רשומה במסד מתייחס לעמוד אחר באתר שלגביו אנחנו בונים “מונה צפיה”.

הפרמטר הראשון שאנחנו מעבירים בכל רשומה הוא ”” כלומר מחרוזת ריקה. למה? בגלל שהערך בכל מקרה יקבע על ידי Mysql כי העמוד הראשונה היא מסוג auto_increment.

הפרמטר השני הוא מספר שמתאר את מספר הצפיות.
כמובן שהמספר הרצוי הוא 0 (אם היינו מעבירים ”” , כלומר מחרוזת ריקה, בגלל ההגדרה של הטבלה כ default 0 בעמודה זו, היינו זוכים לאותו אפקט כמובן).

הפרמטר השלישי הוא מחרוזת שמתארת כל עמוד בצורה “אנושית” (למעשה עדכון העמודה label), אפשר ורצוי לתת ערך שיתאר בצורה הכי ברורה את שם העמוד המשוייך אליו.

957
הודעות: 31
הצטרף: 10:04 28/07/2017

Re: איך אני מגדיר בphp שיתחיל להציג בדף שלי ספרות מ0 וכל כניסה לדף תעלה את המספר לאחד יותר גבוה. תודה

שליחהעל ידי 957 » 13:39 24/06/2018

חזרה לתוכנית.
אם כן, אחרי ששמרנו את סכימת המסד בתור קובץ בשם schema.sql הגיע הזמן להכניס את הסכימה לתוך המסד נתונים.
כדי לבצע זאת,בהנחה ששם המסד הוא counter שם המשתמש הוא root והססמא היא 123456 (בהמשך לפקודה שהשתמשנו לבנית המסד בתחילת הפרק), נריץ את הפקודה הבאה


mysql -u root -p123456 counter < schema.sql



מקור http://penguin.whatsup.org.il/%D7%9E%D7 ... %D7%9D_php


חזור אל “פורום PHP”

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 3 אורחים