2014-01-31 2 views
-2

У меня есть страница, на которой я хочу отображать статьи, похожие на те, которые вы читаете (случайно выбранные статьи из одной и той же подкатегории). Я хочу использовать 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

+0

Сервер говорит, что это за ошибка? – kero

+0

Не могли бы вы также отправить сообщение об ошибке? –

+1

Вы хотите убедиться, что у вас есть разрешение от владельца авторских прав на сайты, на которых вы получаете статьи. Если вы это сделаете, у вас могут быть проблемы с законом. –

ответ

0

Вот ваша проблема:

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 " 

Вы должны singlequotes вокруг ваших терминов, как:

Subcategory LIKE '%test%' 

Так что вам нужно:

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

Действительно вы должны enable error reporting for your querying.

+0

Большое вам спасибо, еще 5 минут, и я бы стать безумным <3 спасибо –

+0

Вы можете поблагодарить меня, выбрав его как правильный ответ;) –

Смежные вопросы