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

السؤال

نشر

السلام عليكم ورحمة الله وبركاته

تحيه طيبه للجميع.

لدي استفسار لو تكرمتو. قمت بعمل دالة للاستعلام عن حقل id من قاعدة بيانات mysql 

كود الاستعلام كالتالي:

 Future<String> getLogin() async {
    var response = await http.get(Uri.encodeFull("http://xxxxxxxxx/Noti.php"),);
    setState(() {
      var convertDataToJson = json.decode(response.body.toString());
     data = convertDataToJson['result'];
      if (data != null) {
        User_ID =int.parse(data[0]['id']);
       
        
      }

    }
    );



  }

وملف PHP كالتالي:

<?php
require_once 'connt.php';



$query="SELECT * FROM addcomment";

$result = mysqli_query($con,$query);

$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 !"));


?>

 

 

الكود الذي تم ادرجه في الاعلى يعمل ولكن انا احتاج اني احصل على استعلام اعلى رقم ID من الحقل مهما كان موقعه او ترتيبه عشان كذا عملت الكود بشكل التالي:

<?php
require_once 'connt.php';



$query="SELECT MAX( id ) FROM addcomment";

$result = mysqli_query($con,$query);

$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 !"));


?>

ولكن واجهتني المشكله التالية لما استعملت الكود اعلاه:

E/flutter (29294): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: Invalid argument(s): The source must not be null
E/flutter (29294): #0      int.parse (dart:core-patch/integers_patch.dart:51:25)
E/flutter (29294): #1      AddCommentsState.getLogin.<anonymous closure> (package:flutter_apptestqeuriy/Ready.dart:89:22)
E/flutter (29294): #2      State.setState (package:flutter/src/widgets/framework.dart:1240:30)
E/flutter (29294): #3      AddCommentsState.getLogin (package:flutter_apptestqeuriy/Ready.dart:85:5)
E/flutter (29294): <asynchronous suspension>
E/flutter (29294): #4      AddCommentsState.initState.<anonymous closure> (package:flutter_apptestqeuriy/Ready.dart:58:9)
E/flutter (29294): #5      interval.function (package:flutter_apptestqeuriy/Ready.dart:16:9)
E/flutter (29294): #6      _rootRun (dart:async/zone.dart:1182:47)
E/flutter (29294): #7      _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter (29294): #8      _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter (29294): #9      _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
E/flutter (29294): #10     _rootRun (dart:async/zone.dart:1190:13)
E/flutter (29294): #11     _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter (29294): #12     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1021:23)
E/flutter (29294): #13     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
E/flutter (29294): #14     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:397:19)
E/flutter (29294): #15     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:428:5)
E/flutter (29294): #16     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
E/flutter (29294): 

 

هل يعلم احد حل للمشكلة بحيث اني احصل على اعلى ID  في حقل ID?

Recommended Posts

  • 1
نشر

مرحبا أخي, عليك أن تقوم بتغيير ال QUERY الموجودة في الملف التاني على الشكل التالي:

<?php
require_once 'connt.php';


$query="SELECT * FROM addcomment WHERE id = (SELECT MAX(id) FROM addcomment)";

$result = mysqli_query($con,$query);

$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 !"));


?>

وبذلك تكون قد عدت بجميع البيانات لأكبر ID موجود في الجدول.

  • 1
نشر

الخطأ الذي يظهر لك يدل على أن معامل ()int.parse  قيمته مساوية ل null. 

من الحتمل أنك قمت بجلب البيانات بطريقة غير صحيحة، يمكنك أن تقوم بطباعة البيانات التي تحضرها من قاعدة البيانات حتى تتأكد من أنها البيانات الصحيحة حتى قبل أن تستخدمها في التطبيق.

حتى نقوم بجلب الصف الذي له أعلى id من قاعدة البيانات mysql نقوم بالاستعلام باستخدام الأمر  التالي:

SELECT * FROM addcomment ORDER BY id DESC LIMIT 0, 1

إذا كنت تريد ال id فقط يمكنك استخدام التالي "مع العلم أن طريقة الاستعلام الخاصة بك صحيحة":

SELECT MAX(ID) FROM tablename LIMIT 1

 

  • 0
نشر
بتاريخ 37 دقائق مضت قال Yomna Raouf:

الخطأ الذي يظهر لك يدل على أن معامل ()int.parse  قيمته مساوية ل null. 

من الحتمل أنك قمت بجلب البيانات بطريقة غير صحيحة، يمكنك أن تقوم بطباعة البيانات التي تحضرها من قاعدة البيانات حتى تتأكد من أنها البيانات الصحيحة حتى قبل أن تستخدمها في التطبيق.

حتى نقوم بجلب الصف الذي له أعلى id من قاعدة البيانات mysql نقوم بالاستعلام باستخدام الأمر  التالي:


SELECT * FROM addcomment ORDER BY id DESC LIMIT 0, 1

إذا كنت تريد ال id فقط يمكنك استخدام التالي "مع العلم أن طريقة الاستعلام الخاصة بك صحيحة":


SELECT MAX(ID) FROM tablename LIMIT 1

 

ربي يعطيك الف صحه وعافيه شاكر لك

بتاريخ 25 دقائق مضت قال ayoubridouani:

مرحبا أخي, عليك أن تقوم بتغيير ال QUERY الموجودة في الملف التاني على الشكل التالي:


<?php
require_once 'connt.php';


$query="SELECT * FROM addcomment WHERE id = (SELECT MAX(id) FROM addcomment)";

$result = mysqli_query($con,$query);

$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 !"));


?>

وبذلك تكون قد عدت بجميع البيانات لأكبر ID موجود في الجدول.

زادك الله من واسع علمه وفضله 

الطريقة ناجحة 100/100 شكرا لك

  • 0
نشر
بتاريخ 6 دقائق مضت قال مروان مروان3:

ربي يعطيك الف صحه وعافيه شاكر لك

زادك الله من واسع علمه وفضله 

الطريقة ناجحة 100/100 شكرا لك

على الرحب والسعة أخي, الطريقة التي نجحت معك تسمى ب subqueries من هنا لو أردت أن تدرس عليها قليلا.

بالتوفيق.

  • 0
نشر
بتاريخ 17 ساعات قال ayoubridouani:

على الرحب والسعة أخي, الطريقة التي نجحت معك تسمى ب subqueries من هنا لو أردت أن تدرس عليها قليلا.

بالتوفيق.

حقيقي رغم اني دارس ماده كامله بالاضافة الى تنفيذ كم مشروع سابقا بستخدام هذا للغة من الربط بين قواعد البيانات ولكن هذا كانت اول مره اشوف هذا الطريقة او اعرف عنها 

كل الشكر لك ي غالي

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...