Hallo liebe Community,
ich habe mich nun ein paar Tage lang damit beschäftigt, wie es funktioniert, eine CSV-Datei in die Datenbank zu importieren und das mittels PHP. Hier erstmal mein Quellcode:
Das Problem, das mir erst im Nachhinein eingefallen ist, ist, dass das dieses Script nur Zeile für Zeile liest. Das habe ich mein Programmieren überhaupt net bedacht. Naja wie auch immer. Es tut seine Pflicht für eines meiner Arbeiten. Aber nun brauche ich genau das Selbe, welches Spalte für Spalte liest. (1 Spalte = 1 Datensatz)
Ich hab keine Ahnung, wie ich mein Script umfunktionieren soll, damit dies klappt.
Ich denke mal, dass das genannte Problem hier gelöst werde könnte:
Ich danke euch allen für eure kommenden Antworten. Freue mich schon auf Lösungsvorschläge und auf eine schöne Diskussion.
Mit freundlichen Grüßen
sk4r
ich habe mich nun ein paar Tage lang damit beschäftigt, wie es funktioniert, eine CSV-Datei in die Datenbank zu importieren und das mittels PHP. Hier erstmal mein Quellcode:
PHP-Code:
<?
session_start();
if(!session_is_registered(meinusername)){
header("location:index.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Aktualisierung der Datenbank</title>
<link rel="stylesheet" type="text/css" href="include/style.css">
</head>
<br><br><br>
<table width="1000" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<?php
include("include/config.php");
$sqldel = 'DELETE FROM `test`';
$delete = mysql_query($sqldel);
$fcontents = file("../".$erlaubte_datei);
echo "<tr><td colspan=\"3\"><b>MySQL lieferte folgendes Ergebnis: </b><br><br></td></tr>";
for ($i = 0; $i < sizeof($fcontents); $i++)
{
$line = trim($fcontents[$i]);
echo "<tr bgcolor=\"#D3D3D3\"><td colspan=\"3\">$line <br></td></tr>";
$arr = explode(";" , $line);
#Wenn die CSV Datei TAB separiert ist, muss "," durch "/t" ersetzt werden
$sql = "insert into test values ('". implode("','",$arr) ."')";
#TABELLENNAME durch den Namen der Tabelle in der Datenbank ersetzen
mysql_query($sql);
echo "<tr bgcolor=\"#32CD32\"><td colspan=\"3\">" . $sql . "<br>\n</td></tr>";
if(mysql_error())
{
echo "<tr bgcolor=\"red\"><td colspan=\"3\">" . mysql_error() . "<br>\n</td></tr>";
}
}
?>
<tr><td colspan="3">
<br><br><center>
<form action="upload.php" method="post">
<input type="submit" value="Zurück" class="eingabefeldgelb">
</form><br><br>
<form action="logout.php" method="post">
<input type="submit" value="Ausloggen" class="eingabefeldrot">
</form>
</td></tr>
<body>
</body>
</html>
Ich hab keine Ahnung, wie ich mein Script umfunktionieren soll, damit dies klappt.
Ich denke mal, dass das genannte Problem hier gelöst werde könnte:
PHP-Code:
$line = trim($fcontents[$i]);
Mit freundlichen Grüßen
sk4r
Kommentar