MySQL Insert problem

Polenta

Well-known member
8 März 2008
212
16
Hallo,

Ich habe ein kleines problem.

Nach absenden eines formulars wird folgender befehl ausgeführt:

PHP:
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
 
Mach doch vorher noch einen SELECT * FROM at_gekauft WHERE kid = '$klamm' Wenn mysql_num_rows 0 ist, gibt es keinen Eintrag, wenn > 0, dann brauchst du nur noch abfragen ob für die kid schon eine aid da ist.
 
wenn dann gleich ein select mit kid und aid. und wenn es ein ergebniss gibt, einfach stadt des insert ein update where kid=kid and aid=aid set menge=menge.

stumpi
 
hi,


und wie würde der passende code aussehen? :D
Hab echt keinen durchblick momentan



mfg
 
Das Feld kid muss UNIQUE sein. Dann sieht das in etwa so aus:

PHP:
INSERT INTO at_gekauft(kid, aid, anteile, aktiv) VALUES($klamm, $id, $menge, 0) ON DUPLICATE KEY UPDATE aid = $id, anteile = anteile + $menge, 0

Greetz

paddya
 
Das Feld kid muss UNIQUE sein. Dann sieht das in etwa so aus:

PHP:
INSERT INTO at_gekauft(kid, aid, anteile, aktiv) VALUES($klamm, $id, $menge, 0) ON DUPLICATE KEY UPDATE aid = $id, anteile = anteile + $menge, 0

Greetz

paddya

er will ja nicht, dass die kid nur einmal vorkommt, sondern dass es zu einer kid nur UNTERSCHIEDLICHE aids gibt heisst: zu einer kid darf eine aid nur einmal vorkommen ;)

Mfg
Sebmaster
 
er will ja nicht, dass die kid nur einmal vorkommt, sondern dass es zu einer kid nur UNTERSCHIEDLICHE aids gibt heisst: zu einer kid darf eine aid nur einmal vorkommen ;)

Mfg
Sebmaster
ganz genau, kid und aid müssen demnach zusammen den schlüssel bilden. keine ahnung wie man das bei mysql abbildet, aber ich bin mir sicher, dass dies möglich ist.

stumpi
 
woher sollte ich das wissen? wenn er eine antwort hat, ist es ja gut. falls aber ein anderer den thread her liest, hilft ihm vielleicht meine antwort. und wenn nicht, habe ich mir halt ne minute für um sonst geopfert, aber das ist ja auch meine sache.

stumpi
 
woher sollte ich das wissen? wenn er eine antwort hat, ist es ja gut. falls aber ein anderer den thread her liest, hilft ihm vielleicht meine antwort. und wenn nicht, habe ich mir halt ne minute für um sonst geopfert, aber das ist ja auch meine sache.

stumpi

war doch nicht speziell auf dich bezogen ;)

lösung: beide keys (aid, kid) müssen unique index sein. Ansonsten lösung von paddya :)

Mfg
Sebmaster