ich schlage mich seit 3 Tagen mit dem Update von Datenbanktabellen rum.
Aufgabe ist es, aus einer Hilfstabelle Werte zu holen und in andere Tabellen zurückzuschreiben mittels UPDATE-Befehl.
Problem dabei sind die Werte in den Variablen $frist1 bis $frist8. Nach dem Auslesen aus der Hilfstabelle steht in diesen eine Zeichenkette im Format 0000-00-00. Diese Zeichenkette und soll in eine andere vorhandene Tabelle im gleichen Format in ein Datenbankfeld vom Typ DATE zurückgeschrieben werden. Dies klappt nicht.
Was mache ich falsch? Der Code ist angefügt mit entsprechenden Kommentarzeilen
- Code: Select all
<?php
error_reporting(E_ALL);
$server = "localhost";
$user = "root";
$passwort = "******";
$datenbank = "verwaltung";
$verbindung = mysql_connect($server, $user, $passwort) or die ("Es konnte keine Verbindung hergestellt werden!");
mysql_select_db($datenbank, $verbindung) or die ("Die Datenbank existiert nicht!");
// suche in der Hilfstabelle _01 alle Eintraäge
$suche = mysql_query("SELECT * FROM _01");
while($row = mysql_fetch_row($suche))
{
// weisst den Variablen die Werte aus der Hilfstabelle zu
$vorgangsnummer = $row[0];
$frist1 = $row[1];
$frist2 = $row[2];
$frist3 = $row[3];
$frist4 = $row[4];
$frist5 = $row[5];
$frist6 = $row[6];
$frist7 = $row[7];
$frist8 = $row[8];
$aktenzeichen = $row[9];
// schreibe die Daten in die entsprechende Tabelle
$ersetzen = mysql_query("UPDATE `$aktenzeichen` SET frist1 = '$frist1',
frist2 = '$frist2',
frist3 = '$frist3',
frist4 = '$frist4',
frist5 = '$frist5',
frist6 = '$frist6',
frist7 = '$frist7',
frist8 = '$frist8' WHERE vorgangsnummer = '$vorgangsnummer'");
// Kontollanzeige - alle Werte sind gefüllt
echo "$frist1<br>";
echo "$frist2<br>";
echo "$frist3<br>";
echo "$frist4<br>";
echo "$frist5<br>";
echo "$frist6<br>";
echo "$frist7<br>";
echo "$frist8<br>";
echo "___________________________<br>";
// in der Variable frist1 steht 2012-01-10 in die Datenbank geschrieben wir in das Feld frist1 mit dem Type DATE 2012-06-01
// in der Variable frist2 steht 2012-04-10 das Feld frist2 mit dem Typ DATE wird aber mit 0000-00-00 aktualisiert
// Variablen frist3 bis frist8 sind gefüllt. Datenbankfelder in der Tabelle werden nicht aktualisiert
// leeren aller Variablen um Fehler in der while-Schleife zu vermeiden
$vorgangsnummer = "";
$frist1 = "";
$frist2 = "";
$frist3 = "";
$frist4 = "";
$frist5 = "";
$frist6 = "";
$frist7 = "";
$frist8 = "";
$aktenzeichen = "";
}
?>
Gruß Steffen