Hallo Leute !
Also ich bin im Moment am Ende mit meinem Latein, vielleicht kann mir einer von euch helfen?
Ich möchte 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. Dafür hab ich auf der ersten php-Seite folgenden Code :
PHP-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 für die Felder, die
ich auch wirklich im Formular auswähle. Füge 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 nächsten Seite wähle ich die csv-datei aus :
Code:
<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 läuft alles wunderbar... zum Glück
______________________________________________________________________
Und jetzt kommt das Sorgenkind :
Als erstes wollte ich den Array von $dbfeld auflösen um den Index vom Feldnamen zu
trennen :
Code:
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 :
Code:
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 völliger Unsinn und ich weiss nicht woher er kommt. Für den richtigen Query
brauch ich aber doch den Index um die korrekten Spalten in der csv-datei auszuwählen
oder ?
Vielleicht schüttelt ihr jetzt den Kopf und sagt das geht doch vieeeeeeeel
einfacher...
Vielen Dank schon im voraus für eure Hilfe, jeder Lösungsansatz ist mir willkommen...