Php 显示自用户上次访问后的新记录的图像

Php 显示自用户上次访问后的新记录的图像,php,mysql,Php,Mysql,如果自该registerd用户上次访问后创建了sql记录,则可能会有一个将更改的映像,如果不满足条件,则可能会有另一个映像 记录表为matningar,带有日期字段datum。 也许下面的代码接近于实现这一点 <?php $stmt = "SELECT * FROM matningar WHERE `datum` > date("F j, Y, g:i a", $database- >getLastUserRegisteredDate()"; $

如果自该registerd用户上次访问后创建了sql记录,则可能会有一个将更改的映像,如果不满足条件,则可能会有另一个映像

记录表为
matningar
,带有日期字段
datum
。 也许下面的代码接近于实现这一点

    <?php

    $stmt = "SELECT * FROM matningar WHERE `datum` > date("F j, Y, g:i a", $database-    >getLastUserRegisteredDate()";
    $result=mysql_query($stmt);
    foreach($result as $rec){
    echo "<img src=\"images/somepicture.png\" />";
    } 
    ?>


如果您能提供一些关于如何进行的信息,我将不胜感激

我认为最好的方法是在创建表时使用此方法存储更新的记录时间

updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
这样,当您从数据库中选择记录并将其显示在页面上时,您可以执行类似操作,根据当前用户上次访问显示单独的图像:

foreach($results as $record) {
  if($record['updated'] > $currentUser->getLastVisited()) {
    echo "<img .... />"; // Has been modified since last visit
  } else {
    echo "<img .... />"; // Not been modified since last visit
  }
  // Display rest of this record
}
foreach($results as$record){
如果($record['updated']>$currentUser->getLastVisited()){
echo“”;//自上次访问以来已被修改
}否则{
echo“”;//自上次访问以来未被修改
}
//显示此记录的其余部分
}

我认为最好的方法是在创建表时使用此方法存储更新的记录时间

updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
这样,当您从数据库中选择记录并将其显示在页面上时,您可以执行类似操作,根据当前用户上次访问显示单独的图像:

foreach($results as $record) {
  if($record['updated'] > $currentUser->getLastVisited()) {
    echo "<img .... />"; // Has been modified since last visit
  } else {
    echo "<img .... />"; // Not been modified since last visit
  }
  // Display rest of this record
}
foreach($results as$record){
如果($record['updated']>$currentUser->getLastVisited()){
echo“”;//自上次访问以来已被修改
}否则{
echo“”;//自上次访问以来未被修改
}
//显示此记录的其余部分
}

您可以计算返回的记录,并使用条件语句确定要显示的图像。例如,使用您的代码:

/* Using a mysql query which is discouraged and will be depreceated in future */

      // declare variables
      $i = 0;
      $lastRegisteredDate = date("F j, Y, g:i a", $database->getLastUserRegisteredDate());

      // declare statement string
      $stmt = "SELECT * FROM matningar WHERE `datum` > $lastRegisteredDate";

      // execute query
      $result=mysql_query($stmt);

      // make sure query executed properly
      if (!$result) {
        die('Invalid query: ' . mysql_error());
      }

      // manually count the number of results
      while ($row = mysql_fetch_assoc($result)) {
        $i++;
      }

      // display image based on conditions
      if($i == 0) {
        // display one image
      }
      else {
        // display another image
      }
正如旁注一样,mysql函数将在即将发布的PHP版本中被弃用,因此我将开始考虑使用PDO或mysqli库进行mysql查询

/* Using the PDO library */

  // declare variables
  $i = 0;
  $lastRegisteredDate = date("F j, Y, g:i a", $database->getLastUserRegisteredDate());

  // declare database handler
  $DBH = new PDO( "mysql:host=$host;dbname=$dbname", $user, $pass );

  // prepare query
  $STH = $DBH->prepare( "SELECT * FROM matningar WHERE `datum` > ?" );

  // execute query
  $STH->execute( array( $lastRegisteredDate ) );

  // set fetch mode  
  $STH->setFetchMode( PDO::FETCH_OBJ );

  // manually count the number of results
  while ( $row = $STH->fetch() ) {
    $i++;
  }

  // display image based on conditions
  if($i == 0) {
    // display one image
  }
  else {
    // display another image
  }

您可以计算返回的记录,并使用条件语句确定要显示的图像。例如,使用您的代码:

/* Using a mysql query which is discouraged and will be depreceated in future */

      // declare variables
      $i = 0;
      $lastRegisteredDate = date("F j, Y, g:i a", $database->getLastUserRegisteredDate());

      // declare statement string
      $stmt = "SELECT * FROM matningar WHERE `datum` > $lastRegisteredDate";

      // execute query
      $result=mysql_query($stmt);

      // make sure query executed properly
      if (!$result) {
        die('Invalid query: ' . mysql_error());
      }

      // manually count the number of results
      while ($row = mysql_fetch_assoc($result)) {
        $i++;
      }

      // display image based on conditions
      if($i == 0) {
        // display one image
      }
      else {
        // display another image
      }
正如旁注一样,mysql函数将在即将发布的PHP版本中被弃用,因此我将开始考虑使用PDO或mysqli库进行mysql查询

/* Using the PDO library */

  // declare variables
  $i = 0;
  $lastRegisteredDate = date("F j, Y, g:i a", $database->getLastUserRegisteredDate());

  // declare database handler
  $DBH = new PDO( "mysql:host=$host;dbname=$dbname", $user, $pass );

  // prepare query
  $STH = $DBH->prepare( "SELECT * FROM matningar WHERE `datum` > ?" );

  // execute query
  $STH->execute( array( $lastRegisteredDate ) );

  // set fetch mode  
  $STH->setFetchMode( PDO::FETCH_OBJ );

  // manually count the number of results
  while ( $row = $STH->fetch() ) {
    $i++;
  }

  // display image based on conditions
  if($i == 0) {
    // display one image
  }
  else {
    // display another image
  }

非常感谢。如果我只想选择包含特定值的记录,是否可以将“SELECT*FROM”替换为“SELECT value FROM”。我非常感谢像你们这样的人,他们愿意帮助像我这样的初学者!:)在侧注中,您建议从哪个开始学习,PDO还是mysqli?您可以使用“从表中选择列,其中列=所需值”来选择特定值。我喜欢PDO,但实际上没有太多地使用mysqli。关于使用什么,意见分歧很大。如果我的答案有助于提高投票率,或者接受答案将有助于我走出困境。谢谢,太好了!我一定会调查的-1用于不更改丑陋的
$stmt
字符串。另外,上次我检查时,在类似的mysql\u查询之后使用foreach也不起作用。如果
elseif
是不必要的,
else
就足够了。@SimonAndréForsberg感谢您的批评。那天我一定没有喝咖啡。我修改了这篇文章,希望质量更好一点。谢谢!如果我只想选择包含特定值的记录,是否可以将“SELECT*FROM”替换为“SELECT value FROM”。我非常感谢像你们这样的人,他们愿意帮助像我这样的初学者!:)在侧注中,您建议从哪个开始学习,PDO还是mysqli?您可以使用“从表中选择列,其中列=所需值”来选择特定值。我喜欢PDO,但实际上没有太多地使用mysqli。关于使用什么,意见分歧很大。如果我的答案有助于提高投票率,或者接受答案将有助于我走出困境。谢谢,太好了!我一定会调查的-1用于不更改丑陋的
$stmt
字符串。另外,上次我检查时,在类似的mysql\u查询之后使用foreach也不起作用。如果
elseif
是不必要的,
else
就足够了。@SimonAndréForsberg感谢您的批评。那天我一定没有喝咖啡。我修改了这篇文章,希望质量会好一点。+1表示在更新当前时间戳时推荐
,+1表示一个很好的foreach循环。(尽管必须在结果集上调用
fetch\u all
——假设使用了PDO或mysqli)+1用于在更新当前时间戳时推荐
,而+1用于nice foreach循环。(尽管必须对结果集调用
fetch_all
——假设使用了PDO或mysqli)