hallo,
hab gerade versucht, das import-tool von thomas fleißner aus der bib einzubauen und stoße auf ein seltsames problem:
die csv wird hochgeladen und zwischengespeichert
der inhalt der csv wird angezeigt
x einträge wurden importiert werden angezeigt
ABER:
es wird nur der letzte eintrag der csv in die db geschrieben???
die db`s haben alle rechte und ansonsten habe ich auch nix am perl geändert?!
über einen hinweis würde ich mich freuen!
lg
markus
...........................................................
<perl>
$link="/cgi-bin/baseportal.pl?htx=/foto/import"; ### Dein link
$db="fotos"; ### Deine Datenbank
######## Hier wird die *.csv auf die import datenbank geladen und auf die temp aufgesplittet
put ["csv",$csv],"import";
get "Id==$_Id","import";
out "$csv";
if ($csv ne "")
{
@line=split/\n/,get("/bp-files/$csv");
foreach(@line)
{
($feld1,$feld2)=split/;/,$_;
put ["feld1",$feld1,"feld2",$feld2],"temp";
}
########
######## splitten und put ende
out "<form action=\"$link&act=auswahl\" name=\"aufgehts\" method=\"post\" enctype=\"multipart/form-data\">";
out "<input type=\"checkbox\" name=\"kopfzeile=\" value=\"1\"> Erste Zeile als Kopfzeile";
out "<table border=1><tr>";
############ Auswahl für Felder die in der $Db gespeichert sind
for(1..2)
{
out "<td><select name=\"save_feld$_=\">";
out "<option value='nicht_definiert'>nicht_definiert</option>";
get "Id=*","$db.fields","felder";
while (get_next("felder"))
{
foreach(keys %_loop)
{
out "<option value='$_loop{$_}'>$_loop{$_}</option>" if ($_ eq "Field" && $_loop{$_} ne "Id");
}
}
out "</select></td>";
}
###########
out "</tr>";
########## Anzeige des inhaltes von csv zu Kontrolle und zur richtigen auswahl der Felder
get "Id==*","temp";
while(get_next("temp"))
{
out "<tr>";
for(1..2)
{
$a="feld$_";
out "<td>$$a</td>";
}
out "</tr>";
}
out "</table>";
out "<input type=submit value=Import></form>";
##########
}else
{
out "Sorry- Upload nicht vollständig";
}
}elsif ($act eq "auswahl")
########## übergabe in die Datenbank wo die csv hin soll
$no_error="0";
$error="0";
get "Id==*","temp";
while(get_next("temp"))
{
$zeile=$zeile+1;
for(1..2)
{
$a="save_feld$_";
$b="feld$_";
if ($$a eq "nicht_definiert" || $$a eq "")
{
next;
}
$_put{$$a}=$$b;
}
$_put{_amount}=1;
if ($kopfzeile eq "1" && $zeile eq "1")
{
}else
{
$no_error=$no_error+1 if ($_put{Galerienr} ne ""); ## zählen der erfolgreichen einträge
$error=$error+1 if ($_put{Galerienr} eq ""); ## zählen der nicht erfolgreichen einträge
}
}
put undef,$db if ($_put{Galerienr} ne "");
out "$no_error wurden importiert";
out "<br><font color=red>$error wurden nicht importiert</font>" if ($error>0);
del "Id==*";
del "Id==*","temp";
del "Id==*";
del "Id==*","temp";
########## Upload der csv Datei
out "<form action=\"$link&act=save\" method=\"post\" enctype=\"multipart/form-data\">";
out "<font size=0><input type=radio name=\"_filec_csv=\" value=1 checked> No file<input type=radio name=\"_filec_csv=\" value=2>New file: <input name='csv:=' type='file' onfocus='a=this.form.elements; for(i=0; i<a.length; i++) if(a[i].name==this.name) break; a[i-1].checked=1;'>";
out "<br><input type=submit value=Import>";
out "</form>";
}
</perl>
...........................................................