我有以下代码来查找文本正文中的相似关键字并显示具有相同关键字的相关链接。
但问题是,例如,如果第 2 行主体中有两个关键字,则第 2 行显示两次,但我需要第 2 行显示一次。我尝试了 SELECT DISTINCT 但它在 foreach 循环中无法正确工作。
$tags2=explode(",",$tags);
foreach ($tags2 as $i) {
$cat_sqlii="SELECT DISTINCT id, source,title,summary,newsText,photo,mainphoto,link,Date,tags FROM newxtext WHERE (newsText LIKE '%$i%')";
$cat_sql_queryii=mysqli_query($con,$cat_sqlii);
$cat_sql_rowii=mysqli_fetch_assoc($cat_sql_queryii);
do{
echo $cat_sql_rowii['id'].'<br/>';
}while($cat_sql_rowii=mysqli_fetch_assoc($cat_sql_queryii));
}
最佳答案
只需执行一个查询,使用 OR
测试任何标记。
$patterns = array();
foreach ($tag in explode(',', $tags)) {
$patterns[] = "newstext like '%$tag%'";
}
$where = implode(' OR ', $patterns);
$cat_sqlii="SELECT id, source,title,summary,newsText,photo,mainphoto,link,Date,tags
FROM newxtext
WHERE ($where)";
$cat_sql_queryii=mysqli_query($con,$cat_sqlii);
while ($cat_sql_rowii = mysqli_fetch_assoc($cat_sql_queryii)) {
echo $cat_sql_rowii['id'].'<br/>';
}
关于php - MYSQL从数据库检索数据时如何忽略foreach循环中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45644715/