Fehler in der Datenbank: 1062Duplicate entry '296' for key 2

item:
Bitte, bitte den Code in [PHP]mein Code[/PHP] setzen

item:
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
[PHP] [MySQL] Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.

item:
Der Fehler sagt doch aus, dass die ID schon vergeben ist....

Nachtrag:
Du machst nie einen Update. Direkt vor der if() Abfrage setzt du $knr=0.
PHP:
$knr=0;
if ($knr>0) {

Nachtrag 2:
Du kannst dir das ganze auch kürzen mit INSERT INTO ... ON DUPLICATE KEY UPDATE
SQL:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
 
Zuletzt bearbeitet von einem Moderator:
Yaslaw will dir damit sagen das du den Anweisungsblock wesentlich kürzer schreiben kannst.

Schau dir mal diese Seite an http://dev.mysql.com/doc/refman/5.1/de/insert-on-duplicate.html. Da wird die Methode wie das geht auch beschrieben.

Die SQL-Anweisung müsste dann so aussehen:

SQL:
INSERT INTO tltaq_tuiagenturen (quell_agt_nr, vkanal_nr, vkanal_name1, name2, str_name, postleitzahl,
ort_name, tel, fax, vkanal_koop_bez, vkanal_kette_bez, vkbezeichnung, umsatzendstand2005,
aktuelle_entwicklung) VALUES (296, 232, 'IT-Reisebüro GmbH', '', 'Friedrichstr. 74', '76456',
'Kuppenheim', '+49 7222 49802', '+49 7222 47495', 'QTA', 'TUI Best Travel Premimum', 'BEST RMG AG',
'1893298', '0.20530121') ON DUPLICATE KEY UPDATE quell_agt_nr = 296, vkanal_nr = 232, vkanal_name1 = 'IT-Reisebüro GmbH', usw. usw. usw.

Die Update Anweisung davor kannst du dir dann komplett sparen.
 
Zuletzt bearbeitet:
Es klappt imer noch nicht,könnten jemand noch anschauen,was und wo ich Fehler gemacht habe bitte
 
Zuletzt bearbeitet:
item:
Bitte, bitte den Code in [PHP]mein Code[/PHP] setzen

item:
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
Welchen der 2 Punkte hast du nicht verstanden? Ich erkläre dir gerne Beide detailierter.

Nachtrag:
Wenn man das ganz mal formatiert, erkennt man den Fehler ganz einfacht
1) ein ' zuviel oder zu wenig
2) im UPDATE-Teil sollte die key-Fkleder nciht emrh drin stehen. Die will man ja nicht verändern

SQL:
INSERT INTO tltaq_tuiagenturen (
    quell_agt_nr,
    vkanal_nr,
    vkanal_name1,
    name2,
    str_name,
    postleitzahl,
    ort_name,
    tel,
    fax, 
    vkanal_koop_bez,
    vkanal_kette_bez,
    vkbezeichnung,
    umsatzendstand2005,
    aktuelle_entwicklung) 
VALUES(
    '296',
    232',
    'IT-Reisebüro GmbH',
    ' ',
    'Friedrichstr. 74',
    '76456',
    'Kuppenheim',
    '+49 7222 49802',
    '+49 7222 47495',
    'QTA',
    'TUI Best Travel Premimum',
    'BEST RMG AG',
    '1893298',
    '0.20530121')
ON DUPLICATE KEY UPDATE 
    quell_agt_nr = 296,
    vkanal_nr = 232,
    vkanal_name1 = 'IT-Reisebüro GmbH',
    name2 = ' ',
    str_name = 'Friedrichstr. 74',
    postleitzahl ='76456',
    ort_name ='Kuppenheim',
    tel ='+49 7222 49802',
    fax ='+49 7222 47495',
    vkanal_koop_bez = 'QTA',
    vkanal_kette_bez = 'TUI Best Travel Premimum',
    vkbezeichnung = 'BEST RMG AG',
    umsatzendstand2005 = '1893298',
    aktuelle_entwicklung = '0.20530121'
 
Zuletzt bearbeitet von einem Moderator:
Bis jetzt hab alles geklappt und es wäre schön und noch dankbar,wenn sie mir sagen oder schreiben,wie man die Zeile von die geführte Daten springen könnte ich habe gleiche Werte in 16 Tabellen.
Danke
 
Zurück