Selamat Siang,
saya punya data array sebagai berikut :
$data = array();
$data[] = "IT/managerial/software/kasubsie/Moro/Konsolidasi Server";
$data[] = "IT/managerial/software/kasubsie/Moro/Setting Server";
$data[] = "IT/managerial/software/kasubsie/Setting Server/Moro";
$data[] = "informasi/aaa/bbb/ccc/vvv";
$data[] = "informasi/aaa/bbb/ccc/ddd";
Dari data diatas saya akan membuat Tree Menu. Langkah pertama saya ingin me-generate nya ke dalam tabel menjadi 3 kolom, yaitu :
| ID | Parent_ID | Nama_Folder |
| | | |
seperti itu bentuk table nya :
ID = No urut data ketika masuk ke table
Parent_ID = Parent ID mengacu pada ID sesuai dengan urutan data array setelah di explode dengan "/"
jadi jika $data[] = "IT/managerial/software/kasubsie/Moro/Konsolidasi Server"
maka
"IT" ID = 1, parent ID = 0
"managerial" ID = 2, parent ID = 1
"software" ID = 3, parent ID = 2
dan seterusnya
Nah disini saya kesulitan ketika menentukan parent ID nya jika ada data dengan posisi array key sama namun nama folder berbeda.
Kode Lengkap yang telah saya buat seperti ini :
$data = array();
$data[] = "IT/managerial/software/kasubsie/Moro/Konsolidasi Server";
$data[] = "IT/managerial/software/kasubsie/Moro/Setting Server";
//$data[] = "fendy/yefune/teni/yoseph/Moro/Setting Server"; //ini jika posisi array key sama tp folder sebelumnya beda
$data[] = "IT/managerial/software/kasubsie/Setting Server/Moro";
$data[] = "informasi/aaa/bbb/ccc/vvv";
$data[] = "informasi/aaa/bbb/ccc/ddd";
sort($data);
foreach ($data as $value)
{
$item_path = explode("/",$value);
$jml_path = count ($item_path);
/*(for ($i=0;$i<=$jml_path;$i++)
{
$sql = mysql_query("SELECT * FROM treegrid WHERE $parent_id = $i and folder_name = '$item_path[$i]'");
$r = mysql_num_rows($sql);
$data = mysql_fetch_array($sql);
$id = $data['id'];
}*/
foreach ($item_path as $k => $d)
{
//echo $k." ".$d;
//echo "<br>";
$id = mysql_query("SELECT max(id) id FROM treegrid");
$rows = mysql_num_rows($id);
if ($rows > 0)
{
$data = mysql_fetch_array($id);
$id = $data['id'];
$id = $id + 1;
}
else
{
$id = 1;
}
if($k == 0 )
{
$parent_id = 0;
}
else
{
$parent_id = $id-1;
}
$cek = mysql_query("SELECT * FROM treegrid WHERE array_key = $k and folder_name ='$d'");
$baris = mysql_num_rows($cek);
if ($baris == 0)
{
$sql = mysql_query("INSERT INTO treegrid VALUES ($id,$parent_id,$k,'$d')");
if ($sql)
{
echo "YES";
}
else
{
echo "NO";
}
}
}
}