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

الموضوع: استعلام+معايير+جدولين ؟؟؟

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    55

    استعلام+معايير+جدولين ؟؟؟



    السلام عليكم .. لدي جدولين
    كود PHP:
    create table teacher (
    id int unsigned not null auto_increment primary key,
    name varchar(20not null,
    sub varchar(10not null
    );

    create table school (
    id int unsigned not null auto_increment primary key,
    schoolname varchar(40not null,
    adress varchar(20not null ,
    phone varchar(20not null
    ); 
    أود أن أقوم بتطبيق كود البحث التالي
    كود PHP:
    <form method="POST" action="search.php">
     
      
    كلمة البحث <input type="text" name="T1" size="20"><br>
      
    معيار البحث <select size="1" name="D1">
      <
    option>اسم المدرسة</option>
      <
    option>التخصص</option>
      <
    option>العنوان</option>
      </
    select></p>
      <
    p><input type="submit" value="بحث" name="B1"></p>
    </
    form
    بحيث يكون معيار البحث ..مرة باسم المدرسة أو باسم المادة او بالتخصص
    السؤال ...كيف يمكن ان استخلص النتائج من الجدولين .. بحيث تظهر البيانات التالية في أي نتيجة
    م(رقم) - اسم المعلم - أسم المدرسة - التخصص- العنوان
    شاكر ومقدر ..مقدما





    __________________
    لَيْسَ الغَريبُ غَريبَ الشَّأمِ واليَمَنِ ***إِنَّ الغَريبَ غَريبُ اللَّحدِ والكَفَنِ
    sorry_php غير متواجد حالياً


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2004
    المشاركات
    437


    طريقة البحث داخل جدولين او ثلاثه من هنا
    http://www.albdre.com/lessons.php?op=list&id=3





    albdre غير متواجد حالياً

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    55


    شكرا جزيلا اخي الكريم .. طبقت ما في درسك ... وظهر هذا الخطاء
    Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\teacher\show.php on line 15
    وهذ الكود الذي استخدمته
    كود PHP:
    <?
    echo "<html dir=rtl>";
    include
    "config.php";
    $query "SELECT id,name,sub,schoolname  FROM teacher,school WHERE teacher.id=school.id ";
    $result=mysql_query($query);
     echo
    " <table border=1 width=100%>";
     echo
    " <td width=5% align=center bgcolor=#BFCEF2><b>الرقم</b></td>";
     echo
    " <td width=25% align=center bgcolor=#BFCEF2><b>أسم المعلم</b></td>";
     echo
    " <td width=15% align=center bgcolor=#BFCEF2><b>التخصص</b></td>";
     echo
    " <td width=15% align=center bgcolor=#BFCEF2><b>اسم المدرسة</b></td>";
       while (
    $row=mysql_fetch_array($result)) {
     echo
    " <tr>";
     echo
    " <td width=5% align=center bgcolor=#F5F7CE>$row[id]</td>";
     echo
    " <td width=25% align=center bgcolor=#F5F7CE>$row[name]</font></td>";
     echo
    " <td width=15% align=center bgcolor=#F5F7CE>$row[sub]</td>";
     echo
    " <td width=15% align=center bgcolor=#F5F7CE>$row[schoolname]</td>";
     echo
    " </tr>";
     }
     echo
    "</table>";
    ?>
    ما الحل ؟؟
    السطر 15
    while ($row=mysql_fetch_array($result)) {





    __________________
    لَيْسَ الغَريبُ غَريبَ الشَّأمِ واليَمَنِ ***إِنَّ الغَريبَ غَريبُ اللَّحدِ والكَفَنِ
    sorry_php غير متواجد حالياً

  4. #4
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,454


    الحقل id موجود بنفس الاسم في كلا الجدولين وبالتالي لايمكن التعرف على الجدول الذي تريد الاختيار منه في الاستعلام التالي

    SELECT id,name,sub,schoolname FROM teacher,school WHERE teacher.id=school.id

    يجب ان تضع اسم الجدول للحقل الذي تريد اختياره مثلا
    SELECT teacher.id,name ...





    __________________
    شبكة مملكة العرب
    ---------------------
    استضافة مواقع تبدأ من 100 ريال سنويا
    خطط خاصة للموزعين
    سكربت دليل المواقع
    www.aknet.com
    code4arab غير متواجد حالياً

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    55

    Smile



    code4arab الله يوفقك ... غيرت حسب كلامك وضبط 100%100
    الان .. ممكن أحد يتكرم و يدلني كيف استخدم switch مع معايير البحث الموجودة في الكود
    كود PHP:
    <form
    method
    ="POST" action="search.php">
     
      
    كلمة البحث
    <input type="text" name="T1" size="20"><br>
      
    معيار البحث <select size="1" name="D1">
      <
    option>اسم المدرسة</option>
      <
    option>التخصص</option>
      <
    option>العنوان</option>
      </
    select></p>
      <
    p><input type="submit"
    value="بحث"
    name="B1"></p>
    </
    form
    بحيث تكون النتيجة حسب الاستعلام ( اسم المدرسة - العنوان - التخصص )
    ودمتم سالمين





    __________________
    لَيْسَ الغَريبُ غَريبَ الشَّأمِ واليَمَنِ ***إِنَّ الغَريبَ غَريبُ اللَّحدِ والكَفَنِ
    sorry_php غير متواجد حالياً

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


    عين قيمة للخيار باستخدام الباراميتر value
    <option value="schoolname">اسم المدرسة</option>
    وهكذا لبقية الخيارات

    الان يمكنك الاستعلام بالطريقة التالية
    SELECT school.*,teacher.* FROM school,teacher WHERE $D1='$T1'

    ان شاء الله يكون هالشرح البسيط واضح ومفيد





    __________________
    شبكة مملكة العرب
    ---------------------
    استضافة مواقع تبدأ من 100 ريال سنويا
    خطط خاصة للموزعين
    سكربت دليل المواقع
    www.aknet.com
    code4arab غير متواجد حالياً

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    55


    بارك الله فيك اخي الكريم ... تم الموضوع بنجاح ... ولكن هناك شئ غريب في الكود هو أن النتائج تظهر كاملة اذا كانت الصفوف متعادلة العدد في الجدولين ... اما اذا كانت الصفوف غير متساوية العدد ... تظهر النتائج ناقصة ..ما السبب؟
    كود PHP:
    <?
    echo "<html dir=rtl>";
    include
    "config.php";
    switch (
    $D1)
    {
    case 
    "schoolname";
    $query =mysql_query("SELECT school.*,teacher.* FROM school,teacher WHERE $D1='$T1' and school.id=teacher.id");
    echo
    " <table border=1 width=100%>";
     echo
    " <td width=5% align=center bgcolor=#BFCEF2><b>الرقم</b></td>";
     echo
    " <td width=25% align=center bgcolor=#BFCEF2><b>أسم المعلم</b></td>";
     echo
    " <td width=15% align=center bgcolor=#BFCEF2><b>التخصص</b></td>";
     echo
    " <td width=15% align=center bgcolor=#BFCEF2><b>اسم المدرسة</b></td>";
       while (
    $row=mysql_fetch_array($query)) {
     echo
    " <tr>";
     echo
    " <td width=5% align=center bgcolor=#F5F7CE>$row[id]</td>";
     echo
    " <td width=25% align=center bgcolor=#F5F7CE>$row[name]</font></td>";
     echo
    " <td width=15% align=center bgcolor=#F5F7CE>$row[sub]</td>";
     echo
    " <td width=15% align=center bgcolor=#F5F7CE>$row[schoolname]</td>";
     echo
    " </tr>";
     }
     echo
    "</table>";
    break;
    case 
    "sub";
    $query =mysql_query("SELECT school.*,teacher.* FROM school,teacher WHERE $D1='$T1' and school.id=teacher.id");
    echo
    " <table border=1 width=100%>";
     echo
    " <td width=5% align=center bgcolor=#BFCEF2><b>الرقم</b></td>";
     echo
    " <td width=25% align=center bgcolor=#BFCEF2><b>أسم المعلم</b></td>";
     echo
    " <td width=15% align=center bgcolor=#BFCEF2><b>التخصص</b></td>";
     echo
    " <td width=15% align=center bgcolor=#BFCEF2><b>اسم المدرسة</b></td>";
       while (
    $row=mysql_fetch_array($query)) {
     echo
    " <tr>";
     echo
    " <td width=5% align=center bgcolor=#F5F7CE>$row[id]</td>";
     echo
    " <td width=25% align=center bgcolor=#F5F7CE>$row[name]</font></td>";
     echo
    " <td width=15% align=center bgcolor=#F5F7CE>$row[sub]</td>";
     echo
    " <td width=15% align=center bgcolor=#F5F7CE>$row[schoolname]</td>";
     echo
    " </tr>";
     }
     echo
    "</table>";
    break;
    case 
    "adress";
    $query =mysql_query("SELECT school.*,teacher.* FROM school,teacher WHERE $D1='$T1' and school.id=teacher.id");
    echo
    " <table border=1 width=100%>";
     echo
    " <td width=5% align=center bgcolor=#BFCEF2><b>الرقم</b></td>";
     echo
    " <td width=25% align=center bgcolor=#BFCEF2><b>أسم المعلم</b></td>";
     echo
    " <td width=15% align=center bgcolor=#BFCEF2><b>التخصص</b></td>";
     echo
    " <td width=15% align=center bgcolor=#BFCEF2><b>اسم المدرسة</b></td>";
       while (
    $row=mysql_fetch_array($query)) {
     echo
    " <tr>";
     echo
    " <td width=5% align=center bgcolor=#F5F7CE>$row[id]</td>";
     echo
    " <td width=25% align=center bgcolor=#F5F7CE>$row[name]</font></td>";
     echo
    " <td width=15% align=center bgcolor=#F5F7CE>$row[sub]</td>";
     echo
    " <td width=15% align=center bgcolor=#F5F7CE>$row[schoolname]</td>";
     echo
    " </tr>";
     }
     echo
    "</table>";
    break;
    }

    ?>






    __________________
    لَيْسَ الغَريبُ غَريبَ الشَّأمِ واليَمَنِ ***إِنَّ الغَريبَ غَريبُ اللَّحدِ والكَفَنِ
    sorry_php غير متواجد حالياً

  8. #8
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,454


    بنظرة سريعة على الكود يوجد به مشكلتين:

    الاولى: لا داعي لاستخدام switch
    الثانية: يجب تحدد الجدول المراد عرض النتائج منه في الاستعلام
    SELECT * FROM school WHERE $D1='$T1'

    حيث ان المتغير D1 يحتوي على اسم احد الحقول في جدول school





    __________________
    شبكة مملكة العرب
    ---------------------
    استضافة مواقع تبدأ من 100 ريال سنويا
    خطط خاصة للموزعين
    سكربت دليل المواقع
    www.aknet.com
    code4arab غير متواجد حالياً

  9. #9
    عضو نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    55


    الله يوفقك ... جزاك الله الف خير





    __________________
    لَيْسَ الغَريبُ غَريبَ الشَّأمِ واليَمَنِ ***إِنَّ الغَريبَ غَريبُ اللَّحدِ والكَفَنِ
    sorry_php غير متواجد حالياً





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

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

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