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

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

0xfo7d 24-02-08 10:12

PHP | הצגת גלרייה בטבלה | איך?
 
שלום....אני בונה מערכת גלרייה תמונות...
כרגע אני עובד על עמוד הצגת הגלרייה...
עכשיו ככה...העניין הוא שאני רוצה שזה יוצג בטבלה...כך שבכל שורה (TR) יהיו 5 תמונות(TD).
את השורה הראשונה אני מצליח יפה מאוד...כי עשיתי שבשאילתה זה יציג רק 5 (limit 5).
אבל מכאן אני מסתבך....ניסיתי לעשות משתנה ספירה(counter) ובעזרתו לבדוק אני מאמין כבר שהבנתם את הנסיון שלי....אך זה לא כ"כ צלח....

אשמח אם תעזרו לי בעניין הזה כי זה טיפטיפה דחוף לי:)

הנה הקטע קוד הרלוונטי(זה שמציג את הגלרייה) :

PHP קוד:

<?
$res2 
mysql_query("SELECT * FROM `works` WHERE `work_cat_id`='".$row["work_cat_id"]."' ORDER BY `work_order` limit 5");
            while(
$row2 mysql_fetch_array($res2)) {



                
?>
        
<td align="center" valign="middle" style="padding-bottom: 10px;">

<table style="width: 126px; height: 65px;margin: 0;border: 1px solid #D6D6D6;">
<tr>
<td style="width: 100%; height: 50px;margin: 0;" align="center" valign="middle"><img src="<? echo $row2['work_logo']; ?>" alt="<? echo $row2['work_name']; ?>" /></td>
</tr>
<tr>
<td style="width: 100%; height: 15px;margin: 0;" class="clientName"><? echo $row2['work_name']; ?></td>
</tr>
</table>

</td>
                <?


            
}


Qweb 24-02-08 11:13

נסה את זה:

PHP קוד:

<?
$res2 
mysql_query("SELECT * FROM `works` WHERE `work_cat_id`='".$row["work_cat_id"]."' ORDER BY `work_order");
$i 0;
            while(
$row2 mysql_fetch_array($res2)) {
if(
$i%5==0) echo "</tr><tr>";



                
?>
        
<td align="center" valign="middle" style="padding-bottom: 10px;">

<table style="width: 126px; height: 65px;margin: 0;border: 1px solid #D6D6D6;">
<tr>
<td style="width: 100%; height: 50px;margin: 0;" align="center" valign="middle"><img src="<? echo $row2['work_logo']; ?>" alt="<? echo $row2['work_name']; ?>" /></td>
</tr>
<tr>
<td style="width: 100%; height: 15px;margin: 0;" class="clientName"><? echo $row2['work_name']; ?></td>
</tr>
</table>
</td>
$i++;
}
                <?


            
}


0xfo7d 24-02-08 11:39

זה לא עבד...זה בלגן טיפה את האתר...אולי זה בגלל שלא נתתי לך ממש את כל הקטע הרלוונטי(כולל תחילת הטבלה וסופה) אז הנה כל הקטע הרלוונטי:

PHP קוד:

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>




        <?php

        $res 
mysql_query("SELECT * FROM `works_categories` WHERE `work_cat_id`='1' ORDER BY `work_cat_order` ASC");
        while(
$row mysql_fetch_array($res)) {

            
$res2 mysql_query("SELECT * FROM `works` WHERE `work_cat_id`='".$row["work_cat_id"]."' ORDER BY `work_order` limit 5");
            while(
$row2 mysql_fetch_array($res2)) {   ?>


<td align="center" valign="middle">

<table style="width: 126px; height: 65px;margin: 0;border: 1px solid #D6D6D6;">
<tr>
<td style="width: 100%; height: 50px;margin: 0;" align="center" valign="middle"><img src="<? echo $row2['work_logo']; ?>" alt="<? echo $row2['work_name']; ?>" /></td>
</tr>
<tr>
<td style="width: 100%; height: 15px;margin: 0;" class="clientName"><? echo $row2['work_name']; ?></td>
</tr>
</table>

</td>
            
            <?
            
}

        }
        
        
?>







</tr>
</table>

יש שתי שאילתות....אחת לקטגוריות אחת לתמונות שבתוך אותה קטגוריה....

אשמח אם עכשיו תנסה לעזור=]

DavidBD 24-02-08 14:16

אתה צריך להעלות כל פעם את I ב-1 , ולעשות כל פעם if שאם I שווה ל-5 אז שיאפס אותו ויעשה עוד TR..

0xfo7d 24-02-08 15:03

ציטוט:

נכתב במקור על ידי DavidBD (פרסם 611393)
אתה צריך להעלות כל פעם את I ב-1 , ולעשות כל פעם if שאם I שווה ל-5 אז שיאפס אותו ויעשה עוד TR..

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

מתן.


עריכה:

תראו...הצלחתי עכשיו בעזרת משתנה ספירה לעשות שזה יעבור שורה...אבל זה עובר רק פעם אחת שורה זה הבעיה...
ז"א ששורה ראשונה הוא שם 5 תמונות....בתמונה ה 6 הוא קופץ לשורה הבאה בדיוק כמו שצריך...אבל בתמונה ה 11 זה לא קופץ שוב לשורה שלישית אלא ממשיך בשורה השנייה...

הקוד הוא:
PHP קוד:

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>




        <?php

        $res 
mysql_query("SELECT * FROM `works_categories` WHERE `work_cat_id`='1' ORDER BY `work_cat_order` ASC");
        while(
$row mysql_fetch_array($res)) {

        
$count 0;

            
$res2 mysql_query("SELECT * FROM `works` WHERE `work_cat_id`='".$row["work_cat_id"]."' ORDER BY `work_order`");
            while(
$row2 mysql_fetch_array($res2)) {   


                if(
$count == 5) {
            
?>

</tr><tr>
<td align="center" valign="middle">

<table style="width: 126px; height: 65px;margin: 0;border: 1px solid #D6D6D6;">
<tr>
<td style="width: 100%; height: 50px;margin: 0;" align="center" valign="middle"><img src="<? echo $row2['work_logo']; ?>" alt="<? echo $row2['work_name']; ?>" /></td>
</tr>
<tr>
<td style="width: 100%; height: 15px;margin: 0;" class="clientName"><? echo $row2['work_name']; ?></td>
</tr>
</table>

</td>


            <?

                
} else {
            
?>
<td align="center" valign="middle" style="padding-bottom: 10px;">

<table style="width: 126px; height: 65px;margin: 0;border: 1px solid #D6D6D6;">
<tr>
<td style="width: 100%; height: 50px;margin: 0;" align="center" valign="middle"><img src="<? echo $row2['work_logo']; ?>" alt="<? echo $row2['work_name']; ?>" /></td>
</tr>
<tr>
<td style="width: 100%; height: 15px;margin: 0;" class="clientName"><? echo $row2['work_name']; ?></td>
</tr>
</table>

</td>
            <?
                
}
        
$count $count 1;        

            }

        }
        
        
?>







</tr>
</table>

אשמח אם תנסו לעזור=]

Daniel 24-02-08 16:56

אני אסביר לך למה זה לא עובד, ומה לעשות, אבל את הקוד תכתוב בעצמך.

אתה אומר לו שאם זה שווה 5 - אז זה מוסזיף עוד TR.

אז הוא רץ, בודק, כשהוא מגיע ל-5 - הוא שם TR, מעלה ב-1. זה 6, ומכאן הוא בחיים לא יחזור ל-5 ויוסיף עוד TR.

יש לך אפשרות אחת - ברגע שזה 5, לא רק שזה מוסיף TR, זה גם מאפס את $i. אפשרות שניה היא להשתמש במודולו - שארית. מתי X / Y = שארית 0.
מתי מספר הניסיונות מתחלק ב-5.

25 &#37; 5 = 0

pirsomet 24-02-08 16:58

אולי ככה?
קוד:

<table width="100&#37;" border="0" cellpadding="0" cellspacing="0">
<tr>




        <?php

        $res = mysql_query("SELECT * FROM `works_categories` WHERE `work_cat_id`='1' ORDER BY `work_cat_order` ASC");
        while($row = mysql_fetch_array($res)) {

        $count = 0;

            $res2 = mysql_query("SELECT * FROM `works` WHERE `work_cat_id`='".$row["work_cat_id"]."' ORDER BY `work_order`");
            while($row2 = mysql_fetch_array($res2)) { 


                if($count == 5) {
            ?>

</tr><tr>
<td align="center" valign="middle">

<table style="width: 126px; height: 65px;margin: 0;border: 1px solid #D6D6D6;">
<tr>
<td style="width: 100%; height: 50px;margin: 0;" align="center" valign="middle"><img src="<? echo $row2['work_logo']; ?>" alt="<? echo $row2['work_name']; ?>" /></td>
</tr>
<tr>
<td style="width: 100%; height: 15px;margin: 0;" class="clientName"><? echo $row2['work_name']; ?></td>
</tr>
</table>

</td>


            <?

  $count = 0;

                } else {
            ?>
<td align="center" valign="middle" style="padding-bottom: 10px;">

<table style="width: 126px; height: 65px;margin: 0;border: 1px solid #D6D6D6;">
<tr>
<td style="width: 100%; height: 50px;margin: 0;" align="center" valign="middle"><img src="<? echo $row2['work_logo']; ?>" alt="<? echo $row2['work_name']; ?>" /></td>
</tr>
<tr>
<td style="width: 100%; height: 15px;margin: 0;" class="clientName"><? echo $row2['work_name']; ?></td>
</tr>
</table>

</td>
            <?
                }
        $count = $count + 1;       

            }

        }
       
        ?>







</tr>
</table>


0xfo7d 24-02-08 17:02

חברה תודה רבה על היחס והנסיון לעזור...
את שתי התגובות האחרונות כבר לא הספקתי לנסות ולממש...זאת מכיוון שהסתדרתי...עזר לי מישהו במסנג'ר...
הטעות שלי הייתה שאת הבדיקה למשתנה ספירה שמתי מחוץ ללולאה=\

בכל אופן תודה רבה לכם.

יום טוב,
מתן.

Daniel 24-02-08 18:06

ד"א, לאחר הסתכלות מהירה, הגעתי למסקנה שהיעילות בדבר הזה היא ממש גרועה, לדוגמא יש X עבודות? אז הוא צריך לעשות 2x שאילתות, אני בטוח שאת הכל היית יכול לצמצם ב-JOIN.
ואם אתה מתכוון להקים על זה אתר/לתת ללקוח, זה יכול להוות אלמנט מאוד מאוד חשוב.

0xfo7d 25-02-08 15:20

ביטלתי את השאילתות הכפולות...מהסיבה שלא באמת הייתי צריך...אבל...באתרים אחרים אני כן אצטרך....איך אני מחבר בינהם?

מקווה שהייתי ברור...


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

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