【问题标题】:Displaying links for similar articles显示类似文章的链接
【发布时间】:2014-01-31 17:09:02
【问题描述】:

我有一个页面,我想在其中显示您正在阅读的文章(从同一子类别中随机选择的文章)。我想使用 php 脚本,但服务器说我有错误。这是我的脚本:

$article = mysqli_query($con,"SELECT * FROM sources WHERE ID = '$ID'");
while($row = mysqli_fetch_array($article))
{     
code which works perfectly
$samecat = $row['Subcategory'];
}

$samecats = explode(', ', $samecat);
  foreach($samecats as $similar){
      $scat[] = "Subcategory LIKE %".$similar."%";
  }
  echo implode(' OR ',$scat);
$samearticle = mysqli_query($con,
"SELECT * 
FROM sources 
WHERE (".implode(' OR ',$scat).") 
AND NOT ID='$ID' 
ORDER BY Rand() 
LIMIT 0,3 ");
while($row2 = mysqli_fetch_array($samearticle))
 {
 echo "<a href='article.php?ID=".$row2['ID']."'>&raquo "
     .$row2['Headline']."</a>";
 }

连接工作得很好,因为它可以与其他组件一起工作,但我这里有错误:(((

任何替代解决方案都可以,但我认为这种方式更好。

错误是:

警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result

【问题讨论】:

  • 服务器有没有说是什么错误?
  • 您能否也发布它给出的错误?
  • 您要确保获得文章来源网站版权所有者的许可。如果您这样做,您可能会遇到法律问题。
  • 警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result 错误,我有权限,这是我的页面))))) 该页面上也有一篇文章
  • @simonatrcl 你为什么假设这些文章是从其他地方获取的?

标签: php arrays database mysqli


【解决方案1】:

这是你的问题:

https://eval.in/96729

我模拟了您的代码并查看了您生成的 sql。是这样的:

"SELECT * 
FROM sources 
WHERE (Subcategory LIKE %test% OR Subcategory LIKE %foo% OR Subcategory LIKE %bar% OR Subcategory LIKE %baz%) 
AND NOT ID='' 
ORDER BY Rand() 
LIMIT 0,3 "

您需要在您的术语周围加上单引号,例如:

Subcategory LIKE '%test%' 

所以你需要:

$scat[] = "Subcategory LIKE '%".$similar."%'";

你真的应该enable error reporting for your querying

【讨论】:

  • 非常感谢,再过 5 分钟,我会发疯的
猜你喜欢
  • 2015-11-24
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多