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

Flutter Dev

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

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

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

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

    2

كل منشورات العضو Flutter Dev

  1. اهلا اخي الكريم لا انا احاول اجلب البيانات من خلال استعلام نوعين يعني ممكن للمستخدم يعمل استعلام من خلال ID او من خلال name ولكن في كل الحالتين احتاج ان يكون البيانات المرجعه ماخذه حقل state في حالة 0 الان هو استعلام name ياخذ حالة 0 ولكن حقل ID لا ياخذ بمعنى ان الاستعلام الذي صار بعد جمله OR لا يتاثر بما قبله وهو state =0 هنا تكملن المشكلة انا احتاج ان ياخذ state 0 مثل استعلام name والذي هو قبل الجمله OR
  2. اقوم بجلب بيانات جدول كالتالي: $sql = "SELECT * FROM topic LEFT JOIN Table1 ON topic.id = Table1.IdTable1 WHERE state = 1 AND State = 0 AND name Like ? OR Table1.IdTable1 Like ? "; انا اجلب بيانات الجدول الأول الذي اسمه Topic واقوم بجلب بيانات الجدول الذي اسمه Table1 مع وجود شرط ان يكون state يساوي 0 حسنا الان انا أحاول جلب البيانات بشرط من الاثنين اما من خلال name او من خلال IdTable1 المشكلة كالتالي : لو قمت بجلب البيانات من خلال حقل name هنا سوف يعمل شرط state أيضا بحيث سوف يجلب البيانات التي تحتوي على قيمة 0 state ولكن لو قمت بجلب البيانات من خلال Table1.IdTable1 رح تحدث مشكلة وهيا ان state لن يعمل وسوف يجلب جميع البيانات سوى كان state يحمل قيمة 1 او 2 او 3 كيف يمكن حل هذا المشكلة بحيث ان state يجب ان يعمل في كل الحالتين هل توجد طريقة لفعل ذلك؟
  3. تحيه طيبه للجميع أقوم بعرض مجموعة من الصور التي تأتي من قاعدة بيانات على السيرفر الصور يتم عرضها بشكل جيد ولكني لدي مشكلة مع عمل dots لهذا الصور او مؤشر التحرك وموقع الصور الحالي الكود شغال ولكن اول من أقوم بتشغيل الكود احصل على الخطاء التالي: The getter 'length' was called on null. Receiver: null Tried calling: length المشكلة على ما يبدو في الوقت المستغرق في تحميل dots او البداية يكون فارغ كيف يمكن حل هذا المشكلة وتجنب هذا الخطاء؟ ام توجد مشكلة في طريقة كتابتي للكود اقصد خطاء ؟ الكود كالتالي : var responsebody; Future getdataImage() async { apiURL = 'https:****************; var response = await http.post(Uri.parse(apiURL)); responsebody=jsonDecode(response.body); if (responsebody.length >0){ return responsebody; }else{ } } FutureBuilder( future: getdataImage(), builder: (context, snapshot) { if (snapshot.hasData) { if (snapshot.data != null) { return PageView.builder( onPageChanged: onPageViewChange, itemCount: snapshot.data.length, itemBuilder: (BuildContext context, int index) { return Container( child: Column(children: <Widget>[ InkWell( child: CachedNetworkImage( imageUrl: "${snapshot.data[index]['image']}", width: double.infinity, height: 400, fit: BoxFit.cover, errorWidget: (context, url, error) => Icon(Icons.error), ), ) ] ), ); }); } }else { return CircularProgressIndicator(); } } ), Align( alignment: Alignment.bottomCenter, child: Container( height: 40, decoration: BoxDecoration( gradient: LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ Colors.black.withOpacity(0.0), Colors.black.withOpacity(0.5) ])), child: Align( alignment: Alignment.center, child: buildDots(context) ), ), ) Widget buildDots(BuildContext context) { Widget widget; List<Widget> dots = []; for (int i = 0; i <responsebody.length; i++) { Widget w = Container( margin: EdgeInsets.symmetric(horizontal: 5), height: 8, width: 8, child: CircleAvatar( backgroundColor: page == i ? Colors.blue : Colors.grey[100], ), ); dots.add(w); } widget = Row( mainAxisSize: MainAxisSize.min, children: dots, ); return widget; } }
  4. اهلا اخي الكريم قمت بتطبيق ORDER BY special DESC, RAND() وهو يعمل بشكل ممتاز كل الشكر لك اخي الكريم
  5. اهلا بك اخي الكريم بمعنى انني سوف اعمل استعلامين الان ؟وسيتم الحفاظ على العناصر التي تحتوي على رقم 1 في اعلى القائمه والعناصر 0 اسفلهم مع عمل عشوائيه الئ الاثنين في نفس الوقت مع الحفاظ على مواقع التقسيمات ( المميزه والغير مميزه)؟
  6. اهلا اخي الكريم المشكلة انني في استعلام sql استعمل مسبقا هذا الداله ORDER BY RAND() حتى يتم ترتيب باقي العناصر بشكل عشوائي في كل مره يقوم المستخدم بدخول الى الصفحة مع الحفاظ على المنتجات التي تحتوي رقم و1 ثابته دائما في اول القائمة لذلك اقوم بفعلها من خلال flutter ايضا انني اتجنب التغير بملفات php حتى لا يتوقف التطبيق الان لدى المستخدمين لذلك كنت استعمل الدلة الذي ذكرتها في اول الموضوع ولكني لم اعرف استعمالها بشكل الدالة الثانية
  7. ترتيبهم اخوي بمعنا الذي يحتوي على رقم 1 في تلك الخانه سيكون اول القائمة بعدها تاتي التي تحمل الرقم 0 المنتجات ذات الرقم 1 هيا منتجات مميزه او مواضيع مثبته تقدر تقول لذلك تكون ثابته في اعلى القائمة
  8. تحيه طيبه للجميع لدي مجموعة من العناصر المختلفة في قاعدة البيانات كما ان لدي عمود باسم special بحيث ان هذا العمود يحتوي على قيمة 0 او 1 لو كان العنصر يحتوي على القيمة 1 يتم عرض هذا العنصر في ListView حاولت عمل ذلك من خلال الكود التالي وهو يعمل ولكن انا لا ارغب باستعمال listو كلاس model للبيانات : Future<List<testiims>> Fetchitem() async { apiURL = 'https://***************'; var response = await http.get(Uri.parse(apiURL)); final items = json.decode(response.body); if (response.statusCode == 200) { List<testiims> listOfFruits = items.map<testiims>((json) { return testiims.fromJson(json); }).toList(); listOfFruits.sort((a, b) => b.special.compareTo(a.special));//======================================== return listOfFruits; } else { throw Exception('Failed to load data from Server.'); } } // لا ارغب باستعمال هذا القسم class testiims { String special; testiims({ this.special, }); factory testiims.fromJson(Map<String, dynamic> json) { return testiims( special: json['Special'].toString(), ); } } احتاج الى استعماله بشكل التالي او ليكون من خلال الكود التالي : مباشر بدون استعمال كلاس model للبيانات Future getdata() async { apiURL = 'https://*************; var response = await http.post(Uri.parse(apiURL)); var responsebody=jsonDecode(response.body); //بهذا الشكل ================================== // responsebody.sort((a, b) => b.special.compareTo(a.special)); // ================================== return responsebody; } هل من طريقة لفعل ذلك؟ بهذا الشكل؟
  9. كل الشكر لك اخي الكريم نعم انا استعمل المكتبة الثانية ولكني ارغب بتغير حقل في قاعدة البيانات وبعد تغيره سوف يتوقف جزء من التطبيق لذلك كنت ابحث عن طريقة حتى اجبر المستخدم ولكن لا يمكنني عمل الإضافة الان التطبيق على أجهزة المستخدمين مسبقا ذلك سوف اعتمد التغير مجبر والباقي على المستخدم
  10. اهلا بك اخي الكريم ممكن تشرح هذا النقطه اكثر لو تكرمت : ايضا انا لدي قناة ضمن التطبيق ولكن التحديث ليس اجباري هو فقط يظهر مربع نص ويمكن للمستخدم تجاهل هذا المربع او الانتقال الى الجوجل بلاي
  11. تحيه طيبه للجميع هل توجد طريقة يمكن من خلالها إيقاف البرنامج الحالي من على أجهزة المستخدمين بحيث ان اطلب منهم التحديث الاجباري لنسخة التي لديهم؟
  12. مرحبا اخي الكريم نعم انا ارغب بتمرير قيمة الـ id بجانب الاسم ولكني قمت بتجريب هذا الطريقة الذي اشرت اليها انت والمشكلة كانت ان القائمة تظهر الاسماء وال id في كلاس SearchDelegate
  13. تحيه طيبه للجميع استعمل كلاس البحث من فلاتر SearchDelegate واقوم بجلب البيانات الى هذا الكلاس من خلال الدالة التأليه: var listsearch=[]; Future getdata() async { apiURL = 'https://**********************}'; var response = await http.post(Uri.parse(apiURL)); var responsebody=jsonDecode(response.body); for (int i=0 ; i < responsebody.length ; i++){ listsearch.add(responsebody[i]['name']); } print(listsearch) ; } مشكلتي الان انني فقط استطيع تمرير قيمة name من خلال القائمة listsearch.add(responsebody[i]['name']); ثم انقل هذا ليسته الى كلاس SearchDelegate ولكني احتاج أيضا الى تمرير id كيف ممكن أقوم بتمرير قيمتين الى كلاس البحث ؟ هل يملك احد فكره لفعل ذلك؟ أيضا في كلاس SearchDelegate class DataSerch extends SearchDelegate<String> { List<dynamic>list; DataSerch({this.list}); @override List<Widget> buildActions(BuildContext context) { return [IconButton(icon: Icon(Icons.clear), onPressed: () { query=''; }) ]; } @override Widget buildLeading(BuildContext context) { return IconButton( icon: Icon(Icons.arrow_back), onPressed: () { close(context, null); }); } @override Widget buildResults(BuildContext context) { return Text(query); } @override Widget buildSuggestions(BuildContext context) { var seachlist=query.isEmpty?list :list.where((p) => p.startsWith(query)).toList(); return ListView.builder(itemCount: seachlist.length, itemBuilder: (context, i) { return ListTile(leading: Icon(Icons.memory),title: Text(seachlist[i]), onTap: (){ query=seachlist[i]; showResults(context); }, ); }); } } كيف ممكن امرر id الذي تم الضغط عليه (فعليا المستخدم سوف يضغط على الاسم ولكن كل اسم مرتبط ب id في قاعدة البيانات) ارغب بتمرير id الى showResults وليس الاسم الفكرة انني لن أقوم بعرض البيانات الى المستخدم في النتيجة النهائية بعد الضغط على الاسم من خلال الاسم او لن اجلب البيانات للمستخدم في الاخير من خلال الاسم ارغب بجلب البيانات من خلال id لذلك احتاج الى جلب id ونقله
  14. مرحبا اخي الكريم توجد مشكله في الاستعلام ماذا عن بيانات TableTop حيث انني كنت اجلب جميع بياناته ايضا
  15. لدي جدولين مختلفين كل جدول يحتوي على بيانات مختلفة ولكن المشكلة كل الجدولين تحتوي على عمود باسم (name) قمت بعمل inner join للجدولين في استعلام php حتى احصل على البيانات في فلاتر : <?php $id=$_GET['id']; $sql="SELECT * FROM Tabletop inner join Cat ON Tabletop.IDCat = Cat.id inner join Sub_Cat ON Tabletop.Id_Sub_Cat = Sub_Cat.id where Tabletop.id = ? " ; $stmt = $con->prepare($sql); $stmt->bind_param("s",$id); $stmt->execute(); $result = $stmt->get_result(); $array = array(); while ($row = mysqli_fetch_assoc($result)) { $array[] = $row; } echo ($result) ? json_encode(array("code" => 1, "result"=>$array)) : json_encode(array("code" => 0, "message"=>"Data not found !")); ?> المشكلة الان انني في خانة الاستعلام كيف ممكن ارجع قيم الاستعلام في فلاتر لكل العمودين بحيث اطلب منه جلب عمود الاسم للجدول الأول ثم جلب عمود الاسم للجدول الثاني بمعنى احتاج لعمل تفرقه بينهم/ مع العلم لا يمكنني تغير اسم العمود الان في قاعدة البيانات رح يسبب مشكلة كبيره الامر. Future<String> GateDate() async { var response = await http.get( Uri.parse('https://*************test.php'), headers: {"Accept": "application/json"}); setState(() { var convertDataToJson = json.decode(response.body); data = convertDataToJson['result']; if (data != null) { //table -1 var GetName = data[0]['name']; // Table-2 var GetNameTwo = data[0]['name']; } }); } هل يوجد حل لهذا المشكلة من خلال فلاتر؟
  16. اهلا اخي الكريم شاكر لك شرحك الغالي بنسبة لماذا احتاجه الفكره كالتالي انا عامل كل منتج يمتكل id مختلف في قاعدة البيانات ولا يتكرر ولكني لا ارغب باستعماله امام المستخدم نوعا من السكيورتي يعنيولكن ارغب بعمل حقل ثاني يحمل نفس الفكره فقط هذا سيكون مثل الالة الحاسبة لعدد المنتجات او ك رقم تسلسل لها بالاضافة الى امكانية استعماله في البحث واظهاره للمستخدم وعمليات الخصومات ايضا وما شابه هل يمكن عمل هذا الخطوه من خلال mysql فقط؟ عمود اضافي يولد الارقام بشكل متسلسل لكل منتج جديد بدون ان يتكرر
  17. اهلا اخي ياليت تشرح الفكرتين لو تكرمت بنسبة الى ملفات php كيف بتكون الطريقه ؟ اهلا بك اخي الكريم شاكر لك مساعدتك سوف اقوم بتجربتها هل بيكون مختلف عن ID? primary key; بنسبة الى قاعدة البيانات؟
  18. لدي فكرة ولكني لم اعرف طريقة تنفيذها بشكل الصحيحة، لدي تطبيق يعرض منتجات مختلفة ارغب ان اضع لكل منتج رقم عشوائي مختلفة بحيث ان ارقام المنتجات لن تتشابه ابدا اعلم ان طريقة عمل رقم من خلال دالة random numbers في فلاتر وسوف اقوم بتخزين هذا الرقم بجانب كل طلب في جدول البيانات في قاعدة البيانات ولكني لست افهم حقيقة طريقة التاكد ان الرقم لن يعود يتكرر لدى منتج اخرى بحيث ان هذا الرقم لن يتكرر في حقل قاعدة البيانات اي افكار لفعل ذلك تساعدنا او شرح لطريقة عمل محدده؟
  19. اهلا بك اخي الكريم بيكون فيه مشكلة هنا سوف يتم ارسال الصورة فعلا ولكن بدون الوصف او النص بشكل عام كذا البوست رح يكون مبهم بعده انك ترسل نص لحاله افضل من صوره لحالها
  20. كل الشكر لك اخي الكريم فعلا المشكلة ليس لها حل فعلي حتى الان وعلى ما يبدو ان مطور المكتبة يعلم بذلك ولكن قد يحتاج الى بعض الوقت حتى يتم حل المشكلة ( قمت بتخلي عن الصورة في الواتساب بنسبة الى نظام IOS حتى تحديث المكتبة) اكرر شكري لك اخي الكريم
  21. نعم اخي انت قصدك بشكل التالي: Share.shareFiles(); ولكن هنا المشكلة ان هذا السطر لا يقبل bytes Positional arguments must occur before named arguments. The argument type 'Uint8List' can't be assigned to the parameter type 'List<String>'. هذا اخر نتيجة :
  22. اهلا اخي بنسبة الى share.file هنا هل تستعمل مكتبة مختلفة ؟ كلمة file غير معرفة لدي ولا تقبل جلب مكتبة معينه شاهدة صورة:
×
×
  • أضف...