Username vergleich mit Datenbank

Virussoul hat gesagt.:
Also, ich geb dir mal ein paar tipps, bin zu müde jetzt noch den ganzen code umzuschreiben und rein zu schreiben.
Na dann:
Schreib mal eine Funktion zum E-Mail-Adressen chechen, gibts viele, brauchst also nichmal selbst programmieren. Dann ist deine frage, wie kannst du probieren ob der username schon existiert?
PHP:
<?php
$sql = "SELECT COUNT(username) AS Anzahl_U, COUNT(email) AS Anzahl_E FROM ".$tabuser." WHERE username = ".$_POST['username'];
$result = mysql_fetch_array($sql, MYSQL_ASSOC);
if(($result['Anzahl_U'] == 0) AND ($result['Anzahl_E'] == 0)) echo "Username und Email gibts noch nicht"; 
elseif(($result['Anzahl_U'] == 0) OR ($result['Anzahl_E'] >= 1)) echo "Username gibts noch nicht, denk dir einen anderen aus ;-)"; 
elseif(($result['Anzahl_U'] >= 1) AND ($result['Anzahl_E'] == 0)) echo "Email gibts noch nicht, such dir eine andere ;-)"; 
else echo "Usernamen und Email gibts leider schon, such dir bitte einen neuen";
?>
Hf damit.
Ich such dann mal weiter nach uml tuts, blöde schule, it wird immer schwerer -.-

Ps: Sorry, erst jetzt gelesen wegen email addy, dass das noch dazu kommt.

Irgendwie versteh ich das nicht und copy und paste bekomme ich ich net angepasst das es :(

Also es haut irgendwie nicht hin ich bekome jetzt die ne fehler meldung:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web95/html/pages/ppo/admin/DB_register.php on line 36
Username und Email gibts noch nicht


Ich brauch da hilfe sonst krig ich das nie hin

PHP-CODE schaut so aus:

PHP:
<?php

// öffnen der DB_open.php

include("DB_open.php");
include_once("funktionen.php");

// Variablen die übergeben wurden definieren

$username 	= 	$_POST["username"];			// Benutzername = Nickname
$email 		= 	$_POST["email"];                        // Email Adresse
$register_date 	= 	$_POST["datum"];                	// Registrierungsdatum
$register_time 	= 	$_POST["register_time"];                // Registrierungsuhrzeit
$register_day 	= 	$_POST["register_day"];                 // Registrierungstag

//Passwort Generieren
$conso=array("b","c","d","f","g","h","j","k","l","m","n","p","r","s","t","v","w","x","y","z"); 	// Konsonanten
$vocal=array("a","e","i","o","u");								// Vokale
$count=array("1","2","3","4","5","6","7","8","9");						// Zahlen
$password="";
srand ((double)microtime()*1000000);
for($f=1; $f<=3; $f++) {										// Schleife für das Passwort
$password.=$conso[rand(0,19)];
$password.=$vocal[rand(0,4)];
$password.=$count[rand(0,8)];
}
// Zum server connecten

$verbindung = @mysql_connect($db_server, $db_user, $db_password) or die ("Zugriff auf $db_server nicht möglich...");

// Die Datenbank auswählen
mysql_select_db($name_datenbank, $verbindung) or die ("Fehler beim Zugriff auf $name_datenbank...");

//eingaben Überprüfen
$sql = "SELECT COUNT(username) AS Anzahl_U, COUNT(email) AS Anzahl_E FROM ".$tabUser." WHERE username = ".$_POST['username'];
$result = mysql_fetch_array($sql, MYSQL_ASSOC);
if(($result['Anzahl_U'] == 0) AND ($result['Anzahl_E'] == 0)) echo "Username und Email gibts noch nicht";
elseif(($result['Anzahl_U'] == 0) OR ($result['Anzahl_E'] >= 1)) echo "Username gibts noch nicht, denk dir einen anderen aus ;-)";
elseif(($result['Anzahl_U'] >= 1) AND ($result['Anzahl_E'] == 0)) echo "Email gibts noch nicht, such dir eine andere ;-)";
else echo "Usernamen und Email gibts leider schon, such dir bitte einen neuen";



				$eingabenOK = checkGueltigesDatum($datum);		// Datumscheck
				if($eingabenOK == true)                                 // Wenn Datumsformatierung richtig
				{
				$register_date = datum_normal2db($register_date);			// Datumsformatierung

// Daten in die Datenbank schreiben
					$result = mysql_query("INSERT INTO $tabUser (username, email, password, register_date, register_time, register_day)
					VALUES ('$username', '$email', '$password', '$register_date', '$register_time', '$register_day')");
         				$var = mysql_insert_id();

// hier kommt noch email versand und weiterleitung
?>
 
Guten morgen ;)
War wohl gestern doch etwas zu müde, denn es hat sich nochmal ein kleiner Fehler eingeschlichen, was nie passieren dürfte
Änder mal:
PHP:
$sql = "SELECT COUNT(username) AS Anzahl_U, COUNT(email) AS Anzahl_E FROM ".$tabUser." WHERE username = ".$_POST['username'];
in
PHP:
$sql = mysql_query("SELECT COUNT(username) AS Anzahl_U, COUNT(email) AS Anzahl_E FROM ".$tabUser." WHERE username = ".$_POST['username']);
ab und schau nach was passiert :)
Also jetzt müsste es stimmen, falls nich, schreib einfach nochmal ;)
mfg

Ps: @Gumbo, ich bin nicht Flex :p
 
Leider nein immernoch fehler meldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
PHP:
<?php
//eingaben Überprüfen
$sql = mysql_query("SELECT COUNT(username) AS Anzahl_U, COUNT(email) AS Anzahl_E FROM ".$tabUser." WHERE username = ".$_POST['username']);
$result = mysql_fetch_array($sql, MYSQL_ASSOC);
if(($result['Anzahl_U'] == 0) AND ($result['Anzahl_E'] == 0)) echo "Username und Email gibts noch nicht";
elseif(($result['Anzahl_U'] == 0) OR ($result['Anzahl_E'] >= 1)) echo "Username gibts noch nicht, denk dir einen anderen aus ;-)";
elseif(($result['Anzahl_U'] >= 1) AND ($result['Anzahl_E'] == 0)) echo "Email gibts noch nicht, such dir eine andere ;-)";
else echo "Usernamen und Email gibts leider schon, such dir bitte einen neuen";


?>
Zeile 36 ist die:
PHP:
$result = mysql_fetch_array($sql, MYSQL_ASSOC);

:)

hilfe ich bekomms immernoch nicht hin :)
 
Probier mal Folgendes:
PHP:
$query = '
	SELECT
	        COUNT(`username`) AS `Anzahl_U`,
	        COUNT(`email`)    AS `Anzahl_E`
	  FROM
	        `'.$tabUser.'
	  WHERE
	        `username` = "'.mysql_real_escape_sting($_POST['username']).'"
	';
$result = mysql_query($query)
	or die(mysql_error());   // zur einfachen Fehleranalyse
$row = mysql_fetch_array($query, MYSQL_ASSOC);
if( $row['Anzahl_U'] == 0 && $result['Anzahl_E'] == 0 ) {
	echo 'Username und E-Mail gibts noch nicht';
} elseif( $row['Anzahl_U'] == 0 || $row['Anzahl_E'] >= 1 ) {
	echo 'Username gibts noch nicht, denk dir einen anderen aus ;-)';
} elseif( $row['Anzahl_U'] >= 1 && $row['Anzahl_E'] == 0 ) {
	echo 'E-Mail gibts noch nicht, such dir eine andere ;-)';
} else {
	echo 'Usernamen und E-Mail gibts leider schon, such dir bitte einen neuen';
}
 
hab den fehler gefunden, danke
aber deins teste ich auch mal :)

bei deiner lösung kam:
Fatal error: Call to undefined function: mysql_real_escape_sting() in /srv/www/htdocs/web95/html/pages/ppo/admin/DB_register.php on line 42


mir ist aufgefallen das die andrere lösung irgendwie net wenn die email schon vorhanden ist da sagt er mir immer "email noch nichtr vorhanden"
 
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' = "Rene"' at line 5

---------

Ich verstehs einfach net ich bekomms nicht hin :)

Reen86 hat gesagt.:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' = "Rene"' at line 5

---------

Ich verstehs einfach net ich bekomms nicht hin :)

PHP:
<?php
$query = '
    SELECT
            COUNT(`username`) AS `Anzahl_U`,
            COUNT(`email`)    AS `Anzahl_E`
      FROM
            `'.$tabUser.'
      WHERE
            `username` = "'.mysql_escape_string($_POST['username']).'"
    ';
$result = mysql_query($query)
    or die(mysql_error());   // zur einfachen Fehleranalyse
$row = mysql_fetch_array($query, MYSQL_ASSOC);
if( $row['Anzahl_U'] == 0 && $result['Anzahl_E'] == 0 ) {
    echo 'Username und E-Mail gibts noch nicht';
} elseif( $row['Anzahl_U'] == 0 || $row['Anzahl_E'] >= 1 ) {
    echo 'Username gibts noch nicht, denk dir einen anderen aus ;-)';
} elseif( $row['Anzahl_U'] >= 1 && $row['Anzahl_E'] == 0 ) {
    echo 'E-Mail gibts noch nicht, such dir eine andere ;-)';
} else {
    echo 'Usernamen und E-Mail gibts leider schon, such dir bitte einen neuen';
}



				$eingabenOK = checkGueltigesDatum($datum);		// Datumscheck
				if($eingabenOK == true)                                 // Wenn Datumsformatierung richtig
				{
				$register_date = datum_normal2db($register_date);			// Datumsformatierung

// Daten in die Datenbank schreiben
					$result = mysql_query("INSERT INTO $tabUser (username, email, password, register_date, register_time, register_day)
					VALUES ('$username', '$email', '$password', '$register_date', '$register_time', '$register_day')");
         				$var = mysql_insert_id();
?>

mysql:
Client API version 4.0.15
 
Zurück