为什么我不能显示用户发布的所有新闻摘要? [重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

我有一个合作社(用户),可以发布许多新闻提要,所以一对多关系。我的目标是在列表中显示合作社的所有新闻源,并使用该列表将每个新闻源链接到更新和删除页面。但是,我的代码仅显示第一个新闻提要,并且由于我将其放入循环中,因此第一个新闻提要被循环了六次。这是为什么?

我使用$ loggerUser ['coopID']以获取提供给viewCoopNewsfeed函数的where子句的coopID。

这是我的sql命令

function viewCoopNewsfeed($coopID)
{
    try {
        $connection = connect();
        $statement = $connection->prepare("SELECT * FROM newsfeed WHERE 
coopID = :coopID");
        $statement->bindParam(":coopID", $coopID);
        $statement->execute();
        $statement->setFetchMode(PDO::FETCH_ASSOC);
        if ($coopNewsfeed = $statement->fetch()) {
        return $coopNewsfeed;
        } else {
            return NULL;
        }
     } catch (PDOException $exception) {
        die("Error: " . $exception->getMessage());
   }
 }

这是视图中的循环

<?php

                if(!empty($coopNewsfeeds))
                {
                    foreach($coopNewsfeeds as $coopNewsfeed)
                    {
                        ?>

                        <form method="post" enctype="multipart/form-data">

                            <div class="row">

                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>Photo</label>
                                        <img class="profile-pic" src="<?=$coopNewsfeeds['photo']?>"/>
                                    </div>
                                </div>

                                <br><br><br><br><br><br><br><br><br><br>


                            </div>

                            <div class="row">

                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>Title</label>
                                        <input type="text" class="form-control" placeholder="Title" name="title" value="<?=$coopNewsfeeds['title']?>" required>
                                    </div>
                                </div>

                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>Body</label>
                                        <textarea class="form-control" name="Body" value="<?=$coopNewsfeeds['Body']?>" placeholder="Body" id="" cols="30" rows="2"></textarea>
                                    </div>
                                </div>


                        </form>

                        <?php
                    }

                    ?>

                    <?php
                }

                ?>
php list loops pdo
1个回答
0
投票

$coopNewsfeed = $statement->fetch()这将获取next结果(您的情况下的第一个结果,因为您仅执行过fetch()一次)。由于您在此语句后立即返回$coopNewsfeed,因此仅获得1行。

改为使用fetchAll()

fetchAll()
© www.soinside.com 2019 - 2024. All rights reserved.