Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mysql Datensätze vor Insert vergleichen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Mysql Datensätze vor Insert vergleichen?

    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
    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($set710);
                   
    $mit substr($set03);
                   
    $datmit substr($set310);
                    
    $bereich_lag substr($set03);
                    
    $eingetragen date("Y.m.d");
            
                    if(
    $bereich_lag == "655") {
                         
    $bereich substr($set05);
                           
    $zeit substr($set52);
                           
    $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($set03);
                           
    $stunde substr($set32);
                           
    $minute substr($set52);
                           
    $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 ++;
        }
      }

    Danke schonmal im vorraus!!

  • #2
    Naja, wenn du die Mitarbeiter "verschieben" kannst und eh' Ajax verwendest, kannst doch auch einfach den Elementen der
    Mitarbeiter eine ID verpassen und diese per JavaScript/Ajax an das PHP-Script übergeben.
    Dann machst eben nur noch ein
    Code:
    UPDATE tabelle SET xxx WHERE id=übergebene_id
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Zitat von Arne Drews Beitrag anzeigen
      Naja, wenn du die Mitarbeiter "verschieben" kannst und eh' Ajax verwendest, kannst doch auch einfach den Elementen der
      Mitarbeiter eine ID verpassen und diese per JavaScript/Ajax an das PHP-Script übergeben.
      Dann machst eben nur noch ein
      Code:
      UPDATE tabelle SET xxx WHERE id=übergebene_id
      Ja die Elemente haben schon eine eindeutige ID, problem ist nur das sämtlicher Inhalt übergeben wird. Ich weiss auch nicht genau wie ich nur auf die geänderten Elementen zugreifen kann. Bin was AJAX angeht blutiger anfänger und nutze ein fertiges Script was ich nur angepast habe.

      In meinem Fall habe ich das Problem nun aber mit einer IF-Abfrage gelöst. Ist nicht die beste möglichkeit aber das passt schon

      Kommentar

      Lädt...
      X