Php 显示自用户上次访问后的新记录的图像
如果自该registerd用户上次访问后创建了sql记录,则可能会有一个将更改的映像,如果不满足条件,则可能会有另一个映像 记录表为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()"; $
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)