تحديد عدد البيانات لعرضها في MySQL

Ali Majrashiمنذ 7 سنوات

باستخدام جملة LIMIT نستطيع تحديد عدد السجلات التي نرغب بتحديدها لعرضها عند بناء جملة SQL.

فائدة LIMIT في برمجة الصفحات المتعددة او ماتسمى pagination في SQL ، ومفيدة جدا عند التعامل مع جداول تحتوي على سجلات كثيره جدا ، حيث انه عند تحديد هذه السجلات الكثيرة سوف تسبب ضغط كبير على قواعد البيانات ، و ممكن تؤدي الى توقف MySQL عن العمل مما ينتج عنه الكثير من المشاكل.

لنفرض انك تريد تحديد اول 30 سجل من جدول users سوف يكون شكل جملة SQL كالتالي:


$sql = "SELECT * FROM users LIMIT 30";

عند تنفيذها فانه سوف يتم تحديد اول 30 سجل فقط بجدول users لعرضهم.

اما لو كنت ترغب بعرض السجلات من السجل 16 الى السجل رقم 25 فقط فإننا سوف نستخدم الجملة OFFSET كالتالي:


$sql = "SELECT * FROM users LIMIT 10 OFFSET 15";

هذه SQL Query سوف تقوم بتحديد السجلات من 16 الى 25 ، حيث انها سوف تخبر قاعدة البيانات بتحديد 10 سجلات فقط من بعد السجل رقم 15 مباشرة.

ومن الممكن استخدام الصيغة المبسطة كالتالي:


$sql = "SELECT * FROM Orders LIMIT 15, 10";

لاحظ: أننا قمنا بعكس الإرقام عند استخدام الصيغة المبسطة لاننصح باستخدامها يفضل استخدام الصيغة المطولة لسهولة القراءة.

لمعرفة طريقة تحديد البيانات ننصحك بقراءة هذا الدرس

https://3alam.pro/series/php/php-databases/mysql/select-data/

 

التعليقات (2)

Kakarotto:

يعطيك ألف عافية شرح جميل جداً جداً و مفيد ❤️❤️❤️

Kakarotto:

لمن يبحث عن كيفية تحديد آخر 10 أسطرٍ فقط هذه هي الطريقة 😁

 

هذه كمثال ليس إلا غير اسم الجدول حسب رغبتك 

 

$sqlq = "SELECT * FROM usersdata ORDER BY i DESC LIMIT 10 ";


// تنفيذ الإستعلام
$result = mysqli_query($db, $sqlq);



// التحقق من عدد النتائج
if (mysqli_num_rows($result) > 0) {
    // نقوم بعرض البيانات للمتصفح
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. "</br>";
    }
} else {
    echo "0 results";
}

 

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !