PHP网页-插入数据库前预览CSV上载

PHP网页-插入数据库前预览CSV上载,php,html,csv,upload,Php,Html,Csv,Upload,我有一个当前的网页,使用带有HTMl和PHP的文件上传来读取CSV并插入数据库。这一切都很好,但我正试图找到一种相当快速和无痛的方式,在提交和插入数据库之前向用户显示数据。现在,我的submit按钮发布到PHP,并立即执行VAR转储并插入到DB。我希望有一个相当精简的方式来显示它的页面上,一旦文件被添加到上传框 if(isset($_POST['submit'])) { ini_set('auto_detect_line_endings', true); $file = $_FILES["fi

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

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

将其输出为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>';

在提交和插入数据库之前向用户显示数据,以及在文件添加到上传框后立即在页面上显示数据,这两种做法似乎相互矛盾。对不起,这是一个好的观点。后者会很好,但主要是我只需要在插入到db之前显示它。那么我是否要运行此操作并向此页面添加一个运行插入的提交按钮?您需要将上载的文件存储在某个位置以便再次访问它,或者将该文件的源作为隐藏字段包含在此页面上。前者更好,因为如果CSV文件很大,它甚至可能无法工作,并且可能需要一段时间才能再次发布。此外,如果您处理的是较大的CSV文件,则可能需要限制从CSV处理的行数,以使其更像预览,而不是整件事。我尝试过该代码,但没有成功,它只是遇到了一些错误,所以我尝试将其作为自己的文件。我想用它只显示提交时的表格,然后确认页面可以有另一个提交按钮,运行我当前的插入代码如果你发布你所有的代码,我可以看看我是否可以指出你为什么会出错。也张贴你得到的错误。