Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从MySQL创建HTML表?_Php_Mysql_Report - Fatal编程技术网

Php 如何从MySQL创建HTML表?

Php 如何从MySQL创建HTML表?,php,mysql,report,Php,Mysql,Report,我正在构建一个系统的一部分,用户可以从mysql数据库中定义“视图” 我想要一些从数据生成简单HTML表/报告的方法,但不仅仅是简单的sql查询输出-简单的连接可能是不够的 有什么想法吗 只是想澄清一下:我非常清楚如何使用PHP/MySQL创建HTML表-这是最简单的部分。我想做的是允许我的用户创建他们自己的表,而不必暴露在流程中 好的,我会提供更多细节-感谢所有回复: 目前,用户可以使用向导创建表,然后查看/编辑/删除这些表中的记录。由于表格可能会发生变化,因此很难给出示例。我希望客户输入

我正在构建一个系统的一部分,用户可以从mysql数据库中定义“视图”

我想要一些从数据生成简单HTML表/报告的方法,但不仅仅是简单的sql查询输出-简单的连接可能是不够的

有什么想法吗


只是想澄清一下:我非常清楚如何使用PHP/MySQL创建HTML表-这是最简单的部分。我想做的是允许我的用户创建他们自己的表,而不必暴露在流程中


好的,我会提供更多细节-感谢所有回复:

目前,用户可以使用向导创建表,然后查看/编辑/删除这些表中的记录。由于表格可能会发生变化,因此很难给出示例。我希望客户输入的数据是关于出租房屋的——房屋、租户、房间、维护问题等的表格

我的目标是让用户能够创建特定视图的一些基本格式化输出,例如“显示所有房屋当月的租金周转率”或“显示逾期租户”或“显示没有租户的房间”。一旦设置,这些将只被查看,而不是编辑,所以这个过程必须能够进行设置

这有意义吗?如果不可能的话,我会硬编码视图-只是让系统不那么灵活

您可以使用在漂亮的表中显示MySQL,或者如果您想自己编写代码,您可以使用PHP和HTML来完成这项工作:

<table>
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    ?>
<tr>
    <td><?=$row['id']; ?></td>
    <td><?=$row['name']; ?></td>
</tr>    
<?
}

mysql_free_result($result);
?>
</table>


编辑:阅读您的编辑后,让用户“创建他们自己的表”可能不是最好的主意,而是给他们一些选项和排序顺序,以创建更好的用户体验。否则,它只是一个包含一些输入元素和一些if语句的表单。

大约100%的网站执行相同的任务:从SQL数据库创建HTML表。
所以,你可以买一些PHP/Mysql的书来了解一下。 尽管所有的表都是由程序员硬编码的


至于用户定义的视图,它可能有点复杂。但也有可能

您必须定义用户创建这些HTML表的方式。他们是否设置了许多行和列,然后手动输入表格

曾经,我们不得不做一个模板系统,其中包含所有图像、css属性、各种html块的定位等。整个系统是5或6个mysql表,用于存储模板属性,但如果只是一个表,则可以简化过程

设想一个mysql表用于表格式和属性(行计数、列计数、列宽度、颜色等),另一个mysql表用于放入数据。第二个表应该有用于存储日期、行和列位置的列


其余的都是让非技术用户可以访问表单,以配置和提供表,并使用一些PHP循环和查询呈现表。

您必须让用户了解部分过程,因为他们必须以某种方式描述表和表关系。您可以从Crystal Reports、Visual Studio和phpMyAdmin等公司获取一个页面,并创建一个可视化表设计器。表格表示为矩形,带有显示表格名称和字段列表的标题栏。这些表位于画布上,可以放置在画布上的任何位置。外键表示为连接字段的线

您可以使用与查询创建者相同的界面:用户通过将表列表拖到画布来指定要查询的表、他们感兴趣的字段(可能在每列旁边包含一个复选框)以及通过将字段与行连接来连接的字段。要将表连接到自身,可以允许将表多次添加到查询中,或者允许表中的字段连接到同一表中的其他字段


如果没有,抓取、安装、打开数据库并转到“设计器”选项卡查看其工作原理。你也可以看看一些

这就是你要找的吗?它将从mysql结果动态生成一个html表,无论结果是什么或有多大

//this function dynamically outputs a basic HTML table from any mysql result
function createTable($result) {
    $table = '<table><tr>';
    for ($x=0;$x<mysql_num_fields($result);$x++) $table .= '<th>'.mysql_field_name($result,$x).'</th>';
    $table .= '</tr>';
    while ($rows = mysql_fetch_assoc($result)) {
    $table .= '<tr>';
    foreach ($rows as $row) $table .= '<td>'.$row.'</td>';
    $table .= '</tr>';
    }
    $table .= '<table>';
    //mysql_data_seek($result,0); //if we need to reset the mysql result pointer to 0
    return $table; 
}

100%的工作刚刚改变。
$query变量根据您的表

重点是我不想让用户暴露在这个过程中!您不是,在执行此操作之后,用户只能看到HTML。没有办法对用户隐藏HTML。是的,但我希望用户能够为这些表创建视图,而不仅仅是查看输出!我可以自己手动完成,但这不是我想要做的。用户定义的视图是我想要的——我得到了第一个!你关心的不是输出,而是输入。查询生成向导。而输出是最简单的部分。只需从关联数组或表架构中获取字段名,然后绘制一个表。请举个例子。@Chris:创建他们自己的表,或者合并预先存在的表?就是这样-我已经有很多元表存储其他用户生成的数据库表等的信息,所以当然也可以对html表执行同样的操作。用户应该指定列和行的数量,然后使用某种简化的SQL指定每个列中的数据。美好的谢谢您的用户需要自己查询数据吗?
echo createTable($result);
<?php
    $query="SELECT * FROM table_name";
    $result=mysql_query($query);
    $numfields = mysql_num_fields($result);
    echo "<table border=1><tr>";

    for ($i=0; $i < $numfields; $i++) // Header
    { echo '<th>'.mysql_field_name($result, $i).'</th>'; }

    echo "</tr>";

    while
    ($res=mysql_fetch_row($result))   //you may use mysql_fatch_array($result) which can hendel both $res[name] and $res[1]
    {
    echo"
    <tr>
    <td>  $res[0]</td>
    <td>  $res[1]</td>
    <td>  $res[2]</td>
    .
    .
    .
    </tr>";
    }

    echo"</table>";
?>