הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שליפה מהמסד בלולאה כל פעם רקע שונה (https://hosts.co.il/forums/showthread.php?t=74363)

SniR-S 09-05-09 14:09

שליפה מהמסד בלולאה כל פעם רקע שונה
 
נניח שיש לי לולאה, שהיא בעצם שולפת מהמסד את כל הנתונים ע"פי השאילתא.
סתם דוגמא:
HTML קוד:

<div class="row1">הודעה 1</div>
<br clear="all" />
<div class="row2">הודעה 2</div>

וכן הלאה..
אם אני רוצה להוציא בפלט פעם אחת שה class של ההודעה הראשונה יהיה row 1
ושל ההודעה השניה יהיה row2, איך עושים את זה?

Speed 09-05-09 14:30

תציב תנאי
PHP קוד:

if ($index%2==0)
        print 
"row1";
else
        print 
"row2"


SniR-S 09-05-09 16:03

לא הבנתי, מה המשתנה index
מה זה %?

Speed 09-05-09 16:09

את index תעלה באחד בכל סיבוב של הלולאה:
PHP קוד:

$index++ 

% זה אופרטור, mod (שארית החילוק).
במילים אחרות התנאי שכתבתי אומר אם המספר של ההודעה הוא זוגי תדפיס row1 אחרת row2.

Shillo 09-05-09 17:46

פשוט מה שSpeed אמר לך רק ש:

קוד:


foreach($res as $rows=>$i)
{
$row_no = $i%2+1;
echo '<div class="row'.$row_no.'">';
}


SniR-S 10-05-09 17:53

תודה, זה עזר לי, אבל אם אני רוצה ליצור 3 או יותר ? איך אפשר לעשות את זה?
לא מצאתי דרך \:

Daniel 10-05-09 19:27

אתה מעוניין לדעת איך לעשות את זה או מעוניין שיתנו לך את הקוד?

אם זה האפשרות הראשונה, אתה יודע מה 5 % 2 לדוגמא מסמן?

% = מודולו, שארית.

בשביל העניין,
HTML קוד:

5 % 2 = 1
זה השארית.

ולכן, נגיד ש-$i הוא מספר השורה.
HTML קוד:

0 % 2 = 0
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1

כל פעם המספר המשתנה ($i) מודולו 2 יקבל שארית שונה - מספר אי זוגי שמוסיפים לו אחד הופך לזוגי (מתחלק ב-2 ללא שארית) ומספר זוגי שמוסיפים לו אחד הופך לאי זוגי (מתחלק ב-2 עם שארית 1)

מובן?

Shay Ben Moshe 10-05-09 19:40

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 714216)
תודה, זה עזר לי, אבל אם אני רוצה ליצור 3 או יותר ? איך אפשר לעשות את זה?
לא מצאתי דרך \:

אתה עושה צחוק? ;P
0%3 = 0
1%3 = 1
2%3 = 2
3%3 = 0
4%3 = 1
.
.
.

נניח אתה רוצה של חמישה רקעים שונים אתה יוצר משתנה שם בו 0.
PHP קוד:

$i=0

יוצא לולאה או משהו שנותן את הנתונים
PHP קוד:

foreach($row as $name=>$value) { 

יוצר תוצאה שתיהיה מודולו 5 של המשתנה + 1. מעלה אותו באחד אח"כ.
PHP קוד:

    $result $i%5+1;
    
$i++; 

כותב את מה שצריך ומסיים:
PHP קוד:

    echo "<div class=\"class$result\"><h3>$name</h3><p>$value</p></div>";


לסיכום:
PHP קוד:

$i=0;
foreach(
$row as $name=>$value) {
    
$result $i%5+1;
    
$i++;
    echo 
"<div class=\"class$result\"><h3>$name</h3><p>$value</p></div>";



כמובן שזה רק דוגמה...


בהצלחה!

Shillo 10-05-09 21:54

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 714216)
תודה, זה עזר לי, אבל אם אני רוצה ליצור 3 או יותר ? איך אפשר לעשות את זה?
לא מצאתי דרך \:

אז תגיד מה אתה רוצה, למרות שהסבירו לך למעלה.
בכל מקרה, ככל שאתה רוצה יותר, אתה משנה את שארית החלוקה "2" במספר אחר, לדוגמא:
אם אתה רוצה להציג " 1 2 3 4" אז מה שתרשום זה:

קוד:

number % 4 + 1


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

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