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

ترتيب النتائج من الأحدث إلى الأقدم عند عرضها من قواعد البيانات

Hamada Ahmed

السؤال

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

<?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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...