dedlfix: online DB mysql UPDATES in der Schleife

Beitrag lesen

Tach!

wieso macht dieses Skript nicht was es soll?

Dazu muss zunächst einmal herausgefunden werden, was es denn konkret falsch macht.

	for($i=1; $i < count($ueb)-1 ; $i++){

Bist du sicher, dass die Schleife mit dem zweiten Element beginnen und auch das letzte Element auslassen soll?

		$SQL = "UPDATE kopie_artikel SET preis = '$werte[1]',MENGE_AKT = '$werte[2]', MENGE_MIN ='$werte[3]', Beschaffungszeit ='$werte[4]' ,last_update = NOW() WHERE id = '$werte[0]'";

Das Statement sieht defekt aus, weil kein Kontextwechsel beachtet wird. Oder hast du anderweitig sichergestellt, dass die Werte keine Zeichen enthalten, die einen ungewollten String erzeugen?

Außerdem werden einige Werte wie Strings behandelt, die dem Feldnamen nach Zahlen sind.

		$res = mysqli_query($ConnectHnd,$SQL);

Warum wertest du $res nicht aus, um zu sehen, ob ein Fehler auftrat oder nicht? Beachte, dass in $res neben false auch 0 stehen kann, was im booleschen Kontext wie false gewertet wird.

Es wird kein Fehler angezeigt.

Ist überhaupt einer aufgetreten?

Mach ich was falsch?

Anscheinend. Außerdem ist deine Schleife ein klassischer Anwendungsfall für die Verwendung von Prepared Statements.

dedlfix.