Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Klik link berikut untuk informasi cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Tips pengaturan ordering seperti joomla

Berikut ini saya kasih tips pengaturan urutan record seperti joomla.

Buat tabel contoh

[code]
CREATE TABLE `tb_data` (
`id` int(11) NOT NULL auto_increment,
`data` varchar(100) collate latin1_general_ci NOT NULL default '',
`ordering` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=9 ;

--
-- Dumping data for table `tb_data`
--

INSERT INTO `tb_data` VALUES (1, 'Data 1', 2);
INSERT INTO `tb_data` VALUES (2, 'Data 2', 3);
INSERT INTO `tb_data` VALUES (3, 'Data 3', 4);
INSERT INTO `tb_data` VALUES (4, 'Data 4', 5);
INSERT INTO `tb_data` VALUES (5, 'Data 5', 6);
INSERT INTO `tb_data` VALUES (6, 'Data 6', 7);
INSERT INTO `tb_data` VALUES (7, 'Data 7', 8);
[/code]

skrip lengkapnya
index.php

[code]
<?
mysql_connect("localhost","root","");
mysql_select_db("test");
$task=$_REQUEST["task"];
?>


Demo Ordering




<?
switch($task){
case "input" :
input_data();
break;
case "ubah_posisi":
ubah_posisi($_GET["id_cur"],$_GET["posisi_cur"],$_GET["id_tukar"],$_GET["posisi_tukar"]);
break;
default:
lihat_data();
}

function lihat_data(){
$sql="select a.id as id,a.data as data,a.ordering as ordering from tb_data a order by a.ordering";
$qry=mysql_query($sql) or die(mysql_error());
$total=mysql_num_rows($qry);
if($total<1){
echo "Data kosong";
}
else{
$rows=array();
?>
Daftar data
Input Data
<?
while ($row=mysql_fetch_assoc($qry)){
$rows[]=$row;
}//end while

$jumlah=count($rows);
$sebenarnya=$jumlah-1;

echo "noDataOrdering";
for($i=0;$i<$jumlah;$i++){
if($i==0){
$cell1=" ";
$cell2="Bawah";
}
else if($i==$sebenarnya){
$cell1="Atas";
$cell2=" ";
}
else{
$cell1="Atas";
$cell2="Bawah";
}
echo "";
echo "".($i+1)."";
echo "".$rows[$i][data]."";
echo "$cell1";
echo "$cell2";
echo "";
}
echo "";
}//end $ada
}//end function

function input_data(){
if(isset($_POST["submit"])){
$data=$_POST["data"];
$id=$_POST["id"];
$qry=mysql_query("insert into tb_data values('$id','$data','$id')") or die (mysql_error());
echo "alert('Data sudah disimpan');top.location.href='index.php';";
}
?>
Input data




Data:

   




<?
}

function ambil_id_akhir(){
$qry=mysql_query("select max(id) as id from tb_data");
$row=mysql_fetch_array($qry);
$id_akhir=$row["id"]+1;
return $id_akhir;
}

function ubah_posisi($id_cur,$order_cur,$id_tukar,$posisi_tukar){
$sql="update tb_data set ordering='$posisi_tukar' where id='$id_cur'";
$qry=mysql_query($sql) or die (mysql_error());
$sql="update tb_data set ordering='$order_cur' where id='$id_tukar'";
$qry=mysql_query($sql) or die (mysql_error());
//echo "IDCur=$id_cur
OrderCur=$order_cur
IDTukar=$id_tukar
Order Tkaur=$posisi_tukar";
echo "top.location.href='index.php';";
}
?>



[/code]

Tampilannya
[img]http://img248.imageshack.us/img248/6577/orderingjoomlamo6.jpg[/img]

penjelasan
Untuk masalah penambah saya nggk usah jelaskan lagi.

Baris

[code]
<?
while ($row=mysql_fetch_assoc($qry)){
$rows[]=$row;
}//end while
?>
[/code]
Record2 dimasukan ke dalam variabel array assosiatif. Mengapa?
Agar kita bisa mengetahui id record sebelum record sekarang dan id record sesudah record sekarang
Untuk menemukan id record sebelum record sekarang kita pakai ($i-1);
Untuk menemukan id record sesudah record sekarang kita pakai ($i+1);
[code]
<?
$jumlah=count($rows);
$sebenarnya=$jumlah-1;
for($i=0;$i<$jumlah;$i++){
if($i==0){
$cell1=" ";
$cell2="Bawah";
}
else if($i==$sebenarnya){
$cell1="Atas";
$cell2=" ";
}
else{
$cell1="Atas";
$cell2="Bawah";
}
//....
}//end for
?>
Baris diatas dimaksudkan agar di record atas mencetak link Bawah. Record di bawah mencetak link Atas dan selain itu mencetak Atas dan Bawah
Variabel $id_cur adalah id data current record
Variabel $psosisi_cur adalah nilai field ordering current record
Variabel $id_tukar adalah id data next atau previous record
Variabel $psosisi_cur adalah nilai field ordering next atau previous record

Sebenarnya ini merupakan salah satu pertanyaan saya yang duluuuuuu sekali. Tetapi belum ada solusi yang memuaskan
Setelah ngoprek baru deh ketemu.
Demikian tips dari saja. Mudah-mudahan berguna.
[/code]
Tagged:

Comments

Sign In or Register to comment.