Php会话,基于用户级问题重定向
我有这段代码,它似乎不起作用,我想做的是进行查询以了解用户的级别,然后根据该级别我需要打印不同的内容,目前它打印默认内容,我得到以下错误消息: mysql_result()希望参数1是资源,布尔值在这一行给出:Php会话,基于用户级问题重定向,php,mysql,Php,Mysql,我有这段代码,它似乎不起作用,我想做的是进行查询以了解用户的级别,然后根据该级别我需要打印不同的内容,目前它打印默认内容,我得到以下错误消息: mysql_result()希望参数1是资源,布尔值在这一行给出: $rank = mysql_result($rank1, 0, 'rank'); 代码如下所示: session_start(); if(!$_SESSION['username']){ header("location:login.php"); // Redirect to log
$rank = mysql_result($rank1, 0, 'rank');
代码如下所示:
session_start();
if(!$_SESSION['username']){
header("location:login.php"); // Redirect to login.php page
}
else //Continue to current page
header( 'Content-Type: text/html; charset=utf-8' );
$rank1 = mysql_query("SELET access FROM tbl_galleries WHERE column='username" . mysql_real_escape_string($_SESSION['username']) . "'");
$rank = mysql_result($rank1, 0, 'rank');
switch ($rank)
{
case 3:
echo "<div><a href='#'>Order DIAMOND Membership</a></div>";
break;
case 2:
echo "<div><a href='#'>Order PLATINUM Membership</a></div>
<div><a href='#'>Order DIAMOND Membership</a></div>";
break;
case 1:
echo "<div><a href='#'>Order ELITE Membership</a></div>
<div><a href='#'>Order PLATINUM Membership</a></div>
<div><a href='#'>Order DIAMOND Membership</a></div>";
break;
default:
echo "<div><a href='#'>Order PRO Membership</a></div>
<div><a href='#'>Order ELITE Membership</a></div>
<div><a href='#'>Order PLATINUM Membership</a></div>
<div><a href='#'>Order DIAMOND Membership</a></div>";
}
session_start();
如果(!$\会话['username']){
标题(“location:login.php”);//重定向到login.php页面
}
else//继续当前页面
标题('Content Type:text/html;charset=utf-8');
$rank1=mysql\u query(“从tbl\u库中选择访问,其中column='username.mysql\u real\u escape\u字符串($\u SESSION['username'])。””);
$rank=mysql_结果($rank1,0,'rank');
交换机($rank)
{
案例3:
回声“;
打破
案例2:
回声“
";
打破
案例1:
回声“
";
打破
违约:
回声“
";
}
您在查询中的引号不匹配,并且使用了不正确的语法:
WHERE column='username"
尝试使用:
mysql_query("SELECT access FROM tbl_galleries WHERE username ='" . mysql_real_escape_string($_SESSION['username']) . "'");
好的,复杂的语法:
$rank1 = mysql_query("SELECT access FROM tbl_galleries WHERE username" . mysql_real_escape_string($_SESSION['username']) . "'");
$rank = mysql_result($rank1, 0, 'rank');
您正在使用可选参数获取mysql\u结果中的特定列,但它与您在查询语句中选择的列名不匹配
$rank1 = mysql_query("SELECT access FROM tbl_galleries WHERE username" . mysql_real_escape_string($_SESSION['username']) . "'");
$rank = mysql_result($rank1, 0, 'access');
您是否配置了Mysql连接。你应该有这样的东西:
$link=mysql\u connect('localhost','mysql\u user','mysql\u password')代码>如果出现语法错误,SELET
必须是SELECT
:
mysql_query("SELECT..
为什么不试试这个:
$username = mysql_real_escape_string($_SESSION['username']);
$rank1 = mysql_query("SELECT access FROM tbl_galleries WHERE username = '$username'");
在mysql查询中,您正在从表中检索唯一一个名为access的列,在mysql_result()函数的后续代码中,您正在将第三个参数字段名作为秩传递,但在查询返回的结果中,列或字段名秩不出现。
像这样
SELECT access FROM tbl_galleries WHERE username = '$username'
$rank = mysql_result($rank1, 0, 'rank');
如果您想得到rank字段的结果,那么可以使用字段访问检索rank字段,或者检索表中的所有列,或者将mysql_result函数中的第三个参数作为“access”传递
用于选择、显示、描述、解释和其他返回语句
resultset,mysql_query()在成功时返回资源,在失败时返回FALSE
错误
对于其他类型的SQL语句,请执行INSERT、UPDATE、DELETE、DROP等操作,
mysql_query()成功时返回TRUE,错误时返回FALSE
这意味着您的查询中有一些错误。尝试在phpMyAdmin或其他类似工具中完成查询。您的查询应该是这样的
$userName = mysql_real_escape_string($_SESSION['username']);
$sql = "SELECT access
FROM tbl_galleries
WHERE username = $userName";
$result = mysql_query($sql);
$rank = mysql_result($result, 0, 'access');
谢谢你回复我:)是的,我已经这么做了。。但问题似乎不在这里,我仍然收到相同的消息错误。@Alb mgraph还发现了select
错售中的一个语法错误。这就是问题所在吗?@Alb请参见编辑。您的选择列名与结果列名不匹配。谢谢。。是的,我有一个错误,我现在修复了一切:)谢谢!还有拼写错误“SELET”而不是“SELECT”