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

بلال زيادة

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

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

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

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

    30

كل منشورات العضو بلال زيادة

  1. للأسف لا يمكنني تحديد المشكلة لأن هناك ملفات ناقصة للمشروع , هل يمكنك وضع الكود الذي تتوقع به الخطأ ؟
  2. قم بتنفيذ الأمر التالي حتى تحذف مجلد build flutter clean ثم باستخدام الأمر التالي تقوم بجلب الحزمة التي تستخدمها في التطبيق flutter pub get ثم باستخدام الأمر التالي تقوم بتشغيل التطبيق مرة أخرى flutter run أيضا هناك حل هو التأكد من تحديث نسخة فلاتر لديك لآخر إصدار فلاتر من خلال الأمر التالي flutter upgrade أيضا يمكنك حذف الكاش من خلال الأمر التالي flutter pub cache repair أيضا يمكنك تحديث الحزم من خلال الأمر التالي flutter pub upgrade
  3. صحيح , لا تحدث لأنه تستخدم ما تدفع ثمنه , أما الاستضافات المجانية يتم تعطيل ميزات كثيرة فيها غير المشاكل التي تحدث بدون توقع.
  4. المشكلة هذه خاصة بالاستضافات المجانية , فأغلبها تحدث بها هذه المشكلة , الأفضل اللجوء إلى استضافة مدفوعة.
  5. هناك عدة حلول منها: يمكنك حذف مجلد build عن طريق الأمر التالي flutter clean ثم تقوم بجلب الحزم مرة أخرى عن طريق الأمر التالي flutter pub get ثم تقوم بتشغيل التطبيق عن طريق الأمر التالي flutter run و هناك حل آخر عن طريق حذف مجلد .gradle في مسار جهازك , قد يكون المسار كالتالي C:\Users\هنا اسم جهازك ثم تقوم بتشغيل التطبيق مرة أخرى. أيضا يمكنك فتح المسار التالي project\android\build.gradle و تغيير إصدار gradle كما في السطر التالي dependencies { classpath 'com.android.tools.build:gradle:7.0.3' } ثم في ملف gradle-wrapper.properties تغير قيمة distributionUrl كالتالي distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
  6. الحصول على بطاقة هدية تتم من شخص تعرفه يود أهدائك إياها و لا تتم من خلال مواقع أو أي مكان آخر، إذا كان لديك المال الكافي يمكنك مباشرة شراء الدورة التي تناسبك أما إذا لم يكن يكفي المال الذي لديك فيمكنك التواصل مع الدعم الفني و اخبارهم بمشكلتك و سيعملون على مساعدتك بشكلٍ أفضل . يمكنك مراسلة الدعم الفني من هنا.
  7. حاولي التأكد من ملف home.blade.php في المسار التالي resources\views\ إذا كان الملف موجود حاولي تنفيذ الأمر التالي ليتم حذف الملفات المؤقتة php artisan optimize:clear ايضا يمكنكِ تنفيذ الأوامر التالية ليتم حذف الملفات المؤقتة في المشروع كاملاً php artisan cache:clear php artisan route:clear php artisan config:clear php artisan view:clear أيضا يمكنك تحديث الحزم لأنه قد تكون هناك بعض الحزم ناقصة من خلال الأمر التالي composer update أيضا تأكدي من أن مجلد view لديه ترخيص صلاحية الوصول 777 أو 755.
  8. لجلب البيانات من عدة جداول مترابطة مع بعضها بعلاقة ما , نقوم باستخدام inner join بحيث تسمح لنا inner join بجلب البيانات بناء على العلاقة التي قمنا بإنشائها بين الجداول و في حالة استخدام لغة PHP يمكنك من جلب البيانات من خلال الكود التالي <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // الاتصال بقاعدة البيانات $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من الاتصال بقاعدة البيانات if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM USERS u JOIN FOLLOWS f ON (u.id = f.user_id) JOIN POSTS p on (f.follower_id = p.user_id) WHERE u.id = $id"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "<br> id: ". $row["id"]. " - Name: ". $row["name"]. " " . $row["email"] . "<br>"; } } else { echo "لا توجد بيانات لعرضها"; } $conn->close(); ?>
  9. ستقوم بتحديد مسار المجلد الذي يتم تخزين الصور بداخله $directory = "../path/to/photos_directory/"; ثم تقوم بجلب جميع الصور ذات صيغة محددة // جلب جميع الصور ذات صيغة محددة $images = glob($directory . "*.jpg"); ثم تقوم باستخدام حلقة التكرار foreach بالمرور على جميع الصور و الصورة التي لا يكون لها اسم في قاعدة البيانات تقوم بحذفها foreach($images as $image) { $name = explode('_',$image); $name = 'photos/' . $name[0]; $sql = mysql_query("SELECT id FROM table WHERE photo1='$name' OR photo2='$name'"); if(mysql_num_rows($sql) == 0) { unlink($directory . $image); } } فيكون كامل الكود $directory = "../path/to/photos_directory/"; // جلب جميع الصور ذات صيغة محددة $images = glob($directory . "*.jpg"); foreach($images as $image) { $name = explode('_',$image); $name = 'photos/' . $name[0]; $sql = mysql_query("SELECT id FROM table WHERE photo1='$name' OR photo2='$name'"); if(mysql_num_rows($sql) == 0) { unlink($directory . $image); } }
  10. يتم رفع الموقع من خلال الاشتراك باستضافة و دومين ليكون رابط الموقع , ومن خلال هذه الاستضافة تقوم برفع ملفات موقعك على مجلد public_html و من ثم إذا كان موقعك يلزمه قاعدة بيانات يمكنك إنشاء قاعدة بيانات من خلال الاستضافة و من ثم ربط ملفات موقعك بقاعدة البيانات التي تم إنشائها , ومن ثم تكمل تهيئة موقعك على الاستضافة. هل أنت مشترك في دورات الاكاديمية ؟
  11. يبدو أنك مستخدم Null Saftey في dart , لذلك يجب عليك اتباع قواعد استخدام Null saftey بحيث عن إنشاء متغير بدون قيمة معرفة يجب وضع علامة الاستفهام بهذا الشكل String? name; وعند استخدام هذا المتغير يجب وضع علامة التعجب بعد استخدامه بهذا الشكل print(name!); حاول إرفاق الكود كاملاً
  12. يجب عليك تحديث خاصية itemCount بعد إضافة الصورة حتى يتم تحديث عدد الصور الذي تريد إضهارها.
  13. لاحظ أنك تضيف صورة جديدة أيضا تأكد من تحديد طول قائمة البيانات. على سبيل المثال ، إذا كنت تستخدم ListView.builder ، فقم بإعطاء قيمة مناسبة للسمة itemCount.
  14. للأسف, لهذا الوقت لا توجد دورة على إكاديمية حسوب , ولكن يمكن البحث عن التوثيق الرسمي لهذه اللغة و تعلمها أو يمكنك اللجوء إلى موقع يوتيوب أو أي موقع من المواقع التي تقدم دورات مجانية ربما تجد شروحات لهذه اللغة بحيث سوف تتعلم و تفهم هذه اللغة .
  15. يمكنك استخدام حزمة Guzzle لإنشاء أي اتصال بأي api خارجي و ذلك عن طريق الكود التالي use GuzzleHttp\Client; $client = new Client(); $res = $client->request('POST', 'https://', [ 'form_params' => [ 'client_id' => 'test_id', 'secret' => 'test_secret', ] ]); بحيث يكون الطلب من نوع POST كما في الكود السابق, لاحظ بأنه في التوثيق التالي لهذه الحزمة يوجد شرح لكل نوع من أنواع الطلب من هنا , حاول استخدام هذه الحزمة ومن ثم أخبرني بالنتيجة.
  16. هل حاوت استخدام حزمة dio لكي تتمكن من رفع الصور بشكل سليم , فهي لديها تعامل رائع في رفع الصور Future<bool> uploadImage(filePath, String image) async { final url = Config.url + Config.uploadImage; String fileName = filePath.path.split("/").last; var data = FormData.fromMap({ "image": await MultipartFile.fromFile( filePath.path, filename: fileName, ), "email": email, }); Dio dio = new Dio(); var res = await dio.post(url, data: data, options: new Options(headers: { HttpHeaders.authorizationHeader: 'Bearer $token', HttpHeaders.contentTypeHeader: 'application/json' })); return res.statusCode == 200 ? true : false; } بحيث يمكنك تمرير مسار الصورة ليتم رفع الصورة إلى المسار المحدد في api و اسم الصورة إذا أردت حفظ اسم الصورة بداخل قاعدة البيانات.
  17. حلو جدا ، ايضا يمكنك السماح فقط لأربعة صور بالتخرين و الحفظ داخل قاعدة البيانات .
  18. لقد استعملت هذه الحزمة كثيرا و لم أجد ما تطلبه بها و لكن هناك حل ما و هو عندما يقوم المستخدم باختيار الصور , تقوم أنت فقط بعرض 4 صور من الصور المختارة و لا تعرض أكثر من ذلك حسب ما تريد.
  19. يمكنك تطبيق ما تتعمله مع المدرب و المتابعة مع المدرب بشكلٍ جيد و بحرص, التطبيق سيكون عملي بحيث ستقوم بتنزيل جميع البرامج التي يستعملها المدرب و من ثم تقوم بالتطبيق معه, أما بخصوص الواجبات فهذا الأمر يرجع لك بحيث بعد الأنتهاء من الدروس يمكنك المحاولة في كتابة الأكواد بنفسك و تطبيق ما تعلمته بشكلٍ فردي و تعمل على مقارنة الأخطاء و العمل على إصلاحها و حلها بنفسك .
  20. هناك عدة مشاكل و هي أولاً يجب إزالة = من السطر التالي for (let i = 0; i < cart.length; i++) { بحيث متغير i أصغر من عدد عناصر المصفوفة , ومن ثم يجب جمع عناصر المصفوفة , بحيث يجب إضافة اسم المصفوفة المخزنة بها الأعداد كما في السطر التالي total += cart[i]; فيكون كامل الكود هو const cart = [1,3,4,5,6]; let total = 0; for (let i = 0; i < cart.length; i++) { total += cart[i]; } console.log(total); والنتيجة سوف تكون عدد 19
  21. يمكنك استخدام دالة toUpperCase في جافاسكريبت بحيث تكون الأسماء لديك بهذا الشكل const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; ثم يمكنك إنشاء for loop بهذا الشكل , ليتم تحويل جميع الكلمات إلى UpperCase عن طريق الدالة toUpperCase for ( let i = 0; i < days.length; i++ ) { days[i] = days[i].toUpperCase(); console.log(days[i]); } فيكون كامل الكود كالتالي const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; for ( let i = 0; i < days.length; i++ ) { days[i] = days[i].toUpperCase(); console.log(days[i]); }
  22. الأن في الإجابة السابقة الخاصة بي , يقوم بالتحقق من أن المتغير يحمل بريد الكتروني أو لا , يعني اذا كان يوجد بريد الكتروني مطابق لما تبحث عنه سيقوم بارجاع البيانات هذا ما قصدته , ماذا تقصد انت .
  23. سوف تقوم بالتأكد من قيمة المتغير التالي $val[$mailTable] بحيث إذا يحتوي على قيمة ( بريد الكتروني ) قم بتنفيذ الاستعلام الذي تريده ، أما إذا كان فارغ ( لا يحتوي على بريد الكتروني ) يمكنك تنفيذ أو إظهار رسالة خطأ تفيد بأنه لا يوجد أي بريد الكتروني if($val[$mailTable]){ // تنفيذ الاستعلام } else { // إظهار رسالة خطأ }
  24. table.class يعني أن الجدول يحتوي على محدد باسم class كما في الشكل التالي <table class="class"></table> أي كل التنسيقات سوف تطبق على كامل الجدول بما أنه يحتوي على هذا المحدد. أما table .class يعني أن هناك عنصر بداخل وسم الجدول يحتوي على محدد باسم class كما في الشكل التالي <table> <tr class="class"></tr> </table> أي كل التنسيقات سوف تطبق على كامل العنصر بما أنه يحتوي على هذا المحدد.
  25. يمكنك برمجة هذه القائمة من خلال وسم select بحيث تقوم بإدخال الدول و مفتاح كل دولة بشكل يدوي إلى قاعدة البيانات و من ثم عرضها في select أو يمكنك استخدام حزمة مثل حزمة composer require pragmarx/countries أو الحزمة التالية https://github.com/TappNetwork/nova-select-country-code
×
×
  • أضف...