HTML-таблица не заполняется из таблицы MySQL - PullRequest
2 голосов
/ 01 мая 2011

Я адаптирую некоторые скрипты, которые я нашел через 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 ]

1 голос
/ 01 мая 2011

Возможно, у вас нет соединения с БД в logs.php? Если ваш код является полным файлом, то это должно быть проблемой. Если это так, просто включите config.php вверху страницы.

1 голос
/ 01 мая 2011

В вашем запросе я вижу, что date является зарезервированным словом.

Вы должны обернуть это в кавычки:

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

или переименуйте столбец.

Вероятно, это вызывает ошибку в вашем запросе, которую вы не видите, несмотря на рекомендацию trigger_error(): отчеты об ошибках, вероятно, отключены на вашем сервере. Это правильное поведение в производственной среде, потому что вы не хотите, чтобы пользователь видел сообщения об ошибках. Однако при разработке вы можете активировать отчеты об ошибках, чтобы увидеть, что не так.

0 голосов
/ 01 мая 2011

попробуйте сделать это так

<pre>$query = "SELECT * FROM logs ORDER BY id DESC LIMIT 50"; $result = mysql_query($query) or die(mysql_error());</p> <p>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> "; }

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...