-3

我无法在 PHP 中显示特定记录。这是我的代码:

<?php

session_start();
$name = $_SESSION['MM_Username'];
mysql_connect("localhost","abc","sar");
mysql_select_db("abc");
$query = mysql_query("select * from employee WHERE username = '$name'");

while($row = mysql_fetch_row($query));
{ 
  echo $row['employee_id'];
}   

?>

这不显示任何内容。我究竟做错了什么?

4

5 回答 5

6

您正在使用mysql_fetch_rowwhich 返回数值数组。你应该使用mysql_fetch_assoc,例如。

while($row = mysql_fetch_assoc($query))
{ 
  echo $row['employee_id'];
} 

请通读两者的文档:

http://php.net/manual/en/function.mysql-fetch-row.php

http://www.php.net/manual/en/function.mysql-fetch-assoc.php

注意:另外请不要忽略警告。开始使用 PDO 或 mysqli。

于 2013-07-03T13:51:01.303 回答
0

首先启用错误报告:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

然后按照下面的代码:

<?php
session_start();
$name = $_SESSION['MM_Username'];

mysql_connect("localhost","abc","sar") or die("No Connection"); //Add or die() to record any error if connection is failed
mysql_select_db("abc") or die("can't select");

$query = mysql_query("select * from `employee` WHERE username = '".$name."'") or die("Wrong query"); //makesure table name with backtick eg: `tablename`

while($row = mysql_fetch_array($query));  //also can use : mysql_fetch_assoc($query)
{ 
  echo $row['employee_id']; //print output
}   
?>
  1. 启用错误报告
  2. 添加or die()以检查是否失败
  3. 始终使用反引号作为表名。为什么?在这里检查
  4. 尝试使用mysql_fetch_array($query)mysql_fetch_assoc($query)
  5. 并且请不要mysql_*在未来使用。为什么 ?在这里检查
于 2013-07-03T13:50:49.137 回答
0

你甚至调试过你的工作吗?$_SESSION['MM_Username']; 包含什么?试试 print_r($_SESSION); 确保;确定。

您还可以只回显您的查询并直接在数据库上对其进行测试,以确保出现任何预期的结果。

如果您这样做了但仍然无法正常工作:请提供更多信息。

于 2013-07-03T13:46:12.070 回答
0
<?php
session_start();
$name=$_SESSION['MM_Username'];
mysql_connect("localhost","abc","sar");
mysql_select_db("abc");
$query = "select * from employee WHERE username =  '$name';";
$result = mysql_query($query)or die(mysql_error());    
while($row = mysql_fetch_assoc($result));
{ 
echo $row['employee_id'];
}   
?>

或类似的东西

于 2013-07-03T13:48:09.567 回答
0

您也可以使用mysql_fetch_array($query, MYSQL_ASSOC)但请使用mysqli_fetch_array($result, MYSQL_ASSOC)因为 mysql_ 已弃用。

将来,如果您的代码有问题,请出于调试原因调用 funcion var_dump(),或者您可以在 php.ini 文件中设置 xdebug 并连接到您的环境工具(如 NetBeans 或类似工具)。

如果您对 NetBeans 和 xdebug 感兴趣,可以访问此链接

于 2013-07-03T15:42:14.300 回答