View Single Post
ישן 08-10-05, 00:40   # 1
somebody
A Al Alm Almo Almog!
תודה על תרומתך!
 
somebody's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: hadera CiTy
גיל: 33
הודעות: 4,005
שלח הודעה באמצעות MSN אל somebody

somebody לא מחובר  

[מדריך] SQL - מדריך למתחילים (*מומלץ!)

השאילתה שולפת לנו נתונים מטבלה מסוימת (tablename) שאת שם הטבלה אתם מגדירים לפי מה שאתם רוצים.
וcolumnume אפשר הוא שם העמודה ממנה אתם רוצים לשלוף.
במיקרה ורוצים לשלוף ממספר עמודות כותבתים ככה:
PHP קוד:
SELECT columnume,columnume2,columnume3 FROM tablename 
כאשר כל columnume אחד מציין עמודה אחרת.
ניתן לכתוב גם:
PHP קוד:
SELECT FROM tablename 
אשר שולף את כל העמודות מהטבלה, אבל פעולה זאת איננה יעילה ויותר איטית במיקרה ולא משתמשים בכל העמודות בטבלה הרצויה.
לכן לא רצוי לעשות זאת.

דבר נוסף שרצוי לכתוב זה ככה:
HTML קוד:
SELECT tablename.columnume  FROM tablename
מה שעשינו פה זה פשוט לומר שאנו רוצים לשלוף מטבלה מסוימת את העמוה המסוימת, שזה הרבה יותר יעיל ונירא לי גםם יותר מהיר.

שלב שני, WHERE.
עד עכשיו כתבנו שאילתה בסיסית ביותר אשר רק שולפת נתונים ולא צינו לה איזה נתונים, אלה היא שולפת את כל הנתונים.
כדאי להגדיר איזה נתונים לשלוף אנו משתמשים ב WHERE, WHERE מאפשר לנו לומר לשאילתה לשלוף נתונים איפה ש... משהו או שווה למשו(a=b), או גדול ממשו(a>b), או קטן ממשהו(a<b), או שווה וקטן ממשהו(a<=b), או גדול ושווה למשהו(a>=b), או שונה מ..(a<>b)ישלוף לנו את כל העמודות בהן a שונה מ b.
.

כיצד כותבים זאת?
PHP קוד:
SELECT tablename.columname FROM tablename WHERE columename=something 
כמו שראיתם המבנה הוא אותו מבנה רק שהוספנו WHERE ואחריו את פרמט ההשווה. כמובן שניתן להחליף את השווה לכל סימן אחר.
לא לשכוח כאשר משווים לכל דבר שהוא לא מספרים יש להוסיף גרש(') לפני המשתנה או פרמט ההשווה וגרש בסוף הפרמט/משתנה ההשווה. עוד לזכור שגם כאשר משווים בתאריך יש לכתוב גרש כמו בטקסט, ועוד שבמסד נתונים מסוג ACCESS יש לכתוב # במקום גרש במקרה של השוואת תאריכים!. בMYSQL(מסד מסוג) יש לכתוב גרש.

דבר נוסף הוא שאם עמודה מסוימת שאנו משווים לה איננה מוגדרת כ(int ב mysql או כ מספר/number ב אקסס) אז יש לתחוב את הביטוי המושווה בתוך גרש(') משני צדדיו.
זאת אומרת:
PHP קוד:
WHERE columename='sometext' 
ואם השדה מוגדר כמספר אז ככה:
PHP קוד:
WHERE columename=number 
עכשיו תאריכים.
כאשר העמודה המושוות מוגדרת כ תאריך כל שהוא לדוגמא TIME או DATE יש לתחוב(עדיין כשור לWHERE עניין תחיוות הביוטי) בתין גרש(') במסד מסוג MYSQL ובמסד מסוג אקסס יש לתחוב את התאריך בסולמיט(#).
זאת אומרת:
באקסס ככה:
PHP קוד:
WHERE columename<>%19/09/1786
ובMYSQL ככה:
PHP קוד:
WHERE columename<>'1786-09-19' 
כמובן שלא חייב שונה אפשר כל סימן אחר. אפילו LIKE שעליו תוכלו ליקרוא בסוף המדריך.

דבר נוסף שיחלתם ליראות הוא שבMYSQL התאריך כתוב בצורה שונה.
מה שאומר שצרכים פונקציה מסויימת אשר תסדר את התאריך כי MYSQL לא מקבל תאריכים השונים מסדר זה.
(עכשיו אני מדבר רק לאלו אשר מתכנתים בASP עם VBS).
מתכנתי PHP אנא אם יש לכם כוח תרגמו את הפונקציה לPHP וכיתבו אותה ואני כבר אכתוב אותה במדריך. ואכתוב כמובן שאתם כתבתם.
זאת הפונקציה:
PHP קוד:
aday=day(date())
amonth=month(date())
ayear=year(date())
if 
len(aday)<2 then aday=0&aday
if len(amonth)<2 then amonth=0&amonth
adate
=ayear&"-"&amonth&"-"&qyear 
ואז להכניס להשוות את התאריך למשתנה ADATE או אך שלא תיקראו לו.

זהו חלק ראשון בהודעה מתחת יש המשך, אין לי מושג למה הפורום הגביל אותי
__________________
דוא"ל: almog.zimel ב ג'מייל נקודה קום
מסנג'ר: almog שטרודל freetopsite נקודה co נקודה il


Last edited by somebody; 08-10-05 at 11:09..
  Reply With Quote