从sql表创建HTML表

Alo*_*sai 10 html php sql html-table

我在SQL数据库中有一个表,其中包含以下字段:ID,名称,电子邮件,大学,语言和经验.我想创建一个从SQL中获取数据并输出最后10个结果的html表?我该怎么办?

对不起,如果这是一个非常简单的问题,我对PHP和SQL知之甚少.

这是我现在的代码,只显示名称而不是表格:

    <html>
    <head>
        <title>Last 5 Results</title>
    </head>
    <body>
        <?php
            $connect = mysql_connect("localhost","root", "root");
            if (!$connect) {
                die(mysql_error());
            }
            mysql_select_db("apploymentdevs");
            $results = mysql_query("SELECT * FROM demo");
            while($row = mysql_fetch_array($results)) {

                echo $row['Name'] . "</br>";


            ?>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Jos*_*lio 11

这里应该可以帮助您创建表并获得更多关于phpmysql的知识.

此外,您应该将连接逻辑和查询移动到进程的开头,从而避免在加载页面时出现错误并显示比mysql_error更准确的错误.

编辑:如果您的ID正在递增,那么您可以添加ORDER BY子句,
将:更改SELECT * FROM demo LIMIT 10 为:SELECT * FROM demo LIMIT 10 ORDER BY id

<html>
    <head>
        <title>Last 10 Results</title>
    </head>
    <body>
        <table>
        <thead>
            <tr>
                <td>Id</td>
                <td>Name</td>
            </tr>
        </thead>
        <tbody>
        <?php
            $connect = mysql_connect("localhost","root", "root");
            if (!$connect) {
                die(mysql_error());
            }
            mysql_select_db("apploymentdevs");
            $results = mysql_query("SELECT * FROM demo LIMIT 10");
            while($row = mysql_fetch_array($results)) {
            ?>
                <tr>
                    <td><?php echo $row['Id']?></td>
                    <td><?php echo $row['Name']?></td>
                </tr>

            <?php
            }
            ?>
            </tbody>
            </table>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)


pet*_*rus 6

一个选项,要求您将数据库中的数据编码为JSON:http://www.jeasyui.com/documentation/datagrid.php

但这看起来更有前途:http://phpgrid.com/


pet*_*ner 6

我对一遍又一遍地将相同的代码粘贴在一起以根据 SQL 查询构建 HTML 表感到非常恼火。

因此,我们在这里使用一个函数,该函数获取mysqli结果并将它们粘贴到一个简单的 HTML 表格中,该表格具有根据数据库中的列名:

function sql_to_html_table($sqlresult, $delim="\n") {
  // starting table
  $htmltable =  "<table>" . $delim ;   
  $counter   = 0 ;
  // putting in lines
  while( $row = $sqlresult->fetch_assoc()  ){
    if ( $counter===0 ) {
      // table header
      $htmltable .=   "<tr>"  . $delim;
      foreach ($row as $key => $value ) {
          $htmltable .=   "<th>" . $key . "</th>"  . $delim ;
      }
      $htmltable .=   "</tr>"  . $delim ; 
      $counter = 22;
    } 
      // table body
      $htmltable .=   "<tr>"  . $delim ;
      foreach ($row as $key => $value ) {
          $htmltable .=   "<td>" . $value . "</td>"  . $delim ;
      }
      $htmltable .=   "</tr>"   . $delim ;
  }
  // closing table
  $htmltable .=   "</table>"   . $delim ; 
  // return
  return( $htmltable ) ; 
}
Run Code Online (Sandbox Code Playgroud)

示例用法:

$DB = new mysqli("host", "username", "password", "database");
$sqlresult = $DB->query( "SELECT * FROM testtable LIMIT 1 ;" ) ; 

echo sql_to_html_table( $sqlresult, $delim="\n" ) ; 
Run Code Online (Sandbox Code Playgroud)