Wert aus Array in MYSQL Abfrage übergeben

Nasenbaer1963

Grünschnabel
Hallo Alle,
vorsicht, absoluter Anfänger :)

Ich will aus einer CSV Datei Datena uslesen und in die Datenbank übergeben.
Die Daten sind korrekt im Array vorhanden, das erkenne ich an einer Echo Ausgabe die ich davor und danach ausführe.

echo $data[3];

wenn ich jedoch den Datensatz mit
$query ="SELECT * FROM products WHERE products_model = " . "'$data[1]'";
$result = mysql_query($query);
$line = mysql_fetch_array($result);

Wird auch der korrekte Datensatz gefunden. Wenn ich dann den Datensatz aktuallisieren möchte mit:

$abfrage2 = "UPDATE products SET products_image=.'$data[3]'";
$ok = mysql_query($abfrage2);

Wird jedoch $data[15] eingetragen, hat jemand ne Vorstellung warum?
Wenn ich danach ein echo $data[3]; ausführe wird auch das korrekte angezeigt.
 
$abfrage2 = "UPDATE products SET products_image=.'$data[3]' where products_model = " . "'$data[1]'";
 
Danek für deine Antwort, habe es gleich getestet, aber dann steht 0 drin.

das wird ausgegeben bei Überprüfung mit:

echo $abfrage2;
echo $data[3];

UPDATE products SET products_image=.'s3053.jpg' where products_model = '5900308553053'
s3053.jpg

die Nummer aus products_model passt zu dem Datensatz aber
 
Zuletzt bearbeitet:
Danke dir, Punkte müssten viel größer sein :-)
Nun speichert er zwar einen Wert, ich sage mal es ist irgendeine Artikel Nummer.

s3053.jpg <----------- $data[3] vorm eintragen
1 <----------- Der Datensatz wird gefunden ID korrekt
UPDATE products SET products_image='s3053.jpg' <----------- Inhalt von $abfrage2; mit Echo ausgegeben
s3053.jpg <----------- $data[3] nach dem eintragen mit Echo

Eingetragen in den Datensatz wurde 4890808018675.jpg ist irgendeine Artikel Nummer aus $data[1]

Ich spring noch aus dem Fenster, da ich wie erwähnt totaler Anfänger bin, habe ich verschiedene Kombinationen schon probiert mit einem ähnlichen Erfolg. Weshalb stimmt $data[3] vorher und danach, nur während des Eintragens nicht.
Das kann ja Heiter werden ich muss danach noch weiter Tabellen in Abhängigkeit davon befüllen.
 
Hier mal der komplette Code, ok noch etwas durcheinander da ich viel probiert habe, zum Schluss kann das auf wenige Zeilen reduziert werden. Ich muss mir halt noch alles anzeigen lassen damit ich sehe es klappt.

<?php
include ('dboeffnen.php'); //Datenbak öffnen
$handle = fopen ("test.csv","r"); // Datei zum Lesen öffnen
$merk = fgetcsv ($handle, 1000, ";"); // FÜr Bildschirmausgabe die Namen der Felder erfassen

while ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ) { // Daten werden aus der Datei in ein Array $data gelesen
echo "<br />"; // Anfang der Bildschirmausgabe
echo "-------------------------------------------------------------------------------";
echo "<br />";

$num = count ($data);
echo strtoupper(($merk[0])) . " : ";
echo ($data[0]);
echo "<br />";
echo strtoupper(($merk[1])) . " : ";
echo ($data[1]);
echo "<br />";
echo strtoupper(($merk[2])) . " : ";
echo ($data[2]);
echo "<br />";
echo strtoupper(($merk[3])) . " : ";
echo ($data[3]);
echo "<br />";
echo strtoupper(($merk[4])) . " : ";
echo ($data[4]);
echo "<br/>"; // Ende der Bildschirmausgabe
$query =("SELECT * FROM products WHERE products_model = '$data[1]'"); // Datensatz zum ändern suchen
$result = mysql_query($query);
$line = mysql_fetch_array($result);
echo mysql_error();
echo "<br />"; // Bildschirmausgabe zur Kontrolle
echo $data[3];
echo "<br />";
echo "**********************************";
echo "<br />";
Echo $line['products_id']; // Die Ausgabe ist korrekt der Datensatz wird gefunden
echo "<br />";
echo "**********************************";
echo "<br />"; // Ende Bildschirmausgabe zur Kontrolle
$abfrage2 = ("UPDATE products SET products_image='$data[3]'"); // Kontrolle Ausgabe korrekt: s3053.jpg
echo $abfrage2; // Kontrolle Ausgabe: UPDATE products SET products_image='s3053.jpg'
$ok = mysql_query($abfrage2);
$abfrage2 = ("UPDATE products SET products_ean = '$data[0]'");
$ok = mysql_query($abfrage2);
echo "<br />";
echo $data[3]; // Kontrolle Ausgabe korrekt: s3053.jpg
}
fclose ($handle);
?>
 
Hast du dich noch nicht gewundert warum bei anderen Beiträgen der Code so schön formatiert und lesbar ist?
Es gibt hier im Forum sogenannte BBCodes, womit jeder Code vernünftig lesbar/nachvollziehbar für andere angezeigt werden kann.
[ php ] hier PHP code [ /php ]
ohne die Leerzeichen in den Klammern.
 
Hallo Nasenbaer1963,

PHP:
$abfrage2 = "UPDATE products SET products_image = '$data[3]', products_ean = '$data[0]' WHERE products_model = '$data[1]'";

Gruß
 
Zurück