我需要你的帮助!
所以我的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”(在第一行代码中)。
任何想法和帮助表示赞赏!
答案 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', .....))
代替