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

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

SniR-S 15-12-09 18:36

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

לכן מה שאני רוצה לעשות, זה להציג קודם כל
האפשרות / קטגוריה הראשונה שתיהיה בשדה ה select (מבלי לשנות אותו)
היא תיהיה הקטגוריה שאליה הכתבה משוייכת.

אני חייב רעיון איך לעשות את זה \:
תודה.

LeXos 15-12-09 19:41

לא הבנתי מה אתה רוצה לעשות:|
תנסה להסביר יותר..... אם אפשר תמונה/לינק משו'.....

SniR-S 15-12-09 21:48

יש לי את הקוד הבא
PHP קוד:

    <select name="cat">
        
$query "SELECT * FROM cat_mytable ORDER BY order_cat";
        
$result mysql_query($query);

    while (
$row mysql_fetch_array($result)) {
        
$id $row['id'];
        
$name $row['name_cat'];
echo <<<EOF
        <option value="{$id}">{$name}</option>
EOF;
}
    </
select

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

בקיצור, בתיבת בחירה, הסדר הולך לפי הסידור order_cat ..
כאשר יש לי תיבת בחירה עם האופציות הבאות (לדוגמא):
מוסיקה
ספרים
מחשבים
כלי צייד
ציוד הגברה

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

לדוגמא כמו יד 2,
כאשר תיכנס לקישור הבא:
http://www.yad2.co.il/Cars/Car.php?A...romHand=&Hand=

בשדה הבחירה "יצרן", יהיה כתוב לך "ב.מ.וו"
ותחת השדה בחירה "דגם" יהיה כתוב לך "M6" .. כמו שבחרתי.
למרות זאת, שברירת המחדל היא מה שיש כאן:
http://www.yad2.co.il/Cars/Car.php
(ברירת המחדל, ב"יצרן" זה "בחר יצרן", וב-"דגם" זה "בחר דגם").

בקיצור ולסיכום, אני רוצה שזה יהיה כמו ב-יד 2
אני מקווה שהסברתי את עצמי יותר טוב ומובן.

SniR-S 16-12-09 10:46

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

מצאתי את הפתרון, עם קצת חשיבה הגיונית ועמוקה יותר,
הגעתי לתוצאה הרצוייה שלי.

אז אני אוסיף כאן את הקוד גם, אולי מישהו ישתמש או ישאל על זה בעתיד.
PHP קוד:

echo "    <select name=\"cat\">";

    
$query mysql_query("SELECT cat FROM mytable WHERE id = '$id' ");
        
$result mysql_fetch_assoc($query);
        
$cat $result['cat'];

    
$query mysql_query("SELECT * FROM cat_mytable WHERE id = '$cat' ");
        
$row mysql_fetch_assoc($query);
        
$id $row['id'];
        
$name $row['name_cat'];
    echo <<<EOF
        <option value="{$id}">{$name}</option>
EOF;
    
$query mysql_query("SELECT * FROM cat_mytable WHERE id != '$cat' ORDER BY order_cat");
    while(
$row mysql_fetch_assoc($query)) {
        
$id $row['id'];
        
$name $row['name_cat'];
    echo <<<EOF
        <option value="{$id}">{$name}</option>
EOF;
}

echo 
"    </select>"



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

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