Hallo Leute,
ich habe volgendes Problem!
ich habe eine csv Datei die so aufgebaut ist:
A B C D E F G H I
1 123 eee fds jad kzt aha bdy goi hed
2 123 eee fds jad kzt aha bdy goi hed
3 123 eee fds jad kzt aha bdy goi hed
4 123 eee fds jad kzt aha bdy goi hed
Also abcd... sind halt die spalten und 1234.... sind die zeilen.
In jeder Spalte steht was.
Meine SQL ist so aufgebaut:
--
-- Tabellenstruktur für Tabelle `artikel`
--
CREATE TABLE `artikel` (
`artikelnr` varchar(10) collate latin1_german2_ci NOT NULL,
`artikel` varchar(60) collate latin1_german2_ci NOT NULL,
`hersteller` varchar(30) collate latin1_german2_ci NOT NULL,
`herstellernr` varchar(60) collate latin1_german2_ci NOT NULL,
`eancode` varchar(30) collate latin1_german2_ci NOT NULL,
`warengruppe` varchar(30) collate latin1_german2_ci NOT NULL,
`netto` varchar(20) collate latin1_german2_ci NOT NULL,
`status` varchar(20) collate latin1_german2_ci NOT NULL,
`beschreibung` varchar(500) collate latin1_german2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
--
-- Daten für Tabelle `artikel`
--
Spalte A soll in artikelnr gespeichert werden
Spalte B in artikel
usw.
Ein datensatz steht in einer Zeile, D.H. die PHP soll jede
Zeile als einen Datensatz in die Datenbank abspeichern.
Hier mein PHP versuch:
So wird die csv zwar angezeigt aber nicht gespeichert.
Habe schon alles mögliche ausprobiert, funst aber alles leider nicht.
Was mache ich falsch und wie kann ich diesen text oprimieren?
Ich bin ratlos, daher bitte ich Euch um hilfe.
ich habe volgendes Problem!
ich habe eine csv Datei die so aufgebaut ist:
A B C D E F G H I
1 123 eee fds jad kzt aha bdy goi hed
2 123 eee fds jad kzt aha bdy goi hed
3 123 eee fds jad kzt aha bdy goi hed
4 123 eee fds jad kzt aha bdy goi hed
Also abcd... sind halt die spalten und 1234.... sind die zeilen.
In jeder Spalte steht was.
Meine SQL ist so aufgebaut:
--
-- Tabellenstruktur für Tabelle `artikel`
--
CREATE TABLE `artikel` (
`artikelnr` varchar(10) collate latin1_german2_ci NOT NULL,
`artikel` varchar(60) collate latin1_german2_ci NOT NULL,
`hersteller` varchar(30) collate latin1_german2_ci NOT NULL,
`herstellernr` varchar(60) collate latin1_german2_ci NOT NULL,
`eancode` varchar(30) collate latin1_german2_ci NOT NULL,
`warengruppe` varchar(30) collate latin1_german2_ci NOT NULL,
`netto` varchar(20) collate latin1_german2_ci NOT NULL,
`status` varchar(20) collate latin1_german2_ci NOT NULL,
`beschreibung` varchar(500) collate latin1_german2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
--
-- Daten für Tabelle `artikel`
--
Spalte A soll in artikelnr gespeichert werden
Spalte B in artikel
usw.
Ein datensatz steht in einer Zeile, D.H. die PHP soll jede
Zeile als einen Datensatz in die Datenbank abspeichern.
Hier mein PHP versuch:
So wird die csv zwar angezeigt aber nicht gespeichert.
PHP-Code:
<?php
include ("vars.php");
//liest dir deine datei in ein array "Funst glaube ich richtig"
$array = file('artikel.csv');
//Array zeilenweise abarbeiten. "Geht"
foreach($array as $row)
{
$fields=explode(';',$row); //teilt dir deine reihe in spalten auf - trenner =;
// ab in die datenbank ? "hier komme ich nicht weiter"
$aendern = "UPDATE artikel Set 1= '$artikelnr[0]', 2= '$artikel[1]', 3
'$fields[1]' WHERE art = '$fields[2]'\n";
$update = mysql_query($aendern);
//giebt aus... "Aber stimmt irgendwie noch nicht ganz"
echo "<b><br>erstes feld: ".$fields."<br></b>";
print_r($fields);
}
?>
Was mache ich falsch und wie kann ich diesen text oprimieren?
Ich bin ratlos, daher bitte ich Euch um hilfe.
Kommentar