معهد دعم اتش فى اى بى اس لحلول الويب - Powered by vBulletin


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

الموضوع: درس ربط جدولين ببعض ( عمل أقسام )

  1. #1
    المشرف العام
    الصورة الرمزية HVIPS1


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 3
    الدولة: eygpt
    المشاركات: 2,778
    HVIPS1 غير متواجد حالياً

    Arrow درس ربط جدولين ببعض ( عمل أقسام )


    درس ربط جدولين ببعض ( عمل أقسام )

    بسم الله


    وبوجود استفسارات حول موضوع ربط الجداول ببعض وعمل أقسام .. حبيت اكتب هالدرس البسيط عسى أن يكون مفهوم للجميع ..

    أول شيء نعمل جدولين ..
    - جدول أقسام الأخبر
    - جدول أخبار

    جدول أقسام الأخبار نضع به فقط رقم الآي دي وعنوان الخبر بكل سهولة :
    كود PHP:
    CREATE TABLE `cat` (
    `
    id` int(11) NOT NULL auto_increment,
    `
    title_cat` varchar(40) NOT NULL,
    PRIMARY KEY (`id`)
    )
    TYPE=MyISAM AUTO_INCREMENT=1 ;

    جدول الأخبار نضع به الحقول
    آي دي الخبر - عنوان الخبر - نص الخبر بالاضافة إلى حقل جديد يربط هذا الخبر بالقسم التابع له
    كود PHP:
    CREATE TABLE `news` (
    `
    id` int(11) NOT NULL auto_increment,
    `
    title_news` varchar(40) NOT NULL,
    `
    text` text NOT NULL,
    `
    catid` int(5) NOT NULL ,
    PRIMARY KEY (`id`)
    )
    TYPE=MyISAM AUTO_INCREMENT=1 ;


    مثل ما تلاحظون حقول واضحه جدا .. باستناء حقل catid وهو المهم هنا ..

    طيب نعمل صفحة اضافة قسم جديد ..
    كود PHP:
    <?php
    include"config.php";

    echo
    ' <h3> أضف قسم جديد </h3>';
    echo
    '
    <form action="addcat.php?do=add" method="post" />
    عنوان القسم : <br />
    <input type="text" name="title_cat" /> <br />
    <input type="submit" value=" أضف القسم " />
    </form>
    '
    ;

    /////////////////////////////////// Add cat

    if($do=="add"){

    $addcat=mysql_query("insert into cat (title_cat)values('$title_cat') ");
    if(
    $addcat){ echo' تم اضافة القسم بنجاح '; }
    else { echo
    ' هناك خطأ .. لم تتم إضافة القسم بنجاح '; }
    }

    ?>

    لا أظن أنها تحتاج إلى شرح ..
    بعد كذا نعمل ملف اضافة الأخبار .. وسنشرحه ..
    كود PHP:
    <?php
    include"config.php";

    echo
    ' <h3> أضف خبر جديد </h3>';
    echo
    '<form action="addnews.php?do=add" method="post" />';
    echo
    "إختر القسم المناسب : ";
    echo
    "<select name='catid'>";
    $e= mysql_query("select * from cat");
    while(
    $row=mysql_fetch_array($e)){
    extract($row);
    echo
    "<option value='$id'>$title_cat</option>";
    }
    echo
    '</select> <br/>
    عنوان الخبر : <br />
    <input type="text" name="title_news" /> <br />
    نص الخبر :
    <br />
    <textarea name="text"></textarea> <br />
    <input type="submit" value=" أضف الخبر " />
    </form>
    '
    ;

    /////////////////////////////////// Add ..

    if($do=="add"){
    $addcat=mysql_query("insert into news (catid,title_news,text)values('$catid','$title_new s','$text') ");
    if(
    $addcat){ echo' تم اضافة الخبر بنجاح '; }
    else { echo
    ' هناك خطأ .. لم تتم إضافة الخبر بنجاح '; }
    }

    ?>



    أهم شيء هنا هو :
    كود PHP:
    echo"إختر القسم المناسب : ";
    echo
    "<select name='catid'>";
    $e= mysql_query("select * from cat");
    while(
    $row=mysql_fetch_array($e)){
    extract($row);
    echo
    "<option value='$id'>$title_cat</option>";
    }

    عملنا قائمة وحددنا اسمها بـ catid
    بعد ذلك عملنا استعلام من جدول الاقسام ليظهر لنا جميع الأقسام ضمن قائمة منسدلة
    لاحظ أننا وضعنا قيمة الاوبشن هي id القسم وثم عرضنا الاسماء بواسطة المتغير title_cat
    نغلق بعدها علامة الـ select
    كود PHP:
    echo'</select> <br/>';

    بعد ذلك نضيف الخبر بطريقة عادية جدا .. لأنه عندما تختار أحد الأقسام ستكون قيمة المتغير catid هي قيمة التغير $id تبع القسم .. فمثلا لو اخترت قسم أخبار الرياضة وكان رقم القسم 3 ستخزن في المتغير catid القيمة 3 ..
    وعندما تضيف الخبر للجدول سيكون عنوانه مثل
    انتقال لاعب - ونص الخبر : تم انتقالا اللاعب الى الفريق الجديد - ومن ثم حقل catid سيخزن به رقم 3 وهو رقم قسم الاخبار التابع له هذا الخبر ....... وصلت المعلومة ؟؟ نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    بعد كذا نعمل استعلام سهل لجميع الاقسام في الصفحة الرئيسية ..
    كود PHP:
    include"config.php";
    $cat= mysql_query("select * from cat ");
    while (
    $row = @mysql_fetch_array($cat)) {
    extract($row);

    echo
    "
    - <a href='show.php?id=$id'>
    $title_cat </a>
    <br />
    "
    ;
    }

    بشكل سهل جدا .. بحيث جعلنا عنوان القسم عبارة عن رابط .. الرابط يؤدي إلى صفحة عرض الأخبار ولكن ليس جميع الأخبار الموجودة لدينا ستظهر ... ! لا .. بل فقط الأخبار التي يحتوي الـ catid على رقم القسم نفسه ..

    يعني .. رابط قسم أخبار الرياضة مثلا سيكون كالتالي
    show.php?id=3
    لأن آي دي القسم هو 3

    بعد ما يودينا الى صفحة ال show.php
    تابع ..
    كود PHP:
    <?php
    include"config.php";
    $id=$_GET['id'];

    // show cat title ..
    $cat= mysql_query("select * from cat where id='$id' ");
    while (
    $row = @mysql_fetch_array($cat)) {
    extract($row);
    echo
    " <h3>جميع أخبار القسم : $title_cat</h3> ";
    }

    // show all news in this cat ..
    $cat= mysql_query("select * from news where catid='$id' ");
    while (
    $row = @mysql_fetch_array($cat)) {
    extract($row);
    echo
    " - $title_news <br /> ";
    }
    ?>

    أول شيء وبما أننا دخلنا على هذه الصفحة عن طريق رابط كالتالي :
    show.php?id=3
    إذاً .. نجلب هذا الآي دي عن طريق
    كود PHP:
    $id=$_GET['id'];

    بعد كذا نظهر عنوان القسم عن طريق الاستعلام من جدول الأقسام ولكن بشرط .. لا تظهر جميع عناوين الأقسام .. لا .. فقط أظهر لي عنوان القسم اللي الآي دي تبعه هو 3 يعني الآي دي تبعه هو اللي جايني من فوق من الرابط ..
    كود PHP:
    $cat= mysql_query("select * from cat where id='$id' ");

    ثم المهم الآن .. نعرض أخبار هذا القسم فقط ..
    نستعلم من جدول الأخبار ونقوله أظهر جميع الأخبار اللي في الجدول لكن بشرط .. أظهر فقط الأخبار اللي الحقل catid تبعها يساوي ماهو موجود عندنا وهو حاليا 3 -- أي يساوي رقم القسم اللي نحن موجودين فيه الآن ..
    كود PHP:
    $cat= mysql_query("select * from news where catid='$id' ");

    ومن ثم نطبع الأخبار ... !
    كود PHP:
    while ($row = @mysql_fetch_array($cat)) {
    extract($row);
    echo
    " - $title_news <br /> ";
    }

    أتمنى وضحت الفكرة يارب ..



    التطبيق كامل في المرفقات ...
    الملفات المرفقة
    • نوع الملف: zip cat.zip‏ (3.0 كيلوبايت, 80 مشاهدات)
    توقيع <font color=HVIPS1 ">
     
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

 

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

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