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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 23-01-07, 13:36   # 1
CodeX
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 172

CodeX לא מחובר  

[מדריך] 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;
}
הלולאה תדפיס לנו את כל הרשומות שבמסד (לפי ההדפסה שלי).


תהינו מהמדריך הקיים, ואל תשכחו!
כל הזכויות שמורות 2007.
  Reply With Quote
ישן 23-01-07, 15:22   # 2
ibmod
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,256

ibmod לא מחובר  

תודה
  Reply With Quote
ישן 23-01-07, 15:22   # 3
Level-Serv
תודה על תרומתך!
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אזור השרון
גיל: 35
הודעות: 1,441
שלח הודעה באמצעות ICO אל Level-Serv שלח הודעה באמצעות MSN אל Level-Serv

Level-Serv לא מחובר  

נחמד מאוד..

רק כמה תיקונים:
1. לפי דעתי לולאת while הרבה יותר פשוטה מלולאת for (לולאת for זה שדרוג של while)
2. לגבי לולאת do...while רק אחדד את מה שאמרת והוסיף שהיא תמיד תיכנס בפעם הראשונה ובפעמים לאחר מכן זה תלוי בתנאי אם הוא קיים, כלומר התנאי לא משמש האם להיכנס ללואה כמו לולאת while אלא משמש האם לחזור חזרה על הפעולה.
3. אני רק הוסיף ללולאת foreach שיש את הדוגמא:
PHP קוד:
foreach ($arr as $key => $value) {
   echo 
"Key: $key; Value: $value<br>\n";

כלומר מדפיסים גם את האינדקס וגם את הערך של האיבר.
__________________
בברכה,
ניר
מנהל חברת Level-Serv
  Reply With Quote
ישן 23-01-07, 21:58   # 4
WebProject
מ.תיכנות
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אשדוד
הודעות: 3,070
Send a message via Skype™ to WebProject

WebProject לא מחובר  

תגיד, בכלל בדקת אם נכתב על זה משהו? כי יש פה מדריך שנכתב על ידי BBMAN ולא רק זה אלא שהמדריך שלו מפורט יותר.
__________________
כושר קרבי \ טיפים לגיבושים



פורטל רעל - צבא וכושר קרבי
  Reply With Quote
ישן 24-01-07, 13:37   # 5
CodeX
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 172

CodeX לא מחובר  

כתבתי את המדריך לפורום אחר, והחלטתי לפרסם גם פה?
כאילו זה אמור להפריע שאני מפרסם מדריכים החוזרים על עצמם?
יש הרבה כאלה.
  Reply With Quote
ישן 24-01-07, 21:11   # 6
WebProject
מ.תיכנות
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אשדוד
הודעות: 3,070
Send a message via Skype™ to WebProject

WebProject לא מחובר  

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



פורטל רעל - צבא וכושר קרבי
  Reply With Quote
ישן 24-01-07, 21:45   # 7
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 31
הודעות: 4,086

BlueNosE לא מחובר  

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

תודה רבה על המדריך,
ידוע לי, אבל בכל זאת תודה על ההשקעה.
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 24-01-07, 21:50   # 8
Eli-Hai
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,758

Eli-Hai לא מחובר  

כאשר אתה מגדיר מערך, אתה מגדיר אותו כך -
PHP קוד:
$some_array = array(); 
וכדי להזין לו ערכים, אתה מזין -
PHP קוד:
$some_array[] = "value"
תבדוק שוב את הקוד שלך, אני כמעט בטוח שטעית.
  Reply With Quote
ישן 26-01-07, 11:13   # 9
tnadav
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 216

tnadav לא מחובר  

ציטוט:
נכתב במקור על ידי Eli-Hai צפה בהודעה
כאשר אתה מגדיר מערך, אתה מגדיר אותו כך -
PHP קוד:
$some_array = array(); 
וכדי להזין לו ערכים, אתה מזין -
PHP קוד:
$some_array[] = "value"
תבדוק שוב את הקוד שלך, אני כמעט בטוח שטעית.
למיטב ידיעתי, אין בעיה בקוד
__________________
"אני לא מעצב גרפי... אני לא פלאשר תותח... בטח שלא מנכ"ל של חברת בניית אתרים, כעיקרון אסור לי להיות מועסק.. אבל אני... מתכנת ב-PHP , וגם, לא ממש מציעה.." (יצא לי מוזר משהו...חח)
  Reply With Quote
ישן 26-01-07, 13:21   # 10
ShoQER
מתאורר / יצא בחוץ
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
מיקום: בית נרגילה P:
גיל: 34
הודעות: 413
שלח הודעה באמצעות ICO אל ShoQER שלח הודעה באמצעות MSN אל ShoQER Send a message via Skype™ to ShoQER

ShoQER לא מחובר  

ציטוט:
נכתב במקור על ידי tnadav צפה בהודעה
למיטב ידיעתי, אין בעיה בקוד
הוא צודק...בזה שהגדרתה בלי [] ביטלתה את המערך ובכל פעם הגדרתה ערך שונה למשתנה...כלומר בסופו של דבר הערך היחידי שיהיה זה הערך האחרון שהגדרתה לו...
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
מבוא, מדריך למתחילים, מדריך php

כלים לאשכול
תצורת הצגה

חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 22:57.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ