从mysql中获取信息

时间:2013-06-05 19:42:14

标签: php mysql sql database

我现在真的遇到了问题。我试了几十年,我找不到它为什么不起作用。我想让登录的用户在特定页面上查看他们的电子邮件。我现在尝试了一个新代码,我收到了这个错误:Notice: Undefined variable: row in

我使用的代码是:

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

$query = mysql_query($sql); 

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

}
?>

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

3 个答案:

答案 0 :(得分: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_ *函数

答案 1 :(得分:0)

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

$sql = "select * from users where username='" . $username . "'"; 

答案 2 :(得分:0)

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

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

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

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

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

&GT?; 电子邮件: