-2

I really got a problem now. I tried for decades and I can't find why it is not working. I want to get the user that is logged in to see their email on a specific page. I tried a new code now and i get this error: Notice: Undefined variable: row in

The code I use is:

  <?
  $username = $_SESSION['username'];
$sql = "select * from users where username=" . $username . ""; 
echo $sql;

$query = mysql_query($sql); 

while ($row = mysql_fetch_array($query)) { 

}
?>

AND

<?php echo $row['email']; ?>
4

3 回答 3

0

我看到了一个错误和一个设计问题。

您已经设计了脚本,以便在您的 while 循环条件下打印最后分配给 $row 的任何内容。

您收到错误是因为查询没有返回任何内容并且循环没有运行。因此,永远不会分配 $row。话虽如此,如果您想要做的只是在返回的第一条记录中显示“email”列的值,那么您可能不想使用 while 循环。如果你愿意,那就停下来。

在 $result 上调用 mysql_fetch_assoc() (不返回太多数据),并检查它是否不返回 FALSE(未找到一条或多条记录)。

if((row = mysql_fetch_assoc($result)) === false)
    die("Error.");

?> 电子邮件:

于 2013-06-05T20:01:59.857 回答
0
 <?php
    $username = $_SESSION['username'];
    $query = mysql_query("select * from users where username='".$username."'"); 

    while ($row = mysql_fetch_array($query)) { 
    $email=$row["email"];
    }
    echo $email;
 ?>

尝试这个。不要使用 mysql_* 函数

于 2013-06-05T19:48:34.623 回答
0

我认为...问题出在 SQL 查询中。我建议您的列“用户名”类似于 VARCHAR(50)。所以你必须添加报价。

$sql = "select * from users where username='" . $username . "'"; 
于 2013-06-05T19:50:43.207 回答