[PHP/MySQL]Überprüfen ob Datensatz in Tabelle schon vorhanden ist?

StefanR

Erfahrenes Mitglied
Hallo ich habe da ein kleines Problem und zwar habe ich in einer Tabelle Datensätze, die nur einmal vorkommen dürfen (außer die ID), so das Feld habe ich auch mit UNIQUE "ausgestattet", aber wie kann ich das jetz überprüfen, ob der Datensatz schon vorhanden ist und ne Warnmeldung ausgben und nicht die von MySql entstandene Fehlermeldung?

Ich hoffe ihr könnt mir folgen.

Gruß
 
PHP:
<?php
$sName = $_POST['sName'];

$iResult = mysql_query("SELECT `alleswasdubrauchst`
                        FROM `tabelle`
                        WHERE `name`='".$sName."';");

if (mysql_num_rows($iResult) != 0) {
    ?>Warnung: Name schon vorhanden!<?php
}

Nur mal so als Beispiel, du kannst natürlich auch mehrere Spalten nehmen.
 
Wenn Du den Constraint Unique richtig eingebaut hast, kann der Datensatz ja nicht in der Datenbank gespeichert werden.

SQL gibt dann einen Fehlerzurück, denn du mit PHP ja abfangen kannst und in einen für den User verständliche Aussage umwandelst wie oben z.B. "Datensatz schon .vorhanden." oder "Datensatz mit blabla schon vorhanden." etc.
 
Was der letzte Herr damit meint ist :

PHP:
mysql_query("INSERT INTO tabelle VALUES ('1','Name')");
if(mysql_errno()==1062) echo "Datensatz bereits vorhanden";
elseif(!mysql_errno()) echo "Fehler in MySQL : ".mysql_error();


Hoffe das entspricht dem was du willst :)

Jona
 
Original geschrieben von Nils Adomeit
Was der letzte Herr damit meint ist :

PHP:
mysql_query("INSERT INTO tabelle VALUES ('1','Name')");
if(mysql_errno()==1062) echo "Datensatz bereits vorhanden";
elseif(!mysql_errno()) echo "Fehler in MySQL : ".mysql_error();



Hoffe das entspricht dem was du willst :)

Jona

Ja genau sowas habe ich gesucht. Danke :)

Ähm und was hat die 1 in deinem erstem VALUE zu bedeuten?
 
Zurück