duanjian3920 2017-04-21 14:40
浏览 33
已采纳

echo语句只返回一个

I am having a bit of an issue if there is no categories I need to echo no categories if there is I need it to echo There are categories. it shows if there is categories, but don't show if there is not.

<tr>
  <?php 

    $db = dbconnect();
    $stmt = $db->prepare("SELECT * FROM discussion_categories");
    $stmt->execute();
    $result = $stmt->get_result();

    while (($row = mysqli_fetch_assoc($result)) == true) {

    $CategoryID = $row['CategoryID'];    
    $Name = $row['Name'];
    $Description = $row['Description'];
    $Photo = $row['Photo'];



    if(!empty($CategoryID['CategoryID'])){ 

        echo "<td>No categories</td>";

    } else {

        echo "<td colspan='4'><img class='profile-photo' src='" . ROOT_URI . "/uploads/" . $Photo . "'></td>";
        echo "<td colspan='4'><a href='discussions.php?view={$CategoryID}'>{$Name}</a></td>";
        echo "<td><a href='managecategories.php?delete={$CategoryID}'>delete</a></td>";
    }


} 

?>      
     </tr>
  • 写回答

6条回答 默认 最新

  • douye2036 2017-04-21 14:58
    关注

    That's an easy to solve problem.

    If there is no category the while loop gets never executed because there are now rows in your db result.

    Try and check the row amount first:

    if (mysqli_num_rows($result) == 0) { 
    
      //there are no categories
      echo('no categories');
    
    } else {
    
      //there are categories
      echo('there are categories');
    
      //in case you want to loop through your categories now
      while (($row = mysqli_fetch_assoc($result)) == true) {
    
        $CategoryID = $row['CategoryID'];  
        echo($CategoryID);
        //your code
     }
    
    }
    

    This should help you!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?