English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستتعلم كيفية قراءة عدد محدود من السجلات من جدول MySQL باستخدام PHP.
LIMITبندSELECTعدد السطور التي يعود بها الاستعلام. هذه الميزة مفيدة جدًا لتحسين وقت تحميل الصفحة وزيادة قابلية قراءة الموقع.
بند LIMIT يمكن تقديمه بالشكل التالي:
SELECT column_name(s) FROM table_name LIMIT row_offset, row_count;
بند LIMIT يقبل معامل واحد أو اثنين ويجب أن يكونا إيجابيين.
عندما يتم تحديد معاملين، فإن المعامل الأول يشير إلى عدد السطور التي سيتم استرجاعها من البداية (النقطة البداية)، بينما يشير المعامل الثاني إلى عدد السطور التي سيتم استرجاعها. عدد السطور الأولية هو 0 (ليس 1).
عندما يتم تقديم معامل واحد فقط، فإنه يشير إلى عدد الأعمدة التي سيتم استرجاعها من البداية.
على سبيل المثال، للحصول على السطور الثلاث الأولى، يمكنك استخدام الاستعلام التالي:
SELECT * FROM persons LIMIT 3;
للحصول على السجلات من السطر 2 إلى 4 (بما في ذلك)، يمكنك استخدام الاستعلام التالي:
SELECT * FROM persons LIMIT 1, 3;
دعونا باستخدام جملة SELECT مع شرط LIMIT لأجراء استعلام SQL، ثم تنفيذ هذا الاستعلام عبر دالة PHP mysqli_query() للحصول على عدد محدود من السجلات.
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | | 4 | John | Carter | [email protected] | | 5 | Harry | Potter | [email protected] | +----+------------+-----------+----------------------+
以下示例中的PHP代码仅显示persons表中的三行。
0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = mysqli_fetch_array($result)){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //关闭结果集 mysqli_free_result($result); } else{ echo "لا يمكن العثور على سجلات تتطابق مع استعلامك."; } } else{ echo "错误:无法执行 $sql. " . mysqli_error($link); } //إغلاق الاتصال mysqli_close($link); ?>
connect_error); } //حاول تنفيذ الاستعلام $sql = "SELECT * FROM persons LIMIT 3"; if($result = $mysqli->query($sql)){ if($result->num_rows > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch_array()){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //إطلاق مجموعة النتائج $result->free(); } else{ echo "لا يمكن العثور على سجلات تتطابق مع استعلامك."; } } else{ echo "错误:无法执行 $sql. " . $mysqli->error; } //إغلاق الاتصال $mysqli->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("错误:无法连接。 " . $e->getMessage()); } //حاول تنفيذ الاستعلام try{ $sql = "SELECT * FROM persons LIMIT 3"; $result = $pdo->query($sql); if($result->rowCount() > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch()){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //إطلاق مجموعة النتائج unset($result); } else{ echo "لا يمكن العثور على سجلات تتطابق مع استعلامك."; } } catch(PDOException $e){ die("خطأ: لا يمكن تنفيذ $sql. " . $e->getMessage()); } //إغلاق الاتصال unset($pdo); ?>
بعد تقييد مجموعة النتائج، الناتج سيكون كالتالي:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | +----+------------+-----------+----------------------+