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



## StefanR (7. Dezember 2003)

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ß


----------



## Fabian H (7. Dezember 2003)

```
<?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.


----------



## Ralph (8. Dezember 2003)

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.


----------



## Nils Hitze (8. Dezember 2003)

Was der letzte Herr damit meint ist : 


```
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


----------



## StefanR (8. Dezember 2003)

> _Original geschrieben von Nils Adomeit _
> *Was der letzte Herr damit meint ist :
> 
> *
> ...



Ja genau sowas habe ich gesucht. Danke 

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


----------



## Nils Hitze (8. Dezember 2003)

Die war einfach nur als Beispieldatensatz.


----------

