MySQLi将数据输出到HTML表中

时间:2018-04-03 13:48:54

标签: php html mysqli

我似乎在将数据库输出到html表时遇到了一个小问题。每次运行我的代码时,它都会输出以下错误:

  

mysqli_num_rows()期望参数1为mysqli_result,boolean   给定

但是我不太确定我哪里出错了,所以我想我会尝试从社区获得帮助。

先谢谢大家。

<?php 
    $query = "SELECT name, add1, add2, add3, post, num FROM organisations";
    $result = mysqli_query($conn, $query);

    if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
            echo '<table>';

                echo '<tr>';
                    echo '<td>Name</td>';
                    echo '<td>Add1</td>';
                    echo '<td>Add2</td>';
                    echo '<td>Add3</td>';
                    echo '<td>Post</td>';
                    echo '<td>Num</td>';
                echo '</tr>';

                echo '<tr>';
                    echo '<td>' . $row['name'] . '</td>';
                    echo '<td>' . $row['add1'] . '</td>';
                    echo '<td>' . $row['add2'] . '</td>';
                    echo '<td>' . $row['add3'] . '</td>';
                    echo '<td>' . $row['post'] . '</td>';
                    echo '<td>' . $row['num'] . '</td>';
                echo '</tr>';

            echo '</table>';

        }
    }
    else {
        echo '<p align="center">No Information Saved Into The Database.</p>';
    }

?>

更新: 我以为我会尝试一些不同的东西,因为它被标记为重复,但没有真正帮助解决我的问题。但是,现在没有错误但没有表格?

<?php 
    $query = "SELECT `id`, name, add1, add2, add3, post, num FROM `organisations` WHERE `id`>'0'";

    if($query_run = mysqli_query($conn,$query)){

        $query_num_rows = mysqli_num_rows($query_run);

        if($query_num_rows < 1){
            echo 'No Client Organisations Have Been Added.';
        }

        else{
            while($row = mysqli_fetch_assoc($result)) {
                echo '<table>';

                    echo '<tr>';
                        echo '<td>Name</td>';
                        echo '<td>Add1</td>';
                        echo '<td>Add2</td>';
                        echo '<td>Add3</td>';
                        echo '<td>Post</td>';
                        echo '<td>Num</td>';
                    echo '</tr>';

                    echo '<tr>';
                        echo '<td>' . $row['name'] . '</td>';
                        echo '<td>' . $row['add1'] . '</td>';
                        echo '<td>' . $row['add2'] . '</td>';
                        echo '<td>' . $row['add3'] . '</td>';
                        echo '<td>' . $row['post'] . '</td>';
                        echo '<td>' . $row['num'] . '</td>';
                    echo '</tr>';

                echo '</table>';
            }
        }                  
    }              
?>

1 个答案:

答案 0 :(得分:0)

CD001的评论确实回答了原始问题,您的问题 重复。

但是,由于该问题已经解决,并且您想知道为什么您没有获得表格,因为如果在查询期间出现错误,mysqli_query将返回false。来自docs

  

失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或   EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于   其他成功的查询mysqli_query()将返回TRUE。

// Your PHP is likely exiting here as mysqli_query returns false
// on a failed query.
if($query_run = mysqli_query($conn,$query)){

  $query_num_rows = mysqli_num_rows($query_run);

    if($query_num_rows < 1){
      echo 'No Client Organisations Have Been Added.';
    } else{
      while($row = mysqli_fetch_assoc($result)) {
        // Echo table
      }
   }                  
} 

要检查您的查询是否失败,请执行以下操作:

if ( $query_run = mysqli_query($conn, $query) ) { .. }

然而,我们可以做得更好。

$results = mysqli_query($conn, $query);

if ( !$results ) {
  // Our query failed!
  printf('Query Error: %s', mysqli_error($conn));
} else {
  // The rest of your code here as if the query succeeded
}

作为旁注,您似乎正在为数​​据库中的每条记录创建一个全新的<table>。如果您想要一个包含所有记录的单个表,<table>标记和第一个<tr>应该在您的循环之外。

echo '<table>';
  echo '<tr>';
    echo '<td>Name</td>';
    echo '<td>Add1</td>';
    echo '<td>Add2</td>';
    echo '<td>Add3</td>';
    echo '<td>Post</td>';
    echo '<td>Num</td>';
  echo '</tr>';

while ( $row = mysqli_fetch_assoc($result) ) {
  echo '<tr>';
    echo '<td>' . $row['name'] . '</td>';
    echo '<td>' . $row['add1'] . '</td>';
    echo '<td>' . $row['add2'] . '</td>';
    echo '<td>' . $row['add3'] . '</td>';
    echo '<td>' . $row['post'] . '</td>';
    echo '<td>' . $row['num'] . '</td>';
  echo '</tr>';
}

echo '</table>';