mySQL可见性问题
所以我想微调搜索。 我有一个表,其中包含信息,请求,与各自的网络。 我有另一个表,它记录可见性和它的网络,以及谁可以查看它,基于它是“公共”还是“私人”。mySQL可见性问题
我想要的最终结果是,那些在桌子上的人可以查看私人网络,而任何人都可以查看公共网络。
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>";
}
在我的代码,我只需要请求表的引用,但是,有是有,网络,用户名和能见度另一个表。
我该如何做这项工作?克里斯,我已经失败了很多次,谢谢。
模式:
网络表:
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
您应该添加索引字段到您的表开始,将在您的加盟表帮助并查询。
改变网络表如下
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这是私人支票,如果用户id得到了网络是一样的当前用户,然后只显示网络
其他
如果visibility_id是0,那么它是公开的,你可以显示来自请求。
嗯,你能详细说明我需要使用哪种查询吗? – CCates 2012-03-05 22:20:59
我有一个问题,网络是私人的还是公共的,还是特定的用户超级用户,以便他可以查看所有网络? – 2012-03-06 04:14:35
如果条件有效,则基于上面的可见性标识。 – 2012-03-06 04:15:45
...为什么你向我们展示PHP代码而不是MySQL模式? – 2012-03-05 02:26:33
好的,现在检查它。 – CCates 2012-03-05 02:35:56
难怪你有麻烦。 'TEXT'不是一种通常用于查找事物的类型。 – 2012-03-05 02:45:09