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

Wael Aljamal

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

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

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

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

    218

كل منشورات العضو Wael Aljamal

  1. حاول عمل حلقة عادية، تحتاح 3 حلقات كل منها تقوم بالمرور على مجال ما. قم بتحويل الناتج لمصفوفة ليمكنك المرور عليها
  2. نعم المتجر، أنا لم أجرب من قبل. (قرأت بعض المراجعات أنه لا يدفع ربما تتغير القوانين الخاصة بهم في أي وقت) إن كان التطبيق نفسه مدفوع تأخذ غوغل 30% من الأرباح أيضا.
  3. نعم لكنها قليلة مثلا Google Play Store يدفع 2 cents لكل تحميل
  4. عادةً يوجد ملف يحوي على مفتاح مقابل النص المعروض لكل لغة من لغات الموقع مثل: الانكليزية [ x=> Hello, y=> Bye ] العربية [ x=> مرحبا, y=> وداعاً ] ثم بعد تصفح الموقع، يتم برمجياً اختيار ملف الترجمة لهذه الرموز حيث يتم عرض النص الموافق للرمز المراد عرضه. عادةً تحتاج فقط لترجمة المحتوى الثابت و إنشاء ملف خاص لكل لغة تريد أن تدعهما أما المحتوى الذي يكتبه المستخدمون لا يترجم. احرص على أن يكون تطبيقك يدعم تعدد اللغات لسهولة إضافة وحذف اللغات في المستقبل. ربما تختلف الطريقة السابقة حسب التقنية التي يعمل بها المشروع.. إن كنت تريد توفير محتوى كامل بلغة أجنبية، تحتاج لمختص في كتابة المحتوى بتلك اللغة لكي يكون المحتوى جيد و مقروء و مفهوم و ليس ترجمة حرفية..
  5. يتم تحصيل أرباح من التطبيقات إما من الإعلانات مثل adMob أو أي جهة أخرى عمليات الشراء داخل التطبيق، مثل الألعاب العضوية المدفوعة دفع مبلغ مقابل استعراض محتوى
  6. بعد تثبيت تطبيق لارافل على الاستضافة يظهر لي هذا الخطأ بعد انشاء الحساب ومحاولة تسجيل الدخول. في التوثيق الرسمي، عند حدوث هذا الخطأ يتم طلب تنفيذ الخطوة: حذف ملف insalled في المجلد storage و اعادة انشاء قاعدة البيانات ولكن لم تحل المشكلة.. وفي قاعدة البيانات يتم تهجير ملف واحد.. custom table.. مثلا لايوجد حساب افتراضي كما هو الحال بالمثال التجريبي. Admin@demo.com :123456 فهو غير موجود في القاعدة بعد التهجير اصلا يتم تهجير ذلك الملف custom table وحده كما في DataBaseSeeder في الدالة call .. بدون جداول تحديد الصلاحيات Permission حاولت التعديل عدة مرات ولكن لم أنجح
  7. حاول عمل شرط ضمن foreach حسب قيمة عداد: <?php $i = 0; foreach($arr as $a) { $i++; if (i<=7) { // code 1 } elseif (i<= 14) { // code 2 }else{ // code 3 } } إن كنت تريد فصلهم بشكل نهائي، يمكن تقسم المصفوفة ل 3 أجزاء كالتالي: foreach(array_slice($arr, 0, 6) as $a): foreach(array_slice($arr, 6, 15) as $a): foreach(array_slice($arr, 15, 24) as $a): حيث استخدمنا دالة التقطيع array_slice
  8. بالنسبة لـ SASS لايوجد خطأ، إنما تحذير لكي لا تستخدم عملية القسمة " / " العادية إنما تستبدلها بدالة القسمة: $spacer / 2 => math.div($spacer, 2) لأن عملية القسمة لن تبقى مدعومة في الإصدارات اللاحقة. استبدل القسمة العادية بدالة القسمة. إقرأ التحذيرات بشكل دقيق. بالنسبة لجيكويري، قم بالتأكد من كل الخطوات وأسماء الملفات.. مشكلة file-loader تأكد من كتابة اسم الخاصية التي تحدد اسم المجلد مكان تصدير الصور..
  9. يجب أن تضع common name أو الاسم المشترك/العام لأي دومين من الموقع. Wildcard SSL certificate تسمح لك بعمل الرابط كالتالي: *.example.com حيث أن * تمثل أي دومين فرعي يمكنك استخدامه. بهذه الحالة ستتمكن من الوصول إلى: www.example.com, secure.example.com or private.example.com ابحث عن What is the SSL Certificate Common Name؟ على كل حال تأكد من الشهادة في الحقل التالي: commonName field in the X.509 certificate specification. ^^^^^^^^^^
  10. Vector في ++C هي مصفوفة ديناميكية، أي متغيرة الطول، وبنية البيانات الموافقة لها في جافا هي ArrayList التضمين: import java.util.ArrayList لتعريف غرض من ArrayList: List<String> stringList = new ArrayList<String>(); في المثال السابق كان نمط بياناتها String مثال بسيط: import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<String> cars = new ArrayList<String>(); cars.add("BMW"); cars.add("Volvo"); cars.add("Ford"); cars.add("Mazda"); System.out.println(cars); } } الطريقة add تضيف عناصر. بعض الطرق المهمة: cars.get(0); //جلب العنصر الأول cars.set(0, "Opel"); // إسناد قيمة للعنصر الأول cars.remove(0); // حذف العنصر الأول cars.clear(); // حذف جميع العناصر
  11. هل يمكنك التأكد من أمرين: اسم الmodel، مثلا هل هو Books إصدار node في المخدم وهل هو نفس الإصدار المحلي لديك
  12. ابحث في w3schools عن many to many SQL relationship. إن بناء قاعدة البيانات هو أهم مرحلة في المشروع فالبناء الصحيح يسهل عمل الاستعلامات وينظم الأمور.
  13. هذه علاقة "الكثير ل الكثير" أو many to many حيث يتم إسقاطها بجدول ثالث يحوي حقل لرقم للشركة و حقل لرقم المورد. بعد جلب بيانات هذا الجدول تقوم بتجميعهم عن طريق group by حسب رقم الشركة ثم تعرض النتائج.
  14. لاحظ هذا الجزء: <?php /// لا داع له $ro = mysqli_num_rows($result1); while ($ro = $result1->fetch_assoc()) { echo "<option value='". $ro['id'] ."'>" .$ro['name'] ."</option>" ; } ?> عند استخدام الدالة fetch_assoc ستقوم بالمرور على العناصر مرة واحدة. حاول كتابة استعلام بسيط، مثل التالي: <?php $mysqli = new mysqli('localhost', 'root', '', 'my_db'); if ($mysqli->connect_errno) { echo 'Failed to connect to MySQL: ' . $mysqli->connect_error; exit(); } $sql = 'SELECT Lastname, Age FROM Persons ORDER BY Lastname'; $result = $mysqli->query($sql); // Associative array while ($row = $result->fetch_assoc()) { printf("%s (%s)\n", $row['Lastname'], $row['Age']); } while ($row = $result->fetch_assoc()) { printf("%s (%s)\n", $row['Lastname'], $row['Age']); } // Free result set $result->free_result(); $mysqli->close(); ?> لجدول يحوي حقلين، اسم و عمر مثلا.. إن احتوى الجدول على 3 عناصر الحلقتين ستطبعان 3 عناصر فقط وهو نانج الحلقة الأولى. الحل: اجعل الاستعلام الثاني ديناميكي، أي يجب جلب بنود التوريد التي تتبع للشركة الأولى. في قاعدة البيانات، تضيف حقلا في جدول التوريدات يمثل رقم الشركة، ثم لكل شركة من الحلقة الأولى تقوم بعمل استعلام يجلب بنود التوريد حسب تساوي حقل id من الاستعلام الأول و company_id مثلا (الشركة التابعة للمورد وهو الحقل الذي ستضيفه). بهذا الشكل: result1 = select * company while ( row1 = fetch (resutl) { $id = row1 [id] result2 = select supplyer_data where company_id = $id while ( row2 = fetch (resut2) { // print your select } } تأكد أن الحلقة الثانية تقوم بطبعة القائمة المنسدلة في نفس الخلية من الجدول.
  15. إن الدالة insert تأخذ وسيطين، الأول هو دليل العنصر في القائمة بالمكان الذي نريد الحشر فيه, و الثاني هو العنصر نفسه: x = [ ] x.insert([4,5,6]) print(x) الشيفرة السابقة تسبب خطأ: يجب تمرير وسيطين.. insert() takes exactly 2 arguments (1 given) وبشكل عام هي تضيف العنصر الثاني ككتلة واحدة في الدليل الهدف، (عنصر أو قائمة): x = [1 ,2 ,3] x.insert(1,[4,5,6]) print(x) الناتج: [1, [4, 5, 6], 2, 3]
  16. يمكننا اعتبار إطار العمل هو مزيج من عدة تقنيات، تستخدم سوية لتوحيد طريقة العمل في مشروع و توحيد بنية الملفات وليصبح التعامل مع التقنيات الفرعية أسهل بدون الاكتراث للتفاصيل الصغيرة. سأذكر أمثلة لأطر عمل: Bootstrap: يستخدم HTML + CSS + Javascript لعمل تنسيقات لواجهات المستخدم في Front End يقل الاعتماد على CSS ويعتمد على أصناف Bootstrap Laravel: يعتمد بمعظمة على PHP ويحوي أدوات للتعامل مع قواعد البيانات (يقلل الاعتماد على SQL) Elequent express.js: مخدم server للمشروع أي يعمل ضمن Back End ويعتمد على جافاسكربت وبيئة Node.js. يوجد غيرهم، أطلب منك البحث و الاستكشاف فهو مفيد جداَ. بشكل عام وجود إطار العمل (من كلمة إطار) ليقوم بجمع عدة تقنيات و تحسين العمل بها وهذا يقلل الأخطاء أثناء العمل على مشاريع كبيرة، مثلا يتعرض جميع المستخدمين لنفس المشكلة، ما يؤدي لسهولة إيجاد حل، أما لو قام كل مبرمج بابتكار طريقته الخاصة في الحل و البرمجة، سيتطلب وقتا كبيرا لشرح ماذا فعل و كيف حدث معه الخطأ. كما أضيف أن إطار العمل يجمع الممارسات البرمجية الجيدة و المناسبة و التي تحل المشاكل بأفضل صورة ممكنة.
  17. السبب ربما عدم استدعاء الاستعلام الثاني: <?php $sql = "SELECT `supplying_items`.`id` AS idtotal, `supplying_items`.`name` AS nametotal, `supplier_id` AS sid , `supply_item`.`item` AS sitem, `suppliersdb`.`id` AS suppliersmainID FROM `supplying_items`, `supply_item`, `suppliersdb` WHERE `supply_item`.`item` = `supplying_items`.`id` && `suppliersdb`.`id` = $id"; while ($m = $result->fetch_assoc()) { $nametotal = $m['nametotal']; echo '<option selected>' . $m['nametotal'] . '</option>'; } ?> لاحظ لا يتم تنفيذ الاستعلام sql$. استخدم متغير آخر غير result للاستعلام الثاني. لأن الحلقتين متداختلين، فتخزين قيمة في متحول النتيجة الأولى يخرب القيم. عدم تنفيذ الاستعلام لا يقوم بتبديل العنصر وبالتالي يجلب عنصر وحيد.
  18. هذه مكتبة لإدارة الاتصال بقواعد البيانات في التطبيق حيث أنها الإصدار الخاص من SQLite ب Flutter فأصبح اسمها: sqflite ونعم صحيح، إن لم تستخدم أنت قاعدة البيانات في مشروعك ربما هي اعتمادية من مكتبة أخرى.. وفي بعض الحالات يتم تثبيت مكتبات بإصدارات غير متوافقة وتسبب مشاكل.
  19. يوجد طرق لذلك ابحث عن Vectorize image أو تحويل صورة إلى vector يوجد شروحات على يوتيوب مثلا..
  20. حسنا عدل الشرط الآخر. تختلف القيمة التي ترجعها استعلامات SQL ممكن أن تعيد قيمة بوليانية true/false أو البيانات الفعلية على شكل collection مثلا إذا فشلت عملية insert تعيد false
×
×
  • أضف...