0

動作していないように見えるこのコードがあります。やりたいことは、ユーザーのレベルを理解するためのクエリを作成することです。次に、そのレベルに基づいて、さまざまなコンテンツを印刷する必要があります。現時点では、デフォルトのものを印刷します。次のエラー メッセージが表示されます。

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>";
}
4

6 に答える 6

2

構文エラーがあります。次のようにするSELET必要がありますSELECT

mysql_query("SELECT..
于 2012-08-27T12:06:10.477 に答える
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');
于 2012-08-27T12:04:17.613 に答える
0

これを試してみませんか:

$username = mysql_real_escape_string($_SESSION['username']);
$rank1 = mysql_query("SELECT access FROM tbl_galleries WHERE username = '$username'");
于 2012-08-27T12:13:44.873 に答える
0

Mysql接続が構成されていますか?あなたはそのようなものを持っているべきです: $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

于 2012-08-27T12:05:59.580 に答える
0

SELECT、SHOW、DESCRIBE、EXPLAIN、および結果セットを返すその他のステートメントの場合、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');
于 2012-08-27T12:54:08.650 に答える
0

あなたのmysqlクエリでは、あなたのテーブルからaccessという名前の唯一の列を取得しています.mysql_result()関数のさらなるコードでは、3番目のパラメータフィールド名をランクとして渡していますが、クエリで返された結果では、列またはフィールド名のランクはありません到来 。このような

SELECT access FROM tbl_galleries WHERE username = '$username'
$rank = mysql_result($rank1, 0, 'rank');

ランク フィールドの結果を取得する場合は、フィールド アクセスでランク フィールドを取得するか、テーブルのすべての列を取得するか、mysql_result 関数の 3 番目のパラメーターを「アクセス」として渡します。

于 2012-08-27T12:34:05.133 に答える