Variablen aus Formular in csv schreiben

stikmata

Grünschnabel
Hallo ich möchte die Daten die in meinem Formular eingegeben wurden in eine csv schreiben.
Aber so das die daten von 1 A bis 1CC stehen und 2A bis 2CC so zu sagen

mit:

PHP:
if($_POST['weiter'] == 'weiter'){
	
	$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789')
	);

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

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

fclose($fp);
	
}

Wird alles in A1 und a2 in ein feld geschrieben und ich verstehe nicht wie ich in das nächte feld komme.
 
Hä?

Also die Ausgabe sieht jetzt so aus
Code:
aaa,bbb,ccc,dddd
123,456,789

Und wie soll sie aussehen? Mach ein passendes Beispiel.
 
A1: aaa B1: bbb
A2: 123 B2: 456


Ich möchte die spalten von links nach rechts füllen können und nicht mehrere in eine Spalte schreiben.
 
öhm. Das folgende ist CSV-Format.
Code:
aaa,bbb,ccc,dddd
123,456,789

Dein Ding ist kein CSV mehr.

CSV ist ein Textformat mit Trennzeichen. Es ist keine Excel-Datei. Beim importieren ins Excel kannst du normalerweise das Trennzeichen definieren. Du kannst auch bei fputcsv() den delemiter mitgeben falls du kein Komma haben willst sondern etwas anderes.
 
Oh ja das habe ich vergessen zu schreiben. es soll natürlich dann bei import in excel so aussehen.

wenn ich ganz stumpf:

Code:
array('aaa;bbb;ccc')

schreibe dann kommt bei excel das richtige raus also alles in einer extra spalte.
Nun habe ich aber das problem das ich da keine variablen rein bekomme.

es steht dann einfach $bsp in einer Spalte statt dem Wert.
 
öhm- könntest du bitte in Zukunft etwas klarer ausdrucken was du meinst?
Was zum Kuckuck ist $bsp?
Was machst du mit dem array('aaa;bbb;ccc')?

Willst du mir sagen, dass die CSV-Datei mit ; getrennt sein soll anstelle von Kommas?
Wenn ja, dann schreib es einfach so
PHP:
foreach ($list as $fields) {
    fputcsv($fp, $fields, ';');
}

Aber nochmals. Schreibe klar was du willst. Ich gebs ansonsten auf mit dem Ratespiel - hab noch anderes zu tun.
 
Also ich versuche es noch einmal zu erklären:

Ich möchte mit php eine csv datei erstellen welche dann in Excel geöffnet folgent aussieht.

A1: aaa B1: bbb
A2: 123 B2: 456

PHP:
/*Mit diesem array sage ich was in welche spalte soll
         A1: bbb  A2: ccc A3: ddd
         B1: 123  B2: 456 B3: 789
*/
$list = array (
    array('bbb;ccc;dddd'),
    array('123;456;789')
	);

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

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

nun habe ich das problem das ich statt 'bbb' im array Variablen bzw Cookies eintragen möchte.

Oder ist das mit dem Array ne doofe idee? ich habe sowas noch nie gemacht und verstehe es auch einfach nicht wirklich.
 
Als erstes. Mach dich mal schlau was csv ist. Csv ist und bleibt ein Textfile.

Die Sache mit dem Array ist ein sehr guter Ansatz. Würde ich auch so machen

Am besten wählst du das Format: Trennzeichen ; Felderbegrunzung " (dies ist bereits als Default so)
Ergo den Code den ich dir bereits vergeschlagen, du aber noch nicht angewendet hast.
 
Ich habe es nun so gelöst:

PHP:
$fp = fopen('excel.csv', 'w');
	
	$produkte[0][0]= "Anrede";
	$produkte[0][1]= "Name";
	$produkte[0][2]= "Vorname";
	$produkte[0][3]= "Geburtstag";
	$produkte[0][4]= "Geburtsmonat";
	$produkte[0][5]= "Geburtsjahr";
	$produkte[0][6]= "Straße";
	$produkte[0][7]= "Straßennummer";
	$produkte[0][8]= "Ort";
	$produkte[0][9]= "Postleitzahl";
	$produkte[0][10]= "Familie";
	$produkte[0][11]= "Öffentlicherdienst";
	$produkte[0][12]= "Anrede Partner";
	$produkte[0][13]= "Name Partner";
	
	$produkte[1][0]= $_COOKIE['anrede'];
	$produkte[1][1]= $_COOKIE['name'];
	$produkte[1][2]= $_COOKIE['vorname'];
	$produkte[1][3]= $_COOKIE['geburtstag'];
	$produkte[1][4]= $_COOKIE['geburtsmonat'];
	$produkte[1][5]= $_COOKIE['geburtsjahr'];
	$produkte[1][6]= $_COOKIE['strasze'];
	$produkte[1][7]= $_COOKIE['straszennr'];
	$produkte[1][8]= $_COOKIE['ort'];
	$produkte[1][9]= $_COOKIE['plz'];
	$produkte[1][10]= $_COOKIE['familie'];
	$produkte[1][11]= $_COOKIE['od'];
	$produkte[1][12]= $_COOKIE['anrede_partner'];
	$produkte[1][13]= $_COOKIE['name_partner'];
	
	  function csv_write($csv_array, $fp) {
		for($i= 0; $i<   count($csv_array); $i++) {
		  $zeile=   implode(";", $csv_array[$i]) . "\n";
		  fputs($fp, $zeile);
		}
	   }
	
	  csv_write($produkte, $fp);

Nun stellt sich aber für mich das nächste Problem.

Wenn ich die csv dann normal mit einem Doppelklick öffne dann habe ich keine umlaute mehr bzw. lustige zeichen

und

wenn ich es über importieren mache dann steht wieder alles in einer Spalte
 
Zurück