Hallo,
ich arbeite gerade an einem Dienstplan den ich mittels php/ajax realisiere.
Ich verwende ajax um die mitarbeiter auf die entsprechenden Positionen zu per Drag&Drop zu schieben.
Ich habe allerdings momentan das Problem, das jedesmal wenn ich einen Mitarbeiter verschiebe er alle Datensätze ändert neu in die Datenbank schreibt bzw sie ersetzt.
An sich kein Problem, allerdings ändert er auch das Datum wann ich den Mitarbeiter eingetragen habe. Und sobald ich einen ändere, ersetzt er das Datum auch bei allen anderen Mitarbeitern.
Gibt es eine Möglichkeit vor dem Insert/Update den Datensatz mit dem in der DB zu verlgeichen und nur dann den Insert/Update auszuführen wenn diese sich unterscheiden?
Habe durch Google nicht wirklich was gefunden ( Oder nur nach dem falschen gesucht
)
Hier mal der Code der wohl relevant sein dürfte
Danke schonmal im vorraus!!
ich arbeite gerade an einem Dienstplan den ich mittels php/ajax realisiere.
Ich verwende ajax um die mitarbeiter auf die entsprechenden Positionen zu per Drag&Drop zu schieben.
Ich habe allerdings momentan das Problem, das jedesmal wenn ich einen Mitarbeiter verschiebe er alle Datensätze ändert neu in die Datenbank schreibt bzw sie ersetzt.
An sich kein Problem, allerdings ändert er auch das Datum wann ich den Mitarbeiter eingetragen habe. Und sobald ich einen ändere, ersetzt er das Datum auch bei allen anderen Mitarbeitern.
Gibt es eine Möglichkeit vor dem Insert/Update den Datensatz mit dem in der DB zu verlgeichen und nur dann den Insert/Update auszuführen wenn diese sich unterscheiden?
Habe durch Google nicht wirklich was gefunden ( Oder nur nach dem falschen gesucht

Hier mal der Code der wohl relevant sein dürfte
PHP-Code:
function update_db($data_array) {
foreach($data_array AS $set => $items)
{
$i = 0;
foreach($items AS $item)
{
$item = mysql_escape_string($item);
$set = mysql_escape_string($set);
$datum = substr($set, 7, 10);
$mit = substr($set, 0, 3);
$datmit = substr($set, 3, 10);
$bereich_lag = substr($set, 0, 3);
$eingetragen = date("Y.m.d");
if($bereich_lag == "655") {
$bereich = substr($set, 0, 5);
$zeit = substr($set, 5, 2);
$uhrzeit = "$zeit:00:00";
if($mit != 'mit'){
mysql_query("INSERT INTO Dienstplan (Id, Datum, Uhrzeit, Nummer, Bereich, Prioritaet, eingetragen) VALUES (NULL, '$datum', '$uhrzeit', '$item', '$bereich', '$i', '$eingetragen') ON DUPLICATE KEY UPDATE Bereich='$bereich', Datum='$datum', Uhrzeit='$uhrzeit', Prioritaet='$i', eingetragen='$eingetragen'");
} else {
mysql_query("DELETE FROM Dienstplan WHERE Nummer='$item' AND Datum='$datmit' ");
}
} else {
$bereich = substr($set, 0, 3);
$stunde = substr($set, 3, 2);
$minute = substr($set, 5, 2);
$uhrzeit = "$stunde:$minute:00";
if($mit != 'mit'){
mysql_query("INSERT INTO Dienstplan (Id, Datum, Uhrzeit, Nummer, Bereich, Prioritaet, fuhrpark, eingetragen) VALUES (NULL, '$datum', '$uhrzeit', '$item', '$bereich', '$i', '1', '$eingetragen') ON DUPLICATE KEY UPDATE Bereich='$bereich', Datum='$datum', Uhrzeit='$uhrzeit', Prioritaet='$i', fuhrpark='1', eingetragen='$eingetragen'");
} else {
mysql_query("DELETE FROM Dienstplan WHERE Nummer='$item' AND Datum='$datmit' ");
}
}
$i ++;
}
}
}
Kommentar