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

محمد المري2

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

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

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

  • عدد الأيام التي تصدر بها

    6

كل منشورات العضو محمد المري2

  1. اعتقد أنك تقصد QR Code لا أعرف طبيعة البيانات التي تريد ان يكون لها QR Code ولكن هنالك عدة مواقع تقدم مثل هذه الخدمة كـ API يمكن استخدامه داخل التطبيقات.
  2. لم يسبق لي ان واجهت مشاكل بتنصيب ال SQL Server مع الـ Visual Studio .. مع العلم أني استخدم نسختين Visual Studio مختلفه بالاضافة الى Visual Code .. واستخدم ايضاً نسختين مختلفه من SQL Server .. وكلها مثبته على نفس الجهاز ونفس القرص. ولم يسبق لي ان واجهت اي مشاكل من هذه الناحية. لربما لو زودتني بصور الاخطاء قد اتمكن من معرفة الاسباب.
  3. انت تحتاج إلى دالة vlookup عملها هو البحث عن القيمة المدخلة في الجدول المربوط بها ومن ثم إظهار القيمة المقابلة لها. (راجع الدالة المدخلة في حقل رقم العميل لتتعرف على طريقة عملها). قد قمت بالتعديل على الملف بحسب سؤالك. علي.xlsx
  4. اذا كنت تريده يظهر عند تسجيل الدخول في حالة أن هنالك خطأ في بيانات تسجيل الدخول , لا تحتاج الى setTimeout بل ستحتاج إلى onclick event وتضيف داخل الدالة خيارات التحقق من البيانات. أو تقوم بإضافة swal("title!","message!","error"); داخل دالة التحقق من البيانات الموجودة. فانت لاتحتاج إلى اضافة دالة منفصلة إذا كانت هنالك دوال موجودة مسبقاً , فقط عليك إضافة الكود داخل هذه الدوال.
  5. من المفترض ان تعمل بدون مشاكل, قم بتجربة وضع القيمة 1 عوضاً عن 100. ايضاً اختيار الـ setTimeout من الممكن انه لايتناسب مع حاجتك. فمثلاً إذا كنت تريد وضع إشعار في حال الضغط على زر معين. فمن الممكن عمله كالتالي : قم بإضافة الزر في صفحة HTML (بإمكانك اضافتها في echo على ال PHP) <button onclick="showError()">Show Error</button> لاحظ أني استخدمت onclick وهذا سيقوم بإستدعاء الدالة في حالة الضغط على الزر. الان قم بإضافة الدالة وحذف setTimeout وايضاً إعطائها اسم كما هو بالمثال التالي: echo '<script type="text/javascript">'; echo 'function showError() { swal("title!","message!","error");}'; echo '</script>';
  6. لم يسبق لي أن تعاملت مع sweetalert2 ولكن من خلال الكود الذي وضعته, يظهر ان سبب التأخير في ظهور نافذة التحذير هي دالة setTimeout() في الجافا سكربت الـ setTimeout يقوم بتأخير الأمر بحسب الوقت المعطى له ويحسب الوقت بالجزء من الثانية . وفي الكود المدرج أنت قد وضعت 1000 جزء من الثانية وهذا يساوي 1 ثانية. أي ان التحذير سيقوم بالإنتظار لمدة ثانية واحدة قبل أن يظهر. فلو قمت بتغييرها من 1000 جزء من الثانية إلى 0 سيظهر التنبيه بشكل مباشر كما هو موضح بالمثال التالي : echo '<script type="text/javascript">'; echo 'setTimeout(function () { swal("title!","message!","error");}, 0);'; echo '</script>';
  7. وضيفتها بالبرمجة بشكل مبسط هي حساب المسافة بين نقطتين او اكثر عن طريق استخدام علم المثلثات الهندسي (يعرف في الرياضيات بعلم المثلثات). يستفاد منها في برمجة الألعاب لحسبة المسافة لأي نقطتين حتى يتم معرفة قياس الحركات الفيزيائية الصحيحة لها. مثال مبسط : لو أخذنا لعبة بسيطة مثل لعبة Pong - تنس الطاولة - (احد الالعاب القديمة). صورة للعبة : اللعبة عبارة عن كورة ومضربين موزعة على مضرب لكل جهة. وتصميم اللعبة ثنائي الأبعاد 2D اي انك ستحتاج إلى : حساب المسافة بين المضربين حساب مساحة الطاولة حساب حجم المضرب هذه ثلاث معطيات تمكنك من استخدام الفيزياء لمعرفة التواقيت والإتجاهات والحركات اللازمة لتحريك الكرة من النقطة أ إلى النقطة ب . فمثلاً لو تم ضرب الكرة من النقطة أ إلى النقطة ب. وتم صدها بالمضرب في النقطة ب. فالطريقة الواقعية هي ان الكرة ستقوم بالإرتداد بالإتجاه المعاكس. وهنا سيتوجب عليك معرفة قوة الدفع (السرعة) المناسبة عند صد الكرة والإتجاه الفيزيائي الصحيح الذي يجب ان تسلكة الكرة (الإرتداد). وهذا تقديره يكون بعلم المثلثات والذي من خلاله ستعرف : نقطة ملامسة الكرة بالمضرب الإتجاة المعاكس عند ارتداد الكرة هذا بشكل مبسط وهو اكثر عمق كتفاصيل حركية وهندسية .. ولكن حاولت أن اعطيك مبدأ بسيط عنها.
  8. يعتمد على حسب حاجتك. نريد تفاصيل أكثر حتى نتمكن من معرفة ماهي المشكلة التي تواجهها لنتمكن من إعطائك الحلول الممكنه.
  9. في لغات البرمجة عموماً يٌفضل دائماً العزل بين أوامر قواعد البيانات و دوال البرنامج نفسه. وهذا فقط لأجل تفادي أي تعديلات مستقبلية قد تطرأ على أوامر قواعد البيانات . مثال لتوضيح الفكرة: برنامج يقوم بعمل أمر استعلام لجدول يحمل 4 أعمدة ويظهرها للمستخدم. وبعد عدة أشهر تم إضافة 3 أعمدة جديدة للجدول ولابد ان تظهر في البرنامج. فستحتاج إلى إضافة الأعمدة الجديدة في البرنامج وعمل re-compile للبرنامج من جديد. وهذا الأمر سيتكرر في كل مره يتم التغيير في هيكلة الجدول المتصل بالبرنامج. قس على ذلك حجم قاعدة البيانات والبرنامج, فكلما كبر البرنامج او قاعدة البيانات كلما اصبح هنالك صعوبة بالتحكم فيها. فلو تم فرزها كلن على حده اصبح التحكم فيها اسهل وافضل. اضف إلى ذلك عند دمج لغات البرمجة أو تقنيات اخرى يتوجب على المبرمج أن يحاول جاهداً بتفادي التكرار فيها وفرز التقنيات المدمجة معه والاستفادة من خصائصها. فمثلاً لو كان هنالك دمج بين C# و SQL Server. من الافضل دائماً ان تستخدم الـ C# للأمور التي لايمكن عملها على الـ SQL Server. لتتمكن من الوصول إلى افضل أداء وتحكم ممكنين. مثال: لديك ملفات بصيغ مختلفه بها بيانات لا يمكن للـ SQL Server تحويلها إلى جداول. فقمت بإستخدام C# لقرائتها وتحويلها إلى جداول داخل البرنامج ثم بعد ذلك إضافتها الى جداول مخصصة قمت بإضافتها في قاعدة البيانات. من بعد إضافتها هنا ينتهي دور الـ C# ويأتي دور الـ SQL Server بالإستفادة من خصائصة مثل Stored Procedure, Trigger وغيرها لإكمال معالجة البيانات بحسب رغبتك .. وهذا الأمر مفيد للمبرمج والسبب أن لكل تقنية لها أدواتها الخاصة التي تساعد المبرمج الحصول على افضل نتائج ممكنة. على سبيل المثال اداة Execution Plan في الـ SQL Server تساعد على تسهيل رفع اداء ال Query بحيث يمكن للمبرمج معرفة أي جزء من الـ Query استهلاكه أعلى والتي يتوجب التعديل عليه للحصول على افضل اداء ممكن. إذا حاولت عمل الـ Query في الـ C# لن تتمكن من معرفة اداء الـ Query التي قمت بعملها. وذلك لأن الـ C# سيكون متصل بالـ SQL Server وفقط سيقوم بإعطاء الـ Query وبقية المعالجة ستكون داخل الـ SQL Server والـ C# سيكون في وضع الإنتظار طيلة فترة المعالجة. حين انتهاء الـ SQL Server من الـ Query سيظهر النتائج وسيقرأها الـ C# وهنا يعود الأمر مرة اخرى الى الـ C# ليكمل تنفيذ بقية الكود.
  10. الطريقة الأكثر شيوعاً هي بإستخدام substring() String name = "yazan"; String yazan = name.substring(0,3) + "e" + name.substring(4,5); System.out.println(yazan); او استخدام replace() String str = name.replace("y", "Y"); System.out.println(str); او استخدام الـ StringBuilder StringBuilder nameYazan = new StringBuilder("yazan"); nameYazan.setCharAt(0, 'Y'); nameYazan.setCharAt(3, 'e'); System.out.println(nameYazan);
  11. المنصة: هي الأرض التي تبنى عليها لغات البرمجة او تبنى عليها الايطارات او الحزم والمكتبات. الإيطار : هي مجموعة من المكتبات او الحزم المبنية على منصة لغة برمجة معينه. لاتعمل الا على المنصة المبنية عليها. الحزمة او المكتبة: هي مجموعة من الدوال وكائنات لخدمة شيء معين. وتكون مبنيه بداخل ايطار او منفردة على احد منصات البرمجة. ولا تعمل إلا على المنصة المبنيه عليها اذا كانت منفردة وعلى الإيطار والمنصة عليها إذا كانت مبنية داخل إيطار. API : ليست حزمة أو مكتبه وإنما هي واجهة تصل بين برنامجك والبرامج الأخرى لعمل أمر معين دون الحاجة إلى اتصال مباشر ولا تتقيد بمنصة او ايطار معين. فمن الممكن أن يتم وصل منصتين او ايطار ومنصة مختلفين عبر الـ API . الـ Node.js ايطار مبني على منصة Javascript مثل الـ jQuery ..
  12. كلا الطريقتين تؤدي الغرض نفسه. إلا ان هنالك بعض الفروقات الأخرى التي تتعلق فيها. أحد اهم العوامل هي الـ SEO .. مثلاً , في قوقل , يتم قراءة النطاقات الفرعية على انها نطاقات مميزة وغير متصلة بالنطاق الأساسي. فمثلاً : www.facebook.com/stores سيتم قرائتها على انها خدمة متصلة بالـ Facebook.com وسيتم ارشفته تحت اسم النطاق الرئيسي. بينما لو كانت : stores.facebook.com سيتم قرائتها على انه موقع مستقل تماماً وسيتم ارشفته بشكل مستقل تحت نطاق الإسم الفرعي. هذه اكثر نقطة قد تجعل اصحاب المواقع الإبتعاد عن النطاقات الفرعية حتى يتمكنوا من الحفاظ على ترتيبهم في قوقل ولا يبدأون من الصفر. اما بالنسبة لمتى يتم استخدام النطاقات الفرعية, فهي تعتمد على صاحب الموقع وطريقة تسويقه او نشره لخدماته. فمثلاً, لو كان لدينا متجر إلكتروني مثل Amazon ونريد أن نقوم بتجزئة الموقع بحسب الدول, حتى يمككنا الإستفادة من تخصيص الخدمات بحسب كل دولة وايضاً تلخيص التقارير الشهرية للموقع بحسب الدول والتي ستمكننا من زيادة كفاءة المتجر ورفع الإرادات السنوية. فيمككنا ان نقوم بإستخدام النطاقات الفرعية وإضافة اختصار لإسم الدولة . مثال : us.amazon.com sa.amazon.com jp.amazon.com النطاقات الفرعية ايضاً تمككنا من وضع موقع مستقل تماماً والذي سيفدنا من تسليمه إلى فروعنا بارجاء العالم. فكل موزع سيكون مسؤول عن إدارة المتجر الفرعي المخصص له. وتبقي الروابط ودوده Friendly-URL للمستخدمين. فيتمكنوا من حفظها بسرعة. كذلك هو الحال مع اللغات , والخدمات الاخرى التي من الممكن ان يكون تركيز صاحب العمل عليها في التسويق فيجعلها مستقله ليدخلها في خطة تسويقية مكثفة. كما هو الحال مع غالب الشركات الكبيرة مثل مايكرسوفت. وليس فقط كتسويق وانما من الممكن ان يكون النطاق الفرعي هو الحل الأمثل للخدمة بسبب ان هذه الخدمة لها متطلبات كثيرة (مثلاً خدمة المطورين Developer في غالب المواقع مثل قوقل وتويتر وغيرها ) .. النقطة الأخرى التي من الممكن ان تكون غير مهمه للبعض ولكن بعض المواقع تبتعد من النطاقات الفرعية حتى توفر بمبلغ شهادات الـ SSL .. فشهادات الـ SSL Standard تتضمن فقط النطاق الرئيسي وهو أرخص من الـ SSL Wild Card الذي يتضمن النطاق الرئيسي والنطاقات الفرعية ..
  13. على حد علمي لايمكنك إضافة سجلات إلى ثلاث جداول في آن واحد على SQL Server مهما كانت العلاقات بين الجداول بأمر INSERT واحد. ولكن هنالك عدة طرق من الممكن أن تسهل عليك العملية. أحدها هي أختيار جدول رئيسي بين الجدولين من ثم إنشاء Trigger في الجدولين الآخرين. الـ Trigger سيكون موجهه لأي سجلات جديدة تم اضافتها الى الجدول الرئيسي. سيتم تشغيل الـ Trigger في الجدولين المتبقين ونسخ هذه السجلات إلى الجدولين.
  14. الخطأ عندك في strQuary لن يتم تنفيذ إلا آخر أمر لأنك فقط قمت بإعادة تعيين المتغير strQuary ثلاث مرات دون تنفيذها. فقط سيتم تنفيذ آخر تعيين تم وهو : "ALTER DATABASE service_station SET MULTI_USER WITH ROLLBACK IMMEDIATE" ليتم حل المشكلة يجب ان يتم تنفيذ كل امر بعد كل عملية تعيين للمتغير. فتضيف cmd.ExecuteNonQuery بعد كل امر SQL. ولكن ستحتاج إلى أن تقوم بتعديل عملية تعريف SqlCommand ويتم التعريف مباشرة بعد تعريف الـ SqlConnection وايضاً تحتاج إلى جعل تعريف متغيرات ال string في بداية الدالة (فوق ال SqlConnection) . كما هو موضح لك بهذه الصورة : إذا كنت ستستخدم الـ sqlconnection و sqlcommand بشكل متكرر أنصحك بجعلها دوال functions أو حتى Class حتى تتفادى التكرار وايضاً تختصر الجهد والوقت. انظر الى هذا المثال (جعلها كدالة): وحين تطبيقها على دالتك : لن نحتاج إلى تعريف الاتصال إلا مرة واحدة, والإتصال سيفتح مع بداية دالة SQLCmd ويغلق تلقائياً بعد تنفيذ أمر الإستعلام SQL.
  15. طالما أن الخدمات تقدم فقط بالسعودية. فأنصحك بأن تبحث عن مزود خدمة سداد. ليس لدي معرفة في PayFort ولكن الـ PayTabs لديهم خدمة سداد. وايضاً هنالك مٌيسر مقرها في مدينة جدة ولديهم خدمة سداد.
  16. هنالك إضافة plugin بإسم BuddyPress تعمل على تحويل الوردبريس إلى صفحة تواصل إجتماعي تمكن الزوار من التسجيل وإعطائهم صفحات شخصية وإضافة مميزات أخرى مثل تعقب الأحداث, إضافة اصدقاء داخل الشبكة, الرسائل الخاصة وغيرها. بإمكانك البحث والقراءة عنها. علها تكون مبتغاك
×
×
  • أضف...