首页 > 解决方案 > 当多于 1 行时,SELECT 查询返回 1 行

问题描述

我正在为我的大学作业做一个项目。现在一切正常,除了我的活动列表。问题是,每当我尝试查看我的活动列表时,它只返回 1 个活动而不是所有仍在进行的活动,当我从 手动运行查询时phpMyAdmin,它返回所有查询但 PHP 似乎没有正确我不知道为什么。

我已经尝试运行查询phpMyAdmin并简化我的查询,还添加了一堆调试代码来查看我哪里出错了,但所有值都是正确的,查询是正确的并且phpMyAdmin运行查询很好。

$query = "SELECT * FROM activities"; /*LIMIT " . $limit . ", " . $maxActivity;*/
          $result = mysqli_query($link, $query);
          echo $query;
          if(!$result) {
            echo "<p class='text-danger'>There are no activities to display.</p>";
          } else {
            while($row = mysqli_fetch_assoc($result)) {
                $activity_id = $row['id'];
                $activity_name = $row['name'];
                $activity_description = $row['description'];
                $activity_end_date = $row['endDate'];
                $activity_start_date = $row['startDate'];
                $activity_type = $row['type'];
                $activityAuthor = $row['author'];
                $activityPublished = $row['publishedAt'];
                $activityLikes = $row['likes'];
                $activityDislikes = $row['dislikes'];
                $activityComments = $row['comments'];
                $activityViews = $row['views'];
                $query = "SELECT * FROM users WHERE Username = '$activityAuthor'";
                $result = mysqli_query($link, $query);
                if(!$result) {
                  die("MySQL Query Failed: " . mysqli_error($link));
                }
                $row = mysqli_fetch_assoc($result);
                $authorID = $row['id'];
        ?>
    <div class="row">
      <div class="col-md-6">
        <a href="#">
          <img class="img-fluid rounded mb-3 mb-md-0" src="img/<?php echo "$activity_type";?>.jpeg" alt="">
        </a>
      </div>
      <div class="col-md-6">
        <h3><?php echo $activity_name;?></h3>
        <p class="lead text-secondary">Proposed by <a class="text-secondary lead" href="profile.php?id=<?php echo $authorID;?>"><?php echo $activityAuthor;?></a> at <?php echo $activityPublished;?></p>

        <p><?php echo $activity_description;?></p>
        <p><strong>Starts at:</strong> <?php echo $activity_start_date;?></p>
        <p><strong>Ends at:</strong> <?php echo $activity_end_date;?></p>
        <a class="btn btn-outline-success" href="config/like.php?page=<?php echo $page;?>&post=<?php echo $activity_id;?>"><i class="far fa-thumbs-up"></i> <?php echo $activityLikes;?></a>
        <a class="btn btn-outline-danger" href="config/dislike.php?page=<?php echo $page;?>&post=<?php echo $activity_id;?>"><i class="far fa-thumbs-down"></i>  <?php echo $activityDislikes;?></a>
        <button class="btn btn-outline-secondary"><i class="far fa-comment-dots"></i> <?php echo $activityComments;?></button>
        <button class="btn btn-outline-secondary"><i class="far fa-eye"></i> <?php echo $activityViews;?></button>
        <div class="mt-3"><a class="btn btn-primary" href="activity.php?post=<?php echo $activity_id;?>&page=<?php echo $page;?>&commentpage=1">View Activity</a></div>
      </div>
    </div>

    <hr>
    <?php }
    }?>

标签: phpmysql

解决方案


    <?php

    $query = "SELECT * FROM activities"; 
              $result = mysqli_query($link, $query);

              if(!$result) {
                echo "<p class='text-danger'>There are no activities to display.</p>";
              } else {
                while($row = mysqli_fetch_assoc($result)) {
                    $activity_id = $row['id'];
                    $activity_name = $row['name'];
                    $activity_description = $row['description'];
                    $activity_end_date = $row['endDate'];
                    $activity_start_date = $row['startDate'];
                    $activity_type = $row['type'];
                    $activityAuthor = $row['author'];
                    $activityPublished = $row['publishedAt'];
                    $activityLikes = $row['likes'];
                    $activityDislikes = $row['dislikes'];
                    $activityComments = $row['comments'];
                    $activityViews = $row['views'];

                    $query = "SELECT * FROM users WHERE Username = '$activityAuthor'";
                    $result = mysqli_query($link, $query);
                    if(!$result) {
                      die("MySQL Query Failed: " . mysqli_error($link));
                    }
                    $row = mysqli_fetch_assoc($result);
                    $authorID = $row['id'];
     }

     $output.="<div class='row'>
          <div class='col-md-6'>
            <a href='#'>
              <img class='img-fluid rounded mb-3 mb-md-0' src='img/<?php echo '$activity_type';?>.jpeg' alt=''>
            </a>
          </div>
          <div class='col-md-6'>
            <h3><?php echo $activity_name;?></h3>
            <p class='lead text-secondary'>Proposed by <a class='text-secondary lead' href='profile.php?id=<?php echo $authorID;?>'><?php echo $activityAuthor;?></a> at <?php echo $activityPublished;?></p>

            <p><?php echo $activity_description;?></p>
            <p><strong>Starts at:</strong> <?php echo $activity_start_date;?></p>
            <p><strong>Ends at:</strong> <?php echo $activity_end_date;?></p>
            <a class='btn btn-outline-success' href='config/like.php?page=<?php echo $page;?>&post=<?php echo $activity_id;?>'><i class='far fa-thumbs-up'></i> <?php echo $activityLikes;?></a>
            <a class='btn btn-outline-danger' href='config/dislike.php?page=<?php echo $page;?>&post=<?php echo $activity_id;?>'><i class='far fa-thumbs-down'></i>  <?php echo $activityDislikes;?></a>
            <button class='btn btn-outline-secondary'><i class='far fa-comment-dots'></i> <?php echo $activityComments;?></button>
            <button class='btn btn-outline-secondary'><i class='far fa-eye'></i> <?php echo $activityViews;?></button>
            <div class='mt-3'><a class='btn btn-primary' href='activity.php?post=<?php echo $activity_id;?>&page=<?php echo $page;?>&commentpage=1'>View Activity</a></div>
          </div>
        </div>";

        }
        ?>


<?php echo $output; ?>  

推荐阅读