النتائج 1 إلى 12 من 12

الموضوع: سؤال عن الروابط العربية و طريقة الاستعلام من قاعدة البيانات

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947

    Smile سؤال عن الروابط العربية و طريقة الاستعلام من قاعدة البيانات



    السلام عليكم
    حياكم الله اعضاء سوالف الكرام
    الكثير من المواقع اعتمد الروابط العربية .. و سؤالي خصوصاً عن فكرة العمل التي يتبعها نظام (جملة)
    حيث ان العناوين تكون بدون id ولا اي شىء يميز المقال عن غيره من المقالات الاخرى غير عنوان الموضوع نفسه
    لهذا اتعجب كيف يتم تمييز الموضوع عن غيره من الموضوعات
    للتوضيح اكثر هذا مثال للروابط من موقع قصة الاسلام المبني بنظام جملة:

    هذا الرابط يشير الى قسم :
    http://www.islamstory.com/ملفات_ساخنة/

    وهذا الرابط يشير الى مقال:
    http://www.islamstory.com/من-يحاصر-الاخر-غزة-ام-اعداؤها

    لاحظ هنا لا يوجد اي اختلاف بين الرابطين مع ان الاقسام يكون لها جدول منفصل عن المقالات غير انه لايوجد اي id او تاريخ انشاء او اي كود يدل على انه مقال او قسم او حتى للتمييز بينه وبين المقالات الاخرى

    كنت اعتقد ان ال(/) الموجودة في الاخر تميز الرابطين لكن جربت ازالتها واضافتها في كلا الحالتين والرابط يعمل بشكل صحيح 100%
    بل واذا عدلت قليلا في العنوان العربي يقوم تلقائيا بعمل ريفرش وكتابة العنوان الصحيح مرة اخرى وفتح الصفحة الصحيحة

    كيف اذا يتم الاستعلام من قاعدة البيانات وعلى اي اساس يتم تحديد هل هذا الرابط لقسم ام لمقال؟
    واعتقد انه لا يتم الاستعلام من القاعدة بالعنوان لان العنوان قد يتشابه في بعض المقالات فكيف يتم الاستعلام؟

    هل لديكم علم بهذه الفكرة ؟ او هل يستطيع احد تحليلها لنا؟





    التعديل الأخير تم بواسطة مهندس مصرى ; 30-10-2010 الساعة 04:45 PM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    انا ابحث في ذات الموضوع (url routing)
    هذا مصدر عن جوملا
    لكن يشرح بشكل عام وليس عن هذه الحالة
    http://docs.joomla.org/Routing

    في حالة تشابه ال rule للقسم والمقالة اعتقد (ولكن لست متأكدًا)
    ان النظام يبحث عن ال slug او الاسم الذي في العنوان
    لكل من المقالة والقسم
    ويعرض الشيء المناسب حسب النتيجة

    بالنسبة لعنوان المقالة في الرابط (slug )فهو لا يمكن ان يكون متشابهًا لأكثر من مقالة
    جربت الامر على السريع في الوردبرس
    واعتقد ان الطريقة مشابهه في جوملا ايضًا

    برمجت في السابق كلاس يقوم بتحديد rules معينة ثم يعرض القسم المناسب حسبها
    مثلا
    كود PHP:
    /posts/[method]/[post_name
    المتغيرات وضعتها في []

    ويتميز هذا النظام بامكانية تغيير شكل الروابط من لوحة التحكم
    كيف؟
    ملف ال htaccess يحول كل الطلبات إلى الصفحة index.php
    وهي تتعامل مع الروابط بطريقتها.

    هكذا يعني:
    كود PHP:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase 
    /cms/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_FILENAME} !-d
    RewriteRule 
    . /cms/index.php [L]
    </
    IfModule
    لي عودة للموضوع...






  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    أشكرك يا أخ احمد على المعلومات المفيدة التي كتبتها
    وجيد أن يتم تحويل الروابط الى ملف ال index.php بحيث يتم التعامل معها برمجياً
    لقد اطلعت على الرابط الخاص بشرح جملة وفهمته بشكل جيد
    لكن هذه الحالة التي بالموقع (قصة الاسلام) ليس فيها slug
    ال slug المذكور هو عبارة عن id+title مع تنظيف و اجراء تعديل وازالة الاضافات والاكواد من ال title ووضعه في حقل منفصل باسم alias
    بحيث يكون الشكل النهائي للعنوان او ال slug كالتالي:
    1­-welcome­-to­-joomla
    ال id هو 1
    وال alias هو welcome­-to­-joomla

    دمجهما معاً ينتج ال slug

    واظن هذه الطريقة سهلة طالما عرفنا ال id بالعنوان فيمكن فصله برمجياً او حتى من ال mod_rewrite نفسه
    لكن في الموقع (قصة الاسلام) لا يوجد id في العنوان وكذلك لا يوجد اي شىء يفرق بين ان هذا عنوان لقسم ام مقال
    اعتقد ان جملة يستخدم فكرة اخرى غير هذه الفكرة والسبب حتى اني عندما غيرت بعض الكلمات من العنوان نفسه لم يخرج رسالة خطأ بل قام الموقع تلقائياً بتعديل العنوان الى العنوان الصحيح
    واليك مثال على ذلك

    http://www.islamstory.com/من-يحاصر-الاخر-غزة-ام-اعداؤها

    http://www.islamstory.com/من-يحاصر-ا...داؤؤؤها

    لاحظ كررت ال ؤؤؤ 3 مرات في الرابط الاخير

    اما الغريب ايضا عندما غيرت في هذا الرابط

    http://www.islamstory.com/ملفات_ساخنة/

    الى

    http://www.islamstory.com/ملفات_ساخنننة/
    او
    http://www.islamstory.com/ملفات_ساخنةةة/

    ستجد انه سيحولك الى موضوع آخر وهو
    http://www.islamstory.com/اتفاقية-ال...ت-ساخنة/





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2010
    المشاركات
    412


    أعتقد السر فى
    _
    و
    -
    إن كان قسم كان الرابط يحتوى على _
    وإن كان مقالة يتم الفصل بين الكلامات ب -





    التعديل الأخير تم بواسطة ahmadmarafa ; 05-11-2010 الساعة 08:28 PM
    __________________
    إصبر على كيد الحسود فإن صبرك قاتله ...
    أرسل خريطة موقعك لمحركات البحث

  5. #5
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    فيها وجهة نظر

    لكن ماذا لو كان اسم القسم او المقالة كلمة واحدة فقط





    التعديل الأخير تم بواسطة ahmad sadiq ; 05-11-2010 الساعة 10:58 PM

  6. #6
    عضو فعال
    تاريخ التسجيل
    Feb 2003
    المشاركات
    1,174


    الروابط الي تحتوي على _ هي الأقسام و الروابط الي تحتوي على - هي المقالات ،

    هذه طريقة الفصل بينهما





    __________________
    منابر المتميز | شبكة المتميز
    حالياً في الأردن : 962777775774
    -----------------------------------
    مطور ويب / JS(incl AJAX) , PHP, XML

    تتبعني في Twitter

  7. #7
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    عن طريق _ و -

    و إذا حدث تشابه (أو كان عباره عن كلمة واحده) يتم إضافة مُمَيٌز مثلاً -2 فى حالة موضوع أو _2 حالة قسم

    مجرد إعتقاد






  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    نعم جزاكم الله خيراً جميعاً .. قد يكون التفرقة عن طريق _ او - حلاً للمشكلة
    لكن ستظل المشكلة قائمة اذا كان العنوان عبارة عن كلمة واحدة كما قال الاخ احمد صديق
    اعتقد انه يمكن التغلب على هذه المشكلة باضافة كلمة اضافية مميزة في حالة القسم
    لكن اردت ان اشارككم لنعرف سر العمل بهذه الطريقة

    لكن لاحظت ان الموقع لا يستخدم _ او - للتفرقة .. وهذا مثال لرابطين لقسمين مختلفين

    http://www.islamstory.com/فى-مثل-هذا-اليوم/

    http://www.islamstory.com/أخبار_العالم/

    وهذا ايضا مثال لمقالين مختلفين

    http://www.islamstory.com/وفاة_على_أمين

    http://www.islamstory.com/الأحد-غرة-شهر-ذي-الحجة
    قد يكون تم اضافة شروط عناوين الاقسام يدوياً اي لكل قسم شرط خاص به .. لكن استبعد هذا الاحتمال كون البرمجية عبارة عن (مجلة جملة) اي برمجة جاهزة





    التعديل الأخير تم بواسطة مهندس مصرى ; 07-11-2010 الساعة 02:30 AM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    بعد إضافتك الأخيره .. مجرد تخيل آخر :

    لماذا نريد التفرقة بين القسم و الموضوع ؟

    الجواب : حتى نعرف من أى جدول سنستعلم هل هو من جدول ال topics أم جدول ال categories ?


    ماذا لو كان الإثنان فى جدول واحد .. إذاً لن تحتاج لشئ لتفرق بينهما ..


    الجدول سيكون كالتالى

    title type

    إذا كان موضوع أضع فى خالنة type كلمة topic و إذا كان قسم أضع كلمة category

    سأستعلم بال title و أحصل على ال type و من ثم أقوم بعمل include للملف المناسب





    كود PHP:

    $_title 
    $_GET['title'];

    $sql mysql_query("SELECT type FROM table WHERE title='$_title'");
    $result mysql_fetch_array($sql);

    if(
    $result['type'] == 'topic'){

    include_once(
    'show_topic.php');

    }elseif(
    $result['type'] == 'category'){

    include_once(
    'show_category.php');

    }else{

    echo 
    "Wrong Imagination :)";








    التعديل الأخير تم بواسطة khashabawy ; 07-11-2010 الساعة 03:28 AM

  10. #10
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


    ما اجده قريب للصواب هو اخر رد لخشباوي ، بحيث المقالات و الاقسام في جدول واحد مع اضافة حقل type من نوع ENUM مثلاً يحمل القيمتين "cat","article" و هناك حقل slug أحادي(unique) بحيث يتم جلب القسم او المقالة عبر الslug و من خلال القاعدة يتم التعرف على نوعيته : قسم - مقالة .
    هذا تحليلي ..





    __________________
    راسلني

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2010
    المشاركات
    412


    مجرد رأى ,
    فى حالة كانت الزيارة مباشرة , يتم الإستعلام فى جدول الأقسام اولاً إن كان فى الجدول يتم التعامل معه على هذا الحال , ثم نذهب إلى الرابط الجديد , إن كان يحتوى على / وكان له referer كان الرابط الجديد لقسم فرعى ويتم التعامل معه على هذا الأساس
    وإن لم يكن فى جدول الأقسام يتم التعامل معة على أساس إنه رابط لموضوع ,
    تحياتى





    __________________
    إصبر على كيد الحسود فإن صبرك قاتله ...
    أرسل خريطة موقعك لمحركات البحث

  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    جزاكم الله خيرا جميعاً على هذه الافكار .. فعلاً التعاون ينتج الكثير من الأفكار .. وهذا ما اردته من الموضوع
    وجائتني فكرة كتعديل على فكرة الاخ خشباوي بدلاً من عرض المقالات والاقسام في جدول واحد لأنه لا تشابه بينهم اطلاقا في عناصر الجدول
    ما المشكلة لو قمنا بعمل جدول اضافي يحتوي على ثلاثة حقول id - type - slug
    ال id هو رقم الاي دي للقسم او المقال
    وال type هو النوع قسم او مقال
    وال slug هو العنوان المطلوب ويكون عبارة عن احرف طبعاً

    وعند طلب الرابط نقوم بالاستعلام عن ال slug ونجلب ال id او نقوم بربطها مباشرة باستخدام inner join مع جدول المقالات او الاقسام على حسب ال type

    اما في حالة تشابه اكثر من عنوان لنفس القسم او المقال اعتقد انه لا يوجد حل غير اضافة مميز لل slug يحمل ال id الخاص بالمقال او اي كود يميز الموضوع كتاريخ الانشاء مثلا بالتاريخ والوقت او نقوم بعمل حقل خاص يحتوي على كلمة مميزة لهذا الموضوع ونقوم باضافة هذه الكلمة لل slug

    اذا كانت لديكم افكار اخرى نرجو طرحها كي تعم الفائدة ..

    أخ ahmadmarafa .. فكرتك جميلة جزاك الله خيراً .. لكن من الممكن ان تواجه مشكلة اذا تشابه اسم القسم مع اسم مقال وهذا احتمال مستبعد نوعاً ما لكن قد يحدث
    لكن أنا اتوقع ان يكون الموقع المذكور يعمل بالطريقة التي ذكرتها





    التعديل الأخير تم بواسطة مهندس مصرى ; 10-11-2010 الساعة 03:28 AM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض