-3
<?php
 session_start();

 $username = "root";
 $password = "password";
 $database = "meipolytechnic";
 mysql_connect('localhost', $username,$password);
 @mysql_select_db($database) or die(mysql_error());


 $username=$_SESSION['MM_Username'];
 $query = "SELECT rollno FROM users where username = '".$username."'";
 $result = mysql_query($query) or die(mysql_error());
 $num = mysql_num_rows($result);

  mysql_close();

   $rows = array();

   while($r = mysql_fetch_row($result))

   {
    $rows[] = $r[0];
   }

   echo ($rows['rollno']);

   ?>

我只想从数据库中的用户表中检索已登录的用户roll no

当我运行这段代码时

并以 foo 身份登录

我得到以下东西

'where 子句'中的未知列'foo'

4

8 回答 8

0

在代码中使用 $_SESSION 变量之前,您必须使用 session_start()。

所以把下面的代码放在开始,

session_start();

然后在查询中进行一些修改,例如,

$query = "SELECT rollno FROM users where username = '".$_SESSION['MM_Username']."'";
于 2013-09-13T09:22:52.103 回答
0

首先使用开始会话start_session()

然后更改您的查询:

$query = "SELECT rollno FROM users where username = ".$_SESSION['MM_Username'];

然后改变: $num = mysql_num_rows($result); instead of $num = mysql_numrows($result);

于 2013-09-13T09:18:58.910 回答
0

您可以使用

     $username=$_SESSION[MM_Username];
     $query = "SELECT rollno FROM users where username = '".$username."'";

并使用 session_start() 启动会话

并且您使用了两个结束标签省略了一个使其如下所示

      echo ($rows['rollno']);
?>
于 2013-09-13T09:19:39.587 回答
0

要在字符串中使用数组,您需要在它之前和之后放置一个花括号,以便

$query = "SELECT rollno FROM users where username = {$_SESSION['MM_Username']}";

或者

$query = "SELECT rollno FROM users where username = ".$_SESSION['MM_Username'];
于 2013-09-13T09:09:16.620 回答
0

首先开始你的会话

session_start();

并像这样更改您的查询...

$query = "SELECT rollno FROM users where username = '".$_SESSION['MM_Username']."'";
于 2013-09-13T09:10:18.943 回答
0

session_start()页面顶部应该有

查询需要更改为

$query = "SELECT rollno FROM users where username = '".$_SESSION['MM_Username']."' ";

编辑

请在此处发布问题之前先尝试一下。请 google 或通过 www.w3school.com 解决此类问题。熟悉数组和mysql连接。并且 mysql_query 函数将无法使用最新的 PHP 版本。

请尝试以下代码。

$result = mysql_query($query) or die(mysql_error());
$rows = array();
while($r = mysql_fetch_row($result))
{
   $rows[] = $r[0];
}
print_r($rows); 
于 2013-09-13T09:10:42.530 回答
0

当查询为假时会发生这种类型的错误

可能是因为你还没有开始会话,因为如果你没有session_start(),那么会话变量中不会有任何东西......试试

$query = "SELECT rollno FROM users where username = '".$_SESSION[MM_Username]."'";

这可以帮助你吗

于 2013-09-13T09:20:57.707 回答
0

试试这个查询

 $query = "SELECT rollno FROM users where username = ".$_SESSION[MM_Username]." ";

并在同一页面上开始会话。

于 2013-09-13T09:14:08.643 回答