[php/mysql] INSERT annuleren als er eenzelfde record reeds b

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
Het volgende is het 'probleem':

Ik wil data naar een database tabel schrijven, maar als deze data reeds bestaat als record is het niet nuttig om deze data er nogmaals heen te schrijven. Daarom wil ik graag een foutmelding geven wanneer dit het geval is..

Ik ben al even aan het zoeken geweest en kwam wel wat antwoorden tegen als "Query uitvoeren aan de hand van input en dan mysql_num_rows() checken", maar dat is dus niet wat ik zoek..

Eigenlijk ben ik op zoek naar net zoiets als bij CREATE: IF EXISTS. Het gaat nu dus niet om wanneer 1 veld hetzelfde is. De input bestaat uit 5 velden, en wanneer veld2, veld3, veld4 en veld5 bijvoorbeeld gelijk zijn aan een reeds bestaand record, moet ik een foutmelding krijgen!

:?

Acties:
  • 0 Henk 'm!

Verwijderd

Maak een UNIQUE INDEX over de velden die samen uniek moeten zijn. De primary key is ook altijd een unieke combinatie natuurlijk.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik zie niet in waarom je dat niet gewoon zo wilt doen :?

PHP:
1
2
3
4
$sql = "SELECT id FROM tabel WHERE veld1='...' AND veld2='...' AND veld3='...' AND veld4='...' AND veld5='...'";
$result = mysql_query($sql)or die(mysql_error());

$return = mysql_num_rows($result) != '0' ? TRUE : FALSE;


Want leg anders eens uit waarom je zonodig iets als "IF EXISTS" zou willen hebben, terwijl daar gewoon geen commando voor is in MySQL...

Of ik moet je verkeerd begrijpen, maar leg het dan eens wat duidelijker uit.

[ Voor 35% gewijzigd door Verwijderd op 20-06-2003 20:19 . Reden: Typo ]


Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
veldopties
intIdPrimary, Unique
veld2..
veld3..
veld4..
veld5..

^zoals het is/was
En nu dus iedere veld UNIQUE maken ?
Want leg anders eens uit waarom je zonodig iets als "IF EXISTS" zou willen hebben, terwijl daar gewoon geen commando voor is in MySQL...

Of ik moet je verkeerd begrijpen, maar leg het dan eens wat duidelijker uit.
Ik hou nou eenmaal van korte en efficiente code.. Stel je voor dat je ditzelfde hebt met 50 velden.. Dan moet je die superlange query 2x opbouwen voor SELECT & daarna evt INSERT (lelijk). En als er een eenvoudigere oplossing zou zijn, waarom daar geen gebruik van te maken ?

[ Voor 55% gewijzigd door r0bert op 20-06-2003 20:21 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Als je je probleem uitlegt, zou je het misschien wel op een geheel andere manier kunnen doen.

Want ik neem aan dat je al lang en breed op www.mysql.com hebt gezocht en niets hebt kunnen vinden over een statement/commando dat hetgeen doet wat jij zou willen.

Dus daarom snap ik je vraag niet echt, iig de reden/manier niet.

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

elke veld uniek maken lijkt mij niet de bedoeling, wat je waarschijnlijk wel uniek wilt hebben is de combinatie van verschillende velden bij elkaar.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1