0

こんにちは、すでに質問されているかどうかはわかりませんが、20分間グーグルで検索しましたが、関連する回答が見つかりませんでした.

テーブル内のすべての thread_id をフェッチし、それらを $ids[] という名前の配列に格納しようとしています

そして、クエリを作成します。

SELECT * FROM posts WHERE tid = $ids[]

基本的に、すべての投稿を取得したいのですが、それらの tid 列は配列内のこれらの 1 つです。

どうすればいいですか?

ちなみに私はPDOを使用しています。

致命的なエラー: キャッチされない例外 'PDOException' とメッセージ 'SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。C:\xampp\htdocs\bronified\index. php:77 スタック トレース: #0 C:\xampp\htdocs\bronified\index.php(77): PDOStatement->execute(Array) #1 {main} C:\xampp\htdocs\bronified\index.php でスローされる77行目

                <?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>';
                }   
                $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 ORDER BY pid ASC LIMIT 10");
                $new->execute(array(":ids" => implode(" , ",$array)));

                while ($row = $new->fetch(PDO::FETCH_ASSOC))
                {
                    echo 
                    '
                        <div id="st-'.$row['tid'].'-'.$row['fid'].'">
                            <h4>'.$row['subject'].'</h4>
                            <p>
                                '.$row['message'].'
                            </p>
                        </div>
                    ';
                }
            ?>
4

3 に答える 3

0
$query = "SELECT * FROM posts WHERE tid IN ".implode(" , ",$ids);

implodes は、PHP 配列をコンマで区切られた ID を含む文字列に変換します。必要なのは、クエリを実行することだけです。

于 2013-06-13T20:20:57.543 に答える