PHP lässt daten mehrfach in mysql eintragen

deadline

Erfahrenes Mitglied
hi,
ich bin gerade dabei, ein forumscript zu coden. Nun, das ist nicht weiter schlimm. Die Datenbank und Tabellen werden erfolgreich erstellt...
Nun möchte ich einen User "Admin" eintragen. Ein paar if strukturen verhindern dass der User doppelt eingetragen wird, oder dass die Daten verändert werden.
Aber das funktioniert nicht. Wenn die Daten vorhanden sind, sollte es eigentlich nicht mehr eingetragen werden. Stattdessen habe ich 20 User namens Admin in der Datenbank. Da ich schon sehr müde war als ich das gecodet habe kann es sein dass ich völligen Mist gebaut habe. Auch nach 5 maligem durchsuchen und neucoden kam ich immer noch nicht drauf was da falsch ist.
Ich hoffe ihr könnt mir helfen, denn viele Augen sehen bekanntlich mehr als zwei.

Hier der PHP code:
PHP:
<?
require($_SERVER['DOCUMENT_ROOT']."/i-page/settings/settings.inc.php");
require($_SERVER['DOCUMENT_ROOT']."/i-page/settings/functions.inc.php");
//passwort generieren
$pwd = pwd_create();
 
$connect = mysql_connect("localhost");
 
$string = "select * from ".$prfix."i_page_user".$suffix." where `username` = `Admin`";
$ergebnis = mysql_db_query($dbname, $string, $connect);
if($ergebnis == true) {
	$user_exists = true;
	$message5 = "User Admin ist schon vorhanden und wurde <u>nicht</u> eingetragen";
}
else {
	 $insert = "INSERT INTO ".$prfix."i_page_user".$suffix."(username, passwort, locked, rechte)
	values ('Admin', $pwd, 'false', 1)";
	$result = mysql_db_query($dbname, $insert, $connect);
	if($result) {
		$user_exists = true;
		$message5 = "User Admin war nicht vorhanden und wurde eingetragen";
	}
		else{
			$user_exists = false;
			$message5 = "User Admin war nicht vorhanden und wurde nicht eingetragen";
	}
}
echo "$message5";
?>

Noch ein Hinweis am schluss:
Alle Variablen enthalten die richtigen Werte.

Ich danke allen, die sich zumindest den Text durchgelesen haben =)
und mir helfen wollen.
mfg
Chris
 
Code:
`username` = `Admin`
....besser so:
Code:
`username` = 'Admin'
...und dann nicht nachschauen, ob die Abfrage erfolgreich(true) ist, sondern ob sie ein Ergebnis geliefert hat([phpf]mysql_num_rows[/phpf])
 
ich hab meinen Home PC zu einem Server umgewandelt und ich connecte über localhost ohne passwort und so, da ich es net anders eingestellt habe...
die verbindung klappt, sonst hätte ich ja nicht 20 gleiche einträge in der Datenbank
Danke für den Tipp mit dem num_rows...
ich werds mal ausprobieren
 
PHP:
<?php

	require $_SERVER['DOCUMENT_ROOT'].'/i-page/settings/settings.inc.php';
	require $_SERVER['DOCUMENT_ROOT'].'/i-page/settings/functions.inc.php';

	$connect = mysql_connect('localhost');

	$query = "
		SELECT
		        1
		  FROM
		        `".$prfix."i_page_user".$suffix."`
		  WHERE
		        `username` = 'Admin'
		";
	if( mysql_num_rows(mysql_db_query($dbname, $query, $connect)) > 0 ) {
		$user_exists = true;
		$message5 = 'User Admin ist schon vorhanden und wurde <em>nicht</em> eingetragen';
	} else {
		$query = "
			INSERT INTO
			        `".$prfix."i_page_user".$suffix."` 
			  SET
			        `username` = 'Admin',
			        `passwort` = '".pwd_create()."',
			        `locked`   = 'false',
			        `rechte`   = 1
			";
		if( !$result = mysql_db_query($dbname, $query, $connect) ) {
			$user_exists = true;
			$message5 = 'User Admin war nicht vorhanden und wurde eingetragen';
		} else {
			$user_exists = false;
			$message5 = 'User Admin war nicht vorhanden und wurde nicht eingetragen';
		}
	}
	echo $message5;

?>

du musst doch auch noch das pw und den benutzernamen angeben oder?
Nein, selbst die Angabe des Servers ist optional (siehe mysql_connect()-Funktion).
 
Ihr seid echt klasse... =)
habs jetzt so gelöst, vielleicht kann jemand anders damit was anfangen:

PHP:
$string = "select * from ".$prfix."i_page_user".$suffix." where `username` = 'Admin'";
$ergebnis = mysql_db_query($dbname, $string, $connect);
$zahl = mysql_num_rows($ergebnis);
if($zahl < 1) {
	   $insert = "INSERT INTO ".$prfix."i_page_user".$suffix."(username, passwort, locked, rechte)
	   values ('Admin', $pwd, 'false', 1)";
	   $result = mysql_db_query($dbname, $insert, $connect);
	   if($result) {
		   $message5 = "User Admin war nicht Vorhanden und wurde eingetragen";
		   $user_exists = true;
	   }
	   else {
		   $user_exists = false;
		   $message5 = "User Admin war nicht vorhanden und wurde <u>nicht</u> eingetragen";
	   }
}
else {
	$message5 = "User Admin war schon Vorhanden und wurde <u>nicht</u> eingetragen";
}
echo $message5;

und es funktioniert einwandfrei
Danke an alle die mir geholfen haben
mfg
chris
 
Zurück