HTML表未填充

时间:2017-09-22 18:30:21

标签: php html mysql html-table

我面对奇怪的情况,非常简单。

信息未从DB填充到HTML表格。数据库是MySQL,我使用PHP连接并获取信息。

连接回答为"成功!"所以我看不出这个问题的原因。

我的代码:

    connector1.php:

    <?php

    $host = "localhost";
    $user = "root";
    $pass = "xxxxxxxxxxx";
    $database = "PERFBASE";

    $mysqli = new mysqli($host, $user, $pass, $database);

    if($mysqli->connect_errno)
    echo "Connection to DB Failed: (".$mysqli->connect_errno.") ".$mysqli->connect_error;
    else echo "Success!";


    -------------------------------------------------------------------------


    index.php

    <?php
    include("connector1.php");

    $consulta = sprintf("SELECT * FROM PERFTRIG");


    $con = $mysqli -> query($consulta) or die($mysqli -> error);

    $SYSNAME = "SYSNAME";


    ?>


    <html>

    <body>
    <table style="width:100%">
     <tr>
     <th>System</th>
     <th>Client</th>
     <th>Date</th>
    </tr>
   <tr>
    <?php while($dado = $con->fetch_array())?>
    <td><?php echo $dado[$SYSNAME]; ?></td>
   <td>Ozzy</td>
  <td>17/09/22</td>
   </tr>
   </table>

   </body>
    </html>

这是一个直接在MYSQL中的查询:

    MariaDB [PERFBASE]> describe PERFTRIG
        -> ;
    +--------------+-------------+------+-----+---------+----------------+
    | Field        | Type        | Null | Key | Default | Extra          |
    +--------------+-------------+------+-----+---------+----------------+
    | SYSID        | int(10)     | NO   | PRI | NULL    | auto_increment |
    | DATETIME     | date        | YES  |     | NULL    |                |
    | SYSNAME      | varchar(10) | YES  |     | NULL    |                |
    | ACCOUNTL     | varchar(10) | YES  |     | NULL    |                |

你对发生的事情有什么了解吗?

3 个答案:

答案 0 :(得分:2)

替换此部分:

<?php while($dado = $con->fetch_array())?>
<td><?php echo $dado[$SYSNAME]; ?></td>

与此:

<?php while($dado = $con->fetch_array()) { ?> // loop start here
<td><?php echo $dado[$SYSNAME]; ?></td>
<?php } ?>

它是php的硬逻辑,你需要正确使用sintax。 而且我认为你不需要下一个(这是什么意思?):

$consulta = sprintf("SELECT * FROM PERFTRIG");

只需在代码中使用:

$consulta = "SELECT * FROM PERFTRIG";

答案 1 :(得分:1)

实际上你在使用while循环时出错了你错过了大括号

试试这种方式。

    <tr>
     <?php while($dado = $con->fetch_array()): ?> // dont forget colon
     <td><?php echo $dado[$SYSNAME]; ?></td>
     <td>Ozzy</td>
     <td>17/09/22</td>
     <?php endwhile; ?>
    </tr>

答案 2 :(得分:0)

William Perron,ficuscr,RamaKrishna - 非常感谢你们!

根据您的澄清确定后的最终答案:

    <body>
    <table style="width:100%">
    <tr>
    <th>System</th>
    <th>Client</th>
    <th>Date</th>
    </tr>
    <?php while($dado = $conn->fetch_array()): ?>
    <tr>
    <td><?php echo $dado[$SYSNAME]; ?></td>
    <td>Ozzy</td>
    <td>17/09/22</td>
    </tr>
    <?php endwhile; ?>
    </table>

    </body>

现在工作得很好!