Виж новите мнения как става

uphero

Registered
трябва ми идеята как да си направя да могат да се преглеждат новите мнения в моя форум (не е готов цмс и няма тази опция) кода -добре ама ми се губи логиката ако някой знае как да сподели ,
 
просто заявка .. :D
[sql]mysql_query("SELECT * FROM `your_forum` ORDER BY `timistamp/id` LIMIT 5");[/sql]
и си ги извеждаш .. :P
 
M1tq96 каза:
просто заявка .. :D
[sql]mysql_query("SELECT * FROM `your_forum` ORDER BY `timistamp/id` LIMIT 5");[/sql]
и си ги извеждаш .. :P

По този начин правиш заявката си така, че спрямо времето на добавяне и ид-то новата тема се показва най-отгоре с лимит 5 ако не искаш да е 5 променяш цифрата или караш изобщо без лимит според зависи какво искаш ! Друг вариант е да извеждаш отзад напред от таблицата при което заявката ще ти е така :

PHP:
$our =mysql_query("SELECT * FROM `your_forum` ORDER BY `id` DESK LIMIT 5");
while($r=mysql_fetch_array($our))
{ 
$id=$r['id'];
$title=$r['title'];
echo "$id - $title<br />";
}


При което ако в таблицата имаш така записи :
id | title
1 | Нещо1
2 | Нещо2
3 | Нещо3
4 | Нещо4
5 | Нещо5

ще ти ги вади така:

5 |Нещо5
4 |Нещо4
3 |Нещо3
2 |Нещо2
1 |Нещо1
 
dakata__92 каза:
M1tq96 каза:
просто заявка .. :D
[sql]mysql_query("SELECT * FROM `your_forum` ORDER BY `timistamp/id` LIMIT 5");[/sql]
и си ги извеждаш .. :P

По този начин правиш заявката си така, че спрямо времето на добавяне и ид-то новата тема се показва най-отгоре с лимит 5 ако не искаш да е 5 променяш цифрата или караш изобщо без лимит според зависи какво искаш ! Друг вариант е да извеждаш отзад напред от таблицата при което заявката ще ти е така :
...

Аз предпочитам DESC пред DESK.
 
Благодаря ви но не ми помогнахте на мен ми трябва да изкарва само новите мнения от последното му влизане а не всички ,в таблицата с потребителите имам поле в което се записва времето на логване и имам скрипт които при зареждане на страница записва времето наново нещо с това поле ще да е работата но при всеки рефреш се записва времето наново така че не знам как точно да изкарам тези нови мнения(дано не съм ви объркал много)

Аз предпочитам DESC пред DESK.
Объркал се е човека
 
Искаш за всеки индивидуално след като прегледа новите мнения в конкретна тема и форум да му отчита, че няма нови ?
 
TryMe каза:
Искаш за всеки индивидуално след като прегледа новите мнения в конкретна тема и форум да му отчита, че няма нови ?
Точно! това ми трябва и да кава ,че темите се записват в таблицата forum_topic а мненията в forum_post а и искам да направя след като е пуснато мнение в тема да я показва пак като нова
 
uphero каза:
TryMe каза:
Искаш за всеки индивидуално след като прегледа новите мнения в конкретна тема и форум да му отчита, че няма нови ?
Точно! това ми трябва и да кава ,че темите се записват в таблицата forum_topic а мненията в forum_post а и искам да направя след като е пуснато мнение в тема да я показва пак като нова

Прочети тази тема вътре има доста обяснения :
http://web-tourist.net/forum/viewtopic.php?t=84169&postdays=0&postorder=asc&highlight=%ED%EE%E2%E8+%EC%ED%E5%ED%E8%FF&start=0
 
PHP:
$id_potrebitel=1;
$now = time();

$query= mysql_query("SELECT * FROM users WHERE id='$id_potrebitel'")or die(mysql_error());
while($row = mysql_fetch_array($query))
{
$last_activity = $row["last_activity"];
}

$query1 = mysql_query("SELECT * FROM table WHERE ('$last_activity' -time_add_tema) < '7200' ")or die(mysql_error());
while($row = mysql_fetch_array($query1))
{
$title = $row['title'];
echo '$title - непрочетено';
}
7200 = (60*60)*2 което е 2 часа ! Та правиш го в timestamp и ако потребителя е влезнал в 12 часът, а темата е добавена в 11 часът то става 12 - 11 = 1 час разлика ! Този един час разлика премерно е да кажем 3600 в timestamp фактически 3600 < 7200 ще се получи в заявката при което ще ти изведе въпросната тема като актуална, след надвишаването понеже $last_activity на потребителя трябва да се ъпдейтва и стане в заявката 7201 < 7200 няма да изведе темата като актуална ! Фактически е актуална само 2 4аса примерно :)
 
взе , че стана нещо :D
Код:
  if($_SESSION['user']) 
{ 
        $s = mysql_query("SELECT * FROM forum_reads WHERE user='$kora' and topic_id='".$row['topic_id']."'");
 if(mysql_num_rows($s)>0) 
 {
 echo '<img src="images/new.gif">'; 
 } 
 else 
 { 
 echo '<img src="images/empty.gif">'; 
 } 
 }
 else
 {
 echo '<img src="images/empty.gif">'; 
 }
с този код се визуализират непрочетените теми дотук добре но само темата се показва като непрочетена а ако се пусне ново мнение в темата тя пак си стои така
имам следните записи
Код:
 $sql = mysql_query("SELECT * FROM forum_posts ORDER BY post_id DESC LIMIT 1");
$rowy = mysql_fetch_array($sql);
$s = mysql_query("SELECT * FROM members ORDER BY id");
while($o = mysql_fetch_array($s))
{
$sql= mysql_query("INSERT forum_reads(user, post_id) VALUES ('$o[user]', '$rowy[post_id]')");
}

Код:
  $sql = mysql_query("SELECT * FROM forum_topics ORDER BY topic_id DESC LIMIT 1");
$rowy = mysql_fetch_array($sql);
$s = mysql_query("SELECT * FROM members ORDER BY id");
while($o = mysql_fetch_array($s))
{
$sql= mysql_query("INSERT forum_reads(user, topic_id) VALUES ('$o[user]', '$rowy[topic_id]')");
}
сега се муча да обединя проверката да проверява и за нови постове но нещо не става
 
Това, което се мъчиш, не можеш да го направиш само с база данни. Трябва да използваш бисквитка, в която да запазваш информацията за всеки потребител отделно. Това е прочел, това не е прочел и т.н.
 
TryMe каза:
Това, което се мъчиш, не можеш да го направиш само с база данни. Трябва да използваш бисквитка, в която да запазваш информацията за всеки потребител отделно. Това е прочел, това не е прочел и т.н.
пример?
Остави оправих се без бисквитки и така нататък много е лесно стига да си се наспал :D
 

Back
Горе