الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في خاصية في انظمة التذاكر

بدأه man in dark في 2 مارس 2009 · 8 رد · 535 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــة

اخواني اريد ان اسال بخصوص خاصية في انظمة التذاكر

وهي عند فتح تذكرة جديدة و تعبئة الحقول النظام تلقائي يعطية رقم التذكرة

مع العلم ان رقم التذكرة لا يوجد رقم مشابه له من ارقام التذاكر الاخرى في قاعدة البيانات

سؤالي هو كيف يمكنني ان اسوي كود يعطي رقم تلقائي وغير مشابة لإرقام في قاعدة البيانات

#2

لاختيار رقم عشوائي تستخدم rand و/او uniqid

(طبعا الحقل في قاعدة البيانات يكون unique)

تسوي infinite loop كل مره تختار رقم وتحاول استخدامه لانشاء التذكره... مجرد ما يرجع من العمليه true .. تطلع من ال loop

طبعا فيه احتمال ضعيف (يعتمد على عدد التذاكر وطول الرقم) انك تدخل في max execution time exceeded ... ممكن الحل الوحيد استخدام شي مثل ajax؟

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#3

السلام عليكم ورحمة الله

الغالي ما في داعي لكل هذا التغقيد واجاكس وكذى

فيه داله في البي اتش بي اسمها rand()

هذي الداله تاخذ في العاده معطيين بشرط ان يكونو integer فقط اي لاتاخذ معطيات string او dub او شيء اخر تقوم بتحديد رقمين بهذه الطريقه

<?php
print rand(2336, 965412);
?>

سترى ان هذه الداله ستعطي ارقام عشوائيه تترواح بين 2336 وبين 965412 لن تزيد عن اكبر رقم ولن تقل عن اكبر رقم

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

هذه طريقه سهله ومختصره .. ولاي مساعده ايضا فم بطرح ردك هنا

#4

الطريقة ما اختلفت هنا، مجرد انت اضفت خطوة...

بمعنى في اقتراحك:

1- انشاء جدول في قاعدة البيانات فيه ارقام عشوائية بدون تكرار (و هنا تحتاج كل مرة تختار فيها رقم التاكد انه غير موجود في الجدول، أي غير مكرر... ايضا هنا بدون اجاكس ممكن يحصل max execution time exceeded)

2- عند انشاء تذكرة جديده تسحب رقم من الجدول السابق

اتفق ان الطريقة تقلل الضغط عند فتح تذكرة جديدة... لكن الطريقة ليست اسهل.. وليست مختصرة... ممكن انت تشعر بهذا لانك لم تفهم كلامي :)

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#5

حياك حبيبي وربي يعافيك ...

انا اللي ابا اقوله لو كانت عنده الخبره الكافيه ماكان سأل عن نظام تذاكر ... كان عنده فكرة العمل ...

صحيح انت شرحة له الطريقه بس مش بوضوح عزيزي Ryn ... فلهذا كان لابد من التوضيح الاكثر ....

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

وباقي الكلام كان تذكير عن خطأ قد يسهو عنه مش اكثر حبيبي وبعدين اهم شيء لدى نجاح برامج المبرمج هو عدم التكليف على السيرفر

وبعدين جبيبي مافيه مشكله كلها حلول لمشكله ولكل مبرمج دائما طريقته ....

وهذي طريقتي وهذي طريقتك ايضا :calc: :calc:

وسامحنا على الهذره الزايده

#6

الف شكر على مشاركاتكم

ولقد بدات باستخدام دالة rand

وان شاء الله سوف اضع الكود بعد تجربته

#7

لدي سؤال:

ففي حال قمت باستخدام الدالة rand وأعادة لي الرقم 5 وكان محجوز في قاعدة البيانات ماذا يحصل؟

وما هو الحل؟؟؟

#8

السلام عليكم

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

فهمتني عزيزي

ارجو ان تكون وصلة الفكره

#9

شكراً الفكرة وصلت.

مواضيع مشابهة