2017-11-15 1 views
0

Ich erstelle eine Kontaktliste für ein Schulprojekt mit PHP. Ich speichere alle Kontaktinformationen in einer .csv-Datei. Ich habe es geschafft, die CSV-Datei in index.php dynamisch anzuzeigen. Jeder Person in der Kontaktliste ist eine eindeutige ID zugewiesen. Jetzt kämpfe ich mit der Bearbeitung der CSV-Datei basierend auf der UniqueID. Das sind die Codes, die ich bisher geschrieben habe.Schwierigkeiten mit der Bearbeitung .csv-Datei mit PHP

function 
edit_csv($filename, $no_rows, $id){ 
    $file_open = fopen($filename, 'w'); 
    foreach ($no_rows as $newRow){ 
     if($newRow[0] === $id){ 
      file_put_contents($filename, serialize($newRow)); 
     } 
    } 
    fclose($file_open); 

} 

function edit_Contact($titleEdit,$fnameEdit,$lnameEdit,$emailEdit,$websiteEdit,$cPhoneNumEdit,$hPhoneNumEdit,$oPhoneNumEdit,$twitterEdit,$facebookEdit,$commentEdit){ 
    $data = read_csv('contract_data.csv'); // just reads the .csv file 
    $handle = fopen('ids', 'r'); // unique id stored here. 
    $id = fread($handle, filesize('ids')); 
    fclose($handle); 

     $data[] = array(
     'sr_no' => $id, 
     'Title' => $titleEdit, 
     'FirstName' => $fnameEdit, 
     'LastName' => $lnameEdit, 
     'email' => $emailEdit, 
     'website' => $websiteEdit, 
     'CellPhoneNumber' => $cPhoneNumEdit, 
     'HomePhoneNumber' => $hPhoneNumEdit, 
     'OfficePhoneNumber' => $oPhoneNumEdit, 
     'twitter' => $twitterEdit, 
     'Facebook' => $facebookEdit, 
     'Comment' => $commentEdit 
     ); 
     edit_csv('contract_data.csv', $data, $id); 

     return $data; 

} 

Antwort

0

Wie wäre es mit fputcsv statt file_put_contents wie unten,

Beispielcode: -

$path = "C:\\path\\to\\your\\file.csv"; 
if (($handle = fopen($path, "r+")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     if($data[0]==2){ //desired line to update 
      $write_data = array(
         'sr_no' => $id, 
         'Title' => $titleEdit, 
         'FirstName' => $fnameEdit, 
         'LastName' => $lnameEdit, 
         'email' => $emailEdit, 
         'website' => $websiteEdit, 
         'CellPhoneNumber' => $cPhoneNumEdit, 
         'HomePhoneNumber' => $hPhoneNumEdit, 
         'OfficePhoneNumber' => $oPhoneNumEdit, 
         'twitter' => $twitterEdit, 
         'Facebook' => $facebookEdit, 
         'Comment' => $commentEdit 
         ); 
      fputcsv($handle, $write_data, ',', '"'); 
      unset($write_data); 
     } 
    } 
    fclose($handle); 
}