我有两张桌子:
table pengguna: table perak:
pkg | username | password pkg | kodsk | namask
ayer | 123 | 123 ayer | .... | ....
bagan | admin | admin bagan | .... | ....
当用户输入正确的用户名和密码时,用户只能根据相同的pkg查看表perak上的特定行。我的查询有什么问题?
<?php
session_start();
include("connections.php");
try{
$data = "SELECT username,password,pkg,kodsk,namask,tahun,makmal,catatan,murid,netbook FROM pengguna,perak WHERE pengguna.pkg = perak.pkg AND pengguna.username = '$_SESSION[username]'";
$stmt = $connect->prepare($data);
$rows=array();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$rows[]=$row;
echo '<table width="70%" border="5" cellpading="1" cellspacing="1">
<tr>
<th>PKG</th>
<th>KOD SEKOLAH</th>
<th>NAMA SEKOLAH</th>
<th>TAHUN OPERASI</th>
<th>MAKMAL</th>
<th>CATATAN</th>
<th>BIL. MURID</th>
<th>AGIHAN NETBOOK</th>
</tr>';
foreach($rows as $row)
{
echo '<tr>
<td>'.$row["pkg"].'</td>
<td>'.$row["kodsk"].'</td>
<td>'.$row["namask"].'</td>
<td>'.$row["tahun"].'</td>
<td>'.$row["makmal"].'</td>
<td>'.$row["catatan"].'</td>
<td>'.$row["murid"].'</td>
<td>'.$row["netbook"].'</td>
</tr>';
}
}
catch(PDOException $error){
$error->getMessage();
}
?>
有人可以教我如何查询,以便用户只能在表perak
上查看他们的信息,而不会显示其他pkg
信息。
答案 0 :(得分:1)
试试这个:
SELECT * FROM perak INNER JOIN pengguna USING (pkg)
WHERE pengguna.username = '$_SESSION[username]'
您的查询
SELECT username,password,pkg,kodsk,namask,tahun,makmal,catatan,murid,netbook FROM pengguna,perak WHERE pengguna.pkg = perak.pkg AND pengguna.username = '$_SESSION[username]'
笛卡尔产品会给你一个非常大的表格,而不是推荐