عند العمل مع قواعد البيانات باستخدام PHP وMySQL، قد تواجه موقفًا حيث تحتاج إلى الوصول إلى نفس نتائج الاستعلام أكثر من مرة باستخدام وظيفة mysqli_fetch_array(). ومع ذلك، فإن محاولة استخدام mysqli_fetch_array() على نفس مجموعة النتائج عدة مرات ستؤدي إلى نتيجة فارغة.
وذلك لأن mysqli_fetch_array() يقوم بجلب المؤشر وتقدمه في مجموعة النتائج. وبالتالي، إذا حاولت جلب نفس النتيجة مرة أخرى، فلن تكون هناك أي بيانات متبقية لاستردادها.
لحل هذه المشكلة، يجب عليك فصل معالجة البيانات عن الإخراج. أولاً، قم بإحضار كافة البيانات من قاعدة البيانات وتخزينها في مصفوفة:
$db_res = mysqli_query($db_link, $sql);
$data = [];
while ($row = mysqli_fetch_assoc($db_res)) {
$data[] = $row;
}
ملاحظة: منذ PHP 5.3، يمكنك استخدام fetch_all() بدلاً من الحلقة الصريحة:$db_res = mysqli_query($db_link, $sql);
$data = $db_res->fetch_all(MYSQLI_ASSOC);
بمجرد تخزين البيانات في مصفوفة، يمكنك تكرارها عدة مرات حسب الحاجة:الصف العلوي :
foreach (بيانات $ كصف $) {
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3