grisu
11-12-2003, 12:07
Hallo Leute !
Also ich bin im Moment am Ende mit meinem Latein, vielleicht kann mir einer von euch helfen?
Ich mchte einzelne Felder einer Artikeltabelle in mysql aus einer csv-Datei aktualisieren.
Dabei steht nicht von vornherein fest, welche es sind. Mal die und mal die halt. Dafr hab ich auf der ersten php-Seite folgenden Code :
if(isset($tabelle)){
$result = mysql_query("SELECT * FROM $tabelle");
$menge = mysql_num_fields($result);
print "<form action="dateiauswahl.php" method="GET">";
for($y=0;$y<$menge;$y++){
$felds = mysql_field_name($result,$y);
print "
<input type="Checkbox" name="dbfeld[]" value="$y;$felds">$y - $felds</input><br>";
}
print "
<input type="Submit" name="wirklich" value="Felder aktualisieren">
<input type="Hidden" name="tabelle" value="$tabelle">
</form>
";
}
Soweit so gut, die Feldnamen bekomme ich wunderbar in den Array gelesen. Mein Problem hier ist,
dass ich ja auch den Feldindex brauche, also 1. Feld = 0 usw. und zwar nur fr die Felder, die
ich auch wirklich im Formular auswhle. Fge ich ein hidden-Feld mit $y als Inhalt ein, gibt er
mir die gesamte Nummerierung. Ich hab also mal testweise $y mal mit in den value von $dbfeld
packt.
___________________________________________________________________
Auf der nchsten Seite whle ich die csv-datei aus :
<form enctype="multipart/form-data" action="edit_ergebnis.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="500000">
(...)
<input type="file" class="Feld" name="userfile">
(...)
<td colspan="2">
<?php
foreach($dbfeld as $wert){
print "<input type="Hidden" name="dbfeld[]" value="$wert"> ";
}
?>
<input type="Hidden" name="tabelle" value="<?php print $tabelle;?>">
<input type="Submit" class="Button" name="aendern" value="Daten aktualisieren">
(...)
Also hier luft alles wunderbar... zum Glck
______________________________________________________________________
Und jetzt kommt das Sorgenkind :
Als erstes wollte ich den Array von $dbfeld auflsen um den Index vom Feldnamen zu
trennen :
foreach($dbfeld as $wert){
$neu = explode(";",$wert);
foreach($neu as $feld){
$nr = $feld[0];
$feldn = $feld[1];
print "Nummer = $nr und Feldname = $feldn<br>";
}
}
und das ist das Ergebnis von print in meinem Browser :
Nummer = 0 und Feldname =
Nummer = A und Feldname = r
Nummer = 1 und Feldname =
Nummer = A und Feldname = n
Nummer = 2 und Feldname =
Nummer = X und Feldname = K
Nummer = 3 und Feldname =
Nummer = X und Feldname = K
Nummer = 4 und Feldname =
Nummer = X und Feldname = K
Also vlliger Unsinn und ich weiss nicht woher er kommt. Fr den richtigen Query
brauch ich aber doch den Index um die korrekten Spalten in der csv-datei auszuwhlen
oder ?
Vielleicht schttelt ihr jetzt den Kopf und sagt das geht doch vieeeeeeeel
einfacher...
Vielen Dank schon im voraus fr eure Hilfe, jeder Lsungsansatz ist mir willkommen...
Also ich bin im Moment am Ende mit meinem Latein, vielleicht kann mir einer von euch helfen?
Ich mchte einzelne Felder einer Artikeltabelle in mysql aus einer csv-Datei aktualisieren.
Dabei steht nicht von vornherein fest, welche es sind. Mal die und mal die halt. Dafr hab ich auf der ersten php-Seite folgenden Code :
if(isset($tabelle)){
$result = mysql_query("SELECT * FROM $tabelle");
$menge = mysql_num_fields($result);
print "<form action="dateiauswahl.php" method="GET">";
for($y=0;$y<$menge;$y++){
$felds = mysql_field_name($result,$y);
print "
<input type="Checkbox" name="dbfeld[]" value="$y;$felds">$y - $felds</input><br>";
}
print "
<input type="Submit" name="wirklich" value="Felder aktualisieren">
<input type="Hidden" name="tabelle" value="$tabelle">
</form>
";
}
Soweit so gut, die Feldnamen bekomme ich wunderbar in den Array gelesen. Mein Problem hier ist,
dass ich ja auch den Feldindex brauche, also 1. Feld = 0 usw. und zwar nur fr die Felder, die
ich auch wirklich im Formular auswhle. Fge ich ein hidden-Feld mit $y als Inhalt ein, gibt er
mir die gesamte Nummerierung. Ich hab also mal testweise $y mal mit in den value von $dbfeld
packt.
___________________________________________________________________
Auf der nchsten Seite whle ich die csv-datei aus :
<form enctype="multipart/form-data" action="edit_ergebnis.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="500000">
(...)
<input type="file" class="Feld" name="userfile">
(...)
<td colspan="2">
<?php
foreach($dbfeld as $wert){
print "<input type="Hidden" name="dbfeld[]" value="$wert"> ";
}
?>
<input type="Hidden" name="tabelle" value="<?php print $tabelle;?>">
<input type="Submit" class="Button" name="aendern" value="Daten aktualisieren">
(...)
Also hier luft alles wunderbar... zum Glck
______________________________________________________________________
Und jetzt kommt das Sorgenkind :
Als erstes wollte ich den Array von $dbfeld auflsen um den Index vom Feldnamen zu
trennen :
foreach($dbfeld as $wert){
$neu = explode(";",$wert);
foreach($neu as $feld){
$nr = $feld[0];
$feldn = $feld[1];
print "Nummer = $nr und Feldname = $feldn<br>";
}
}
und das ist das Ergebnis von print in meinem Browser :
Nummer = 0 und Feldname =
Nummer = A und Feldname = r
Nummer = 1 und Feldname =
Nummer = A und Feldname = n
Nummer = 2 und Feldname =
Nummer = X und Feldname = K
Nummer = 3 und Feldname =
Nummer = X und Feldname = K
Nummer = 4 und Feldname =
Nummer = X und Feldname = K
Also vlliger Unsinn und ich weiss nicht woher er kommt. Fr den richtigen Query
brauch ich aber doch den Index um die korrekten Spalten in der csv-datei auszuwhlen
oder ?
Vielleicht schttelt ihr jetzt den Kopf und sagt das geht doch vieeeeeeeel
einfacher...
Vielen Dank schon im voraus fr eure Hilfe, jeder Lsungsansatz ist mir willkommen...