Postingan lainnya
Mengambil data pada db lain dan menampilkan sesuai login
mohon bantuan
Saya punya 2 db: login3:username, password, level dan kerja: lokasi, lingkup, petugas
pengennya ketika login dengan "username" maka langsung masuk ke index db kerja namun isinya hanya menampilan list dari "petugas" yang sama dengan username awal
pake session kok nggk bisa2 ya
tks
index login
if (isset($_POST['login'])){
session_start();
$username=$_POST['username'];
$password=$_POST['password'];
$_SESSION['username']=$username;
$query = mysql_query("Select * from login3 where username='$username' and password='$password'");
$cekdata = mysql_num_rows($query);
if ($cekdata > 0) {
$data = mysql_fetch_array($query);
$status=$data['status'];
echo $status;
if ($status == "admin")
{
?><script language="javascript">document.location.href="kerja/index.php";</script><?php
}
else if ($status == "inspektor")
{
?><script language="javascript">document.location.href="kerja/index.php";</script><?php
}
else{
?><script language="javascript">document.location.href="kerja/index.php";</script><?php
}
}else{
header('Location:index.php?login=Maaf password atau username anda salah!');
}
}else{
unset($_POST['login']);
}
?>
index db.kerja
<?php
session_start();
if(!isset($_SESSION['username']))
{ echo "Anda belum login";
exit;}
include('koneksi.php');
$query = mysql_query("SELECT * FROM kerja ORDER BY kerja_kmp DESC") or die(mysql_error());
if(mysql_num_rows($query) == 0){
echo '<tr><td colspan="6">Tidak ada data!</td></tr>';
}else{
$no = 1;
while($data = mysql_fetch_assoc($query)){
echo '<tr>';
echo '<td>'.$no.'</td>';
echo '<td>'.$data['kerja_kmp'].'</td>';
echo '<td>'.$data['kerja_lokasi'].'</td>';
echo '<td>'.$data['kerja_lingkup'].'</td>';
echo '<td>'.$data['kerja_petugas'].'</td>';
echo '<td>'.$data['kerja_tanggal'].'</td>';
echo '<td>'.$data['kerja_temuan'].'</td>'; /
echo '<td><a href="edit.php?id='.$data['kerja_id'].'">Edit</a> / <a href="hapus.php?id='.$data['kerja_id'].'" onclick="return confirm(\'Yakin?\')">Hapus</a></td>';
echo '</tr>';
$no++;
4 Jawaban:
Agak bingung gan, data2 yg agan sebutkan di atas beda dengan data2 yg agan keluarkan dari db. Table login3: username, password, level. Terus hasil dari mysql_query ada result $data['status']. Ini index status dari mana? Begitu juga dengan table kerja. Silahkan diperjelas struktur dbnya. Apakah ada error? Errornya apa? Apa hasil yg tampil saat setelah login dan buka index kerja?
maaf saya koreksi ya pak db login3: username,password dan status. sengaja status dibuat semua menuju ke alamt sama db. kerja: kmp,lokasi, lingkup, petugas, tanggal, temuan.
coding diatas dirun nggk ada eror tapi muncul semua db kerja. pengennya ketika login username langsung diidentifikasi "jika sama" dengan nilai di 'petugas' db yang mucul hanya yang petugas yg sama
saya sisipkan session dan pake dibawah tidak bisa $query = mysql_query("SELECT * FROM kerja where kerja_petugas='login3.['$username']") or die(mysql_error());
atau pake $query=mysql_query("select * from kerja, login3 where kerja.kerja_petugas=login3.username order by kerja_id desc ");
sudah belajar php dan mysqlkah? nampaknya dari syntaxnya banyak yg kurang benar. Lakukan hal berikut: 1. uji coba aplikasinya, lakukan tes login 2. edit file index db.kerja yang agan sebutkan menjadi
// coba die dulu lihat sessionnya sudah ada nilainya atau belum. tambahkan kode berikut setelah session_start()
session_start();
die($_SESSION['username']);
// kalau anda melihat nama usernya berarti ok bisa lanjut cek kode2 di bawahnya
3. catatan, itu juga di index login banyak logika yang kurang baik. semestinya lakukan pengecekan data di database dulu kemudian cek apakah nilainya ada, baru buat sessionnya. tetapi agan langsung set session sebelum cek data di db. Tapi ini bisa diskip dulu, selanjutnya ini penting diperbaiki.
bang onirusama
Sudah saya die hasilnya muncul.
jika saya tulis langsung nama di username seperti dibawah ok, gimana ya gan? $query = mysql_query("SELECT * FROM kerja where kerja_petugas='langsung nama'") or die(mysql_error());