IOPanel

חזור   IOPanel > דבר חופשי > תוכנה ומערכות הפעלה > תיכנות
עמוד ראשי הירשם חיפוש הודעות מהיום סמן פורומים כנקראו

תיכנות פורום בנושאי תיכנות , פיתוח אתרים , שפות תיכנות , אפליקציות סלולר וטאבלטים.

תוכנה ומערכות הפעלה : תיכנות

[PHP] מדריך ללולאות .

לולאות אוקיי ראיתי שלולאות זה נושא לא מובן להרבה מתכנתים מתחילים, זה סביר, גם אני לא הבנתי מה זה בדיוק, ...
תגובה
 
קישור חוזר הגדרות אשכול אפשרויות הצגת נושא
ישן 25-12-08, 13:10   #1 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Jun 2008
הודעות: 338
ברירת מחדל [PHP] מדריך ללולאות .

לולאות

אוקיי ראיתי שלולאות זה נושא לא מובן להרבה מתכנתים מתחילים, זה סביר, גם אני לא הבנתי מה זה בדיוק, אך לאט לאט תבינו כמה זה שימושי

אז מה זה בעצם לולאה?
לולאה, זה קוד, המתבצע כמה פעמים, לפי קביעה מסוימת שלנו, או לפי תנאי.

לשם מה צריך לולאות?
אוקיי, הרבה פונים אלי באייסי שלא יודעים איך לעשות נתונים בשליפה אחת מהמסד, במקום לשלוף מהמסד נתונים אחדים אחדים,
עושים לולאה אחת, וזה מבצע כבר את כל הפעולה!
כן מה ששמעתם!

אם יש לכם 100 רשומות במסד? תשלפו הכל אחד אחד?
עושים לולאה של 3 שורות, ויש לכם שליפה של כל 100 הרשומות!
אז נתחיל?

איזה סוגי לולאות קיימות?
בPHP, קיימות 4 סוגי לולאות, for, while, do while, foreach.
כולם עושים את אותה הפעולה, אך בדרכים שונות.

נתחיל מהלולאה הפשוטה ביותר, For
לולאת הFor היא לולאה פשוטה המובנת מ-3 מרכיבים, משתנה, תנאי, ומקדם.
הכוונה היא שאנו קובעים משתנה מסוים, לו יש תנאי, ואז מגיע המקדם שלו,
לאחר מכן פשוט עושים הדפסה.

הלולאה נראת ונכתבת כך:
קוד:
for(מקדם;תנאי;משתנה) {
הדפסה
}
נגיד ואנו רוצים לעשות לולאה שתספור עד, בוא נגיד אממ.. 79,
נעשה זאת הקביעה של המשתנה (מאיזה מספר להתחיל את הספירה), התנאי (האם 1 יותר גדול / שווה ל79), והמקדם (ימשיך את הלולאה),
לאחר מכן עושים הדפסה והופ, יש לנו ספירה מדהימה!
להלן הדוגמא:
קוד:
for($num=1;$num<=79;$num++) {
echo "$num,";
}
הלולאה תדפיס לנו את כל המספרים מ-1 ועד 79.

אז הבנתם מה זה לולאה?
קדימה, תכירו עוד סוגי לולאות.


לולאת While
עברנו ללולאה הבאה בשם While, בעצם גם היא כוללת 3 מרכיבים, משתנה, תנאי ומקדם.
אם התנאי הוא אמת, בתוך הלולאה יש הדפסה, ומתחתיה מקדם.

הלולאה נכתבת כך:
קוד:
$num = 1;
while($num <= 210) {
echo "$num,";
$num++;
}
מה הלולאה תעשה?
תדפיס את כל המספרים ללא יוצא מן הכלל, מ-1 ועד 210.


לולאת Do While
לולאת הDo While מאוד דומה ללולאת הWhile שלמדנו מקודם, רק שהיא שונה בדבר אחד,
הלולאה הזו, קודם מבצעת את הפעולה, ורק אז בודקת את התנאי.

הלולאה נכתבת כך:
קוד:
$num = 1;
do {
echo "$num,";
}
while (++$num=<210)
נראה לי שתבינו שהלולאה תדפיס שוב, את כל המספרים מ-1 ועד 210.


לולאת Foreach
לולאת הForeach, דומה לחברותיה, אך היא בעצם יותר מיועדת למערכים.
הללואה בעצם עוברת על כל אברי המערך, ובעצם מדפיסה את כל אברי המערך.
היא נעצרת כאשר מגיעה לסוף המערך.
הקוד נכתב להלן:
קוד:
$names[] = array(); 
$names[] = "nitay";
$names[] = "dor";
$names[] = "idan";
foreach ($names as $while) {
echo "$while,";

}
נראה לי שדי ברור מה שעשיתי, עשיתי מערך עם הערכים, nitay, dor, idan.
הלולאה תדפיס את כל הערכים של המערך $names.

ולמי ששואל, למה צריך as $while, זאת שאלה טובה,
PHP רוצה לא ליצור תסבוכות, ולכן הוא שומר את כל המערך, במשתנה חדש.
(זאת לפחות, הסיבה ההגיונית ביותר שחשבתי עליה).

ונגיד אנו רוצים לשלוף את כל הרשומות מהמסד, באיזה לולאה הכי טוב להשתמש?
ת'אמת כולם טובות, אבל הייתי ממליץ להשתמש בWhile.
הכי פשוט לעשות את זה דרכה.

דוגמא לשליפה עם While:
קוד:
$select = mysql_query("SELECT * FROM subject ORDER BY id"); 
while($row = mysql_fetch_array($select)) {
$id = $row['id'];
$subject = $row['subject'];
echo<<<END
<a href="index.php?p=$id">$subject</a>
END;
}
הלולאה תדפיס לנו את כל הרשומות שבמסד (לפי ההדפסה שלי).



סתם הערה, המדריך הזה כתבתי לפני שנתיים וחשבתי שיהיה נחמד להביא לכאן D:
תהנו ותלמדו.

נערך לאחרונה על ידי NitaY, 25-12-08 בשעה 13:40.
NitaY לא מחובר   הגב עם ציטוט
ישן 25-12-08, 13:17   #2 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Aug 2007
הודעות: 435
שלח הודעה דרך MSN אל YosiAT
ברירת מחדל

מדריך נחמד,
הדוגמא עם הWHILE בסוף די מתקדמת למי שרק מתחיל ללמוד לולאות.

בFOREACH כאשר יצרתה מערך שמות שכחתה משהו אחד-
ציטוט:
$names[] = "idan";
אם אני לא טועה
YosiAT לא מחובר   הגב עם ציטוט
ישן 25-12-08, 13:41   #3 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Jun 2008
הודעות: 338
ברירת מחדל

ציטוט:
פורסם במקור על ידי YosiAT צפה בהודעה
מדריך נחמד,
הדוגמא עם הWHILE בסוף די מתקדמת למי שרק מתחיל ללמוד לולאות.

בFOREACH כאשר יצרתה מערך שמות שכחתה משהו אחד-


אם אני לא טועה
צודק, תיקנתי.
NitaY לא מחובר   הגב עם ציטוט
ישן 25-12-08, 15:05   #4 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Nov 2007
הודעות: 324
שלח הודעה דרך ICQ אל matanco שלח הודעה דרך AIM אל matanco שלח הודעה דרך MSN אל matanco
ברירת מחדל

אחלה עבודה אבל לדעתי קצת קפצת מוקדם מידי כגון שימוש בלולאת foreach שיש עדין אנשים שלא יודעים מערכים וגם בדוגמא של WHILE עם השליפה מהמסד...
__________________

המשותף בין וירוס למערכת לווינדוס.
"שניהם מועתקים ומועברים ממחשב למחשב במהירות."
"שניהם משתמשים במשאבי מערכת יקרים ובכך מאיטים את פעולתה."
"שניהם ידפקו מדי פעם את הדיסק הקשיח או לוח האם."
"שניהם נישאים ומועברים ממחשב למחשב יחד עם תוכנות שימושיות."
"שניהם גורמים למחשבה שהמערכת איטית ושצריך לשדרג את המחשב."
"שניהם יוצאים כל הזמן בגרסות חדשות שגורמות יותר ויותר נזק."
בברכה,
מתן כהן.
matanco לא מחובר   הגב עם ציטוט
ישן 25-12-08, 15:07   #5 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Jun 2008
הודעות: 338
ברירת מחדל

זה פשוט מדריך שכתבתי בעבר, אז חשבתי שאולי זה יעזור פה לאנשים, אם צריך אני אעזור לך לכתוב את הבסיס.
NitaY לא מחובר   הגב עם ציטוט
ישן 25-12-08, 20:24   #6 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

מה בקשר ללולאת DO WHILE שנכנסים תמיד לאיטרציה הראשונה ללא תנאי ורק מהאיטרציה השנייה בודקים את התנאי (לא הכי שימושי אבל קיים בכל שאר השפות)?
האם זה קיים ב PHP?
static לא מחובר   הגב עם ציטוט
קישור פירסומי
ישן 25-12-08, 20:28   #7 (קישור ישיר)
IO Banned
 
סמל האישי של LoMpEx`
 
תאריך הצטרפות: Apr 2008
הודעות: 1,808
שלח הודעה דרך ICQ אל LoMpEx`
ברירת מחדל

עריכה : לא יצא טוב אני אתקן ואערוך שוב.
LoMpEx` לא מחובר   הגב עם ציטוט
תגובה


הגדרות אשכול
אפשרויות הצגת נושא

חוקי משלוח הודעות
אתה לא יכול לשלוח הודעות חדשות
אתה לא יכול לשלוח תגובות
הינך לא יכול לצרף קבצים להודעותיך
אתה לא יכול לערוך את הודעותיך

vB code הינו פועל
סמיילים הינו פועל
קוד [IMG] הינו פועל
קוד HTML הינו כבוי
Trackbacksהינו פועל
Pingbacks הינו פועל
Refbacks הינו פועל


כל הזמנים הם GMT +3. השעה כרגע היא 22:34.





מופעל על ידי: vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO
IOPanel.net © כל הזכויות שמורות