Cara menampilkan data dari urutan terbalik

Misal kita mempunyai data sebanyak 60, kita mau menampilkan data 30 terakhir namun yang tampil dari data lama ke baru dalam 30 terakhir. Kalo pake desc limit 30, yang tampil dari data terbaru 30, bukan terlama 30 -- ke data terbaru. mau di balik dari data terlama berarti urutan tampil daRI 31, 32, 33 dst... bukan 60,59,58

avatar rachmatsumo
@rachmatsumo

5 Kontribusi 0 Poin

Diperbarui 4 tahun yang lalu

3 Jawaban:

kalau data terlama tinggal urutin pake ASC aja EDIT: kalo gitu coba pake array_reverse aja gan ( pastiin querynya result_array / fetch_array ) contohnya gini <pre> $data = array( [ 'angka' =&gt; 4, 'desc' =&gt; 'empat' ], [ 'angka' =&gt; 3, 'desc' =&gt; 'tiga' ], [ 'angka' =&gt; 2, 'desc' =&gt; 'dua' ], [ 'angka' =&gt; 1, 'desc' =&gt; 'satu' ] ); $reverseData = array_reverse($data); foreach($reverseData as $value){ echo "$value[angka] - $value[desc] &lt;br&gt;"; } </pre>

OUTPUTnya :

<pre> 1 - satu 2 - dua 3 - tiga 4 - empat </pre>

avatar jeffian
@jeffian

26 Kontribusi 17 Poin

Dipost 4 tahun yang lalu

Tanggapan

kalo asc akan nampil data 1-30, sedangkan yang mau ditampilkan 31-60 dengan urutan asc. Kalo pake between datanya tidak tampil up to date, harus di ubah terus nilai between nya

bisa pake array reverse, atau kalo pake framework bisa pake 2 function gan, jadi pake 2 query

Jawaban Terpilih

Coba pas ngambil dari database diurutkan berdasarkan DESC LIMIT 30. Kemudian di kenakan array_reverse(). Contoh:

<pre> &lt;?php $koneksi = mysqli_connect("localhost", "root", "", "nama_database");

$exec_query = mysqli_query($koneksi, &quot;SELECT * FROM nama_table ORDER BY id DESC LIMIT 30&quot;);

$ambilData = array();
$no = 1;
$order = 0;
while ($data = mysqli_fetch_assoc($exec_query)) {
    $ambilData[$order][&quot;no&quot;] = $no++;
    $ambilData[$order][&quot;nama_field1&quot;] = $data[&quot;nama_field1&quot;];
    $ambilData[$order][&quot;nama_field2&quot;] = $data[&quot;nama_field2&quot;];
    $ambilData[$order][&quot;nama_field3&quot;] = $data[&quot;nama_field3&quot;];
    $ambilData[$order][&quot;nama_field4&quot;] = $data[&quot;nama_field4&quot;];
    $order++;
}

echo &quot;&lt;pre&gt;&quot;;
print_r($data); // hasilnya urutan waktu kita ambil dari database, yakni 60, 59, 59, ..., 31.
echo &quot;&lt;/pre&gt;&quot;;

$balik_data = array_reverse($ambilData);
// Sedangkan hasil dibawah ini akan mengurutkan hasil diatas menjadi 31, 32, 33, 34, ..., 60.
foreach ($balik_data as $key =&amp;gt; $value) {
    echo $value[&quot;no&quot;] . &quot;) &quot; . $value[&quot;nama_field1&quot;] . &quot; || &quot; . $value[&quot;nama_field2&quot;] . &quot; || &quot; . $value[&quot;nama_field3&quot;] . &quot; || &quot; . $value[&quot;nama_field4&quot;];
    echo &quot;&amp;lt;br&amp;gt;&quot;;
}

</pre>

Terimakasih...

avatar banisrailubis
@banisrailubis

25 Kontribusi 18 Poin

Dipost 4 tahun yang lalu

makasih semuanya gan, alhamdulillah berhasil

avatar rachmatsumo
@rachmatsumo

5 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban