سؤال بخصوص دوال التكرار و دالة حساب عدد النتائج
السلام عليكم و رحمة الله تعالى و بركاته
عندي سؤالين مهمين و أنتظر إفادة واحد منكم أو أفكار لحلهما الأول بخصوص التكرار كما هو معلوم جميع دوال التكرار تكرر لنا عملية معينة بشكل متتابع يعني مثلا لو أردنا نكرر عملية معينة من 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 و لكن يكتب لي بأن قاعدة البيانات فارغة و تحياتي لكم
2 إجابات
تستطيع معرفة الجدول فارغ اذا استخدمت ISNULL التي تستعلم عن طريقها بحقل المفتاح الاساسي لكي تضمن ان الجدول فارغ بالفعل لان المفتاح الاساسي لايقبل null
استخدم استعلامين الاول يتاكد اذا كان الجدول فارغ فيتم اخراج رسالة تفيد بانه فارغ ام اذا كان غير فارغ فيتم تنفيد الاستعلام الثاني الذي سيقوم بباقي ماتريد مثلا SELECT COUNT( * ) AS c FROM `helpcomplete` (WHERE ISNULL( `referendumid` بواسطة: Arwa تعديل: MacOS 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا هذه فكرة تستطيع استخدامها ربما توجد اخرى فكرة حلوة بارك الله فيك هذه فكرة رائعة ايضا
السلام عليكم
دوال التكرار تعتمد على المصفوفات فى معظم الاحيان فالمصفوفة المدخلة هى ما سوف تتكرر ولذلك اول مشكلة لا اراها مشكلة ثانيا لعد اى مدخلات بشرط معين يوجد اكثر من طريقة يمكنك جلبهم جميعا وعدهم بدالة 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 تعديل: MacOS 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا أعرف كل هذا و لكن هنا المشكل في حالة = 0 سيكتب لنا 'لا يوجد نتائج' أنا اريد أنه في حالة قاعدة البيانات فارغة يكتب لي أنها فارغة و في حالة أنها غير فارغة و لم يجد نتائج يكتب لي لا يوجد نتائج المشكل ليس في كيفية الاستعلام عليك استعمال الاستعلامات الفرعية والله اعلم - تم التعديل |