gpt4 book ai didi

php - 如何防止从同一个 MySQL 表加载重复项?

转载 作者:行者123 更新时间:2023-11-29 08:00:13 25 4
gpt4 key购买 nike

我有一个 MySQL 表“news”,其中包含一个名为“keyword”的字段。我根据此获取网站上的不同部分。举例来说:

对于技术部分,我使用:

SELECT * from news where keyword like '%tech%'

对于最近的文章部分,我使用:

SELECT * from news 

现在的问题是,当这两个部分都加载时,我看到重复的文章。如何防止舞会发生?

最佳答案

这是一个简单的解决方案:

首先创建一个包含所有主题的数组:

$topics = array(
"home",
"tech",
"cake",
"animals",
"gynecologogy",
"recipes"
);

然后将此函数添加到您页面上的某个位置,这将为您创建 SQL 查询:

function makeQuery($topic, $topics){
$q = "SELECT * from news where keyword like '%".$topic."%' AND ";
foreach($topics as $t){
if($t == $topic){
continue;
}
$q .= "keyword NOT LIKE '%".$t."%' AND ";
}
$q = rtrim($q, " AND ");
return $q;
}

然后您可以使用该函数来创建查询。例如,如果您仍在使用(已弃用,是的,我知道)mysql_* 函数,您可以只使用该函数作为查询,如下所示:

$Q = mysql_query(makeQuery("tech", $topics));

使用单个查询:

如果您想通过单个查询对它们进行排序,您可以使用类似的方法。这只是一个例子。您必须修改代码以满足您的需要。

$articles = array();
$Q = mysql_query("SELECT * FROM `news`");
while($res = mysql_fetch_assoc($Q)){
if(strpos($res['news'], 'tech') !== false){
$articles['tech'] = $res;
}
}

关于php - 如何防止从同一个 MySQL 表加载重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24020093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com