بفرض اني عندي موقع اخبار اضيف اليه الاخبار يوميا او اسبوعيا كيف يمكن ان اجعله يحذف الاخبار تلقائيا كل يوم او ان اجعل المستخدم الذي يضيف تعليقا على الخبر يحدد متى يتم حذف التعليق ؟؟
الحذف الاوتوماتيكي
أتمنى أن يجتهد الأعضاء في هذا الموضوع ..
فكرة : من المنطقي وجود دالة تنفذ كل فترة تقوم بفحص شيء معين كإشارة
لتؤدي وظيفة معينة ..
على فكرة قد تم مناقشة موضوع مثل هذا في هذا القسم لكن لا أذكر أين ..
لكن هذه فرصة لأرى اسلوبكم في التفكير و إيجاد الحلول .. لان الهدف في هذا المنتدى ليس فقط طرح مشكلة و حل لها بل المشاركة و التفاعل من أجل الوصول لمستوى راق يرضي الجميع ..
دعوني أرى من أول المشاركين و من هو أول المجاوبين ..
You can fly while you can touch the sky
هناك اكثر منطريقة على حسب منطقية صاحب الموقع , فمثلا:
1- حسب التاريخ ( مثلا : اخر اخبار اضيفت في الثلاثة الايام الأخيرية ), لذا عليك جعل حقل تاريخ مع كل خبر.
2- حسب العدد ( مثلا : يعرض آخر عشرة اخبار او 15 او ...وهكذا)
3-
الخ
اخي عذرا يبدو انك لم تفهم قصدي انا اريد من المستخدم الذي يضيف الخبر ان يحدد متى يحذف
كما ان طريقتك هذه ممكن تجعل الامر تلقائيا تماما ؟؟؟ يعني هل يمكن ان احدد انا ان كل اشبوع يتم حذف الاسبوع الماضي ؟؟
و جزاك الله خيرا
في الحقيقة اشكر الاخوان على الاجتهاد في الموضوع لكن يبدو إني أنا كمان فهمت الفكرة غلطت بداية ..
على العموم الفكرة انشاء حقل لتحديد تاريخ نهاية العرض و ممكن يكون محددا من تاريخ الإدخال كالتالي :
[l]
endDate=date()+3
[/l]
و بالتالي يكون بعد 3 أيام من تاريخه
أما بخصوص العرض فالطريقة كالتالي :
توجد دالة في الفي بي سكريبت تسمى DateDiff و ظيفتها حساب الفرق بين تاريخين ..
مثلا :
response.write DateDiff("d",#13/1/1980#,now( ))طبعا الناتج سيكون عمري أنا بالأيام ;) (يعني في الغد بكون 23 سنة:P )
على العموم الناتج سيكون موجب لانه تم طرح تاريخ ميلادي من تاريخ اليوم
و بالتالي انت تعمل العكس أي تقلب كالتالي :
response.write DateDiff("d",now( ) ,#13/1/1980#)و بدل تاريخي ضع تاريخ انتهاء الخبر .. إذا ظهر صفر الناتج معناها تاريخ الانتهاء هو تاريخ اليوم و إذا كان سالب الناتج معناها فات معاد انتهاء الخبر لذا يجب عمل اتالي
دالة تقوم بحذف هذا الخبر أو تضع حقل خاص بالعرض تسميه show مثلا و يكون True و لما ينتهي التاريخ خليه False و حدد هذا في جملة الاستعلام عند عرض الخبر حتى يعرض كل من قيمة show له True و بالتالي الخبر القديم لا يعرض :)
كيف الحل ؟؟
You can fly while you can touch the sky
بخصو كيفية ادخال تاريخ الانتهاء ..
طبعا من المنطقي أنه عند ادخال الخبر سنقوم باستخدام جملة استعلام لادخال البيانات لقاعدة البيانات و بالتالي نحتاج لتحديد تاريخ انتهاء .. و هناك
طريقيتن :
الأولى :
انك محدد تاريخ معين لكل موضوع .. مثلا انت عايز كل رد يظهر 3 أيام بعدين ينتهي اذا اكتب
endDate=date()+3
معناها اننا سنجعل قيمة ال endDate لعرض الخبر و التي سندخلها لقاعدة البيانات مساوية لتاريخ اليوم مضافا له 3 أيام و ليس سنين ..
طبعا الطريقة التانية و هية عايزة شوية شغل و حسابات بس بسيطة جدا ..
و هي أنك تعمل droplist أي قائمة منسدلة لمضيف الخبر يحدد كل يوم عايز يعرض الخبر و بالتالي عند الارسال تاخذ هذه القيمة و لنفرض انها dateOfEnd
و العمليات تعتمد على نوعية المدة مثلا ان كانت بالأيام تقوم بعمل التالي
endDate=date()+request("dateOfEnd")و اذا كانت بالأسابيع ممكن تستخدم العمليات الرياضية للضرب في 7 و هكذا
اعتقد ان الفكرة الان أصبحت واضحة :)
You can fly while you can touch the sky
اعتقد اني فهمت :
يعني نعمل حقل في قاعدة البيانات من نوع صح/خطأ ومن صفحة الادخال نحدد قيمة date()+3 وبالتالي تخزن قيمة تاريخ الانتهاء بعد اليوم ب 3 ايام في الحقل الخاص في قاعدة البيانات و في صفحة العرض نعمل جملة if بحيث اذا كان حقل تاريخ الانتهاء مساوي لحقل تاريخ اليوم يحول الحقل صح/خطأ غلى خطا وننهي الجلة ثم نقوم بعمل استعلام العرض ويكون فيه شرك ان يكون حقل صح/خطأ قيمته صح ............................
هل هذا الحل صحيح ؟؟؟؟؟؟؟؟:o:o:o:o:o:o
بالمناسبة انا طرحت هذا السؤال في منتدى اجنبي في موقع http://www.brinkster.com/ ب اجابوني اجابات غبية جدا اثبتت لي اننا الافضل وان فكرة تفوقهم علينا مجرد وهم فقط توفيق الله ثم الاجتهاد و التفكير يحسمان الموضوع وهذا الرابط من المنتدى الاجنبي http://www.brinkster.com/forums/forummessa...d=82477&Forum=1
هذا الموضوع مغلق.