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

السؤال

Recommended Posts

  • 1
نشر

يمكنك استخدام تابع lastInsertId باستخدام ال PDO , وهي الطريقة الأسرع ولكن يمكن استعمالها حصراً إن تمت عملية الإضافة في نفس ال request وإلا قد يعطي نتائج خاطئة  :

$query = $pdo->prepare("INSERT INTO `tablename` SET `name`='وسيم', `age`=25");
$query->execute();


$query = $pdo->prepare("SELECT * FROM `tablename` WHERE id = ".$pdo->lastInsertId());
$query->execute();
$row = $query->fetch();

كما يمكنك بالطبع استخدام تابع الترتيب ORDER BY للحصول على نفس النتيجة , و هذه الطريقة يمكن استخدامها في أي مكان بدون شروط (هذه الطريقة التي أفضلها) :

$query = $pdo->prepare("SELECT * FROM `tablename` ORDER BY id DESC LIMIT 1");
$query->execute();
$row = $query->fetch();

 

  • 0
نشر

يمكنك ذلك من خلال استخدام الدالة messageid  والتي تقوم بزيادة تلقائية للصف الأول في الجداول، فعند إضافة سطر جديد للجدول تعتبر هذا السطر هو السطر الأول. بذلك يمكنك من خلال استدعاء السطر الأول جلب معلومات أخر سطر قمت بإدخاله.

أولًا: استخدم  mysql_query:

<?php
$result = mysql_query('SELECT t.messageid, t.message 
                         FROM TABLE t 
                     ORDER BY t.messageid DESC 
                        LIMIT 1') or die('Invalid query: ' . mysql_error());

//طباعة النتيجة
while ($row = mysql_fetch_assoc($result)) {
  echo $row['messageid'];
  echo $row['message'];
}

// حرر الموارد المرتبطة بالنتيجة
mysql_free_result($result);

?>

ثانيًا: SQL query:

SELECT t.messageid, t.message 
    FROM TABLE t 
ORDER BY t.messageid DESC 
   LIMIT 1

تستخدم ORDER BY لتعيين القيم في الجدول، تشير كلمة LIMIT إلى أنه من بين كل تلك الصفوف يتم إرجاع الصف الأول فقط في مجموعة النتائج.

  • 0
نشر (معدل)

الاستعلام عن آخر حقل تم إدخاله يعمل مع المواقع التي عدد زوارها قليل أما لو هناك ضغط على الموقع سوف يحدث خطئ كبير وهو الناتج سيكون آخر عملية إدخال قام بها شخص آخر
أنا أفهم من كلامك أنك تريد آخر عملية إدخال للقيام بعملية إدخال أخرى مرتبطة بها

insert_id يقوم بإرجاع رقم عملية الإدخال الحالية 

الرابط 

تم التعديل في بواسطة mohamedewias
  • 0
نشر (معدل)

يمكنك أيضا أن تستعمل الطريقة التالية البسيطة:

<?php
$result = mysql_query("SELECT * FROM $table WHERE id = (SELECT MAX(id) FROM $table)");

لكن قبلها يجب أن تكون واضع بأن خانة ال id له خاصية auto_increment ومنه فأخر حقل تم إدخاله هو من سيحتوي على أكبر id وبعد حصولك على أكبر id ستحصل على البيانات الأخرى من نفس column.

ملاحظة: ال auto_increment و primary key شرط أساسي لحقل ما غالبا ما يكون بإسم id لحظة بناء قاعدة البيانات حتى يسهل عليك جلب البيانات بال PHP.

تم التعديل في بواسطة ayoubridouani
إضافة بعض الإرشادات
  • 0
نشر (معدل)
بتاريخ On 10/27/2020 at 10:02 قال Abdulhamid Hamsho:

يمكنك ذلك من خلال استخدام الدالة messageid  والتي تقوم بزيادة تلقائية للصف الأول في الجداول، فعند إضافة سطر جديد للجدول تعتبر هذا السطر هو السطر الأول. بذلك يمكنك من خلال استدعاء السطر الأول جلب معلومات أخر سطر قمت بإدخاله.

أولًا: استخدم  mysql_query:


<?php
$result = mysql_query('SELECT t.messageid, t.message 
                         FROM TABLE t 
                     ORDER BY t.messageid DESC 
                        LIMIT 1') or die('Invalid query: ' . mysql_error());

//طباعة النتيجة
while ($row = mysql_fetch_assoc($result)) {
  echo $row['messageid'];
  echo $row['message'];
}

// حرر الموارد المرتبطة بالنتيجة
mysql_free_result($result);

?>

ثانيًا: SQL query:


SELECT t.messageid, t.message 
    FROM TABLE t 
ORDER BY t.messageid DESC 
   LIMIT 1

تستخدم ORDER BY لتعيين القيم في الجدول، تشير كلمة LIMIT إلى أنه من بين كل تلك الصفوف يتم إرجاع الصف الأول فقط في مجموعة النتائج.

الكود اشتغل معاي تسلم كتير وربنا يديدك الصحة والعافية

 

تم التعديل في بواسطة تهامي ادم

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...