יצירת מערכת הרשמה/התחברות עם MySQL
- הורדה והגדרה של plugins & includes
- הבסיס
- בניית המערכת
- התקנת שרת MySQL לווינדוס
הורדת התוספים
אז זה מה שתצטרכו להוריד:
- Server MySQL plugin r5 - להשים את הקבצים בתיקייה plugins בסרבר.
- libmysql.dll - להשים בתייקיה הראשית של הסרבר.
- a_mysql.inc תוסף שצריך להשים בincludes בתיקיית ה pawno שלכם.
הבסיס
אחרי שהתקנו את כל מה שצריך נתחיל לעבוד.
PHP Code:
#define mysql_host "127.0.0.1" //Has to be a string#define mysql_user "root" //Has to be a string#define mysql_password "" //There is none for wamp unless you set one.#define mysql_database "sa-mp" //Has to be a string
אלו הם הפרטים של הdatabase להתחבר אליו.
PHP Code:
public OnGameModeInit()
{
mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);
mysql_query("CREATE TABLE IF NOT EXISTS playerdata(user VARCHAR(20),password VARCHAR(20),kills INT(5),deaths INT(5),money INT(10),rank INT(2) )");
return 1;
}
אז כאן בעצם מתרחש החיבור לdatabase על ידי mysql_connect
ואז שולחים פקודה לMySQL על ידי mysql_query
הפקודה בעצם מאוד פשוטה.
תיצור טבלה אם לא קיים - [שם הטבלה] ([פרטי המידע, הפריטים או, המשתנים])
אז שם הטבלה הוא playerdata,בתוכו יש מספר פריטים...
כשמגדירים פריט צריך להגדיר את האורך המקסימלי שיהיה אפשר להכניס אליו, וסוגו.
INT זהו בעצם הגדרת משתנה מספרי, והוא מוגבל ל20 מספרים. לדוגמא 12345678912345678910.
VARCHAR בעצם הכנסת מחרוזת, שם לדוגמא. וגם הוא מוגבל!
FLOAT הגדרה של פריט מספרי עשרוני, FLOAT(10,5) זה אומר שהוא יכול להכיל עד ל10 מספרים, כולל העשרוני ו5 בעשרוני.
מספר פקודות שימושיות:
INSERT - הכנסת שורה חדשה (row).בעצם הפקודה הזאת רושמת או יוצרת משתמש חדש בשרת!
PHP Code:
INSERT INTO playerdata ([all of the items we set for this table])
אחרי INSERT יש את INTO ואז שם הטבלה, במקרה שלנו זה playerdata.
אחרי זה, מגדירים את כל המידע שהגדרנו לטבלה.
UPDATE - שינוי פריט או פריטים מסוימים בשורה קיימת.
כמו שאפשר לראות, מכניסים את השם של הטבלה ואחרי SET מגדירים את הפריטים שרוצים לשנות.
PHP Code:
UPDATE playerdata SET online=1,kills=0 WHERE user='x'
אחר כך, אחרי WHERE, נותנים מידע שיעזור למצוא את השורה שאנחנו רוצים להגדיר,
וידוע לנו את השם של השחקן, אז נשתמש בפריט של השם שלו כדי לבחור את השורה שלו.
SELECT - הוצאת מידע משורה/טבלה
אחרי FROM הגדרנו את הטבלה שלנו.PHP Code:
SELECT IP FROM `playerdata` WHERE user = '%s' LIMIT 1
לאחר מכן אחרי WHERE הוספנו את השם של השחקן שלנו...
בהמשך, נלמד איך להשתמש בזה כדי לדעת אם המשתמש רשום או לא, מה שקורה שם זה שהשרת מחזיר 0 או 1 אם יש או אין.
בניית המערכת
אז מה שאני אראה לכם, זה איך לבנות מערכת הרשמה והתחברות מאוד בסיסית, רק כדי לדעת איך לעבוד עם זה.
הורדה למערכת כאן.
לאחר שהורדתם, אני אסביר נקודות חשובות מהמערכת בלבד.
טוב, אז בגלל שכבר הסברתי על INSERT נעבור ישר להתחברות.
לאחר שהמשתמש הכניס את הסיסמא והייתה התאמה בSELECT וכו' וכו'...
הגיע הזמן לטעון את הפריטים מהdatabase לשרת בחזרה.
PHP Code:
SELECT * FROM playerdata WHERE user = '%s'
בחירת השורה (השחקן)PHP Code:
mysql_store_result(); //Store a result because it's a SELECT statement. while(mysql_fetch_row_format(query,"|")) { mysql_fetch_field_row(savingstring, "rank"); pRank[playerid] = strval(savingstring); } mysql_free_result(); //We must always free a stored result
לאחר שבחרנו את השחקן וטענו את התוצאות, צריך להכניס אותם למשתנים, איך?
אנחנו מפרידים כל פריט על ידי |, ככה שאנחנו בודקים את כל הפריטים בשורה עד שמגיעים למשל לrank
ואז אנחנו טוענים את המשתנה של rank למשתנה של הסרבר, וזהו בעצם
אם יש לכם עוד שאלות או כל דבר, תשאלו בתגובות