gpt4 book ai didi

php - 如何引用其他表

转载 作者:行者123 更新时间:2023-11-30 21:55:02 25 4
gpt4 key购买 nike

所以我想做的是让不同的组有不同的权限,让他们看到不同的东西。我已经设置了它,所以表组有多个列,前 2 个是 groupidgroupname,然后其余的是权限,1 为启用或 0 为禁用.

<?php

ob_start();
session_start();
require_once 'dbconnect.php';

$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);

$sql=mysql_query("SELECT * FROM groups WHERE groupid=".$userRow['usergroup']);
$groupRow=mysql_fetch_array($sql);

?>

<div id="sidebar-menu" class="main_menu_side hidden-print main_menu">
<div class="menu_section">
<h3>General</h3>
<ul class="nav side-menu">
<li><a><i class="fa fa-home"></i> Home <span class="fa fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="home.php">Dashboard</a></li>
<?php if ($groupRow['Test'] == "1") { echo '<li><a href="index2.html">Dashboard2</a></li>'; } ?>
<li><a href="index3.html">Dashboard3</a></li>
</ul>
</li>
</ul>
</div>
<div class="menu_section">
<h3>Live On</h3>
<ul class="nav side-menu">
<li><a><i class="fa fa-bug"></i> Additional Pages <span class="fa fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="e_commerce.html">E-commerce</a></li>
<li><a href="projects.html">Projects</a></li>
<li><a href="project_detail.html">Project Detail</a></li>
<li><a href="contacts.html">Contacts</a></li>
<li><a href="profile.html">Profile</a></li>
</ul>
</li>
</ul>
</div>
</div>

任何建议都会很棒!

谢谢,
cNTr1nity

P.S DBConnect 只是一个 PHP 文件,它将其他 PHP 文件连接到 MySQL 数据库。

最佳答案

您的测试 echo 在正确的线上。事实上,你似乎几乎是完整的。我会使用一个单一的选择查询,在用户表和组表之间进行连接,用户表中的用户组外键作为链接, session 用户作为 WHERE 条件,所以:

 $res=mysql_query("SELECT groups.*, users.* FROM groups 
INNER JOIN users ON groups.groupid = users.usergroup WHERE
users.userId =" .$_SESSION['user']);

然后您可以使用多个 if 条件来回显正确的附加条件href 行根据需要。

重要提示:我还建议通过更新到 mysqli/pdo 并保护您的代码免受 sql 注入(inject)的风险来接受@Obsidian Age 的评论。 docs on the later mysqli are herehelpful SO post on protecting against sql injection .因此,保护​​您的代码的一个好的起点是使用 mysqli 准备好的参数语句,例如(假设 users.userId 是一个整数):

$s = $mysqliConnection->prepare('SELECT groups.*, users.* FROM groups 
INNER JOIN users ON groups.groupid = users.usergroup WHERE
users.userId = ?');
$s->bind_param('i',$_SESSION['user']);

$s->execute();

参见 docs on mysqli prepared parameter statements here for more advice 并阅读上面的 SO 引用以了解其他安全措施。

关于php - 如何引用其他表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45555985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com