news_users
id username classid(栏目ID)
1 abc 2news_class
id classname (栏目名称)
2 最新动态一般的单表查询我会,但是两张以上的查询就犯糊涂了,恳请大家指教,非常感谢!
如何根据当前用户所在表的classid,输出当前用户所在的栏目名称??
id username classid(栏目ID)
1 abc 2news_class
id classname (栏目名称)
2 最新动态一般的单表查询我会,但是两张以上的查询就犯糊涂了,恳请大家指教,非常感谢!
如何根据当前用户所在表的classid,输出当前用户所在的栏目名称??
完整的代码是不是这样写??请前辈指教!$result2 = $db->query("select c.classname from news_class as c left join news_users as u where c.id=u.classid");
if (($result2) ==1) {
echo $rs2['classname'];
}
$row1=$db->fetch_assoc($result2 ); //如果两个表中关联的数据大于一条就要用while循环 了。
echo $row1[classname] ;
if($_GET['act']== "")
{
$username = $_SESSION["username"];
$show = $db->getfirst("select * from news_users where username='$username'");
$result=$db->query("select * from news_users");
while($row=$db->getarray($result)){
?>
<table class="table" cellspacing="1" cellpadding="4" width="100%" align="center">
<tbody>
<tr>
<td class="title" align="center" colspan="2" height="25"><strong>用户资料</strong></td>
</tr>
<tr>
<td class="title" align="right">用 户 名:</td>
<td height="23" width="5%"><div align="center"><?php echo $show[id]?>" /><?php echo $show[username]?></td>
</tr>
<tr>
<td class="title" align="right" width="23%">所在栏目:</td>
<td height="23" width="5%">
<?php
while($row=$db->getarray($result)){
$result2 = $db->query("SELECT c.classname FROM news_class AS c INNER JOIN news_users AS u ON u.classid=c.id");
if (mysql_num_rows($result2) ==1) {
$row2 = $db->getarray($result2);
echo $row2['classname'];
}
?>
</td>
</tr>
</tbody>
</table>
<?php }?>
<?php
}
.....................................
?>
if($_GET['act']== "")
{
$username = $_SESSION["username"];
$show = $db->getfirst("select * from news_users where username='$username'");
$result=$db->query("select * from news_users");
while($row=$db->getarray($result)){
?>
<table class="table" cellspacing="1" cellpadding="4" width="100%" align="center">
.............................
<td class="title" align="right" width="23%">所在栏目:</td>
<td height="23" width="5%">
<?php
while($row=$db->getarray($result)){
$result2 = $db->query("SELECT c.classname FROM news_class AS c INNER JOIN news_users AS u ON u.classid=c.id");
if (mysql_num_rows($result2) ==1) {
$row2 = $db->getarray($result2);
echo $row2['classname'];
}
?>
</td>
</tr>
</tbody>
</table>
<?php }?>
<?php
}
.....................................
?>
$result=$db->query("select * from news_users");
这句语句在我参考的代码段里面是一句列举用户ID列表和页数的,,这里我略作了修改,原句是
$result=$db->query("select * from `".$prefix."user` order by id desc limit $offset,$num");
/* 获取栏目信息*/
$result2 = $db->query("select * from `".$prefix."class` where id=".$row['classid']);
if (mysql_num_rows($result2) == 1) {
$row2 = $db->getarray($result2);
echo $row2['classname'];
} else {
echo '获取栏目信息失败';
exit;
}
?>但是还是将所有的classname输出
你试下这个sql语句,应该没问题
SQL语句错误: SELECT c.id FROM news_users u JOIN news_class c ON u.classid=c.id WHERE u.username=admin
"SELECT c.id FROM news_users u JOIN news_class c ON u.classid=c.id WHERE u.username='$username'"