نحوه ساخت دسته بندي موضوعي

mona.joon

Member
سلام
من يه فرم ثبت آگهي دارم توي سايت, كاربران كه ميخوان آگهي ثبت كنن از ليست يكي از دسته بندي ها رو انتخاب ميكنن مثلا
كامپيوتر > اينترنت > طراحي سايت
ميخوام از اين ليست يك دسته بندي موضوعي درست كنم به اين صورت كه تعداد كل آگهي هائي كه شامل اين موضوع هستند را پيدا كنم , و فقط آگهي هائي كه در موضوع خاصي هستند را نمايش بدم و غيره ...
نميدونم چطور بايد تيبل طراحي كنم براش. لطفا يكي ساختارش رو برام توضيح بده
اگر احتياج به توضيح اضافي هست بگيد.
مرسي
 

Masoud1365

مدیر انجمن
ببینید شما مثلا یه دسته بندی موضوعی دارید که شامل فیلدهای زیر هست :
id,title,parent_id و ...
حالا یه جدول هم دارید برای آگهی هاتون که باید حداقل فیلدهای زیر رو داشته باشه
id, title, category_id, url و بقیه چیزهایی که نیاز دارید
فیلد category_id مربوط میشه به دسته بندی شما که باید id مربوط به هر شاخه رو که میخواهید اونجا اضافه کنید بعدش توی هر دسته ای که هستید آگهی های اون دسته رو نمایش بدید.
موفق باشید
 

mona.joon

Member
ببینید شما مثلا یه دسته بندی موضوعی دارید که شامل فیلدهای زیر هست :
id,title,parent_id و ...
حالا یه جدول هم دارید برای آگهی هاتون که باید حداقل فیلدهای زیر رو داشته باشه
id, title, category_id, url و بقیه چیزهایی که نیاز دارید
فیلد category_id مربوط میشه به دسته بندی شما که باید id مربوط به هر شاخه رو که میخواهید اونجا اضافه کنید بعدش توی هر دسته ای که هستید آگهی های اون دسته رو نمایش بدید.
موفق باشید
مرسي متوجه شدم ولي يه مشكلي هست اونم اينكه من توي دسته بندي هام شايد 50 تا موضوع مختلف داشته باشم كه هر كدوم از اين موضوع ها 50 تا ديگه موضوع جديد دارن
ميتونم id هارو با parent و childeren بدست بيارم ولي از كجا بايد بفهمم كه مثلا id 1 به چه دسته اي اشاره ميكنه؟؟
اسم دسته ها رو از كجا بايد بدست بيارم؟
 

Masoud1365

مدیر انجمن
ببینید خب شما همونطوری که اطلاعات مربوط به یک دسته رو نمایش میدید همونطور هم مشخص هست که هر id به کدام دسته اشاره میکنه !
( البته سوالتون یه مقداری گنگ بود ! )
 

mona.joon

Member
ببینید خب شما همونطوری که اطلاعات مربوط به یک دسته رو نمایش میدید همونطور هم مشخص هست که هر id به کدام دسته اشاره میکنه !
( البته سوالتون یه مقداری گنگ بود ! )
توي فرم اوليه كه براي ثبت آگهي هست , دسته بندي ها توي يه ليست باكس به صورت html هست كه كاربر يكي از اون ها رو انتخاب ميكنه
از اينجا به بعدشو سئوال داشتم كه چجوري بايد توي ديتابيس ثبت بشه.
ليست به اين شكله
PHP:
<option value="163">کامپیوتر و اینترنت &gt; ماشینهای اداری  </option>

خوب الان اگر كاربر اينو انتخاب كنه من مقدار 163 رو دارم كه ميتونم توي ديتابيس ثبت كنم ولي بعد از ثبت از كجا بايد بفهمم به چه دسته اي اشاره داره؟
راه بهتري اگر سراغ داريد براي فرم معرفي كنيد ممنون ميشم .
 

Masoud1365

مدیر انجمن
خب این که با یه کوئری ساده مشخص میشه دیگه !
مثلا این جوری میشه :
PHP:
SELECT * FROM `category` WHERE `id` = 163
بعدش مشخص هست دیگه !
 

mona.joon

Member
خب این که با یه کوئری ساده مشخص میشه دیگه !
مثلا این جوری میشه :
PHP:
SELECT * FROM `category` WHERE `id` = 163
بعدش مشخص هست دیگه !
منظور شما اينه كه هر بار كه id يك موضوع رو در ديتا بيس ثبت ميكنم همراهش اسم اون موضوع رو هم ثبت كنم؟


PHP:
INSERT INTO `category`
            (id, cat_id, groups, titr)
VALUES 
('auto_incerement','163','كامپيوتر و اينترنت','طراحي سايت')
اينجوري براي بدست آوردن تعداد كل مثلا آگهي هاي دسته كامپيوتر و اينترنت به مشكل بر نميخورم؟؟
 

Masoud1365

مدیر انجمن
خیر !
فرض کنیم جدول هامون اینجوری هستند :
PHP:
<?php

/**
 * @author Masoud
 * @copyright 2011
 */

/**
 * In table category ma hast
 */
 id
 title
 parent_id
 ...
 
/**
 * In table advertisment ma hast
 */
 id
 title
 category_id
 ....

?>
حالا فرض کن که دیتا هامون هم اینجوری هستند :
PHP:
<?php

/**
 * @author Masoud
 * @copyright 2011
 */
//category :
id     |     title     |     parent_id
1      |     Test      |       null

//advertisment
id     |     title     |     category_id
1      |     tabligh   |         1

?>
فرض کنیم الان شما در بخش category و در id شماره 1 هستید ! خب تا اینجا که مشکل نیست ؟ با یه کوئری اطلاعات id یک از جدول کتگوری رو میگیرید !
حالا اگر بخواهید تبلیغاتی که باید در این شاخه نمایش پیدا کنند را نشون بدید باید تمام آگهی هایی که category_id اونها برابر با یک هست رو نمایش بدید !
همین !
 

جدیدترین ارسال ها

بالا