-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
علينا القيام بالخطوات التالية: ربط الجدولين حسب حقل الاسم سوف نستخدم LEFT JOIN للتاكد من ورود أسماء المهندسين تجميع النتائج حسب اسم المهندس نستخدم GROUP BY NAME عمل تجميع ضمن عبارة SELECT باستخدام GROUP_CONCATE التي تدمج السلاسل النصية في سلسة واحدة مع تحديد محرف الفصل بين القيم SELECT x.name, --جلب الاسم GROUP_CONCAT(y.LanguageName SEPARATOR ', ') -- دمج أسماء لغات البرمجة التي تعود لنفس المهندس FROM Engineers e LEFT JOIN ProgramingLanguages pl ON pl.name = e.name -- عمل ربط حسب اسم المهندس GROUP BY e.name -- تجميع حسب اسم المهندس والنتيجة: Ex: wael c++, java, php walid java, javascript wasim c#, asp.NET
- 1 جواب
-
- 1
-
الأفضل هو عمل جدول منفصل للحالة، يحوي حقلين، هما معرف الحالة والقيمة الاسمية للحالة، أي جدول يعمل ك lookup table ويأخذ الحقل status في جدول الطلبيات القيمة tiny int، يمكن عمل الربط عن طريق المفتاح الثانوي، ولكن الأفضل عدم عمل ربط أثناء الاستعلامات، بل جلب القيم واستبدالها لاحقاً في صفحة الويب أو التطبيق لكي نحسن من الأداء في قاعدة البيانات. tiny int لتوفير مساحة التخيزين، جدول الحالات ك lookup table يمكن استعمال مفهوم العرض view لتركيب استعلام معقد حسب الحالة لديك. status_table status_id | status name 0 pending 1 cooking 2 delevering 3 delevered
- 3 اجابة
-
- 1
-
يقول الخطأ أن هنالك قوس ناقص بمكان الخطأ expecting '}', found '' @ line 77 ماهو السطر 77? المشكلة فقط قوس ناقص في الملف build.gradle تأكدي من كتابته بطريقة سليمة
- 4 اجابة
-
- 1
-
سوف ننفذ أمر باستخدام LSNRCTL لإعادة تشغيل الخدمة: افتح cmd واكتب LSNRCTL ثم ننفذ stop ثم start. أغلقه ثم افتح cmd جديد ثم نفذ sql ثم startup >LSNRCTL LSNRCTL> stop LSNRCTL> start sql SQL> startup ثم حاول، إن بقيت مشكلة جرب الأوامر: sqlplus "/as sysdba" alter system disable restricted session; ******* connect "/as sysdba" ******* set oracle_sid=oraclesid sqlplus /nolog conn sys/pwd as sysdba وإن كانت أول مرة تشغل البرنامج ربما عليك إضافة ORACLE_HOME من التوثيق الرسمي لهم لمتغيرات البييىة system environment حسب مسار تبيته لديك.
-
تحتاج لمخدم مقبول، ليس قوي جداً وأعتقد أن المواصفات التالية كافية: 2 cores, 2 Ghz or higher and 2 GB RAM and 2 GB free disk space بافتراض 300 مستخدم يستعملون الموقع بشكل متكرر، نحتاج لمعالج ثنائي النواة على الأقل عالي التردد مثل 2 غيغاهرتز مع 2 غيغابايت ذاكرة RAM ومساحة فارغة على القرص. وبرنامج لإدارة postgres هو pgAdmin
-
حتى نتمكن من دمج كل أسطر جدول ما مع جميع أسطر الجدول الثاني، أي combination أي مزيج بين كل الأسطر نلجأ لما يدعى CROSS JOIN وفيه يتم تكرار جميع سجلات الجدول الثاني لكل سجل من الجدول الأول .. مثلا إن كان لدينا جدول للفئات مثل فواكه، خضار ونريد عرض الفئة لكل منتج منهما نستعمل هذا النوع من الدمج SELECT * FROM Category, Product أو بدون كلمة CROSS SELECT * FROM Category CROSS JOIN Product ستكون النتيجة مثلاً: category __ product Frutes Apple Frutes Banana Frutes Peanapple Frutes Strawpery Vegetables Tomato Vegetables Potato Vegetables cucember Vegetables onion
- 2 اجابة
-
- 1
-
إن كان عدد الجداول كبير، هنا كل عملية دمج سوف ينتج عنها جدول جديد يحوي عمود إضافي ناتج عن الدمج السابق وبهذا يصبح عبئ في عمل مدير قواعد البيانات، لذلك في هذه الحالة نستخدم الاستعلامات الفرعية بدل الدمج، حيث أن كل استعلام فرعي يجلب نتيجة من جدول ما، مع تحقيق الربط باستخدام WHERE أي بدل عمل التالي: SELECT table1_id, -- مكرر وهو عمود الربط table2_name, -- جلب حقل الاسم من باقي الجداول table3_name, table4_name, table5_name, table6_name, table7_name, table8_name, table9_name FROM table1 LEFT JOIN table2 ON (table2_id = table1_id) LEFT JOIN table3 ON (table3_id = table1_id) LEFT JOIN table4 ON (table4_id = table1_id) LEFT JOIN table5 ON (table5_id = table1_id) LEFT JOIN table6 ON (table6_id = table1_id) LEFT JOIN table7 ON (table7_id = table1_id) LEFT JOIN table8 ON (table8_id = table1_id) LEFT JOIN table9 ON (table9_id = table1_id) نبدله بالتالي: SELECT table1_id, (select table2_name from table2 where table1_id = table2_id), (select table3_name from table3 where table1_id = table3_id), (select table4_name from table4 where table1_id = table4_id), (select table5_name from table5 where table1_id = table5_id), (select table6_name from table6 where table1_id = table6_id), (select table7_name from table7 where table1_id = table7_id), (select table8_name from table8 where table1_id = table8_id), (select table9_name from table9 where table1_id = table9_id) FROM table1 تعتبر هذه من الحالات التي يكون فيها أداء SubQuery أسرع من عمل JOIN
- 2 اجابة
-
- 1
-
عندما يملك جدول ما مفتاح أساسي مركب، علينا فك هذا المفتاح للأعمدة المكونة له، ثم التحقق منطقيا من تساوي جميع هذه القيم كلِ على حدى، أي نتأكد من قيمة العمود الأول مع الثاني مع الثالث .. SELECT * -- جلب النتائح FROM Table1 -- الجدول الأول JOIN Table2 -- الجدول الثاني ON Table1.col1 = Table2.col1 -- عمل الربط مع أول عمود من المفتاح AND Table1.col2 = Table2.col2 -- عمل الربط مع العمود الثاني -- هكذا سيتم الدمج بناءاً على قيم عمودين لا علاقة لنوع المفتاح ضمن عملية الربط، ما يهم هو تقابل القيم بين جدولين،
- 2 اجابة
-
- 1
-
يمكن استخدام LIKE في أي مكان يمكن استخدام الشروط فيه مثل = , != , IN , وغيرهم بعض قواعد البيانات لاتدعم معامل دمج النصوص + مثلا في SQL SERVER نحتاج لاستخدام دالة CONCATE SELECT * FROM A INNER JOIN B ON B.MYCOL LIKE CONCAT('%', A.KEY, '%'); ^^^^^^^ == ^^^^^^^^^^^^^^^^^^^^^^^^ كما يمكن استخدام كامل ميزات LIKE فيها
- 3 اجابة
-
- 1
-
إن PHP ليس لديها طريقة مثل GET و POST لاستقبال البيانات على شكل طلبية PUT أو غيرها لذلك تتعامل معهم على شكل مختلف: لذلك نستخدم php://input لقراءة بيانات الطلبية نستقبلهم كملف، ثم نحول المحتوى عن طريق parse_str parse_str(file_get_contents("php://input"),$payload); echo $payload['success']; // true حسب التوثيق نجاح الطلبية يعيد { success: true } parse_str تستقبل سلسلة نصية وتعيد إما متغيرات لكل مفتاح/قيمة أو تعيد مصفوفة في حال تمرير وسيط ثاني: <?php parse_str("name=WAEL&age=25"); echo $name."<br>"; echo $age; ?> <?php parse_str("name=WAEL&age=25",$myDataArray); print_r($myDataArray); ?>
- 1 جواب
-
- 1
-
عليك استخدام بيئة برمجية Cross Platform أي أنها تعمل على عدة منصات (أنظمة تشغيل) ويوجد العديد منهم، ملاحظة: في كل فترة تحدث تطويرات وقد تدعم البيئة منصات أكثر في المستقبل.. Flutter وتعمل بلغة Dart وتعمل على جميع المنصات android - ios - web - windows - mac .. React Native تعمل بلغة JavaScript بالإضافة للغات الويب HTML - CSS وتعمل أيضا على مختلف المنصات android - ios - web .. تقنيات هجينة Hybrid: Cordova تعمل بلغة JavaScript بالإضافة للغات الويب HTML - CSS وتعمل أيضا على مختلف المنصات android - ios - web Xamarin تعمل بلغة #C .. وغيرهم، ما يهمك أول 3 من القائمة فهم الأكثر دعماً وفرص عمل. Flutter + React Native توفر شيفرة مصدرية أصلية لذلك أداء تطبيقاها أفضل.
- 2 اجابة
-
- 1
-
لايوجد سعر ثابت للمواقع، لوجود العديد من المتغيرات في طريقة حساب الكلفة، منها مكان إقامة المطور و خبرته وحجم المشروع إمكانية شراء إضافات أو توظيف مصمم وغيرها، وهذه عليك الاتفاق عليها مع المطور الذي سيعمل معك. يمكنك التوجه لموقعي خمسات ومستقل وإضافة مشروع، ثم التواصل مع المطورين هناك والتفاوض معهم لإنشاء الموقع.
- 1 جواب
-
- 1
-
_imageFileList = _imageFileList != null ? (_imageFileList.length > 4 ? _imageFileList.take(4)) : _imageFileList,
- 17 اجابة
-
- 1
-
itemCount: _imageFileList !=null ? _imageFileList.length.clamp(0, 4) : _imageFileList.length.clamp(0, _imageFileList.length),
- 17 اجابة
-
- 1
-
أنت تعيد 0، وهذا يعدل المتغير itemCount إلى 0 لذلك يسمح للمستخدم بإعادة التحديد ماذا تفعل الطريقة clamp؟ جرب: لست متأكداً itemCount: _imageFileList !=null ? _imageFileList.length.clamp(0, 4) : _imageFileList.length, أو استخدم الدالة take لأخذ أول x عنصر من القائمة _imageFileList = _imageFileList != null ? (_imageFileList.length > 4 ? _imageFileList.take(4) : _imageFileList) : _imageFileList, itemCount: _imageFileList.length,
- 17 اجابة
-
- 1
-
الخطأ: Unhandled Exception: NoSuchMethodError: The getter 'length' was called on null. ^^^^^^^^^^^^^^^^^^^^ ^^^^ القائمة الابتدائية تكون فارغة null لذلك لايمكن استدعاء دوال عليها ، الكائن لم يتم بناءه الحل: if (_imageFileList != null && _imageFileList.length == MAX_PHOTO_UPLOAD) { ^^^^^^^^^^^^^^^^^^^^^^ نختبر القائمة إن كانت موجودة. للتخلص من مشكلة null علينا استخدام الدالة البانية في أول الصفحة List<XFile> _imageFileList = List<XFile>();
- 17 اجابة
-
- 1
-
ما رأيك أن تجرب كتابة الشيفرة ثم نعمل على تعديلها، انت منذ فترة تتعلم فلاتر، ولكن يجب معرفة كيفية عمل مخطط منطقي لسير البرنامج وعمل بعض البحث. شاركنا تجربتك.
- 17 اجابة
-
- 1
-
يمكنك عرض تنبيه للمستخدم مثلا على شكل Toast إشعار تنبيهات، كما يمكن وضع تنويه ضمن الزر اكتب حد اقصى 4 او Max (4) .. Select imgs up to 4... وبعد انتهاء المستخدم من التحديد، إن كان حجم القائمة أكبر من 4 اعرض له تنبيه جديد بخبره أن اول 4 صور سيتم اختيارها. واقتطع القائمة محتفظاً بأربع عناصر.
- 17 اجابة
-
- 1
-
يمكنك الآن تطبيق الفكرتين من خلال السؤالين: كيفية عمل اشعار في وقت محدد: كيفية حساب المدة الزمنية لتاريخ معين: إذا قمتي بقراءة الإجابتين بشكل جيد أضمن لك أنك ستستطيعين برمجة الحل. يمكن المساعدة بأسئلة محددة خلال تطبيقك للفكرة البرمجية في حال لم تعمل لاحقاً عليك الآن التجريب
- 1 جواب
-
- 1
-
حسب ترتيب خطوات تنفيذ الاستعلام في SQL سيتم تنفيذ جزء ON قبل جزء WHERE لذلك يمكننا نقل الشرط لتتم الفلترة بناءً عليه بخطوة قبل وهذا يسرع الأداء، حيث لا نحتاج WHERE بعدها SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.user_id AND Table2.role='Admin' ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ لاحظ نقل شرط WHERE ودمجه مع شرط الربط. WHERE تعمل على الجدول الناتج من عملية الربط، أي سيكون هنالك بيانات أكثر لاختبارها، لذلك نضع الشرط مع جزء ON ضع دائمًا شروط الدمج في جملة ON إذا كنت تقوم بإجراء INNER JOIN. أي لا تضف أي شروط من WHERE إلى جملة ON ، بل ضعها في جملة WHERE إذا كنت تقوم بتنفيذ LEFT JOIN ، فقم بإضافة أي شروط WHERE إلى جملة ON للجدول الموجود في الجانب الأيمن من الدمج. هذا أمر لا بد منه ، لأن إضافة جملة WHERE تشير إلى الجانب الأيمن من الدمج ستحوله إلى INNER JOIN. الاستثناء هو عندما تبحث عن السجلات غير الموجودة في جدول معين. يمكنك إضافة المرجع إلى معرّف فريد (ليس فارغًا أبدًا) في جدول RIGHT JOIN إلى جملة WHERE بهذه الطريقة: WHERE t2.idfield IS NULL. لذا ، فإن المرة الوحيدة التي يجب أن تشير فيها إلى جدول على الجانب الأيمن من الصلة هي العثور على تلك السجلات غير الموجودة في الجدول.
- 1 جواب
-
- 3