PHP въпрос относно проверка.

streleca_stz

Registered
Здравейте! Знам, че това не е PHP раздела, но там вече за няколко дена написах много теми и ме е страх да не ми лепнат бан, заради прекалено много започнати теми за кратко време.. :)

Та въпроса ми е - Как да се направи ако примерно имам новини.. И в тях се записва и датата на публикуване.. Имам и последен вход на потребителите и искам когато някой потребител влезе в профила си да му се покаже текста "ново" до заглавието на новините, които са добавени докато него го е нямало в сайта...?
Първо се сетих за тази проверка:
PHP:
<a href="read_more.php?post=<?php echo $row['post_id']; ?>"><?php if(date('d.M.Y, H:i',$_SESSION['user_info']['timestamp'])<$row['date']){echo '<b style="font-size: 12px; color: #101010;">НОВО</b> ';} echo $row['title']; ?></a>
Обаче тя не работи.. показва ми че последните 7 новини са нови, а всъщност не са.. Някой има ли предложение как може да стане?
 
Аз правя така. Когато потребителят излезе записвам дата и час. След това като влезе отново проверявам дали през изминалото време има новини и ако има ги маркирам като нови..
 
t0shk0 каза:
Аз правя така. Когато потребителят излезе записвам дата и час. След това като влезе отново проверявам дали през изминалото време има новини и ако има ги маркирам като нови..

Еми да де.. това прави и моето поле timestamp... А може ли да ми покажеш как точно ги маркирваш?
 
Правиш едно поле в БД например outTime и в него записнаш timestamp когато потребител излиза или там както си го направил със сесии, като се прекрати сесията. След това ако този потребител влезе пак взимаш timestamp на лога му. И с една проста проверка
Time = koga e dobavena novinata
SELECT * FROM news WHERE Time>outTime AND Time<logTime
и ако резултата е различен от 0 броиш засегнатите редове и вадиш броя им

PHP:
$selnews = mysql_query("SELECT * FROM news WHERE time>outTime AND time<logTime");
if(mysql_num_rows($selnews) != 0) {
    print "Има " . mysql_num_rows($selnews) . "нови новини";
} else {
    print "Няма нови новини";
}
 
t0shk0 каза:
Правиш едно поле в БД например outTime и в него записнаш timestamp когато потребител излиза или там както си го направил със сесии, като се прекрати сесията. След това ако този потребител влезе пак взимаш timestamp на лога му. И с една проста проверка
Time = koga e dobavena novinata
SELECT * FROM news WHERE Time>outTime AND Time<logTime
и ако резултата е различен от 0 броиш засегнатите редове и вадиш броя им

PHP:
$selnews = mysql_query("SELECT * FROM news WHERE time>outTime AND time<logTime");
if(mysql_num_rows($selnews) != 0) {
    print "Има " . mysql_num_rows($selnews) . "нови новини";
} else {
    print "Няма нови новини";
}

А как би станало ако не е със SELECT, ами с if?
 
t0shk0 каза:
Нали ще вадиш резултатите от БД. Не мога да те разбера..

Значи това, което искам е да изведа всички новини от таблицата и само тези, които са добавени след като потребителя е излязъл от профила си да се появяват в друг цвят например.. :)
 
PHP:
$user_id = $_GET['user_id'];
$selmember = mysql_query("SELECT * FROM users  WHERE user_id='$user_id' LIMIT 1");
while($rows = mysql_fetch_assoc($selmember)) {
$timeIn = rows['timeIn'];
$timeOut = rows['timeOut'];
}
$selnews = mysql_query("SELECT * FROM news");
while($row = mysql_fetch_assoc($selnews)) {
if($row['time na novinata'] > timeOut && $row['time na novinata'] < timeIn) {
print "<span style='color: red;'>" . $row['post']. "</span>";
} else {
print $row['post'];
}
}

$user_id - ид на потребиталя
$timeOut - кога е излязъл
$timeIn - кога е влязъл отново
 

Back
Горе