1

セッションを使用して SQL データベースからデータを取得する際に問題が発生しています。ログインシステムを作ろうとしています。私はすでにこれを機能させていますが、すべての使用が同じページに送られます.正しい電子メールアドレスとパスワードでログインした人だけが見ることができるプライベートプロファイルが必要です.

次のコードを使用しています - 19 行目でエラーが発生しています! 正直なところ、この行を 100% 理解していません。私は PHP と SQL に不慣れで、このすべてについて読んでいますが、それを完全に説明する答えが得られていません。

何か助けていただければ幸いです-チュートリアルを参照してください...

<?php # DISPLAY COMPLETE FORUM PAGE.

# Access session.
session_start() ;

# Redirect if not logged in.
if ( !isset( $_SESSION[ 'user_id' ] ) ) { require ( 'login_tools.php' ) ; load() ; }

# Set page title and display header section.
$page_title = 'Forum' ;


# Open database connection.
require ( 'connect_db.php' ) ;

# Display body section, retrieving from 'forum' database table.
$q = "SELECT * FROM users WHERE user_id = $_SESSION[email]" ;
$r = mysqli_query( $dbc, $q ) ;
if ($result = $mysqli->query("SELECT * FROM users"))
{
  echo '<table><tr><th></th><th></th><th id="msg"></th></tr>';
  while ( $row = mysqli_fetch_array( $r, MYSQLI_ASSOC ))
  {
    echo '<tr><td>' . $row['first_name'] .' '. $row['last_name'] . '<br>'.        $row['email'].'</td>
    <td>','</td><td>','</td> </tr>';
  }
  echo '</table>' ;
}
else { echo '<p>There are currently no messages.</p>' ; }

# Create navigation links.
#echo '<p><a href="post.php">Post Message</a> | <a href="shop.php">Shop</a> | <a     href="home.php">Home</a> | <a href="goodbye.php">Logout</a></p>' ;

# Close database connection.
mysqli_close( $dbc ) ;



?>
4

4 に答える 4

1

mysqliプロシージャル スタイル (この抜粋の最初の行のように) で使用するか、オブジェクト指向スタイル (2 行目のように) で使用するかを決定する必要があります。

$r = mysqli_query( $dbc, $q ) ;
if ($result = $mysqli->query("SELECT * FROM users"))
{

投稿されたコードの残りの部分を見ると、2 行目 (19 行目) を変更するif ($result = mysqli_query("SELECT * FROM users"))と、そのエラーが取り除かれると思います (必ずしも他のエラーではありません)。

于 2013-05-29T11:17:10.733 に答える
0

「 19 行目でエラーが発生しています! 」と言う- 上記の行の折り返しは、20 行目が引用符なしで始まり、コードに td があることを示していますか? その場合は、改行を削除し、19 行目が表の行の残りの部分を通り「;」まで続くことを確認します。

于 2013-05-29T11:12:35.547 に答える
0

このように書いてみてください

$q = "SELECT * FROM users WHERE user_id = '". $_SESSION['email']. "'";

編集:

比較emailしているように、文字列でなければならないことを意味するため、上記のように引用符で囲む必要があります。

も試してみてください

if ($result = mysqli_query($dbc, "SELECT * FROM users"))

ユーザーの手順または OOP の方法のいずれかを確認してください。$dbcに追加して上記を試してくださいmysqli_query()

于 2013-05-29T11:21:50.953 に答える