INSERT query schnell zu UPDATE query machen

breytex

Mitglied
Hallo zusammen.
Hab nen (Zeit-)Problem...

Habe ein MySQl-Query in der Form:
Code:
INSERT INTO test (`1`,`2`,`3`) VALUES ( '1','2','3')

Das Problem daran ist jetzt, dass dieses query insgesamt 104 Values hat, die alle durch komische Variablen in das Query eingesetzt werden.
( Ich muss einem Script eine "Edit-Funtkion" geben, welches ich selbst nicht geschrieben habe )

Meine Frage ist nun: Wie kann ich schnell aus diesem laaaaangen Insert-Query ein Update-Query machen? Anders gefragt:
Gibt es für das Updatequery eine solche Möglichkeit?

Code:
UPDATE test (`1`,`2`,`3`) VALUES ( '1','2','3')
... womit ich einfach die Values und die Zurdnung vom Inert übernehmen könnte?

lG
breytex
 
Hi,

Hab nen (Zeit-)Problem...
wer hat das nicht ;)

Zu Deinem Thema solltest Du beachten das ein INSERT nicht vergleichbar mit einem UPDATE ist.
UPDATE - Anweisung modifiziert vorhandene Einträge. Du mußt in der WHERE Bedingung die Referenz setzen also etwa so.
SQL:
update t_kabel set a_strecke = 99 
where a_strecke >= 10 
commit;
Außerdem ist mir nicht klar ob in Deiner Edit - Aktion immer ALLE 104 values geholt werden müssen. Ich meine es reicht doch das auf Spaltenebene zu machen oder?
Aber egal ich würde immer jeden angefragten Datensatz prinizibiell löschen, und dem User die alten Werte präsentieren damit er die überschreiben kann (in diesem Fall dann wieder ein INSERT!).
Achtung: Das kannst Du aber nur machen wenn der Ausgewählte Datensatz KEINE weiteren referenziellen Integritäten hat!.

Etwa so:

PHP:
<?php
$link=mysyl_connect();
mysql_select_db("test");
$anfrage="SELECT * FROM `t_deine_tabelle` WHERE ID = $eingabe;";
$ergebnis=mysql_query($anfrage);
$anfrage="delete from `t_deine_tabelle`  where ID = $eingabe commit;"
mysql_query($anfrage);
$zeile=mysql_fetch_row($ergebnis);
// Hier kommt die Ausgabe
// .
// .
// .
// .
// .
echo "Attribut 104: <INPUT type='text' name='104' value='$zeile[103]'>";
mysql_free_result($ergebnis); //
mysql_close($link);
?>

<INPUT type = "submit" value="Aendern">
<INPUT type = "reset" value="Zuruecksetzen">

Leider hast Du nicht geschrieben in welcher Programmiersprache Du das machen möchtest. Ich weis auch nicht ob meine COMMIT oben zu früh ist, was ist wenn die Verbindung zum Client unterbrochen wird....
Ist halt nur so eine Idee.

Für PHP ist der schlüssel die mysql_free_result() funktion. Damit geben wir den reservierten Speicherbereich frei, Mit den neuen Eingabewerten wird ein Parameterstring erzeugt und and den Server geschickt wenn die Schaltfläsche "Aendern" betätigt wird.

Viel Spaß
 
Zuletzt bearbeitet:
Zurück