У меня массив выглядит следующим образом: (1, 4, 2, 3). Я хочу, чтобы выбрать все темы, которые содержат столбец TID, одно из этих чисел в массиве:Выделить все элементы, которые находятся в массиве из db?
$get = $pdo->prepare("SELECT * FROM mybb_threads ORDER BY replies DESC LIMIT 10");
$get->execute();
$array = $get->fetchAll(PDO::FETCH_COLUMN, 0);
$new = $pdo->prepare("SELECT * FROM mybb_posts WHERE replyto = 0 AND tid IN (:ids) LIMIT 10");
$new->execute(array(":ids" => implode(",", $array)));
Но, выбирающий только один элемент из базы данных, в то время как у меня есть более чем один результат?
Почему это так?
Я думаю, что он извлекает только первый элемент массива, я не уверен, но вы видите что-то не так?
То, что я пытаюсь сделать, это:
У меня есть вкладки.
Вкладки показывают наиболее популярные темы, по ответам. Я хочу сделать это, когда вы нажмете на вкладке, он переключится на правильный пост.
<div class="container row">
<h2>Top 10 Stories</h2>
<div id="story-tab">
<ul>
<?php
$test = $pdo->prepare("SELECT * FROM mybb_threads ORDER BY replies DESC LIMIT 10");
$test->execute();
// while ($row = $test->fetch(PDO::FETCH_ASSOC))
//{
//echo'<li><a href="#st-'.$row['tid'].'-'.$row['fid'].'">'. $row['subject'].'</a></li>';
echo'<li><a href="#st-1-1">1</a></li>';
echo'<li><a href="#st-2-1">2</a></li>';
//}
$get = $pdo->prepare("SELECT * FROM mybb_threads ORDER BY replies DESC LIMIT 10");
$get->execute();
$array = $get->fetchAll(PDO::FETCH_COLUMN, 0);
?>
</ul>
<?php
$test = $pdo->prepare("SELECT * FROM mybb_threads ORDER BY replies DESC");
$test->execute();
$fetch = $test->fetch(PDO::FETCH_ASSOC);
$new = $pdo->prepare("SELECT * FROM mybb_posts WHERE replyto = 0 AND tid IN (:ids) LIMIT 10");
$new->execute(array(":ids" => implode(",", $array)));
while ($row = $new->fetch(PDO::FETCH_ASSOC))
{
echo '<br /><br /><br /><br />'. $row['tid'].','.$row['fid'];
}
?>
</div>
<br class="clear">
<h2>Top 10 Popular Threads</h2>
<div id="thread-tab">
</div>
</div>
Любые идеи?