如何使用PHP从MySQL数据库中显示记录?

时间:2013-07-03 13:43:45

标签: php mysql

我无法在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'];
}   

?>

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

5 个答案:

答案 0 :(得分:6)

您正在使用返回数值数组的mysql_fetch_row。您应该使用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。

答案 1 :(得分:0)

你有没有调试你的工作? $ _SESSION ['MM_Username'];包含什么?试试print_r($ _ SESSION);确保。

您也可以回显您的查询并直接在您的数据库上进行测试,以确保显示任何预期的结果。

如果您这样做但仍然无效:请提供更多信息。

答案 2 :(得分: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'];
}   
?>

或类似的东西

答案 3 :(得分: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. 始终使用反引号作为表名。为什么?检查here
  4. 尝试使用mysql_fetch_array($query)mysql_fetch_assoc($query)
  5. 请不要在将来使用mysql_*。为什么?检查here

答案 4 :(得分:0)

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

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

如果您对NetBeans和xdebug感兴趣,可以访问link