صفحة 2 من 3 الأولىالأولى 123 الأخيرةالأخيرة
النتائج 16 إلى 30 من 40

الموضوع: مسابقة للمبرمجين.. اكتب الداله التاليه

  1. #16
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    357


    وين الشباب..انا الحين وصلت لـ6 طرق بـ20 سطر...بس منتظر حلولكم عشان انزل دالتي






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


    وين الشباب..انا الحين وصلت لـ6 طرق بـ20 سطر...بس منتظر حلولكم عشان انزل دالتي
    نرجو توضيح الطلب اكثر .. انا عملت بالكود السابق ما طلبت لكن يفضل ان تضع الطلب كامل حتى تسمح للجميع بالمشاركة والتفكير ..
    وكذلك من الافضل ان يتم سؤال اسئلة ذات افكار تنمي روح المنافسة لكن صحيح من الافضل لفكرتك عمل كلاس لها كما قال الاخ DSQ8.com





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

  3. #18
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    357


    طيب ياخ مهندس مصري هذي الدالة الي توصلتلها
    وتقدر تختصر الداله وتضيف طرق اخرى
    كود PHP:
    function search($word){
    if(
    preg_match('/^(".*")$/',$word)){
    return
    "SELECT * FROM `news` WHERE  title like '%".str_replace('"',"",$word)."%'";
    }elseif(
    preg_match('/(between:)/',$word)){
    $s=explode("between:",trim($word));
    $b=explode(",",$s[1]);
    return
    "SELECT * FROM `news` WHERE `date`   BETWEEN '".trim($b[0])."'  AND  '".trim($b[1])."' AND `title`  LIKE  '%".$s[0]."%' ";
    }elseif(
    preg_match('/^(user:)/',$word)){
    $s=explode("user:",trim($word));
    return
    "SELECT * FROM `news` WHERE   `username` ='".$s[1]."'";
    }elseif(
    preg_match('/(user:)/',$word)){
    $s=explode("user:",trim($word));
    return
    "SELECT * FROM `news` WHERE `title` LIKE  '%".$s[0]."%'  AND  `username` ='".$s[1]."'";
    }elseif(
    preg_match('/^(info:)/',$word)){
    $s=explode("info:",trim($word));
    return
    "SELECT * FROM `user` where `name` ='".$s[1]."'";
    }else{
    return
    "SELECT * FROM `news` where title like '%".str_replace(' ',"%",$word)."%'";
    }

    وطرق البحث كالتالي:
    1-للبحث عن مشاركات عضو:
    كود PHP:
    search('user:hatem'); 
    2- للبحث عن كلمة بمشاركات عضو نستخدم:
    كود PHP:
    search('كلمة البحث user:hatem'); 
    3-للبحث المطابق نستخدم علامة التصنيص:
    كود PHP:
    search('"كلمة البحث"'
    4-للبحث عن معلومات عضو:
    كود PHP:
    search('info:hatem'
    وسيظهر معلومات العضو وليش مشاركاته
    5-للبحث عن شي بين تاريخين:
    كود PHP:
    search("كلمة البحث between:2009-09-01,2009-09-02"
    6-للبحث العادي..اي عكس البحث المطابق:
    كود PHP:
    search('كلمة البحث'
    جربها عندك...وراح تعطيك صيغة استعلام sql






  4. #19
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    اعتذر عن عدم المشاركه

    هل ياترى انتهى السؤال.. لأني ارى اجابات جميله

    ومن عليه السؤال الان ؟





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

  5. #20
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    357


    خلاص شوفلنا سؤال غيره..
    مهندس مصري كان عنده سؤال,,






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


    سؤالي سيكون في قواعد البيانات..
    لدينا جدول يسمى (magazines) وهو جدول مجلات و يمكن عمل صفحات فرعية من المجلة في نفس الجدول كفكرة الاقسام عن طريق parent_id للصفحة
    الجدول يحتوي على الحقول التالية..
    id
    parent_id
    title
    visits

    - المجلة الرئيسية ال parent_id لها = 0
    - المجلة الفرعية ال parent_id لها قيمته هو قيمة ال id الرئيسي لها كفكرة عمل الاقسام تماماً
    - title هو عنوان كل مجلة سواء كانت رئيسية او فرعية
    - visits عدد الزيارات لكل مجلة بغض النظر عن كونها رئيسية او فرعية


    نريد عمل استعلام واحد يقوم بترتيب المجلات الرئيسية حسب الاعلى زيارة مع الاخذ في الحسبان ان ترتيب زيارات المجلة الواحدة = (زيارة المجلة الرئيسية + زيارات المجلات الفرعية منها)
    اي يتم الترتيب على هذا الاساس ولا يعرض لنا الا عناوين المجلات الرئيسية فقط

    أذكركم بالشروط مرة أخرى ..
    1- استعلام واحد فقط لعمل المطلوب بدون ادخال اي عملية php (أي أن المطلوب كله هو استعلام mysql).
    2- زيارة المجلة كاملة = (زيارات المجلة الرئيسية + زيارات المجلات الفرعية منها مهما كان عددها).
    3- يتم الترتيب على اساس زيارة المجلة كاملة كما ورد بالنقطة رقم 2.
    4- بعد الترتيب يعرض لنا فقط عناوين المجلات الرئيسية فقط مُرتبة ترتيبا تنازلياً حسب زيارات المجلة كاملة كما في النقطة 2

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





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

  7. #22
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    357


    ^
    يعني السؤال لخبراء sql






  8. #23
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    357


    هذا الاستعلام الي وصلتله..لكنه مو كامل
    SELECT *,sum(visits) AS v FROM `magazines` where parent_id='1' GROUP BY id ORDER BY `visits` DESC
    يعني يعرض مجموع الزيارات
    ويرتبها حسب اعلى زياره
    ولي محاول اخرى ان شالله

    بس قولي قربت من الحل ولالا.؟






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


    هذا الاستعلام الي وصلتله..لكنه مو كامل

    يعني يعرض مجموع الزيارات
    ويرتبها حسب اعلى زياره
    ولي محاول اخرى ان شالله

    بس قولي قربت من الحل ولالا.؟
    لا يا حج
    هذا الحل بسيط جدا ولا يحتاج لسؤال
    لكن ما اريده هو جمع الزيارات الفرعية للملف ايضا على الزيارات الرئيسية وترتيبهم على حسب نتيجة الجمع وليس على حسب زيارة ملف واحد كما كتبت بالاستعلام

    وساوضح بمثال بسيط ..
    لدينا الان عدد 3 مجلات في الجدول
    المجلة الاولى .. عبارة عن صفحة رئيسية و عدد صفحات (2) فرعية منها
    سنمثلهم كالتالي في قاعدة البيانات
    id->1
    parent_id->0
    visits->280
    ---------------
    id->2
    parent_id->1
    visits->500
    ---------------
    id->3
    parent_id->1
    visits->370

    المجلة الثانية .. عبارة عن صفحة رئيسية وصفحة واحدة فرعية
    id->4
    parent_id->0
    visits->311
    ---------------
    id->5
    parent_id->4
    visits->800
    ---------------

    المجلة الثالثة.. عبارة عن صفحة رئيسية و 3 صفحات فرعية منها
    id->6
    parent_id->0
    visits->555
    ---------------
    id->7
    parent_id->6
    visits->113
    ---------------
    id->8
    parent_id->6
    visits->674
    ---------------
    id->9
    parent_id->6
    visits->467

    الان غيرت لك اللون parent_id في المجلة الرئيسية حتى يتم تمييز انها المجلة الرئيسية
    الان المطلوب جمع زيارات كل مجلة بما فيها بالمجلات الفرعية منها كالتالي:
    المجلة الاولى الزيارات = 280 + 500 + 370 = 1150
    المجلة الثانية الزيارات = 311 + 800 = 1111
    المجلة الثالثة الزيارات = 555 + 113 + 674 + 467 = 1809

    اعتقد ان الامر واضح الان .. وبعد ذلك يجب ان يكون الترتيب على حسب نتائج هذا الجمع ترتيب تنازلي ..
    اي سيكون الترتيب في العرض
    - المجلة الثالثة لانها اكثر زيارات 1809
    - المجلة الاولى زيارات 1150
    - المجلة الثانية زيارات 1111





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

  10. #25
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    سؤال جميل جدا وصعب أيضا

    ولكن سأحاول به ان شاء الله





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

  11. #26
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    الحمدلله بعد عناء شديد :con2:

    كود:
    SELECT
        a.mag_title, 
        a.mag_visits + sum(b.mag_visits) as total_visits 
    FROM 
        magazines a, magazines b
    WHERE 
        a.mag_parent_id=0 AND b.mag_parent_id=a.mag_id
    GROUP BY 
        a.mag_title
    ORDER BY
        total_visits DESC
    تم التجريب واعطت النتائج المطلوبه :]

    كود HTML:
    mag c (1809)
    mag a (1150)
    mag b (1111)
    بالتوفيق





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

  12. #27
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    357


    DSQ8.com ممكن تعطينا كود قاعدة البينات الي اشتغلت عليه
    حاب اجرب واغير وبشوف وش يطلعلي^,^






  13. #28
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    تفضل ياغالي

    كود:
    CREATE TABLE IF NOT EXISTS `magazines` (
      `mag_id` int(11) NOT NULL auto_increment,
      `mag_parent_id` int(11) NOT NULL default '0',
      `mag_title` varchar(50) NOT NULL,
      `mag_visits` int(11) NOT NULL,
      PRIMARY KEY  (`mag_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
    
    INSERT INTO `magazines` (`mag_id`, `mag_parent_id`, `mag_title`, `mag_visits`) VALUES
    (1, 0, 'mag a', 280),
    (2, 1, 'mag a 1', 500),
    (3, 1, 'mag a 2', 370),
    (4, 0, 'mag b', 311),
    (5, 4, 'mag b 1', 800),
    (6, 0, 'mag c', 555),
    (7, 6, 'mag c 1', 113),
    (8, 6, 'mag c 2', 674),
    (9, 6, 'mag c 3', 467);






    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

  14. #29
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    357


    يعطيك العافيه ..
    بس ياليت لو مافيها كلافه عليك لو تشرحلنا الاستعلام شوي..ﻷن خبرتي متوسطه بال sql^,^






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


    ماشاء الله .. نفس الفكرة تماماً لكنك اعتمدت على الاختصارات
    هي في الاصل استعلامك يترجم الى الجملة join بعد كتابته
    لذلك جرب اضافة مجلة رئيسية لها parent_id =0 بدون اضافة مجلات فرعية لها فلن يعرضها ضمن النتائج
    هل تعرف لماذا؟؟

    وجرب هذا الكود وكودك وشوف ما الفرق (طبعا بعد اضافة ملف رئيسي بدون اي ملفات فرعية)

    كود PHP:
    SELECT a.mag_titlea.mag_visits sumb.mag_visits ) AS total_visits
    FROM magazines 
    AS a
    LEFT JOIN magazines 
    AS b ON b.mag_parent_id a.mag_id
    WHERE a
    .mag_parent_id =0
    GROUP BY mag_title
    ORDER BY total_visits DESC 






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





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

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

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