منتديات الجزائر اسلام
{درس} عمل المتواجدون الان -- php و mysql Ezlb9t10
منتديات الجزائر اسلام
{درس} عمل المتواجدون الان -- php و mysql Ezlb9t10
منتديات الجزائر اسلام
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتديات الجزائر اسلام

منتديات الجزائر اسلام لتبادل المعارف و الثقافات الاسلامية بين الجزائريين وبين الجزائر و الدول العربية=<المسلمون اخوة> .
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 {درس} عمل المتواجدون الان -- php و mysql

اذهب الى الأسفل 
كاتب الموضوعرسالة
المدير العام
مدير المنتدى
مدير المنتدى
المدير العام


الجنس : ذكر
البلد : الجزائر
المهنة : {درس} عمل المتواجدون الان -- php و mysql Progra10
الهواية : {درس} عمل المتواجدون الان -- php و mysql Sports10
المزاج : {درس} عمل المتواجدون الان -- php و mysql 5510
المتصفح المفضل : Firefox
نقاط : 3674
عدد المساهمات : 896
العمر : 34

{درس} عمل المتواجدون الان -- php و mysql Empty
مُساهمةموضوع: {درس} عمل المتواجدون الان -- php و mysql   {درس} عمل المتواجدون الان -- php و mysql Icon_minitimeالجمعة أغسطس 19, 2011 10:20 am

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

سأشرح بإذن الله اليوم طريقة عمل المتواجدون الآن البسيط بإمكانكم بعد فهم الطريقة فهي سهله بإذن الله .

أولاً يجب أن ننشئ جدول في قاعدة البيانات وهو خاص بالمتواجدون الآن ، وهذا الجدول يتم تحديثه باستمرار تلقائياً وسأشرح لكم معنى تحديث نفسه تلقائياً بعد عرض محتوى الجدول
رمز PHP:

الكود:

CREATE TABLE online (
id int(11) NOT NULL auto_increment,
visitor varchar(100) default NULL,
timevisit int(11) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM; 

id هو رقم المتواجد الآن وهو من نوع int ويتكرر بإضافة 1 .. أيضاً هو مفتاح الجدول
visitor هنا يتم تخزين الآي ابي أو الـ host
timevisit وقت التواجد وهو من نوع int ولم نضعه من نوع date
لأن الوقت سنقوم بإدخاله كأنه نص باستخدام دالة time في الـ PHP

ما معنى يتم تحديثه باستمرار ؟
أي أن حالياً المتواجدون الآن مثلاً 5 .. ستجد الجدول يتكون من 5 سجلات وعند دخول أي مستخدم للصفحة ستجد بأنه أضاف سجل جديد وكذلك عند خروج أي مستخدم من الصفحة يتم حذف السجل الخاص به .

لننئ ملف وليكن اسمه online.php ونضع الكود التالي :
أولاً بيانات الإتصال والدخول لقاعدة البيانات

رمز PHP:

الكود:

<? $connect=mysql_connect("localhost","username","password") or die (mysql_error());
mysql_select_db("php",$connect) or die (mysql_error());?>

الآن لننشئ متغير قيمته دالة .. هذه الدالة خاصة بإظهار الـ host الخاص بالمستخدم
والدالة الخاصة بإظهار الهوست هي gethostbyaddr :


رمز PHP:


الكود:
<? $host=gethostbyaddr($_SERVER['REMOTE_ADDR']) ;?>


المتغير REMOTE_ADDR وضعناه في مصفوفة $_SERVER لأن معظم المواقع لا تدعم خاصة الـ register globals

الآن لنحدد الوقت الذي تريد إبقاء المتواجدون الآن بالدالة time ونضعه في متغير وليكن $thime_now

<--SS-->--SS--> <--SS-->--SS--> <--SS-->--SS-->
<--SS-->--SS-->

رمز PHP:


الكود:
<? $time_now=time()-3600; ?>

الآن نجري إستعلام في قاعدة البيانات بتفريغ ( حذف محتويات ) الجدول بشرط
أن يكون الوقت في الحقل timevisit الموجود في القاعدة أصغر من التوقيت الذي قمت بتحديده أنت بالأعلى


رمز PHP:


الكود:
<? mysql_query("delete from online where timevisit<'$time_now'"); ?>

الآن نجري إستعلام باستخدام الدالة mysql_num_rows ( فائدة هذه الدالة عرض عدد السجلات بالجدول )

وفي الأعلى قلت إن عدد السجلات هو نفسه عدد المتواجدون الآن !
ونريد سجلات حقل id ..

رمز PHP:


الكود:
<?
// هذا الإستعلام بإظهار جميع السجلات
$query=mysql_query("SELECT id FROM online where visitor='$host'")or die (mysql_error());

// هذه الدالة لإظهار عدد السجلات
$rows=mysql_num_rows($query);
 ?>


جيد والآن عدد المتواجدون الآن ( عدد السجلات ) موجود في المتغير $rows
نضع شرط أنه لو كان عدد المتواجدون الآن أكبر من صفر يقوم بتعديل الوقت الموجود في حقل الوقت ..


رمز PHP:

الكود:
<? if ($rows>0){
mysql_query("update online set timevisit='$time_now' where visitor='$host'"); ?>


وإذا لم يتحقق الشرط ( أي لم يكن هناك متواجدون الآن أنت فقط المتواجد في الصفحة ) يضيف سجل جديد للجدول ببيانات جديدة



رمز PHP:


الكود:
<?
} else {
mysql_query("insert into online (id,visitor,timevisit) values ('null','$host','$time_now')");
}
 ?>

وفي الواقع أنه عند دخول مستخدم يضيف سجل جديد له وفي نفس الوقت يقوم بتحديث السجل .

نجري إستعلام لإظهار السجلات :


رمز PHP:

الكود:
<? $rs=mysql_query("select * from online"); ?>

حلقة تكرار لإستخراج البيانات ( التوقيت ) :




رمز PHP:


الكود:
<?
 
while ($ro=mysql_fetch_array($rs)){
 
$t=date('j M Y - H:i',$ro[timevisit]);
}
 
?>


الآن إظهار عدد المتواجدون الآن ( عدد السجلات ) باستخدام الدالة mysql_num_rows



رمز PHP:


الكود:
$e=mysql_query("select id from online") or die(mysql_error());
$on=mysql_num_rows($e); 

echo "عدد المتواجدون الآن هو $on بتاريخ $t";

كود الصفحة كاملاً :



رمز PHP:


الكود:
<?
/*
author : Mr Youcha ;
email  : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ;
site  : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
*/
 $connect=mysql_connect("localhost","username","password") or die (mysql_error());
mysql_select_db("online",$connect) or die (mysql_error());
$host=gethostbyaddr($_SERVER['REMOTE_ADDR']) ;
$time_now=time()-3600;
mysql_query("delete from online where timevisit<'$time_now'");
// هذا الإستعلام بإظهار جميع السجلات
$query=mysql_query("SELECT id FROM online where visitor='$host'")or die (mysql_error());
// هذه الدالة لإظهار عدد السجلات
$rows=mysql_num_rows($query);
if ($rows>0){
mysql_query("update online set timevisit='$time_now' where visitor='$host'");
} else {
mysql_query("insert into online (id,visitor,timevisit) values ('null','$host','$time_now')");
}
$rs=mysql_query("select * from online");
while ($ro=mysql_fetch_array($rs)){
$t=date('j M Y - H:i',$ro[timevisit]);
}
$e=mysql_query("select id from online") or die(mysql_error());
$on=mysql_num_rows($e);
echo "عدد المتواجدون الآن هو $on بتاريخ $t";?>

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


Sad
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://jana.forumalgerie.net
 
{درس} عمل المتواجدون الان -- php و mysql
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات الجزائر اسلام :: منتدى البرمجة و تطوير المواقع و المنتديات :: برامج وتطوير المواقع والمنتديات-
انتقل الى:  
أفضل 10 أعضاء في هذا المنتدى
المدير العام
{درس} عمل المتواجدون الان -- php و mysql I_vote_rcap{درس} عمل المتواجدون الان -- php و mysql I_voting_bar{درس} عمل المتواجدون الان -- php و mysql I_vote_lcap 
hichem31000
{درس} عمل المتواجدون الان -- php و mysql I_vote_rcap{درس} عمل المتواجدون الان -- php و mysql I_voting_bar{درس} عمل المتواجدون الان -- php و mysql I_vote_lcap 
kader
{درس} عمل المتواجدون الان -- php و mysql I_vote_rcap{درس} عمل المتواجدون الان -- php و mysql I_voting_bar{درس} عمل المتواجدون الان -- php و mysql I_vote_lcap 
houari
{درس} عمل المتواجدون الان -- php و mysql I_vote_rcap{درس} عمل المتواجدون الان -- php و mysql I_voting_bar{درس} عمل المتواجدون الان -- php و mysql I_vote_lcap 
GypsyKnight
{درس} عمل المتواجدون الان -- php و mysql I_vote_rcap{درس} عمل المتواجدون الان -- php و mysql I_voting_bar{درس} عمل المتواجدون الان -- php و mysql I_vote_lcap 
K_MUSTAPHA
{درس} عمل المتواجدون الان -- php و mysql I_vote_rcap{درس} عمل المتواجدون الان -- php و mysql I_voting_bar{درس} عمل المتواجدون الان -- php و mysql I_vote_lcap 
facebook

 
Powered by Odessarab.net ® Version 2
Copyright © 2010
©
.:: جميع الحقوق محفوظه منتديات الجزائر اسلام  ::.
جميع المواضيع و الردود تعبر عن رأي صاحبها ولا تعبر عن رأي إداره
منتديات الجزائر اسلام بــتــاتــآ
مع العلم انه للادارة حق حذف اى مخالفه وهذا ما نقوم به دوما
ونشكر تعاون كل من يبلغنا ان وجدت مخالفه لدينا
»» إبراء ذمة إدارة المنتدى ، امام الله وامام جميع الزوار والاعضاء ، على مايحصل من تعارف بين الاعضاء او زوار على مايخالف ديننا الحنيف ، والله ولي التوفيق
الساعة الانبتوقيت السعودية
»»يرجى التسجيل بايميل صحيح حتى لا تتعرض العضوية للحذف و حظر الآى بى
.:: لمشاهدة أحسن للمنتدى يفضل جعل حجم الشاشة (( 1024 × 780 )) و متصفح فايرفوكس ::.