如何在php中创建我的帐户页面

时间:2014-04-08 09:14:05

标签: php html mysql

我正在尝试创建一个帐户页面,用户可以在注册页面上查看他们输入网站的信息。我只希望它显示当前登录用户的信息。

这是我迄今为止所拥有的,但它不起作用

<?php
   include_once('DBconnect.php');


    $sql= "SELECT * FROM users WHERE username='".$username."'";
    $res = mysql_query($sql) or die(mysql_error());

  while ($row = mysql_fetch_assoc($res)){
      $username = $row['username'];
      $firstname = $row['first_name'];
      $lastname = $row['last_name'];
      $email = $row['email'];
      $school = $row['school'];
      $topics .= "<tr><td>username:".$username." </td><td>First name:".$firstname."</td><td>Last name:".$lastname."</td><td>email: ".$email."</td><td>school: ".$school."</td></tr>";
  echo $topics;
  } ?>

3 个答案:

答案 0 :(得分:0)

尝试将mysql_fetch_assoc()封装在一个返回数组结果集的函数中,如下所示:

 function populate_array($res) {
  while ($row = @mysql_fetch_assoc($res) {
     $result_array[] = $row;
  }
  return $result_array;
}

然后使用for循环迭代结果集,如下所示:

$result = populate_array($res);
$sets = count($result);

for($i=0;$i<$sets;$i++) {
  $topics .= $result[$i]['username'] . $result[$i]['firstname'] . $result[$i]['lastname']; // continue
}

echo $topics;

答案 1 :(得分:0)

您的变量$username来自哪里?你的代码似乎很好。你有任何错误吗?您可以做出一些改进:

  1. 使用Mysqli_ *扩展或PDO扩展,因为mysql_ *已过时,很快就会删除
  2. 使用以下命令将变量放入查询之前将其转义:
    • mysql_real_escape_string()
    • mysqli_real_escape_string()
    • PDO ::引号()
    • 或使用mysqli和PDO准备好的陈述
  3. 您可以尝试添加:

    if (!$res) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }
    
    if (mysql_num_rows($result) == 0) {
        echo "No rows found";
        exit;
    }
    

    看看你是否收到错误

    编辑:

    您的用户名通常来自您的表单,或者用户已经从$_SESSION[] Global登录。但是,如果用户已登录,您可以更好地将所有信息存储到会话中,这样您就不必始终从数据库中请求该信息。

    如果用户成功登录,则必须致电$_SESSION['username'] = $username; 然后在此页面中,您可以拨打$username = $_SESSION['username'];

    不要忘记在每个使用会话的页面上调用session_start();

答案 2 :(得分:0)

你需要在会​​话中给你打电话$ username,试试下面的代码:

<?php
   include_once('DBconnect.php');

    $username = $_SSESSION['username'];
    $sql= "SELECT * FROM users WHERE username='".$username."'";
    $res = mysql_query($sql) or die(mysql_error());

  while ($row = mysql_fetch_assoc($res)){
      $username = $row['username'];
      $firstname = $row['first_name'];
      $lastname = $row['last_name'];
      $email = $row['email'];
      $school = $row['school'];
      $topics .= "<tr><td>username:".$username." </td><td>First name:".$firstname."</td><td>Last name:".$lastname."</td><td>email: ".$email."</td><td>school: ".$school."</td></tr>";
  echo $topics;
  } ?>