所以我想微调搜索。 我有一个表包含信息,请求,与相应的网络。 我有另一个表,它记录可见性和它的各自网络,以及谁可以查看它,基于它是“公共”还是“私人”。
我想要的最终结果是,桌面上的人可以查看私人网络,而任何人都可以查看公共网络。
if ($whichnetwork == "Global"){
$query = mysql_query("SELECT * FROM requests ORDER BY dateposted DESC");
} else {
$query = mysql_query("SELECT * FROM requests WHERE network = '$whichnetwork' ORDER BY dateposted DESC");
}
while ($row = mysql_fetch_assoc($query)){
echo "<div id='".$row["id"]."' class='item'>";
echo '<div style="width: 75%;">';
echo "<h4 style='display: inline;'>".$row["user"]." requests:</h4><br/>";
echo "<h2 style='display: inline;'>".$row["title"]." </h2>";
echo '</div>';
echo '<h3 id="button" style="border-radius: 10px; padding: 4px; color: white; float: right; position: relative; top: -50px; border: 2px solid grey; background-color: #C0504D;">Apply</h2>';
echo "</div>";
}
在我的代码中,我只有对requests表的引用,但是,还有另一个表具有Network,Username和Visibility。
我将如何使这项工作?我已多次执行它了,谢谢,Chris。
架构:
网络表:
network text utf8_general_ci No
username text utf8_general_ci No
visible text utf8_general_ci No
相关请求表:
network text utf8_general_ci No
user text utf8_general_ci No
答案 0 :(得分:1)
您应该在表格中添加索引字段以启动,这有助于加入表格和查询。
如下更改网络表
user_id int auto_increment primary key,
username nvarchar(30) ,
network text,
visibility_id int
更改您的请求表
user_id int ,
network text
添加另一个表可见性
visibility_id int // values stored and meaning(0-Public, 1-Private)
visibility nvarachar(10) (public, private etc)
查询当前用户是否有权访问搜索到的网络,网络是公共还是私有
select user_id, visibility from network where network='UserProvided';
然后,如果visibility_id为1,则私有检查userId获取的网络是否与当前用户相同,然后仅显示该网络
否则
如果能见度为0,那么它是公开的,您可以从请求中显示该内容。