Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Insert problem
StephenKing
26.07.2008, 22:42
Hallo,
Ich habe ein kleines problem.
Nach absenden eines formulars wird folgender befehl ausgeführt:
mysql_query("INSERT INTO at_gekauft(kid, aid, anteile, aktiv) VALUES('$klamm', '$id', '$menge', '0')");
da dies die Datenbank schnell füllt, würde ich es gerne so haben,
das vor dem befehl abgefragt wird ob es schon einen eintrag gib.
es soll geprüft werden, ob die übergebene kid schon einen eintrag
mit der übergebenen aid hat.
falls nun ein eintrag gefunden wurde soll nur ein UPDATE gemacht werden.
Hoffe das ich mich verständlich ausgedrückt habe.
mfg
so ??
db_query ('UPDATE at_gekauft(kid, aid, anteile, aktiv) VALUES('$klamm', '$id', '$menge', '0')" WHERE uid = '.$_POST['uid']);
StephenKing
26.07.2008, 22:56
hi,
der update befehl ist klar :biggrin1:
Mir geht es um die vorherige abfrage ob ein passender eintrag vorhanden ist.
mfg
sorry wenn ich es nur kurz beschreibe
db=daten
if daten vorhanden= sql update
else sql_insert
also ne ganzeinfache if schleife dafür
DimpleX
Sebmaster
27.07.2008, 00:33
sorry wenn ich es nur kurz beschreibe
db=daten
if daten vorhanden= sql update
else sql_insert
also ne ganzeinfache if schleife dafür
DimpleX
jetzt nur noch in code:
db_query('UPDATE.... ['usw']');
if (mysql_affected_rows() == 0) {
db_query('INSERT....');
}
EDIT: gremlins lösung ist besser... allerdings ginge dann auch schon der replace befehL :D
Hi,
du kannst auch einen PRIMARY KEY oder UNIQUE INDEX auf das Feld / die Felder legen welche einmalig sein sollen und dann mit ON DUPLICATE KEY arbeiten.
Wenn z.B. das Feld kid einen PRIMARY KEY hat und somit nur 1x vorhanden sein kann sähe das so aus:
mysql_query("INSERT INTO at_gekauft(kid, aid, anteile, aktiv) VALUES('$klamm', '$id', '$menge', '0')
ON DUPLICATE KEY UPDATE anteile=anteile+$menge");
Bei dem Update kannste natürlich dann auch noch mehrere Felder per Komme trennen wie bei jedem normalen Update auch. Es ist ungetestet aber so in der Art sollte es funktionieren, ansonsten mal kurz bei im Mysql Manual lesen.
war ja klar @Gremlin du must es immer perfektionieren
DimpleX
StephenKing
27.07.2008, 12:55
Wenn z.B. das Feld kid einen PRIMARY KEY hat und somit nur 1x vorhanden sein kann sähe das so aus:
hi,
Leider ist in der tabelle kein feld welches nur 1x vorhanden sein darf.
mfg
Mehrere Felder gehen auch z.B. kid/aid einfach UNIQUE INDEX oder PRIMARY KEY drauf und es geht.
StephenKing
27.07.2008, 14:17
hi,
wenn ich beide felder jetzt setze wie ,uss der der dann aussehen?
es muss imme kid und aid zusammenpassen.
mfg
Sebmaster
27.07.2008, 14:23
hi,
wenn ich beide felder jetzt setze wie ,uss der der dann aussehen?
es muss imme kid und aid zusammenpassen.
mfg
genau der selbe ;)
StephenKing
07.08.2008, 20:27
hi,
thx hier kann dann zu.
mfg
auf wunsch der erstellers:
:closed:
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.