php mysql: insert und update in einem file
-
Hi Leutz,
folgende Fragestellung:
zum updaten benutze ich folgenden Code:
// Aktualisieren der Daten: $query="UPDATE morgenbericht SET datum='$datum', bearbeiter='$bearbeiter' WHERE id='$id'";
und folgendes zum includen:
// Neuen Datensatz hinzufügen $query="INSERT INTO morgenbericht ( datum, bearbeiter ) VALUES ( '$datum', '$bearbeiter' )";
Jetzt würde ich gerne eine Datei für beides verwenden und hatte gehofft, dass das include auch so gehen würde:
// Neuen Datensatz hinzufügen $query="INSERT INTO morgenbericht datum='$datum', bearbeiter='$bearbeiter'";
Klappt aber nicht. Gibts da ne andere Möglichkeit um beides mit einer Datei zu machen???
thx, MFG
dope_dope
-
Also so ganz verstehe ich nicht, was du genau willst.
Brauchst du vielleicht eine Art Befehl, der entweder den bestehenden Datensatz aktualisiert oder, wenn er nicht besteht einen neuen anlegt
-
Ich bin faul und da ich nicht, falls sich mal was an den Tabellenfeldern ändert ein Formular für Update und ein Fommular für Insert = 2 Formulare ändern will, möchte ich 1 Formular für beides.
Ich will also nur einmal:datum='$datum', bearbeiter='$bearbeiter'
im Code.
Ich dachte an sowas in der Art, nur mal als Bsp. ist teilweise falsch:
if ($operation=="insert") { $request="INSERT into morgenbericht" } else if ($operation=="update") { $request="UPDATE morgenbericht SET" } querry=" ' . $request . ' datum='$datum', bearbeiter='$bearbeiter' ";
Weißt du jetzzt, was ich meine?
-
Hi dope_dope!
Folgende Funktion sollte den Zweck erfüllen:
<?php $data = array('datum'=>$datum,'bearbeiter'=>$bearbeiter); $sql_query = sql_data_manipulation("morgenbericht", $data, 'update'); //bzw. 'insert' function sql_data_manipulation($table, $data, $mode = 'insert', $where = ''){ if ($mode == 'update'){ $query = "UPDATE $table SET "; foreach($data as $key => $val){ $query.="$key = '$val',"; } $query = substr($query,0,-1); if ($where){ $query.=$where; } }else{ $query = "INSERT INTO $table"; $fields = "("; $vals = "("; foreach($data as $key => $val){ $fields.=$key.","; $vals.="'".$val."',"; } $fields = substr($fields,0,-1).")"; $vals = substr($vals,0,-1).")"; $query.=$fields." VALUES ".$vals; } return $query; } ?>
Solltest du bei einem Update ein "WHERE" brauchen, um nicht die ganze Tabelle zu verändern, einfach die Funktion mit dem optionalen Parameter 4 ($where) aufrufen, zB
$sql_query = sql_data_manipulation("morgenbericht", $data, 'update', "WHERE id='1'");
Eventuelle Fehler bitte verzeihen, bin grad erst aufgestanden
-
Sind keine Fehler drin, funktioniert prima!
Vielen Dank, MFG
dope_dope
-
Un wen nman einen UPDATE,INSERT braucht nimmt man einfach REPLACE