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

السؤال

نشر

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

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

لدي استفسار لو تكرمتو. قمت بعمل دالة للاستعلام عن حقل 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
نشر
  بتاريخ On 31‏/10‏/2020 at 19:20 قال 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

 

أظهر المزيد  

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

  بتاريخ On 31‏/10‏/2020 at 19:32 قال 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
نشر
  بتاريخ On 31‏/10‏/2020 at 19:57 قال مروان مروان3:

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

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

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

أظهر المزيد  

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

بالتوفيق.

  • 0
نشر
  بتاريخ On 31‏/10‏/2020 at 20:05 قال 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...