【问题标题】:PHP web page - Preview CSV upload before inserting into databasePHP 网页 - 在插入数据库之前预览 CSV 上传
【发布时间】:2017-04-06 15:49:29
【问题描述】:

我有一个当前网页,使用 HTMl 和 PHP 上传文件来读取 CSV 并插入数据库。这一切都很好,但我试图找到一种相当快速和轻松的方式在提交和插入数据库之前向用户显示数据。现在我的提交按钮发布到 PHP 并立即执行 VAR 转储并插入数据库。我希望一旦将文件添加到上传框,就有一种相当简化的方式在页面上显示它。

if(isset($_POST['submit']))
{
ini_set('auto_detect_line_endings', true);

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

while(!feof($handle)){
$filesop = print_r(fgetcsv($handle, 0, ","));
}


$coldata = array();

$coldata[ "orderNumber" ] = $filesop[0];
$coldata[ "place" ] = $filesop[1];
$coldata[ "workOrderNum" ] = $filesop[2];
$coldata["lowSideMIUNum"] = $filesop[3];
//rest of array elements and insert statement

【问题讨论】:

  • "在提交和插入数据库之前向用户显示数据" - - “在页面上显示它一旦文件添加到上传框” - 似乎相互矛盾。
  • 对不起,这是一个好点。后者会很好,但主要是我只需要在插入数据库之前显示它。

标签: php html csv upload


【解决方案1】:

将其输出为 html 表格

$maxPreviewRows = PHP_INT_MAX; // this will be ~2 billion on 32-bit system, or ~9 quintillion on 64-bit system
$hasHeaderRow = true;

echo '<table>';

if ($hasHeaderRow) {
    $headerRow = fgetcsv($handle);
    echo '<thead><tr>';
    foreach($headerRow as $value) {
        echo "<th>$value</th>";
    }
    echo '</tr></thead>';
}

echo '<tbody>';

$rowCount = 0;
while ($row = fgetcsv($handle)) {
    echo '<tr>';
    foreach($row as $value) {
        echo "<td>$value</td>";
    }
    echo '</tr>';

    if (++$rowCount > $maxPreviewRows) {
        break;
    }
}
echo '</tbody></table>';

【讨论】:

  • 那么我会运行这个并向运行插入的页面添加一个提交按钮吗?
  • 您需要将上传的文件存储在某个地方以便您可以再次访问它,或者将该文件的来源作为隐藏字段包含在此页面上。前者更好,因为如果 CSV 文件很大,它甚至可能无法正常工作,并且可能需要一段时间才能再次发布。
  • 如果您要处理大型行,以便更多地进行预览而不是整个事情,您可能希望限制从 csv 处理的行数。
  • 我试过那个代码没有运气,它只是遇到错误,所以我正在尝试它作为它自己的文件。我想用它只在提交时显示表格,然后确认页面可以有另一个运行我当前插入代码的提交按钮
  • 如果您发布所有代码,我可以看看是否可以指出您遇到错误的原因。同时发布您遇到的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 2011-05-26
  • 2013-01-22
相关资源
最近更新 更多