Misalkan gw punya tiga tabel di database yang mana ketiga database tersebut saling berhubungan , yaitu Tabel Mahasiswa , MataKuliah, dan Mahasiswa_MataKuliah .

Tabel Mahasiswa terdiri dari dua kolom , yaitu : ID_Mahasiswa dan Nama_Mahasiswa. Tabel MataKuliah terdiri dari dua kolom, yaitu ID_MataKuliah dan Nama_MataKuliah. Dan terakhir tabel Mahasiswa_MataKuliah yang terdiri dari ID_Mahasiswa dan ID_MataKuliah. Tabel terakhir menunjukkan hubungan antara Mahasiswa dan MataKuliah yang bersifat many to many, dimana satu mahasiswa bisa memiliki banyak mata kuliah dan begitu juga sebaliknya.

Proses Pertama : INSERT .

Anggap semua terjadi dalam satu proses sekaligus.

Cara primitif :D :

<?php
 
// INSERT Mahasiswa
$sql_mahasiswa	= mysql_query("INSERT INTO Mahasiswa VALUES (NULL, '".$Nama_Mahasiswa."')") ;
 
// INSERT MataKuliah
$sql_matakuliah	= mysql_query("INSERT INTO Mahasiswa VALUES (NULL, '".$Nama_MataKuliah."')") ;
 
// Ambil ID Mahasiswa yang baru dimasukkan
$sql_id_mahasiswa	= mysql_query("SELECT ID_Mahasiswa FROM Mahasiswa ORDER BY ID_Mahasiswa DESC LIMIT 1") ;
$rs_id_mahasiswa	= mysql_fetch_array($sql_id_mahasiswa) ;
// dan bla... bla.. sehingga
$ID_Mahasiswa		= $rs_id_mahasiswa['ID_Mahasiswa'] ;
 
// Ambil ID MataKuliah yang baru dimasukkan
$sql_id_matakuliah	= mysql_query("SELECT ID_MataKuliah FROM MataKuliah ORDER BY ID_MataKuliah DESC LIMIT 1") ;
$rs_id_matakuliah	= mysql_fetch_array($sql_id_matakuliah) ;
// dan bla... bla.. sehingga
$ID_MataKuliah		= $rs_id_matakuliah['ID_MataKuliah'] ;
 
// Sehingga tinggal dimasukkan ke Tabel Mahasiswa_MataKuliah
$sql_mahasiswa_matakuliah	= mysql_query("INSERT INTO Mahasiswa_MataKuliah VALUES ('".$ID_Mahasiswa."','".$ID_MataKuliah."')") ;	
 
?>

Cara optimasasi :

<?php
// INSERT Mahasiswa
$sql_mahasiswa	= mysql_query("INSERT INTO Mahasiswa VALUES (NULL, '".$Nama_Mahasiswa."')") ;
 
// INSERT MataKuliah
$sql_matakuliah	= mysql_query("INSERT INTO Mahasiswa VALUES (NULL, '".$Nama_MataKuliah."')") ;
 
// Langsung dimasukkan ke tabel Mahasiswa_MataKuliah
$sql_mahasiswa_matakuliah	= mysql_query("INSERT INTO Mahasiswa_Matakuliah
							SELECT 	(SELECT ID_Mahasiswa FROM Mahasiswa ORDER BY ID_Mahasiswa DESC LIMIT 1),
								(SELECT ID_MataKuliah FROM MataKuliah ORDER BY ID_MataKuliah DESC LIMIT 1)
						") ;
// ATAU .... ?
?>

Proses Kedua : READ

<?php
// Proses read dengan mengambil seluruh mahasiswa berikut mata kuliah yang diambilnya
$sql	= mysql_query("
			SELECT Nama_Mahasiswa, Nama_MataKuliah 
				FROM Mahasiswa M, MataKuliah MK, Mahasiswa_MataKuliah MM 
				WHERE 	MM.ID_Mahasiswa	= M.ID_Mahasiswa AND
					MM.ID_MataKuliah= MK.ID_Mahasiswa
		") ;
 
 
// Proses read dengan megambil beberapa mahasiswa ($limit) berikut mata kuliah yang diambilnya
// $limit = batasan yang ditampilkan
// $start = mulai dari baris berapa ditampilkan
$sql	= mysql_query("
			SELECT Nama_Mahasiswa, Nama_MataKuliah 
				FROM 	(SELECT ID_Mahasiswa, Nama_Mahasiswa FROM Mahasiswa LIMIT ".$start.",".$limit.") M, 
					MataKuliah MK, Mahasiswa_MataKuliah MM 
				WHERE 	MM.ID_Mahasiswa	= M.ID_Mahasiswa AND
					MM.ID_MataKuliah= MK.ID_Mahasiswa
		") ;
 
 
?>

Semoga bermanfaat . Good Luck.

VN:F [1.9.0_1079]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.0_1079]
Rating: 0 (from 0 votes)