-1

PDO を使用した単純な MySQL クエリがありSELECT * FROM table WHERE variable=:variable、それを実行します。関数を使用して影響を受ける行数を取得するとrowCount();、特定の基準に対して 20 が返されます。ただし、 に移動するとwhile statement、結果が 1 つだけエコーされます。また、これは新しい問題であり、文字通り 20 分前に発生し始めました。提案?

編集してコードを追加

        $stmt = $db->prepare("SELECT * FROM files WHERE `subject`=:subject ORDER BY title");
        $stmt->execute(array(':subject' => $_GET['subject']));
        $row_count = $stmt->rowCount();     
        if ($row_count > 0) {
            echo $row_count;
            echo "<div class='row'>";
            while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                $stmt = $db->prepare("SELECT * FROM users WHERE userID=:userID");
                $stmt->execute(array(':userID' => $row['userID']));
                $resultsArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
                $resultsArray = $resultsArray[0];
                $fullName = $resultsArray['name'];
                $authorEmail = $resultsArray['email'];
             }
        }
4

3 に答える 3

0

whileブロック内で、次のステートメントを実行しています。

$stmt = $db->prepare("SELECT * FROM users WHERE userID=:userID");

whileステートメントで使用される$stmt変数を上書きしています。

于 2013-04-15T22:42:37.207 に答える