اذهب إلى المحتوى

Abdelrahman Mostafa10

الأعضاء
  • المساهمات

    106
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Abdelrahman Mostafa10

  1. هذا هو مخطط Mongoose الخاص بي: const pplSchema = mongoose.Schema({ id: String, person: [ { id: String, age: Number, gender: String, height: String } ], employment: Boolean }); وذلك هو جسم الطلب JSON الذي أحاول تمريره من خلال Postman كـ PUT: { "humanID": "12345", "person": { "humanAdultId": "6789", "age": 37, "gender": "male", "height": "5ft" } } وهذا هو سجل قاعدة البيانات 'human' الذي أحاول تحديثه: { "humanID": "12345", "person": [ { "humanAdultId": "4321", "age": 21, "gender": "female", "height": "4ft" }, { "humanAdultId": "6789", "age": 35, "gender": "male", "height": "6ft" }, { "humanAdultId": "7654", "age": 27, "gender": "male", "height": "5ft" } ] } أحاول استخدام جسم الطلب JSON لتحديث الكائن الثاني في المصفوفة، وأريد تحديث قيمه: العمر والارتفاع. أريد القيام بذلك عن طريق استدعاء معرف السجل الكلي (humanID) ومن ثم معرف الكائن (humanAdultId) للتنقل إلى الكائن الذي أحتاجه، ولقد قمت بالبحث في مسار $pull و $push ، ولكن يجب أن يكون هناك وسيلة أسهل للقيام بذلك. فما هو أفضل وسيلة لتحقيق ذلك؟
  2. أُثناء متابعتي لأحد الدورات، لم أتفهم بشكل كامل ما معنى الـ Scope في جافاسكريبت وما الإختلافات ما بين Global Scope و Function Scope وBlock Scope. أيضًا ما المقصود بـ Lexical scope وDynamic Scope؟ أرجو توضيح الأمر بأمثلة بشكل مُفصل إن أمكن، وهل يجب علي كمبتدأ تعلم ذلك أي هل الأمر ضروري؟
  3. مرحبًا، استخدم هذا الاستعلام في وحدة التحكم الخاصة بي ويعمل، يعرض هذا الاستعلام بيانات التوزيع اليومي للقيم التي تم تصفيتها باستخدام نموذج،، وذلك قابل للتعديل لأنه عندما لا تُعين بعض معلمات التصفية، فإنني لا استخدمها في استعلامي. $query = Measure::query() ->select(DB::raw('DATEPART(hour, DATETIME_D) AS HOUR_N')) ->selectRaw('SUM(CASE WHEN STATUS_N > 0 THEN 1 ELSE 0 END) AS OK_N') ->selectRaw('SUM(CASE WHEN STATUS_N <= 0 THEN 1 ELSE 0 END) AS NOK_N') ->where('MEASUREID_N', '>', 0) ->where('DATETIME_D', '>=', $dfrom) ->where('DATETIME_D', '<=', $dto); $query->when($serial_number, function (Builder $q, string $serial_number) { $q->where('PRODSN_S', '=', $serial_number); }); $query->when($user_id, function (Builder $q, string $user_id) { $q->where('USERID_S', '=', $user_id); }); $query->when($product_id, function (Builder $q, string $product_id) { $q->where('PRODID_S', 'LIKE', '%' . $product_id . '%'); }); $query->when($area, function (Builder $q, string $area) { $q->join('AREAS_DEF', 'MEASURES.AREAID_N', '=', 'AREAS_DEF.AREAID_N') ->where('AREAS_DEF.NAME_S', '=', $area); }); $query->when($phase, function (Builder $q, string $phase) { $q->join('PHASES_DEF', 'MEASURES.PHASEID_N', '=', 'PHASES_DEF.PHASEID_N') ->where('PHASES_DEF.NAME_S', 'LIKE', '%' . $phase . '%'); }); $query->groupBy(DB::raw('DATEPART(hour, DATETIME_D)')) ->orderBy(DB::raw('DATEPART(hour, DATETIME_D)')); ذلك يعمل بشكل جيد وبسرعة. ولكن عندما استخدم نفس الاستعلام مع بعض المعلمات المختلفة التي تعيد توزيعًا أسبوعيًا، لا يتم حل الاستعلام ويبدو أنه معلق ومجمد، وهذا هو الاستعلام: $query = Measure::query() ->select(DB::raw('DATEPART(dw, DATETIME_D) AS DAY_N')) ->selectRaw('SUM(CASE WHEN STATUS_N > 0 THEN 1 ELSE 0 END) AS OK_N') ->selectRaw('SUM(CASE WHEN STATUS_N <= 0 THEN 1 ELSE 0 END) AS NOK_N') ->where('MEASUREID_N', '>', 0) ->where('DATETIME_D', '>=', $dfrom) ->where('DATETIME_D', '<=', $dto); $query->when($serial_number, function (Builder $q, string $serial_number) { $q->where('PRODSN_S', '=', $serial_number); }); $query->when($user_id, function (Builder $q, string $user_id) { $q->where('USERID_S', '=', $user_id); }); $query->when($product_id, function (Builder $q, string $product_id) { $q->where('PRODID_S', 'LIKE', '%' . $product_id . '%'); }); $query->when($area, function (Builder $q, string $area) { $q->join('AREAS_DEF', 'MEASURES.AREAID_N', '=', 'AREAS_DEF.AREAID_N') ->where('AREAS_DEF.NAME_S', '=', $area); }); $query->when($phase, function (Builder $q, string $phase) { $q->join('PHASES_DEF', 'MEASURES.PHASEID_N', '=', 'PHASES_DEF.PHASEID_N') ->where('PHASES_DEF.NAME_S', 'LIKE', '%' . $phase . '%'); }); $query->groupBy(DB::raw('DATEPART(dw, DATETIME_D)')) ->orderBy(DB::raw('DATEPART(dw, DATETIME_D)')); حاولت إزالة معلمات 'LIKE' وتعيين '=' بدلاً منها وأصبح الأمر سريعًا، وهذا غريب لأن عندما أجرب الاستعلام في SQL Manager، يكون سريعًا وبدون أخطاء، لقد واجهت تلك المشكلة بالفعل مع استعلامات أخرى كان فيها التطابق الجزئي. هل واجه أحدكم مشاكل مماثلة من قبل؟
  4. لدي مشروع وأرغب في ترقيته إلى PHP8، فقمت بتحويل جميع استعلامات قاعدة البيانات الخاصة بي إلى PDO، وافترضت أن باقي الكود في PHP سيكون بخير. ويبدوا أن الأمور ليست كذلك، ولا أعلى هل المشكلة تكمن في PDO الخاصة بي التي كانت تعمل بشكل جيد تحت PHP 5.4. فالكود التالي: $pdo = connectDB(); $stmt = $pdo->query("SELECT * FROM Bank_config"); $row = $stmt->fetch(); return $row; هذا كان يعمل فعليًا تحت PHP 5.4. ما الذي يجب علي فعله والطريقة الصحيحة للترقية؟
  5. ما زلت أحاول تعلم React.js، واجهتني مشكلة عند تحديث الحالة الخاصة بالمكونات، فعندما أقوم بتحديث حالة المكون باستمرار، يبدوا أن React يعيد تقييم المكون بأكمله بدلاً من إعادة تقييم الجزء الذي تغيرت فيه الحالة. الكود: import React, { useState } from 'react'; const MyComponent = () => { const [count, setCount] = useState(0); const handleIncrement = () => { setCount(count + 1); }; return ( <div> <p>العدد: {count}</p> <button onClick={handleIncrement}>زيادة</button> </div> ); }; export default MyComponent; عندما أقوم بالنقر على زر "زيادة"، يتم إعادة تقييم المكون بأكمله، حتى إذا كان لدي عناصر أخرى في المكون، يبدوا أنها تتأثر أيضًا. كيف يمكنني تحسين ذلك وتجنب إعادة التقييم الزائد؟
  6. أنا أحاول تنفيذ نظام إشعارات في تطبيق Laravel، حيث يتيح للمستخدمين استقبال إشعارات حول الأحداث المختلفة في التطبيق، فقررت استخدام قاعدة البيانات لتخزين الإشعارات وتحديد نوع الإشعار (مثل إشعارات النظام، الرسائل الشخصية، إلخ). قمت بتصميم جدول في قاعدة البيانات لتخزين الإشعارات بشكل مناسب، ولكنني أواجه تحديات في تنفيذ الكود اللازم لحفظ الإشعارات وإرسالها بشكل فعال، كما أنني أواجه صعوبة في تصميم وعرض صفحة الإشعارات بشكل منظم للمستخدم.
×
×
  • أضف...