CSV importieren, zerhacken und ausgeben ;-)

Fabian

Erfahrenes Mitglied
Hallo Zusammen,

hab ein Problem..

Ich hab ne Datei 'sponsoren.csv', die sieht so aus (bsp.):
Email;Firmenname;Status

email@1.de;Firma1;nein
email@2.de;Firma2;ja
email@3.de;Firma3;na

So, ich habe eine Tabelle:

<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="200"><div align="center">FIRMENNAME</div></td>
<td width="200"><div align="center">EMAIL</div></td>
<td width="200"><div align="center">STATUS</div></td>
</tr>
</table>

Ich oeffne also die Datei 'sponsoren.csv' wie folgt:
PHP:
<?php
$fp = fopen ("sponsoren.csv","r");
while ($data = fgetcsv ($fp, 1000, ";")) { 
    $num = count ($data);
    for ($c=0; $c<$num; $c++) {
        echo $data[$c];
	}
}
fclose ($fp);
?>

Bei diesem Code wird dann folgendes ausgegeben:

email@1.deFirma1neinemail@2.deFirma2jaemail@3.deFirma3na

So, wie ihr oben bei der Tabelle gesehen hab, will ich das Unterteilen.. Also in die Tabelle oben einfuegen!

Wie geht das? :[

Wenn Ihr das hinbekomm, gleich noch ne zusatzfrage ;-)

Kann man drei Tabellen machen, also Status OK, Status NO und Status NA ? ;)

Hoffe ihr versteht :P

Bitte um hilfe, greets axess
 
Zuletzt bearbeitet:
Mal testen..

Und haste auchn Tipp wie das geht mit den 3 verschiedenen Tabellen - je nach Status? ;)

Bye
 
Zuletzt bearbeitet:
erzeug dir halt einfach drei weitere arrays - eins für yes, eins für no und eins für n/a. wenn du mit explode eine zeile aus der datei aufgeteilt hast, kannst du einfach das letzte element überprüfen und die gesamte zeile in das entsprechende array schreiben.
zum schluss gibst du einfach noch für jedes der drei arrays eine tabelle aus.
 
Ich weis einfach net wie ich das in dieses 'Script' einbinden muss:
PHP:
<?php
$fp = fopen ("sponsoren.csv","r");
while ($data = fgetcsv ($fp, 1000, ";")) { 
    $num = count ($data);
    for ($c=0; $c<$num; $c++) {
        echo $data[$c];
    }
}
fclose ($fp);
?>

Es soll ja am Schluss die Tabelle rauskommen :\
 
das sieht etwas kryptisch aus, bei Bedarf erkläre ich es:

PHP:
<?php
function csvEcho($type) {
	$e = "email_";
	$f = "firma_";
	global ${$e.$type}, ${$f.$type};
	for($c = 0; $c <= count(${$e.$type}); $c++) {
		echo ${$e.$type}[$c];
		echo ${$f.$type}[$c];
	}
}

$fp = fopen ("sponsoren.csv","r");
while ($data = fgetcsv ($fp, 1000, ";")) { 
    $email = "email_".$data[2];
	$firma = "firma_".$data[2];
	${$email}[] = $data[0];
    ${$firma}[] = $data[1];
}
fclose ($fp);

csvEcho('na');
echo "<br>";
csvEcho('ja');
echo "<br>";
csvEcho('nein');
?>

einfach csvEcho() mit dem gewünschten Status angeben so wie im Beispiel. Wenn du in die Funktion noch HTML Code einbaust, spuckt dir die Funktion auch eine ganze Tabelle aus. Probier es aus, ich kann das ganze noch kommentieren.

wenn du dich entscheidest auch noch 'vielleicht' als Möglichkeit anzugeben, dann steht das auch sofort zur Verfügung. Einfach csvEcho('vielleicht'); angeben.

Übrigens: das $$Var_name bedeutet das der Inhalt der Varibalen $Var_name als Name für eine Variable genommen wird.

Also quasi so:
PHP:
$test = "hello";
$hello = "hehehe, das kommt bei raus";

echo $$test; // es wird 'hehehe, das kommt bei raus' ausgegeben

das ist das Konzept dynamischer Variablen.

Ciao, F.o.G.
 
Zuletzt bearbeitet:
Zurück