Doppelten DBsatz verhindern

Sandro18

Erfahrenes Mitglied
Hi Leute,

Ich haben nun einen simplen aber "normalerweise" logischem Script geschafft.

Es soll checken und verhindern, das ein 2ter gleicher Datensatz in die DB kommt. Hier der Code:
PHP:
<?
$abfrage = "SELECT member_name FROM members";
if ($HTTP_POST_VARS["member_name"] == $abfrage) 
{
echo "Dieser Nickname ist bereits vergeben!";
}
?>

Seht Ihr vielleicht meinen Leichtsinnsfehler? ;)

Und wo ich schon dabei bin. Wisst Ihr vielleicht wie man es verhindert das sich der Datensatzeinträgt trotz das er falsch ist?

Gruß Sandro & Danke!
 
Hi

nee, so geht das nicht.

Du musst den Datensatz auf das Formularfeld filtern

PHP:
$membername = addslashes($_POST['membername']);
// Select-Statement zum Auslesen der Daten
  $sql = "SELECT membername from members where membername='$membername'";
  $rs = mysql_query($sql);
  $row = mysql_fetch_array($rs); 
  if (mysql_num_rows($rs) == 0) {
	  //Insert
  }else{
	  echo "Fehler, Name ist schon vorhanden";
  }  
  ?>

ist jetzt nicht getestet. Verbindung etc. setze ich mal voraus.

Im weiteren Scriptverlauf fragst Du die mysql_num_rows() ab. Liefern diese einen höheren Wert als 0,nämlich 1, dann existiert der Datensatz. In der Abfrage kannst Du dann entw. das Insert ausführen, eine Fehlermeldung ausgeben oder das Ganze für eine Feldvalidierung verarbeiten. .
 
Zuletzt bearbeitet:
Zurück