0

我最近在这里发布了类似的代码,但仍然无法正常工作。我试图重写脚本,但它仍然无法正常工作 - 我得到的只是屏幕右上角的一个灰色框。这个想法是有人登录,这用于在屏幕上显示他们的个人资料信息。我正在尝试从与我用作用户名的电子邮件地址匹配的行中获取用户数据。

任何帮助将不胜感激,因为这是我完成网站技术部分所需的最后一点。

谢谢。

<?php # DISPLAY USER DATA/PROFILE
# 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 email = {$_SESSION['email']}" ;
$r = mysqli_query( $dbc, $q ) ;

   echo '<tr><td>' . $r['first_name'] .' '. $r['last_name'] . '<br>'. $r['email'].'</td>     <td>' . '</td><td>' . '</td> </tr>';

#  Close database connection.
mysqli_close( $dbc ) ;

?>

*现在*

<?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 email = {$_SESSION['email']}" ;
$r = mysqli_query( $dbc, $q ) ;
$results = $r -> fetchAssoc() ;

   echo '<tr><td>' . $results['first_name'] .' '. $r['last_name'] . '<br>'. $r['email'].'</td> <td>' . '</td><td>' . '</td> </tr>';

# Close database connection.
mysqli_close( $dbc ) ;

?>

错误现在显示“在非对象上调用成员函数 fetchAssoc()” - 第 19 行,这是我添加的新行 $results = $r -> fetchAssoc() ;

4

1 回答 1

0

在你的 $r = mysqli_query() 之后,添加 $results = $r->fetchAssoc();

例如,您可以通过 $results['first_name'] 访问这些字段。

旁注:您应该考虑测试是否存在行、错误捕获等。甚至可能希望考虑改用 PDO。

于 2013-05-31T19:01:40.890 回答