MySQL || Kontrollieren ob Wert schon existiert

woni

Mitglied
Hallo, ich hab folgendes Problem:

Ich hab eine Datenbank in die über ein Post-Formular Werte geschrieben werden, dabei habe ich eine Tabelle, in der ein Wert nur einmal vorkommen darf.
Das schaff ich auch noch, indem ich die Tabelle einfach auf Unique setze, aber wie teile ich dann dem User mit, das die Eintragung nicht erfolgreich war?

MfG woni
 
Hi!

Indem Du eine SQL-Abfrage ausführst und bei positivem Ergebnis eine Meldung, oder eine Rückleitung auf das Eingabeformular erstellst.
Ärgerlich natürlich, wenn alle Eingaben aus dem Formular ins Nirvana verschwinden. Das ist leider sehr unterschiedlich, wie die Browser das handeln.

Wenn es sich bei dem Wert um z.B. einen Login-Namen handelt, biete dem Seitenbesucher lieber ein kleines Popup-Formular zum vorherigen Testen an.

$sql = "SELECT * FROM deinetabelle WHERE deinfeld = '$das_zu_prüfende_Formularfeld'";
$result = mysql_query($sql);
$num = mysql_affected_rows();

if($num > 0)
{
echo "Gibt es schon!";
zrück ...
}
else
{
echo "OK";
und weiter ...
}
 
Gerade bei solchen Abfragen würde ich die Lösungsmengen auf ein Minimum beschränken:
PHP:
<?php
	[…]
	$query = "
		SELECT
		        COUNT(*) AS `anzahl`
		  FROM
		        `tabelle`
		  WHERE
		        `spalte` = 'wert'
	";
	$result = mysql_query($query);
	$row = mysql_fetch_array($result, MYSQL_ASSOC);

	if( $row['anzahl'] > 0 ) {
		[…]
	} else {
		[…]
	}
	[…]
?>
 
Zurück