لديك حساب بالفعل؟ دخول
دخول  سجل الأن 
سؤال بخصوص دوال التكرار و دالة حساب عدد النتائج
السلام عليكم و رحمة الله تعالى و بركاته
عندي سؤالين مهمين و أنتظر إفادة واحد منكم أو أفكار لحلهما
الأول بخصوص التكرار
كما هو معلوم جميع دوال التكرار تكرر لنا عملية معينة بشكل متتابع
يعني مثلا لو أردنا نكرر عملية معينة من 1 الى 5
سيتم تكرار العملية بالتتابع 1, 2, 3, 4, 5 لغاية الرقم الأخير وهو 5

لكن ماذا لو أردنا تكرار عملية معينة و لكن ليس بالتتابع يعني مثلا نريد تكرار خلال 254 , 356, 98879,66788
يعني في جالة الأرقام غير متتابعة و ليس بينها أي رابط.؟

أما السؤال الثاني بخصوص دالة حساب عدد النتائج وهي mysql_num_rows
مثلا عندي قاعدة منتدى مسجل فيه 50 عضواً
و اريد معرفة عدد الأشخاص من مواليد 1990,01,20
راح أستعمل الدالة و أحصل على عدد الأشخاص من مواليد 1990,01,20

إذا كان لا يوجد أي شخص من مواليد ذاك التاريخ سأحصل على العدد 0
و لكن المشكل هو أنه في حالة كانت قاعدة البيانات فارغة يعني لا يوجد أي عضو مسجل بالمنتدى, سأحصل أيضاً على العدد 0

فكيف أستطيع إضافة شرط أنه في حالة قاعدة البيانات فارغة لا يعطيني 0 و لكن يكتب لي بأن قاعدة البيانات فارغة

و تحياتي لكم
تاريخ البداية: 8 / فبراير / 2012 الساعة 15:8 اخر نشاط: 11 / فبراير / 2012 الساعة 18:55 دالة عدد نتائج تكرار
2 إجابات
تستطيع معرفة الجدول فارغ اذا استخدمت ISNULL التي تستعلم عن طريقها بحقل المفتاح الاساسي لكي تضمن ان الجدول فارغ بالفعل لان المفتاح الاساسي لايقبل null
استخدم استعلامين الاول يتاكد اذا كان الجدول فارغ فيتم اخراج رسالة تفيد بانه فارغ ام اذا كان غير فارغ فيتم تنفيد الاستعلام الثاني الذي سيقوم بباقي ماتريد
مثلا
SELECT COUNT( * ) AS c FROM  `helpcomplete` (WHERE ISNULL(  `referendumid`

بواسطة: Arwa
منذ: 10 / فبراير / 2012 الساعة 23:3

تعديل: MacOS
منذ: 11 / فبراير / 2012 الساعة 18:32

هذه فكرة تستطيع استخدامها ربما توجد اخرى
10 / فبراير / 2012 الساعة 23:5

فكرة حلوة بارك الله فيك
11 / فبراير / 2012 الساعة 2:20

هذه فكرة رائعة ايضا
11 / فبراير / 2012 الساعة 18:55

السلام عليكم
دوال التكرار تعتمد على المصفوفات فى معظم الاحيان فالمصفوفة المدخلة هى ما سوف تتكرر ولذلك اول مشكلة لا اراها مشكلة
ثانيا لعد اى مدخلات بشرط معين يوجد اكثر من طريقة يمكنك جلبهم جميعا وعدهم بدالة count او mysql_num_rows ويمكنك عدهم من خلال الاستعلام هاكذا
SELECT count(`id`) as `total` FROM `table`
اما بالنسبة للشرط لو كنت تريد جلب استعلامات بين حدين او حد اقصى وحد ادنى او ما بين شيئان يمكنك استعمال BETWEEN مثل
SELECT count(`id`) as `total` FROM `table` WHERE `birth` BETWEEN 1990 and 1980
اما لو تريد اختيار بين تواريخ مختلفة عليك استعمال IN وهذا مثال
SELECT count(`id`) as `total` FROM `table` WHERE `birth` IN(1990,1992,1803,3816)
والناتج سيكون حقل واحد وهو total كى يكون التاكد هاكذا
if($row['total'] > 0){
    // يوجد نتائج
}else{
    echo 'لا يوجد نتائج';
}
اما ان اردت عدد جميع الاستعلامات لمعرفة ان الجدول فارغ او به محتويات ولكن ليس به ما تطلبه استعمل
SELECT count(`id`) as `total`,(SELECT count(`id`) FROM `table`) as `all` FROM `table` WHERE ...

بواسطة: MacOS
منذ: 8 / فبراير / 2012 الساعة 15:19

تعديل: MacOS
منذ: 8 / فبراير / 2012 الساعة 15:54

أعرف كل هذا و لكن هنا المشكل في حالة = 0 سيكتب لنا 'لا يوجد نتائج' أنا اريد أنه في حالة قاعدة البيانات فارغة يكتب لي أنها فارغة و في حالة أنها غير فارغة و لم يجد نتائج يكتب لي لا يوجد نتائج
8 / فبراير / 2012 الساعة 15:47

المشكل ليس في كيفية الاستعلام
8 / فبراير / 2012 الساعة 15:48

عليك استعمال الاستعلامات الفرعية والله اعلم - تم التعديل
8 / فبراير / 2012 الساعة 15:54

أنشر اجابتك

xهل تريد الاجابة عن هذا السؤال؟ من فضلك سجل دخول او اشترك لتتمكن من الاجابة