【问题标题】:how to insert multiple input values with same name inserting csv in php如何在php中插入多个具有相同名称的输入值插入csv
【发布时间】:2014-09-01 09:17:16
【问题描述】:

这是具有多个同名输入值的表单数据:

<form id="form1" name="form1" method="post" action="insert3.php">
    <table border=1>
         <tr><th><span>Outage Reasons ( Date )</span></th> <th> RNA - CP ( Radio Network Availability - Customer Perceived) </th> <th> RNA - PW ( Radio Network Availability - after removing Planned Work minutes) </th> </tr>
        <tr><td><input type="text" name="outage[]" id="outage" /></td><td><input name="rna_cp[]" type="text" id="rna_cp" size="50" /></td><td><input name="rna_pw[]" type="text" id="rna_pw" size=50/></td></tr>
        <tr><td><input type="text" name="outage[]" id="outage" /></td><td><input name="rna_cp[]" type="text" id="rna_cp" size="50" /></td><td><input name="rna_pw[]" type="text" id="rna_pw" size=50/></td></tr>
        <tr><td><input type="text" name="outage[]" id="outage" /></td><td><input name="rna_cp[]" type="text" id="rna_cp" size="50" /></td><td><input name="rna_pw[]" type="text" id="rna_pw" size=50/></td></tr>
        <tr><td><input type="text" name="outage[]" id="outage" /></td><td><input name="rna_cp[]" type="text" id="rna_cp" size="50" /></td><td><input name="rna_pw[]" type="text" id="rna_pw" size=50/></td></tr>
        <tr><td><input type="text" name="outage[]" id="outage" /></td><td><input name="rna_cp[]" type="text" id="rna_cp" size="50" /></td><td><input name="rna_pw[]" type="text" id="rna_pw" size=50/></td></tr>
        <tr><td><input type="text" name="outage[]" id="outage" /></td><td><input name="rna_cp[]" type="text" id="rna_cp" size="50" /></td><td><input name="rna_pw[]" type="text" id="rna_pw" size=50/></td></tr>
        <tr><td><input type="text" name="outage[]" id="outage" /></td><td><input name="rna_cp[]" type="text" id="rna_cp" size="50" /></td><td><input name="rna_pw[]" type="text" id="rna_pw" size=50/></td></tr>
        </tr>
        <tr><td></td>
            <div align="center">
            <td><input type="submit" name="Submit" id="Submit" value="Submit" />
            <input type="reset" name="Reset" id="button" value="Reset" />
            </td>
            </div>
        </tr>
    </table>
    </form>

这是插入 csv 文件的 PHP 脚本:

<?php

$outage=$_POST['outage'];
$rna_cp=$_POST['rna_cp'];
$rna_pw=$_POST['rna_pw'];

for($i=0;$i<count($_POST['outage']);$i++)
{
    $list = array (
    array("$_POST['outage']", "$_POST['rna_cp']", "$_POST['rna_cp']" )
  );

}

$fp = fopen('file.csv', 'a');

foreach ($list as $fields) {

    fputcsv($fp, $fields."\r\n");
}

fclose($fp);

?>

但是数据没有插入到文件中,错误是:

解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,需要 T_STRING 或 T_VARIABLE 或 T_NUM_STRING

谢谢。

【问题讨论】:

标签: php html forms csv


【解决方案1】:

试试这个……

<?php

$list = array();

for($i=0;$i<count($_POST['outage']);$i++)
{
    $list[$i] = array($_POST['outage'][$i], $_POST['rna_cp'][$i], $_POST['rna_pw'][$i] );

}

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);

?>

【讨论】:

    【解决方案2】:

    我已尝试在您的代码中调试 $list 的初始化:

    <?php
    
    $list = array(); // <- declare array first
    for($i=0; $i<count($_POST['outage']); $i++)
      $list[] = array($_POST['outage'][$i], $_POST['rna_cp'][$i], 
                      $_POST['rna_pw'][$i]); 
      // ^- push_back into array. 
      //  - $_POST['outage'] is array too, 
      //    so you should use [] operator. 
      //  - Use "" for strings only, not for normal variables.
    

    编辑: 这对我有用:

    /*
    // test input
    $_POST['outage'] = ['a0', 'b0', 'c0'];
    $_POST['rna_cp'] = ['a1', 'b1', 'c1'];
    $_POST['rna_pw'] = ['a2', 'b2', 'c2'];
    */
    $fp = fopen('file.csv', 'a');
    for($i=0; $i < count($_POST['outage']); ++$i) {
      $fields = array($_POST['outage'][$i], $_POST['rna_cp'][$i], 
                      $_POST['rna_pw'][$i]);
      fputcsv($fp, $fields);          
    }
    fclose($fp);
    

    【讨论】:

    • 是的,我试过了,但我得到了这个错误:警告:fputcsv() 期望参数 2 是数组,给定字符串
    • @约翰。是的,那是因为您将$fields 字符串与"\r\n" 连接起来。不用这个试试看。
    • 我得到了:注意:数组到字符串的转换
    • @John 哪一行?
    • 注意:第 19 行 C:\PORTAL\xampp\htdocs\get_insert_csv\insert3.php 中的数组到字符串转换
    猜你喜欢
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多