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

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

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2004
    المشاركات
    678

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



    السلام عليكم

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

    المشكلة
    هي اني اريد ان استخرج احد البنرات واضعه في اعلى الصفحة
    والبنر رقم 2في وسط الصفحة
    واريد ان اضع البنر رقم 3 في اسفل الصفحة
    طبعا شرط البنر موجود في حقل اسميته مثلا nombar


    عملت هذا الكود لكن مشكلته انه يضع النتايج مكررة تحت بعض
    وانا احتاج ان اضع كل نتيجة في مكان احدده من الصفحة وليست ورى بعض
    فكرت ان اكرر هذا الكود في كل مكان اريد ان اضع فيه بنر ولكن اعتقد انه سيكون ثقيل على السيرفر
    كود PHP:
    // هذا الكود يضع لي النتايج  تحت بعض وانا اريد ان اغير كل نتيجة في مكان محدد من الصفحة
         
    $query "SELECT * FROM ads";
         
    $result mysql_query($query);

         while(
    $ads mysql_fetch_row($result))
         {
           echo
    "$ads[0] <br>";
           echo
    "$ads[1] <br>";
           echo
    "$ads[2] <br>";
           echo
    "$ads[3] <br>";
         } 



    المشكلة باختصار :
    اريد ان استعلم من قاعدة البيانات بشرط احد الحقول واذا تحقق هذا الشرط لا يطبع لي الا الصف الذي يوجد فيه الشرط
    مثلا الشرط اسم الموقع = سوالف سوفت
    لا يطبع الا السجل الخاص بسوالف سوفت


    اتمنى ان تكون مشكلتي واضحة وان اجد لديكم الحل





    __________________
    سبحان الله وبحمده ..... سبحان الله العظيم

    اول موقع متخصص في جمع البرامج المعربة
    الريان نت للبرامج المعربة
    www.ar1ar.com


  2. #2


    بسم الله الرحمن الرحيم

    اخي الفاضل
    اضف بعد جملة الاستعلام شرط الاستعلام where
    اي يصبح الكود :

    كود PHP:
    $query "SELECT * FROM ads where nombar='1"
    حيث الرقم 1 هو رقم الاعلان الذي تريد

    واذا كنت تريد وضع البانرات في الصفحة في عدة اماكن لاتضع الشرط ووزع الecho في الاماكن التي تريدها بمعنى
    echo"$ads[0]
    في اعلى الصفحة
    و echo"$ads[1]
    في الاسفل مثلا
    وهكذا بدلا من وضعهم تحت بعض

    اتمنى اكون افدتك بشيء

    arabip (@) arabip .com
    م/حسام القاضي
    مجموعة المحترفون العرب للإنترنت
    المدير العام
    0020122893415
    شركة رسمية مسجلة
    121 عمارات الفتح (الشرطة) شقة 2- إمتداد عباس العقاد - مدينة نصر - القاهرة - جمهورية مصر العربية






    __________________
    المحترفون العرب للإنترنت
    http://www.arabip.com
    arabip @ arabip.com
    من داخل جمهورية مصر العربية 01222893415
    من خارج جمهورية مصر العربية 00201222893415

  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2004
    المشاركات
    678


    بارك الله فيك اخي Arabip.com
    عمل الكود تمام

    لكن اعتقد ان هذا يرهق السيرفر ويوخر فتح الصفحة لان انا عندي 8 بنرات في الصفحة واحد في الاعلى وسته بالوسط وواحد بالاسفل .. ولا اعتقد انك تقصد ان اضع هذا الاستعلام في كل مكان يظهر فيه البنر..
    اضافة الى ان كل الصفحة استعلامات اخرى ولكن كلها من جدول واحد وتعتبر استعلام واحد مكرر تقريب ابطريقة بسيطة


    بالانتظار ....





    __________________
    سبحان الله وبحمده ..... سبحان الله العظيم

    اول موقع متخصص في جمع البرامج المعربة
    الريان نت للبرامج المعربة
    www.ar1ar.com

  4. #4


    بسم الله الرحمن الرحيم

    بالفعل يرهق السيرفر لو انك عملت عدة استعلامات
    لكن في حالتك لاتحتاج سوى لاستعلام واحد في اول الصفحة مثلا ثم تقوم بوضع
    echo"$ads[1]
    فيمكان ظهور البانر رقم واحد
    و
    echo"$ads[2]
    في مكان ظهور الثاني وهكذا
    وبهذا يكون عندك استعلام واحد فقط
    $query = "SELECT * FROM ads";

    ونتائجه تعرضها كل واحد في مكانه

    لو في شيء ماهو واضح ارجو تفسره لي وتحت امرك ان شاء الله

    arabip (@) arabip .com
    م/حسام القاضي
    مجموعة المحترفون العرب للإنترنت
    المدير العام
    0020122893415
    شركة رسمية مسجلة
    121 عمارات الفتح (الشرطة) شقة 2- إمتداد عباس العقاد - مدينة نصر - القاهرة - جمهورية مصر العربية






    __________________
    المحترفون العرب للإنترنت
    http://www.arabip.com
    arabip @ arabip.com
    من داخل جمهورية مصر العربية 01222893415
    من خارج جمهورية مصر العربية 00201222893415

  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2004
    المشاركات
    678


    اقتباس المشاركة الأصلية كتبت بواسطة Arabip.com
    لكن في حالتك لاتحتاج سوى لاستعلام واحد في اول الصفحة مثلا ثم تقوم بوضع
    echo"$ads[1]
    فيمكان ظهور البانر رقم واحد
    و
    echo"$ads[2]
    في مكان ظهور الثاني وهكذا
    وبهذا يكون عندك استعلام واحد فقط
    $query = "SELECT * FROM ads";

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

    دعني اعطيك الكود الذي صنعت وعجزت عن اكماله
    كود PHP:
    /*قراءة كامل معلومات السجل
    ( بشرط  السجل الذي يحتوي على الحقل رقم 5 )
    */
           
    $query "SELECT * FROM ads where nombar='5'" ;  
           
    $result mysql_query($query);
          
    $ads mysql_fetch_row($result); // وضع معلومات السجل في مصفوفة

    /*
    التالي :  طباعة معلومات السجل المختار سابقا ( رقم 5) 000
    وهذه المعلومات المطبوعة هي اسم الموقع ورابطه 
    */
           
    echo "<a href='$ads[2]'>$ads[3]</a>"
    مثلا طبعت ما سبق في اعلى الصفحة
    واريد ان اطبع معلومات السجل رقم 4 في اسفل الصفحة
    ومعلومات السجل رقم 1 و 2 و 3 في وسط الصفحة
    فهل في كل مرة استعلم من القاعدة .. سيكون مرهقا للسيرفر ويبطي الصفحة





    __________________
    سبحان الله وبحمده ..... سبحان الله العظيم

    اول موقع متخصص في جمع البرامج المعربة
    الريان نت للبرامج المعربة
    www.ar1ar.com

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Jul 2003
    المشاركات
    240


    اسمح لي أخي Arabip.com أن أقوم بالمساعدة

    على افتراض ان الجدول لديك بالشكل التالي:

    banner هو البنر نفسه
    link هو رابط الموقع
    name هو اسم الموقع

    نقوم باستخراج المعلومات من الجدول مرة واحده ووضعها في مصفوفة بالشكل التالي:
    كود PHP:
    $sql "SELECT * FROM ads";
    $result mysql_query ($sql);
    while ( 
    $row mysql_fetch_array ($result) )
    {
    $my_banner[]['banner'] = $row['banner'];
    $my_banner[]['link'] = $row['link'];
    $my_banner[]['name'] = $row['name']
    }
    // الآن يمكنك استخدام الآتي في أي مكان تريد
    echo $my_banner[0]['banner']; // يطبع البنر من السجل الأول
    echo $my_banner[1]['banner']; // يطبع البنر من السجل الثاني
    echo $my_banner[5]['title']; // يطبع عنوان الموقع من السجل الخامس
    // وهكذا 
    لم أقم بالتجربة، لكن أعتقد أن الكود يعمل بالشكل الصحيح





    __________________
    بوجبر

    http://www.ba7reny.com
    بحريني دوت كوم (موقع صديق)

  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2004
    المشاركات
    678


    مشكور اخوي M-Plus

    ابجرب الكود وان شاء الله ينجح


    تحياتي





    __________________
    سبحان الله وبحمده ..... سبحان الله العظيم

    اول موقع متخصص في جمع البرامج المعربة
    الريان نت للبرامج المعربة
    www.ar1ar.com

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2004
    المشاركات
    678


    بعد التجربة اخوي هذي هي النتيجة

    كود PHP:
    $sql "SELECT * FROM ads";
    $result mysql_query ($sql);
    while ( 
    $row mysql_fetch_array ($result) )
    {
    $my_banner[]['banner'] = $row['banner'];
    $my_banner[]['link'] = $row['link'];
    $my_banner[]['name'] = $row['name'];
    }
    // الآن يمكنك استخدام الآتي في أي مكان تريد
    echo $my_banner[0]['banner']; //نعم  يطبع البنر من السجل الأول
    echo $my_banner[0]['name']; //نعم  يطبع الاسم من السجل الأول

    echo $my_banner[1]['banner']; // لم يطبع شيء
    echo $my_banner[5]['name']; // لم يطبع شيء   طبعا مع تغيير اللازم
    // وهكذا 
    يعني لم يستطع القراءة الا من السجل الاول


    وشيء مهم جدا وهو اني اريده يقرا بشرط احد الحقول وليس برقم id او ترتيب السجل في قاعدة البيانات
    اريده يقرا بشرط حقل nombar يحتوي على ارقام مثلا 1 للبنر الاول مع كامل معلوماته .. 4 للبنر الرابع مع كامل معلوماته ... وهكذا

    استفدت من كودك الكثير ولكن ليس في حاجتي هذه

    لازلت ابحث عن حل ....





    __________________
    سبحان الله وبحمده ..... سبحان الله العظيم

    اول موقع متخصص في جمع البرامج المعربة
    الريان نت للبرامج المعربة
    www.ar1ar.com

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


    كود PHP:
    $sql "SELECT * FROM ads WHERE nombar BETWEEN 1 AND 6"
    $result mysql_query ($sql); 
    while ( 
    $row mysql_fetch_assoc($result) ) 
    {
        
    $my_banner[$row['nombar']]['banner'] = $row['banner']; 
        
    $my_banner[$row['nombar']]['link'] = $row['link']; 
        
    $my_banner[$row['nombar']]['name'] = $row['name'];
    }
    echo 
    $my_banner[5]['banner']; // يطبع البنر للسجل nombar=5 وهكذا... 
    في الاستعلام تجد between 1 and 6 <-- سيرجع لك المعلومات من 1 الى 6، و هكذا.... لو كانت الأرقام لديك غير مرتبه استخدم التالي
    كود PHP:
    SELECT FROM ads WHERE nombar IN(1,7,25,234,5500
    سيرجع لك المعلومات التي يكون فيها nomabar يساوي 1 و 7 و 25 و 234 و 5500


    أتمنى أن يكون هذا هو المطلوب :con2: (هذا الكود يعمل وقد قمت بتجربته)


    بوجــــــــــــبر :nice:





    __________________
    بوجبر

    http://www.ba7reny.com
    بحريني دوت كوم (موقع صديق)

  10. #10
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2004
    المشاركات
    678


    M-Plus
    بارك الله فيك وجزاك الله كل خير

    فعلا الكود عمل معي وحليت لي مشكلة عقدتني ... راجعت اغلب الدروس اللي عندي واللي اعرفها في سوالف وغيرها ولا وصلت لنتيجة

    ولكن انت ما قصرت وحليت لي المشكلة باقصر الطرق

    تحياتي لك يا الغالي





    __________________
    سبحان الله وبحمده ..... سبحان الله العظيم

    اول موقع متخصص في جمع البرامج المعربة
    الريان نت للبرامج المعربة
    www.ar1ar.com

  11. #11
    عضو نشيط
    تاريخ التسجيل
    Jul 2003
    المشاركات
    240


    العفو اخوي بومشاري





    __________________
    بوجبر

    http://www.ba7reny.com
    بحريني دوت كوم (موقع صديق)





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

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

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