Hallo phpers,

ik ben bezig met een rechten module maar loop tegen een mysql probleem aan. Ik zou het kunnen oplossen met 2 qeury's maar ik ben van mening dat het met 1 kan vandaar dat ik al een tijdje aan het klote ben.

Ik heb nu de volgende mysql query:

('REPLACE INTO ktgg (groep_id,gebruiker_id) VALUES ("'.$groep[0].'","'.$id.'");');

Wat de bedoeling is dat als de combi groep_id en gebruiker_id bestaan dat hij ze overschrijft of niks doet maar als ze niet bestaan dat hij ze aanmaakt.

Ik weet dat de replace functie ze aanmaakt maar tot nu werkt dat nog niet echt.

Ik hoop dat iemand me kan helpen.

Groeten,

Lennart
Ja daar ben ik al mee aan het stoeien geweest maar kreeg het niet werkent, zoals hij nu werkt pakt hij iedere keer de laatste rij en werkt hij die bij. Ik heb ook het gevoel dat er een WHERE statement bij moet maar dan krijg ik errors.
Lennart schreef op 25.01.2009 12:01
Wat de bedoeling is dat als de combi groep_id en gebruiker_id bestaan dat hij ze overschrijft of niks doet maar als ze niet bestaan dat hij ze aanmaakt.
En je hebt wel een UNIQUE constraint aangebracht op die combinatie van kolommen?
MySQL handleiding
REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.

Ik heb beide kolommen wel UNIQUE gemaakt maar hoe doe ik een combi van die 2?

EDIT:
IK heb het gevonden in phpmyadmin de kolommen selecteren en dan uniek maken. Je bent geweldig! Bedankt voor de tip!
Tip: Schrijf je eigen SQL, daar heb je veel meer aan:

CREATE UNIQUE INDEX 
  naam_van_de_index
ON
  tabelnaam(
    kolom_a,
    kolom_b
);

Dit geeft je veel meer controle en veel meer mogelijkheden dan met een brak stuk ellende zoals PhpMyAdmin.

Reageren