0

this is the form data with multiple input values with same name :

<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>

This is the PHP script inserting into the csv file :

<?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);

?>

But the data is not inserting into the file the error is :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Thanks.

2

2 Answers 2

1

try this...

<?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);

?>
Sign up to request clarification or add additional context in comments.

Comments

0

I've tried to debug initialization of $list in your code:

<?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.

EDIT: That works fo me:

/*
// 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);

7 Comments

yes, i tried but i got this error : Warning: fputcsv() expects parameter 2 to be array, string given
@John. Yes, thats because you make from $fields string by concat with "\r\n". Try it without this.
I got : Notice: Array to string conversion
@John which line number?
Notice: Array to string conversion in C:\PORTAL\xampp\htdocs\get_insert_csv\insert3.php on line 19
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.