Hoe kan je kijken of een bepaald veld al in de database staat zodat deze niet wordt overschreven?
SELECT ... FROM ... WHERE ...
Als jij iets INSERT en je werkt met een unieke prim. key zal niks worden overschreven volgens mij.
nee idd, dan geeft ie een duplicate errror for entery .....
Hoe maak je dan een nette fouthandeling?
Bijvoorbeeld: De opgegeven id bestaat al, kies een andere
if(iddatabase == opgegevenid){
//bestaat al
die();
}
Lekker duidelijk Kalle :)

Als je een duplicate entry krijgt, geeft MySQL een error nummer mee, die kan je opvragen dmv [php]mysql_errno[/php]()

Edit
Een duplicate entry geeft errno 1062 terug...
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in *** on line **

Deze error krijg je dan dus.
En hoe zet je deze dus om... (graag in nederlands ;) )

Dus iets met mysql_errno ?
mysql_query($query) or die (mysql_errno() . ": " . mysql_error('Er is een fout opgetreden'));

Met deze code krijg ik dus als ik twee keer het zelfde invul wat niet mag: deze waarschuwing:
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in ***.php on line 150
1062:

Maar ik wil dus dat hij zegt: Dit id is al bezet, kies een ander.
<?php
$query = "SELECT veld FROM tabel WHERE unieke_veld = 'unieke_veld'";
$res = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($res) != 0) {
echo "Bestaat al";
} else {
//voeg row toe
}
?>

Zoeits gebruik ik.. ( kijk zelf even na, niet getest )
Ik hoop dat het duidelijkiss.??
Arian schreef op 09.07.2006 17:29
mysql_query($query) or die (mysql_errno() . ": " . mysql_error('Er is een fout opgetreden'));

Met deze code krijg ik dus als ik twee keer het zelfde invul wat niet mag: deze waarschuwing:
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in ***.php on line 150
1062:

Maar ik wil dus dat hij zegt: Dit id is al bezet, kies een ander.


<?
if (mysql_errno(je query dinges) == 1062) {
echo "jou error ( iets van Dit id is al bezet,, of wat wou je?";
} else {
//zet er een row bij
}
?>

Reageren