הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 18-02-09, 00:19   # 1
0xfo7d
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 292
שלח הודעה באמצעות ICO אל 0xfo7d

0xfo7d לא מחובר  

עזרה | PHP | דחוף!

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

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

באתר עצמו, אני מעוניין לתת לגולש אפשרות של "סינון תוצאות" לפי איזורי מתן שירות.
עשיתי תיבת SELECT בה בוחרים את האיזור הרצוי/עיר ספציפית.
בעת הבחירה הגולש מועבר לכתובת בנוסח כזה בערך:
index.php?action=cards&city=5
משהו בסגנון...
עכשיו מגיע החלק שהסתבכתי בו.
שליפת הכרטיסי עסק מהמסד נתונים אשר בהם איזור מתן השירות תואם את בקשת סינון הגולש.
אם זה היה רק לפי ערים...זו לא בעיה כלל.העניין שאני מעוניין שתהיה אפשרות לסנן לפי איזור שלם...ואז התוצאות יהיו כל כרטיסי העסק שאיזורי מתן השירות שלהם הוא האיזור המתבקש + הערים שבתוך האיזור.

אני מאוד מקווה שאני ברור...אם מישהו לא הבין משהו ממה שרשמתי - מוזמן לשאול.

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

העניין הזה מאוד חשוב ודחוף לי - אשמח אם מישהו יתן פה יד

מתן.
  Reply With Quote
ישן 18-02-09, 00:35   # 2
נריה
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
מיקום: מרכז
גיל: 34
הודעות: 2,122

נריה לא מחובר  

אתה מקבל עיר
ואתה רוצה לשלוף את כל ערים שבאותו איזור שירות?
  Reply With Quote
ישן 18-02-09, 01:01   # 3
Shon12
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 354

Shon12 לא מחובר  

נשמע כאילו הסידור שדות \ טבלאות במסד כנראה לא נכון...
תוכל לנסח שוב רק בפשטות יותר?
__________________
Projector Lamps
  Reply With Quote
ישן 18-02-09, 03:52   # 4
WCMS
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: May 2007
הודעות: 629

WCMS לא מחובר  

אמממ.. אם הבנתי נכון..
יש לך שכונות למשל, ואתה רוצה למצוא את העיר שלהם.. (בלי שזה צויין במסד)
נראה לי תעשה פשוט דרך array למשל
תל אביב..
$area[1][] ="שכונה"

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

מקווה שעזרתי,
יורי.
  Reply With Quote
ישן 18-02-09, 08:08   # 5
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 37
הודעות: 710

vadimg88 לא מחובר  

כן השאלה הנשאלת זה איך אתה שומר את האיזורים והערים במסד?
  Reply With Quote
ישן 18-02-09, 12:18   # 6
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

אשמח אם תעשה תצלום מסך לטבלאות שלך(תגזור רק את הטבלואות מהצילום..)

בגדול- זה מה שאני הייתי עושה:

קוד:
--cards--
id|name|...|subcat_id|cat_id|city_id|zone_id

--city--
id|name|...|zone_id

--zone--
id|name|...

--subcategories--
id|name|...|cat_id

--categories--
id|name|...
מה שאתה עושה זה שולף לפי סאב קטג' ולפי עיר.

**אם אתה רוצה לעשות שיהיה אין סוף תתי קטגוריות אתה עושה ככה:
קוד:
--cards--
id|name|...|cat_id|city_id|zone_id

--catagories--
id|name|...|parent
*השדה parent מכיל את הID של קטג' האב. אם ריק=קטג' ראשית.
*** ...=כל שאר השדות שאתה רוצה

Last edited by AlmogBaku; 18-02-09 at 12:20..
  Reply With Quote
ישן 18-02-09, 13:28   # 7
0xfo7d
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 292
שלח הודעה באמצעות ICO אל 0xfo7d

0xfo7d לא מחובר  

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

מה שאני רוצה לעשות:
סינון תוצאות לפי איזור שלם(כולל הערים שבתוכו) / עיר ספציפית.

איך סידרתי את הטבלאות? כך:
טבלת cards מכילה בתוכה את הפרטים של כרטיס העסק ובנוסף, שדה AREA שבתוכו מוכנס הID של האיזור(במידה והוגדר איזור שלם כאיזור מתן שירות) ושדה CITY בו מוכנס ה ID של העיר(במידה והוגדר רק עיר לאיזור מתן השירות של אותו כרטיס עסק).

טבלת places_cat מכילה בתוכה את האיזורים...נניח איזור הצפון, איזור הדרום, איזור המרכז, ירושלים והסביבה..וכו'.

טבלת places מכילה בתוכה את רשימת הערים כאשר ישנו שדה CAT_ID שמכיל את מספר ה ID של האיזור לו הוא משוייך.


מקווה מאוד שהסברתי הפעם יותר ברור את הבעיה.

תודה רבה.
מתן.
  Reply With Quote
ישן 18-02-09, 13:31   # 8
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

עניתי לך באופן חד משמעי מה הפתרון. תקרא.

אחרי שאתה בונה טבלאות בצורה כזו לא אמרוה להיות לך בעיה.. זה SELECT פשוט
  Reply With Quote
ישן 18-02-09, 13:37   # 9
0xfo7d
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 292
שלח הודעה באמצעות ICO אל 0xfo7d

0xfo7d לא מחובר  

ציטוט:
נכתב במקור על ידי Baku צפה בהודעה
עניתי לך באופן חד משמעי מה הפתרון. תקרא.

אחרי שאתה בונה טבלאות בצורה כזו לא אמרוה להיות לך בעיה.. זה SELECT פשוט
לא ממש הבנתי את הפתרון שהבאת..
מה אני אמור לשים בכל שדה מהשות שרשמת שם ומה הדרך לשלוף נתונים דרך שלושת הטבלאות...

אשמח אם תפרט יותר - תודה מראש.

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


תודה.
  Reply With Quote
ישן 18-02-09, 13:55   # 10
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

ברור- נתתי לך הסבר לגבי הטבלאות איך צריך לבנות אותם. מכאן השאילתות מאוד פשוטות..
PHP קוד:
/**
 * Build custom where statment by the post request
 *
 * @param array $post
 * @return string $where
 */
function _custom_build_where($post=null) {
    if(
$post==null$post=$_POST;
    
    
$where "";
    
$and   false;
    if(!empty(
$post['name'])) {
        if(
$and$where.=" AND";
        
$where .= " `name`='" mysql_real_escape_string($post['name'])."'";
    }
    if(!empty(
$post['city'])) {
        if(
$and$where.=" AND";
        
$where .= " `city_id`='" intval($post['city']);
    }
    if(!empty(
$post['zone'])) {
        if(
$and$where.=" AND";
        
$where .= " `zone_id`='" intval($post['zone']);
    }
    return 
$where;    
}
$where _custom_build_where($_POST);
$query  "SELECT * FROM `prefix_card` WHERE " $where ";";
echo 
$where
  Reply With Quote
השב

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


חוקי פירסום
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. הזמן כעת הוא 09:25.

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