我有一个页面,我想要显示您正在阅读的文章(从同一子类别中随机选择的文章)。我想使用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']."'>» "
.$row2['Headline']."</a>";
}
连接完美,因为它可以与其他组件一起使用,但我有错误:((
任何替代解决方案都可以,但我认为这种方式更好。
错误是:
警告:mysqli_fetch_array()期望参数1为mysqli_result
答案 0 :(得分:0)
这是你的问题:
我模拟了你的代码并查看了你正在生成的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."%'";