html表没有从MySQL表中填充

时间:2011-05-01 12:23:49

标签: php mysql database html-table

我正在调整我通过Google找到的一些脚本,用于监控登录网站的用户。

这包括在我想要监控的每个页面中包含它:

<?
include_once("config.php"); 
include_once("functions.php"); 
?>

config.php看起来像这样(我删除了实际数据库的信息):

<?php 
      DEFINE ('DB_USER', '');// database username 
      DEFINE ('DB_PASSWORD', '');//database password 
      DEFINE ('DB_HOST', '');//database host, usually localhost 
      DEFINE ('DB_NAME', '');//and finally the database name 
      $dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error()); 
      @mysql_select_db (DB_NAME) OR die('Could not select the database: ' . mysql_error() ); 
?>

functions.php看起来像这样:

<?php 
$page = $_SERVER['PHP_SELF']; 
$user = $_SESSION["name"];
$logq = "INSERT INTO logs (Name, Page, Date) VALUES ('$user', '$page', NOW())"; 
$logr = @mysql_query($logq); 
?>

这样可以正常工作,即我的数据库中的表格填充正确。

然而,应该在网页上生成表以显示MySQL表中的信息的文件不起作用。 logs.php文件如下所示:

<?php 
      $lq = "SELECT id, Name, Page, DATE_FORMAT(date, '%d %M, %Y') as sd FROM logs ORDER BY id DESC LIMIT 50"; 
      $lr = @mysql_query($lq); 

      if($lr){ 
      echo "<table><th>Name</th><th>Page</th><th>Date</th>"; 
      while($lf = mysql_fetch_array($lr, MYSQL_ASSOC)){ 
      echo "<tr><td>" . $lf['Name'] . "</td><td>" . $lf['Page'] . "</td><td>" . $lf['sd'] . "</td></tr>"; 
      } 
      echo "</table>"; 
      } 
      else 
      { 
      echo "No results!"; 
      } 
?>

即使MySQL表中有数据,我也总是得到“没有结果!”当我浏览页面时显示。

任何人都可以看到问题所在吗?

3 个答案:

答案 0 :(得分:1)

我在您的查询中可以看到的一件事是date是一个保留字。

你需要在反引号中包装它:

"SELECT id, Name, Page, DATE_FORMAT(`date`, '%d %M, %Y')....

或重命名该列。

这可能会在您的查询中出现错误,即使trigger_error()建议您仍未看到错误:您的服务器上可能已关闭错误报告。这是生产环境中的正确行为,因为您不希望用户看到错误消息。但是,在开发过程中,您可以激活错误报告以查看错误。

答案 1 :(得分:1)

也许你在logs.php中没有数据库连接?如果您的代码是完整文件,那么这应该是问题所在。 如果是这样,只需在页面顶部包含config.php。

答案 2 :(得分:0)

尝试这样做

$query = "SELECT * FROM logs ORDER BY id DESC LIMIT 50";
$result = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_array($result)) { echo "<table><th>Name</th><th>Page</th><th>Date</th>"; echo "<tr><td>" . $row['Name'] . "</td><td>" . $row['Page'] . "</td><td>" . $row['sd'] . "</td></tr>"; echo "</table>"; }

希望有所帮助