Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 批改阅读文章_Php_Javascript_Jquery_Codeigniter - Fatal编程技术网

Php 批改阅读文章

Php 批改阅读文章,php,javascript,jquery,codeigniter,Php,Javascript,Jquery,Codeigniter,我有一个应用程序,显示外部链接到一个网站,他们都是文章。这些文章在数据库中。我目前正在寻找一种解决方案,通过一个简单的标签,如“new”等,在用户下次访问时向用户显示新文章。 我制作了一张表格,上面有cols ID、用户ID、文章ID、read。 我已经开始研究模型和控制器,但基本上我需要在用户单击该文章时将文章ID和用户ID传递给jquery函数,以便将数据插入到显示文章已被阅读的数据中。因此,“新”标签将不再显示该物品 这是最好的方法吗?我需要一些关于如何处理jquery方面的帮助 谢谢。如

我有一个应用程序,显示外部链接到一个网站,他们都是文章。这些文章在数据库中。我目前正在寻找一种解决方案,通过一个简单的标签,如“new”等,在用户下次访问时向用户显示新文章。
我制作了一张表格,上面有cols ID、用户ID、文章ID、read。
我已经开始研究模型和控制器,但基本上我需要在用户单击该文章时将文章ID和用户ID传递给jquery函数,以便将数据插入到显示文章已被阅读的数据中。因此,“新”标签将不再显示该物品

这是最好的方法吗?我需要一些关于如何处理jquery方面的帮助


谢谢。

如果您使用javascript,没有javascript的人将无法使用它。我使用了一个out链接,比如
?out=*articleId*
。然后,您可以保存userX已单击linkX的内容。然后重定向用户宽度
标题(“位置:*realURlFromDB*”

根据sawny所说的,您不需要另一个控制器。只需在控制器中定义一个函数即可处理此问题

baseurl.com/controller/function/linkID

在函数中,您需要确保将Artilce ID和用户ID存储在单独的表中

表名:文章视图 字段:userID,articleID

通过这种方式,您可以在此表上加入,以帮助您显示对于每个用户来说哪些文章实际上是新的


一旦存储完成,您就可以将用户重定向到实际文章。

我已经使用JOIN with参数left完成了。这也会返回空值。因此,我可以检查空值并显示新标记

啊哇,我没想到,这样我可以记录很多其他事情,比如点击。非常感谢。为了让它正常工作,我需要另一个控制器来处理这个问题,然后重定向?@viperfx我自己也是MVC新手,所以我不确定。但是我在我的控制器
记录器
中完成了一个功能
out
。这样我就可以在同一个文件中获得所有日志功能。谢谢,这就是我目前面临的问题。我不知道如何显示或检查文章是“新建”还是已读,因为如果表为空,联接将不会显示任何内容。因此,我不知道如何对每篇文章进行检查。将已阅读的文章作为数组传递给视图。然后在输出时,在if语句中使用_数组($article,$articles_数组)中的PHP函数。如果它不在该数组中,则将其显示为“新建”。。如果是,则将其显示为“read”。我已使用JOIN with参数left完成了此操作。这也会返回空值。因此,我可以检查空值并显示新标记。
<?php

//query that fetch unread articles
$query = "
    SELECT 
        articles.* 
    FROM 
        articles
    LEFT JOIN
        read_articles
            ON articles.id != read_articles.article_id
    WHERE
        read_articles.user_id = 1
";

/**

Test db data
CREATE TABLE IF NOT EXISTS `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

INSERT INTO `articles` (`id`, `title`) VALUES
(1, 'Article 1'),
(2, 'Article 2');

-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `read_articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `article_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

INSERT INTO `read_articles` (`id`, `article_id`, `user_id`) VALUES
(1, 1, 1);