php - 从由 CSV 填充的数据库表中填充多个 HTML 表

标签 php html mysql csv html-table

我目前有一个具有简单界面的网站,用户登录后可以选择上传或查看。他们可以上传 CSV(为此目的,CSV 模板大约有 300 个字段)或转到页面以选择或搜索已上传的特定记录(按某些键排序)。

我的文件夹中有一个用于文件上传/提交部分的 HTML 页面,该页面使用了 upload.php 文件,该文件包含大约 400 行代码,用于处理将 CSV 插入到数据库中。我现在创建了一个 display.html 文件,其中包含大约 300 行其他代码,用于一页上的 14 或 15 个单独的 HTML 表。我首先用 HTML 创建它们,因为它们各自具有需要保留的不同样式、标题和格式。

我的目标是这样的:当用户选择一条记录时,我需要显示包含所有不同表的html页面,并且每个表需要由保存300个字段CSV的SQL临时表中的某些字段填充。因此,前 10 个字段将在一个表中,接下来的 7 个字段将在一个表中,依此类推。我知道我无法在 HTML 页面中调用 PHP,但我已经在 HTML 中创建了表格,所以我想知道是否可以将其更改为 php 并向现有表格添加某些语法以及如何将这些字段插入到每个表行按名称排列。以下是上传 PHP 的示例,其中我为列声明了变量:

PHP(用于上传 - 单独文件)

if(isset($_POST['submit']))
{

$file = $_FILES["file"]["tmp_name"];
$handle = fopen($file, "r");
$filesop = fgetcsv($handle, 0, ",");

$coldata = array();

$coldata[ "orderNumber" ] = $filesop[0];
$coldata[ "place" ] = $filesop[1];
$coldata[ "workOrderNum" ] = $filesop[2];
$coldata["lowSideMIUNum"] = $filesop[3];
$coldata["highSideMIUNum"] = $filesop[4];
$coldata["accountNum"] = $filesop[5];
$coldata["custName"] = $filesop[6];
$coldata["address"] = $filesop[7];
$coldata["locID"] = $filesop[8];
$coldata["date"] = $filesop[9];
$coldata["utility"] = $filesop[10];
$coldata["serialNumber"] = $filesop[11];
$coldata["serviceName"] = $filesop[12];
$coldata["address2"] = $filesop[13];
$coldata["servicePreformed"] = $filesop[14];
$coldata["bypassSize"] = $filesop[15];
}

现有表的 HTML(只有一个表。我在尝试将其用作 PHP 文件时将 PHP 留在了文件中):

<!--<?php

$server = "localhost";
$user = "root";
$pw = "root";
$db = "uwsTest";

$connect = mysqli_connect($server, $user, $pw, $db);

$query1 = "SELECT * FROM staging";
$result1 = mysqli_query($connect,$query1);

if ($connect->connect_error) {
die("Connection failed: " . $conn->connect_error);
}else{
    echo'success!';
}


?>


<?
while($row = mysql_fetch_array($result1)){
?>
<!--Qa Table-->
<table>
<tr>
<th colspan="2">Qa/Qc CheckList</th>
</tr>
<tr>
<td>Service Address Correct</td>
<td><? echo $row['orderNumber'];?>&nbsp;</td>
</tr>
<tr>
<td>Service Loc Correct</td>
<td><? echo $row['orderNumber'];?>&nbsp;</td>
</tr>
<tr>
<td>Meter Number Correct</td>
<td><? echo $row['orderNumber'];?>&nbsp;</td>
</tr>
<tr>
<td>Meter Manufacturer Changed</td>
<td><? echo $row['orderNumber'];?>&nbsp;</td>
</tr>
<tr>
<td>Meter Type Changed</td>
<td><? echo $row['orderNumber'];?>&nbsp;</td>
</tr>
<tr>
<td>Meter Model Changed</td>
<td><? echo $row['orderNumber'];?>&nbsp;</td>
</tr>
<tr>
<td>Low Register Correct</td>
<td><? echo $row['orderNumber'];?>&nbsp;</td>
</tr>
<tr>
<td>High Register Correct</td>
<td><? echo $row['orderNumber'];?>&nbsp;</td>
</tr>
</table>
<br>
<br>

<?
}
?>

我将 PHP 代码留在表中以显示我的尝试,但我认为表名称的命名约定不适用于我的 php。在我的网页上,我只收到成功数据库连接的消息,但我的表不像我仅作为 PHP 运行时那样显示。将数据库中的变量插入到此页面上的多个表中的最佳方法是什么?

最佳答案

此解决方案允许您配置哪些列显示在哪个表中。

<?php

$tables = array();
$tables[0] = array('title' => 'Qa/Qc CheckList', 'cols' => array('Order #' => 'orderNumber','Place' => 'place','Work Order' => 'workOrderNum'));
$tables[1] = array('title' => 'Another CheckList', 'cols' => array('Low Side MIU' => 'lowSideMIUNum','Account #' => 'accountNum','Name' => 'custName'));
// ... add other table definitions ...

if ($connect->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
    echo'success!';
}
$query1 = "SELECT * FROM staging";
$result1 = mysqli_query($connect,$query1);

$all_rows = mysqli_fetch_all($result1);

if($all_rows) {
    foreach($tables as $tableno => $tableinfo) {
        foreach($all_rows as $rowno => $row) {
?>
<!-- <?php echo $tableinfo['title']; ?> -->
<table>
<tr>
    <th colspan="2"><?php echo $tableinfo['title']; ?></th>
</tr>
<?php
            foreach($tableinfo as $col_label => $col_name) {
?>
<tr>
    <td><?php echo $col_label; ?></td>
    <td><?php echo $row[$col_name]; ?></td>
</tr>
<?php
            } // end of foreach $table_info
?>
</table>
<?php
        } // end of foreach $all_rows
?>
<?php
    } // end of foreach $tables

} else {
    echo "<p>No data found.</p>\n";
}
?>

关于php - 从由 CSV 填充的数据库表中填充多个 HTML 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43221460/

相关文章:

php - mysql错误是: Access denied for user

php - 可能的词组

html - 有没有像 JSP 压缩器这样的东西? (或开源 HTML 压缩器)

javascript - 在 Parse.com 上注册 JS jQuery

java - 抽象类 - 扩展类和 DAO

mysql - MYSQL查询中的多重计数

php - 在 Ubuntu 上将 Google OAuth 与 PHP 集成时需要 CURL PHP 扩展时出错

php - 如何将查询 url 参数传递给 Twig 模板

javascript - jQuery 无法删除父 div

html - 在 &lt;input type ="number"> 上使用 padding 时会隐藏一半的文本或数字