wordpress网站前端的CSV上传(PHP / SQL)

时间:2017-03-24 18:32:19

标签: php mysql database wordpress csv

我在某些领域取得了很大的进步,但在其他方面却在挣扎。这是目标:客户正在使用现有的wordpress网站。他们希望管理员用户通过上传选项访问其中一个前端页面,他们可以上传CSV(每天几次)。然后,在访问门户中的其他页面时,将显示表中的相应字段(取决于用户)。 CSV文件有201个字段,每次都是相同的顺序。在我的php中,我设置了一个成功的连接并编码了201个变量,如下所示:

<?php

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

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

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


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

$coldata = array();

$coldata['orderNumber'] = $filesop[0];
$coldata['null'] = $filesop[1];
$coldata['workOrderNum'] = $filesop[2];
$coldata['lowSideMIUNum'] = $filesop[3];
$coldata['highSideMIUNum'] = $filesop[4];
$coldata['accountNum'] = $filesop[5];
$coldata['custName'] = $filesop[6];

再次,这一行继续[200]。在下一部分,我将只粘贴某些变量以节省空间。这是我索引某些变量属于哪些表的地方。

$table_cols = array();

/*staging*/
$table_cols[0] ="null,orderNumber,null,workOrderNum,lowSideMIUNum,highSideMIUNum,accountNum
/*clients*/
$table_cols[1] ="orderNumber,null,workOrderNum,lowSideMIUNum,highSideMIUNum,accountNum,custName
/*meters*/
$table_cols[2] ="workOrderNum,lowSideMIUNum,highSideMIUNum,accountNum,custName,address
/*tests*/
$table_cols[3] ="workOrderNum,lowSideMIUNum,highSideMIUNum,accountNum,custName,address
/*costs*/
$table_cols[4] ="workOrderNum,onsiteSurveyTestCost,onsiteSurveyTestRepairCost,offsiteSurveyTestCost
/*workorders*/
$table_cols[5] ="workOrderNum,lowSideMIUNum,highSideMIUNum,accountNum,custName

现在是SQL查询:

$tablenames = array("staging","clients","meters","tests","costs","workorders");

for($tableno = 0;$tableno < sizeof($tablenames);$tableno++){
$q = "";
$q .= "INSERT INTO ".$tablenames[$tableno]." (".$table_cols[$tableno].") VALUES (";
$cols = explode("," ,$table_cols);
$data = array();
foreach($col as $key => $fldname) {
    $data[] = "'".$coldata[$fldname]."'";
}

$q .= implode(",",$data).");";

}
echo'File submitted';

当我运行它时,我没有得到PHP错误。我在Mamp上运行它,通过html提交表单上传CSV,它调用php,然后在我的php索引页面上,我得到了成功连接和成功插入的消息。但是,当我查看MySQL工作台并从表中选择时,它们是空的。我的临时表实际上只用一列主键创建,但我不知道这段代码是否会在数据库表中没有建立列/字段的情况下提交所有内容。在'staging'选项(index [0])下的table_cols数组中,我实际上有201个变量,因为整个表单将被放在这一个表中以保证安全。我在这里遗漏了为什么它没有加载到数据库中?

0 个答案:

没有答案