用户作为php和mysql

时间:2015-07-06 17:54:05

标签: php mysql dynamic

我需要你的帮助!

所以我的mysql数据库中有一个“用户”和一个“页面”表。我在名为“owner”的“pages”表中创建了一个列,其中可以编辑该页面的人的用户名。 (我稍后会处理那件事,现在只显示一行文字) 所以我创建了一个用户名为“Giannina”的用户,该用户是主页和信息页面的管理员。然后我编写了这个if语句,当任何用户登录并在主页或信息页面上回复“你是这个页面的管理员”时。

这是执行此操作的代码。

if ($path['call_parts'][0] == "home" OR "info") { echo 'You are admin of this page'; }

基本上我想要做的就是抓住 slugs (在本例中是 home info ),其中$ _SESSION [' user_name'](Giannina)与页面的“所有者”相同,并在上面的代码中吐出它们。 这是我到目前为止的代码:

$query = "SELECT * FROM pages WHERE owner = '$_SESSION[user_name]'";
            $result = mysqli_query($dbc, $query);

            while ($page_info = mysqli_fetch_assoc($result)) {

                $var .= $page_info['slug'] .' OR '; 

            }

            echo chop($var, " OR ");

所以它的作用是,它抓住我存储在变量$ page_info中的两个slu and并将它们吐出来:

home OR info

但我不知道从哪里去。

所以为了简短起见,我需要帮助,动态地替换“home”或“info”(在第一行代码中)。

任何想法和帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

如果我理解了这个问题,你可能想要这样的东西:

$pages= [];
while ($page_info = mysqli_fetch_assoc($result)) {
    $pages[] = $page_info['slug']; 
}

if (in_array($path['call_parts'][0], $pages, true)) { echo 'You are admin of this page'; }

答案 1 :(得分:0)

此:

$foo == 'bar' or 'baz'

将以

执行
$foo == ('bar' or 'baz')
$foo == true

你不能做那样的多值比较。它必须是

($foo == 'baz') OR ($foo == 'baz')

如果你有一堆值要再次测试,你可以做

in_array($foo, array('bar', 'baz', .....))

代替