صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 24

الموضوع: مساعدة في الإستعلام بأكثر من قيمة في mysql

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

    Unhappy مساعدة في الإستعلام بأكثر من قيمة في mysql



    السلام عليكم

    لدي دليل مواقع وارغب في ان يقوم الزائر بالبحث في اكثر من قسم بحيث يكون استعلام واحد ويظهر النتائج في اكثر من قسم وذلك حسب الاختيار checkbox مثال :

    كود PHP:
    //استقبال اسماء الاقسام عن طريق المتصفح - البوست
    foreach($_POST[check] as $val){  
    //تجميع اسماء الأقسام المراد الاستعلام عنها
    $cats "$val";
    }
    // طلب اظها ر النتائج حسب الاقسام المطلوبة فقط
    $gmysql_query("SELECT * FROM links WHERE cat = '$cats' "); 
    المشكلة لايعرض نتائج جميع الأقسام

    هل يوجد حل ؟؟؟؟ :con2:







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


    أول شىء استخدم implode او join لدمج ارقام الاقسام ليكن كالتالي:

    كود PHP:
    $cat_ids join(",",$_POST['cats']); 
    ثانيا في الاستعلام

    كود PHP:
    $gmysql_query("SELECT * FROM links WHERE cat in '$cat_ids' "); 






    التعديل الأخير تم بواسطة مهندس مصرى ; 23-12-2008 الساعة 05:23 PM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

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


    اخي الكريم

    ظهر لي هذا الخطأ

    كود PHP:
    Warningjoin() [function.join]: Invalid arguments passed in /home/xxx/cat.php on line 12

    Warning
    mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/cat.php on line 15 







  4. #4
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    اذا تأكد أولاً أنها مصفوفة -
    يعني أضف is_array أو افحص طول المصفوفة أولاً ثم قم بما طلبه منك الاخ في رده.

    كود:
    if(is_array($_POST['cats']))






    التعديل الأخير تم بواسطة massalha ; 24-12-2008 الساعة 01:40 PM
    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

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


    اخي الكريم
    مثل ما قال الاخ massalha
    ولعملها مصفوفة يجب ان تكون مصفوفة في ال form نفسها كالتالي:
    كود PHP:
    <input value="cats[]">
    <
    input value="cats[]">
    <
    input value="cats[]"
    اذا واجهتك مشكلة اخرى ضع الكود كاملاً هنا وساعدله لك





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

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


    هذا الكود المستخدم

    كود PHP:
    foreach($_POST[check] as $val){  
    $cat.= "".$val.",";
    }
    $cat rtrim($cat,",");
    $cat join(",",$cat); 

        
    $gmysql_query("SELECT * FROM links WHERE cat in '$cat' ");
    $totalmysql_num_rows($g);

    echo 
    "<br>Total Rasults: $total"







  7. #7
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    سيظهر لك نفس الخطأ - لأنه مجرد استعمالك ل foreach مع متغير ليس مصفوفة سيرجع الخطأ المذكور.
    لذا - يجب استعمال ما كتبته انا وما كتبه بعد المهندس المصري .
    ولا حاجة لاستعمال foreach اذا كانت مصفوفة.
    يكفي فقط implode





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

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


    طيب الآن اختفى الخطأ الأول وباقي الخطأ الثاني

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource






  9. #9
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    هذا خطأ قاعدة بيانات.
    ضع اقواس حول المتغير
    '$cat'
    ليصبح
    ($cat)





    التعديل الأخير تم بواسطة massalha ; 24-12-2008 الساعة 05:31 PM
    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

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


    صحيح الخطا في in جب وضع بعدها () وليس ''
    كود PHP:
    $gmysql_query("SELECT * FROM links WHERE cat in ($cat) "); 
    سهوت عنه
    بالمناسبة يمكن استعمال foreach اذا اردت تطبيق شىء معين على ال array ثم تجميعهم مرة اخرى في مصفوفة لكن لا حاجة لها في الطريقة التي ذكرناها





    التعديل الأخير تم بواسطة مهندس مصرى ; 24-12-2008 الساعة 05:50 PM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

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


    مازالت نفس المشكلة

    اذا اخترت قسم واحد فقط يظهر النتيجه اما اذا اخترت اكثر من قسم لايظهر شيء :eek3:






  12. #12
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    هذا الكود صحيح - ابحث عن الخطأ ربما في كتابتك لكود ال HTML ...

    صدقني - نحن لا نعلم بالغيب ... اعطنا وصلة لموقعك - أو لصفحة تظهر فيها الخطأ ساعتها نقدر أن نساعد.





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

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


    اخي هذا الكود كاملاً

    كود PHP:

    foreach($_POST[check] as $val){   
    $cat.= "".$val.","

    $cat rtrim($cat,","); 
    $cat join(",",$cat);  

        
    $gmysql_query("SELECT * FROM links WHERE cat in '$cat' "); 
    $totalmysql_num_rows($g); 

    echo 
    "<br>Total Rasults: $total"







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


    مازال الكود لايعمل

    يعمل فقط اذا تم اختيار قسم واحد اما اختيار عدة اقسام يعطي النتيجه صفر ولايظهر المجموع

    هل من مساعده ؟؟

    هذا الكود الأخير

    كود PHP:
    $cat join(", ",$_POST['cat']);
    $cat rtrim($cat",");

    $gmysql_query("SELECT * FROM links WHERE cat IN ('$cat') ");  
    $total=mysql_num_rows($g); 
    echo 
    "$cat - $total"







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


    أخي الكريم
    الكود صحيح 100%
    المشكلة اكيد من كود الفورم نفسه
    ياريت ترفق صفحة الفورم وصفحة ال php كما هي عندك لاقوم بفحص المشكلة

    ثانيا
    echo "$cat - $total"; خطأ كبير !!
    كود PHP:
    echo $total
    وهذا الاستعلام لعد النتائج فقط
    قم بعمل fetch_array له لطباعة النتائج





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





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

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

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