我有这个代码似乎不起作用,我想做的是进行查询以了解用户的级别,然后基于该级别我需要打印不同的内容,目前它打印默认的一个,我收到此错误消息:
mysql_result()期望参数1是资源,在此行给出布尔值:
$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>";
}
答案 0 :(得分:2)
您遇到语法错误,SELET
必须为SELECT
:
mysql_query("SELECT..
答案 1 :(得分:0)
您在查询中使用不匹配的引号并使用不正确的语法:
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_result
中的特定列,但它与您在查询语句中选择的列名称不匹配;
$rank1 = mysql_query("SELECT access FROM tbl_galleries WHERE username" . mysql_real_escape_string($_SESSION['username']) . "'");
$rank = mysql_result($rank1, 0, 'access');
答案 2 :(得分:0)
您是否配置了Mysql连接?你应该有类似的东西:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
答案 3 :(得分:0)
为什么不试试这个:
$username = mysql_real_escape_string($_SESSION['username']);
$rank1 = mysql_query("SELECT access FROM tbl_galleries WHERE username = '$username'");
答案 4 :(得分:0)
在你的mysql查询中,你正在从你的表中检索唯一一个名为access的列,并在你的mysql_result()函数的另一个代码中,你将第三个参数字段名称作为rank传递,但在你的查询中返回结果列或字段名称排名不会到来。 喜欢这个
SELECT access FROM tbl_galleries WHERE username = '$username'
$rank = mysql_result($rank1, 0, 'rank');
如果你想获得rank字段的结果,那么要么通过字段访问来检索rank字段,要么检索表的所有列,或者将mysql_result函数中的第三个参数作为'access'传递
答案 5 :(得分:0)
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句返回 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');