Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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_Mysql_Database - Fatal编程技术网

Php 推荐人(如社交网络)

Php 推荐人(如社交网络),php,mysql,database,Php,Mysql,Database,我正在写一个“约会服务”网站(只是为了好玩和练习) 但现在我被困住了。我使用PHP和MySQL 每位新会员都必须完成“你喜欢(做什么)?”问题,以逗号分隔: 像这样: 电脑、舞蹈、阅读、电视、电影 等等 我的问题是“我如何向某人展示推荐的人” i、 e 成员A: 电脑、舞蹈、阅读、电视、电影 成员B: 书籍、手机、橄榄球 成员C: 跳舞、看电影 在这种情况下,A&C比A&B或B&C有更多的机会相处 我会很感激你给我的任何暗示,或者你自己的想法来解决这个问题。谢谢 PS:对不起,我的英语很好,你可

我正在写一个“约会服务”网站(只是为了好玩和练习)

但现在我被困住了。我使用PHP和MySQL

每位新会员都必须完成“你喜欢(做什么)?”问题,以逗号分隔:

像这样:

电脑、舞蹈、阅读、电视、电影

等等

我的问题是“我如何向某人展示推荐的人”

i、 e

成员A:

电脑、舞蹈、阅读、电视、电影

成员B:

书籍、手机、橄榄球

成员C:

跳舞、看电影

在这种情况下,A&C比A&B或B&C有更多的机会相处

我会很感激你给我的任何暗示,或者你自己的想法来解决这个问题。谢谢


PS:对不起,我的英语很好,你可以先数一数每个成员有多少共同兴趣,然后选择一个最有共同兴趣的。我很确定你可以用一个SQl查询,或者2。。。当然,这取决于您的数据库结构


你需要发布你正在使用的数据库结构,所以我和其他人会给你一些代码…

我认为第一步是将他们的兴趣列表分割成单独的单词。然后创建一个只有两列的表:user和interest

    | user | interest  |
    |------|-----------|
    |  A   | computing |
    |  A   |  dancing  |
    | ...  |  .......  |
    |  C   |   movies  |

等等。然后,您所需要做的就是将表本身连接起来,并计算与目标用户共同感兴趣的数量。按用户分组,并按共同兴趣的数量排序(假设这是衡量他们相处情况的标准)。我一时想不出这个问题的sql,但也许这对你来说是一个很好的练习。或者其他人会把它贴出来作为答案。祝你好运

你是在问什么样的匹配才能保证良好的兼容性吗?或者你是在问如何在逗号分隔的列表中计算匹配兴趣的数量?My DB的结构非常简单,每个成员一行,包含他/她的数据:id、姓名、姓氏、国家/地区、邮件、密码、,兴趣。在兴趣中,我保存那些用逗号分隔的内容。我建议将csv中的兴趣在一个字段中拆分为一个单独的表。这将使查找匹配项比在sql中进行子字符串匹配和计数更容易(更快)。是的,我完全同意@Tesserex,不要将兴趣存储为字符串字段。我会为兴趣创建一个简单的表格,然后创建一个多对多的关系,成员和兴趣之间的关系。这样更容易找出两位成员有多少共同兴趣。谢谢你的想法,我喜欢。它会有大量的SQL处理吗?我可以这么说,远没有兴趣的字符串字段那么多。查询实际需要多长时间在很大程度上取决于您有多少用户以及他们感兴趣的数量。