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

الموضوع: كيف يمكن عمل إحصائية عدد الزوار السنوى (أريد الفكرة فقط)

  1. #1

    كيف يمكن عمل إحصائية عدد الزوار السنوى (أريد الفكرة فقط)



    السلام عليكم


    أريد أن أعمل إحصائية للموقع ومن محتوى هذة الإحصائية هو عدد الزوار السنوى للموقع
    فكيف يمكن عمل ذلك ؟





    __________________
    لا إله إلا الله محمد رسول الله


  2. #2


    الأمر متعلق بالوقت ، و بالتالي عليك برمجة طريقة تحفظ بها الزيارات و الوقت
    طبعا ليس من الجيد حفظ الزيارات جميعها ، لكن فقط (مثلا لا حصرا) أضف حقل معين لحفظ الوقت و آخر لحفظ آخر إحصاء ، و لا يتم تحديثهما حتى تمضي سنة ، طبعا التحقق عبر حقل الوقت ، و عند مرور سنة يتم تسجيل الوقت الجديد و كذا يتم تحديث قيمة الإحصاء كي يبدأ العد من جديد

    فيكون مثل التالي :
    2011 :
    الزيارات 0
    آخر قيمة محفوظة 0
    الوقت 1295396124

    زيارات هذه السنة : 0

    2012 :
    الزيارات 50500
    آخر قيمة محفوظة 0
    الوقت 1326932124

    زيارات هذه السنة : 50500

    2013 :
    الزيارات 150200
    آخر قيمة محفوظة 50500
    الوقت 1358468000

    زيارات هذه السنة : 99700


    طريقة بسيطة و يمكنك كتابة افضل منها !!






  3. #3


    أشكرك أخى العزيز rifizm على ردك

    لكن أتمنى توضيح أكثر لان للاسف ما فهمت الشرح





    __________________
    لا إله إلا الله محمد رسول الله

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


    يمكن ان تبرمج عداد زوار خاص بموقعك كما قصد اخي خالد

    او تستعمل موقع يقدم خدمة العداد مع احصائيات مثل هذا
    http://24counter.com/

    او تستعمل خدمة google analytics لعمل هذا الامر(الافضل حسب رأيي)
    -شكرًا للاخ assyrianPHP لتنبيهي لهذه الخاصية ، وللكود الذي ارسله لي

    بالنسبة لاحصائيات جوجل يمكن ان تضع كود الاحصائيات في موقعك
    ثم تستعلم عن المعلومات بواسطة ال api
    وهذه صفحة يمكن ان تبني فيها الاستعلام خطوة بخطوة
    http://code.google.com/apis/analytic...aExplorer.html
    الموضوع كبير لذا اترك البحث لك






  5. #5
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    يمكن ان تعمل احصائيات يومية وشهرية وسنوية مستضافة لديك كالتالي:

    تعمل جدول جديد اسمه viewcount
    وتضع فيه الحقول التالية:
    counter INT
    start_date DATE
    بحيث يكون الحقل الثاني فريد(UNIQUE)
    اي انه لا يمكن تكراره ، وبالتالي يكون key كمان

    تستعمل الاستعلام التالي:
    كود PHP:
    insert into viewcount (start_date,counter)values('$start_date',0on
     duplicate key update counter 
    counter+
    وهذا الاستعلام يضيف حقل للشهر الحالي في الجدول ، ولكن اذا كان الحقل موجود يقوم بتحديث العداد
    عن طريق التعليمة
    on duplicate key update
    كما ذكرت في الاعلى الحقل start_date هو key
    وكما هو مذكور هنا، اذا تكرر الحقل المفتاحي نزيد العداد ب 1
    on duplicate key update counter = counter+1

    وعند العرض نقوم بعمل التالي:
    كود PHP:
    SELECT sum(counter) as yearcount FROM viewcount WHERE year(start_date)='2011' 
    كما ترى جمعنا الحقول لكل الشهور في سنة 2011
    وذلك عن طريق استعمال الدالتين:
    sum
    للجمع واستعملنا as yearcount
    لإعادة تسمية الحقل

    ثم استعملها الدالة year لاستخراج السنة من التاريخ الذي في قاعدة البيانات

    هناك ايضًا دالة month يمكن ان تستعملها اذا اردت استخراج احصائيات شهر معين
    عن طريق AND
    يعني:
    كود PHP:
    where month(start_date)='1' AND year(start_date)='2011' 
    هذا الكود يقوم بتحديد الأول من الشهر الحالي كتاريخ البداية:
    كود PHP:
    $start_date date("Y-m-1"); 
    لكي تدعم الاحصائيات اليومية
    تستخدم
    كود PHP:
    $start_date date("Y-m-d"); 
    وتضع الدالة day في شرط الاستعلام
    هذا كود ال php
    كود PHP:
    <?php
    mysql_pconnect
    ("localhost","root","");
    mysql_select_db("test");

    $start_date date("Y-m-1");
    mysql_query("insert into viewcount (start_date,counter)values('$start_date',0) on duplicate key update counter = counter+1");

    echo 
    "2011  visitors count<br/>";

    $data mysql_fetch_assoc(mysql_query("SELECT sum(counter) as yearcount FROM viewcount WHERE year(start_date)='2011'"));

    echo 
    $data['yearcount'];
    ?>
    وهذا كود الجدول
    كود PHP:
    --
    -- 
    Table structure for table `viewcount`
    --

    CREATE TABLE IF NOT EXISTS `viewcount` (
      `
    counterint(11NOT NULL,
      `
    start_datedate NOT NULL,
      
    UNIQUE KEY `start_date` (`start_date`)
    ENGINE=MyISAM DEFAULT CHARSET=latin1;

    --
    -- 
    Dumping data for table `viewcount`
    --

    INSERT INTO `viewcount` (`counter`, `start_date`) VALUES
    (19'2011-01-01'),
    (
    0'2011-02-01'); 






    التعديل الأخير تم بواسطة ahmad sadiq ; 19-01-2011 الساعة 05:51 PM

  6. #6


    جزاك الله كل خير أخى أحمد شرح وافى ومتعوب فية

    لو فرضت أنى عاوز أعمل الإحصائيات التالية :-
    ===================
    عدد زوار اليوم :
    عدد زوار الامس :
    عدد زوار هذا الشهر:
    عدد زوار الشهر السابق :
    عدد زوار هذة السنة :
    عدد زوار السنة السابقة :

    ==================

    الكود هيكون كالتالى

    كود PHP:
    $year date('Y');
    $month date('m');
    $day date('d');
    $start_date date("Y-m-d");

    mysql_query("insert into viewcount (start_date,counter)values('$start_date',0) on duplicate key update counter = counter+1");
    $data mysql_fetch_assoc(mysql_query("SELECT sum(counter) as daycount FROM viewcount WHERE day(start_date)='$day-1'"));
    $yesterday mysql_fetch_assoc(mysql_query("SELECT sum(counter) as yesterdaycount FROM viewcount WHERE day(start_date)='".(($day)-1)."'"));
    $data2 mysql_fetch_assoc(mysql_query("SELECT sum(counter) as monthcount FROM viewcount WHERE month(start_date)='$month'"));
    $monthbefore mysql_fetch_assoc(mysql_query("SELECT sum(counter) as monthbeforecount FROM viewcount WHERE month(start_date)='".(($month)-1)."'"));
    $data3 mysql_fetch_assoc(mysql_query("SELECT sum(counter) as yearcount FROM viewcount WHERE year(start_date)='$year'"));
    $yearbefore mysql_fetch_assoc(mysql_query("SELECT sum(counter) as yearbefore FROM viewcount WHERE year(start_date)='".(($year)-1)."'"));


      echo 
    "زوار اليوم : ".$data['daycount']."<br />";
      echo 
    "زوار أمس :   ".$yesterday['yesterdaycount']."<br />";;
      echo 
    "زوار الشهر : ".$data2['monthcount']."<br />";
      echo 
    " زوار الشهر السابق : ".$monthbefore['monthbeforecount']."<br />";
      echo 
    "زوار السنة : ".$data3['yearcount']."<br />";
      echo 
    "زوار السنة السابقة : ".$yearbefore['yearbefore']."<br />"
    كما نرى فى الكود أن الاستعلامات كثيرة فهل من طريقة لجعل الإستعلامات قليلة أم لابد أن تكون بالشكل السابق

    وأيضا إذا كنا نريد أن تكون هذة الإحصائيات لعدد الزوار وليس الزيارات أى سنستخدم IP الزائر فهل ستكون أيضا بنفس الطريقة مع تعديل الكود لكى يتناسب مع الطريقة الجديد وهى حساب الزائر حسب الاى بى .





    التعديل الأخير تم بواسطة أنا مسلم ; 20-01-2011 الساعة 08:18 PM
    __________________
    لا إله إلا الله محمد رسول الله

  7. #7


    يمكنك تخزين البيانات في حقل واحد على شكل مصفوفة ، انصحك بإستخدام إحدى الدالتين serialize و json
    حينها سيكون لديك إستعلام واحد فقط ،
    يمكنك الإبداع في إستخدام إحدى الدالتين حسب طريقتك .
    بالتوفيق .






  8. #8
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    ما قاله اخي خالد صحيح

    اذ ان احصائيات السنة السابقة\الشهر السابق لن تتغير ابدًا
    لذا الافضل حفظها في ملف او في قاعدة البيانات

    ايضًا طريقة الاستعلام خاطئة ففي الاستعلام عن الشهر السابق مثلا يجب ان تستعلم عن الشهر والسنة
    وليس الشهر فقط، لأنه اذا استعملت السكربت ل3 سنوات مثلا سيكون 3 اشهر متشابهة






  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    364


    بالنسبة للإحصائيات الشهرية والسنوية

    يمكنك عمل خانات في قاعدة البيانات لكل سنة مطلوبة
    مثلا

    status_2010
    status_2011
    status_2012
    status_2013
    status_2014
    status_2015


    وخانات أخرى للأشهر، مثل:
    status_1
    status_2
    status_3
    status_4
    .
    .
    status_12

    الآن لتحديث عدد الزيارات نسخدم طريقة بناء جملة الاستعلام بالشكل الذي نريده
    كود PHP:
    $m intvaldate('m') );
    $y date('Y');


    $sql 'UPDATE table SET status_'$y .'=status_'$y .'+1, status_'$m .'=status_'$m .'+1';

    // لتجنب تكرار وزيادة عدد الزوار في الشهر نفسه للسنة القادمة نضيف الكود التالي

    if( $m == 12 )
    {
        
    $sql .= ', status_1= 0 ';
    }
    else
    {
        
    $sql .= ', status_'.($m+1).'= 0 ';
    }
    else 






    التعديل الأخير تم بواسطة القائد ; 26-01-2011 الساعة 05:24 PM سبب آخر: تصحيح وتحسين الكود
    __________________
    الخدمات البرمجية
    تعديلات برمجية - تطوير برمجيات جاهزة - صيانة قواعد بيانات
    برمجة خاصة (الأولوية للأفكار الجديدة والخاصة)

    المراسلة : http://it.rewaq.com

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    119


    http://www.swalif.net/softs/swalif45/softs228926/
    يمكن تستفيد منه
    بالتوفيق










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

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

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