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

السؤال

نشر

الكود التالي يستخدم في تعدد الصفحات لكنه يظهر نتائج الموضوعات من الاقدم للأحدث كيف يمكن تعديلة ليعرض النتائج من الأحدث للأقدم

<?php
if (isset($_GET['page_memper_news'])) 
{
$page_memper_news = $_GET['page_memper_news'];
}
else
{
$page_memper_news = 1;
}
$no_of_records_per_page = 21;
$offset = ($page_memper_news-1) * $no_of_records_per_page;
$total_pages_sql = "SELECT COUNT(*) FROM news";
$result = mysqli_query($db,$total_pages_sql);
$total_rows = mysqli_fetch_array($result)[0];
$total_pages = ceil($total_rows / $no_of_records_per_page);

$admin_type = "memper" ;
$sql = "SELECT n.*, a.* FROM `news` as n inner join accounts as a WHERE a.id = n.writer_id AND a.admin_type ='".$admin_type."' LIMIT $offset, $no_of_records_per_page";
$res_data = mysqli_query($db,$sql);
while($row = mysqli_fetch_array($res_data))
{
echo ''.$row['news_date'].'';
}
mysqli_close($db);
?>
<ul class="pagination">
<li><a href="?page_memper_news=1">بداية</a></li>
<li class="<?php if($page_memper_news <= 1){ echo 'disabled'; } ?>">
<a href="<?php if($page_memper_news <= 1){ echo '#'; } else { echo "?page_memper_news=".($page_memper_news - 1); } ?>">سابق</a>
</li>
<li class="<?php if($page_memper_news >= $total_pages){ echo 'disabled'; } ?>">
<a href="<?php if($page_memper_news >= $total_pages){ echo '#'; } else { echo "?page_memper_news=".($page_memper_news + 1); } ?>">تالي</a>
</li>
<li><a href="?page_memper_news=<?php echo $total_pages; ?>">نهاية</a></li>
</ul>
<?php

 

Recommended Posts

  • 0
نشر

يمكنك تحقيق ذلك عن طريق الأتي

  1. يوجد بلغة sql كلمة order by التي تقوم بتحديد ترتيب البيانات
  2. في الشفرة خاصتك يتم ترتيب السجلات تصاعديًا بناءًا على قيمة الid 
  3. يمكننا عكس ذلك عبر إضافة تلك الشفرة في نهاية الsql حتى يتم ترتيب العناصر بالشكل المعاكس
    order by id desc

      لتصبح في النهاية شفرة الsql كالتالي 

    SELECT n.*, a.* FROM `news` as n inner join accounts as a WHERE a.id = n.writer_id AND a.admin_type ='".$admin_type."' order by id desc LIMIT $offset, $no_of_records_per_page

     

  • 0
نشر

إن كنت تتصل مع API وتريد عكس النتائج بعد الوصول للمخدم لديك في PHP (أي لايمكنك التعديل على عبارة SQL) استخدم الدالة array_reverse التي تعيد المصفوفة معكوسة، ثم نستطيع المرور عليها بنفس الطريقة في شيفرتك:

while($row = mysql_fetch_assoc($res_data)){
    $items[] = $row;
}

$items = array_reverse($items ,true);

foreach($items as $item){
  echo ''.$item['news_date'].'';
}
  1. جلب نتائج الاستعلام إلى مصفوفة عن طريق المعامل [] وإضافتهم لمصفوفة جديدة
  2. عكس المصفوفة الناتجة عن الخطوة الأولى
  3. المرور على المصفوفة المعكوسة 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...