Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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 检查CSV MySQL行中的值_Php_Mysql_Sql_Regex_Pdo - Fatal编程技术网

Php 检查CSV MySQL行中的值

Php 检查CSV MySQL行中的值,php,mysql,sql,regex,pdo,Php,Mysql,Sql,Regex,Pdo,我将用户ID值存储在一个由|分隔的表字段中(user_id1 | user_id2 | user_id3 | user_id17) 用户ID将在此字段中的某些位置添加和删除 如何检查字段中是否存在当前用户ID或是否未使用查询? 当然,它需要精确匹配。无法查找user\u id1和查找user\u id17 我知道我可以使用SELECT查询,分解字段,然后在数组中使用,,但如果有办法使用查询来完成,那就更好了 我想我会解释一下我在做什么:我为一个小型私人网站(7个用户)创建了一个论坛,但它的编码是

我将用户ID值存储在一个由|分隔的表字段中(user_id1 | user_id2 | user_id3 | user_id17)

用户ID将在此字段中的某些位置添加和删除

如何检查字段中是否存在当前用户ID或是否未使用查询? 当然,它需要精确匹配。无法查找
user\u id1
和查找
user\u id17

我知道我可以使用SELECT查询,分解字段,然后在数组中使用
,但如果有办法使用查询来完成,那就更好了

我想我会解释一下我在做什么:我为一个小型私人网站(7个用户)创建了一个论坛,但它的编码是为了更大的规模

我的表格结构很好:论坛类别,论坛主题,论坛帖子。在表之间使用外键进行删除和更新查询

我正在寻求帮助的是为每个用户将主题标记为未读。我可以用topic\u id和user\u id创建一个新表,每个表都是一个新行,但这对很多用户和主题来说都不好


如果有人有更好的解决办法,我完全赞成。或者可以向我证明,每个用户id一行是最好的方式,那么我将非常愿意这样做。

我认为您希望跟踪阅读的消息,而不是相反的方式。如果您跟踪未读邮件,则每次添加用户时,都必须将该用户添加到每个主题“未读列表”中

我像我的评论所建议的那样调查了SMF。他们使用一个单独的表来跟踪读取的消息

一个简单的表格,其中包含您需要的
用户id
主题id
。当用户阅读主题时,请确保表中有该用户的行


使用单独表格的另一个原因。查询数据库中的2个int值要比使用
LIKE%
语句更快。

我建议查看SMF()或任何其他开源PHP论坛软件,看看它们是如何做到的。重复的是,人们什么时候会知道,规范化数据库会让他们的生活变得更加轻松。我真的认为CSV会更快。非常感谢。编辑:我正在跟踪已读邮件。是否最好在用户阅读主题后使用最新帖子更新
post\u id
,然后在查看主题列表时比较该
post\u id
?或者,当他们阅读主题时,在表格中插入一行,然后当有新帖子时,删除论坛_is_read表格中该主题的所有行?我想得更多,我认为你应该跟踪
用户id
主题id
。然后做你提到的第二件事,如果添加了一篇新文章,请删除该主题id的
forum\u is\u read
中的所有行。