Problem bei Anmeldescript

Raze

CHARGIN MAH LAZER
ID: 116848
L
6 Mai 2006
294
28
Guten Abend,

Ich habe vor einigen Wochen wieder mit dem Programmieren angefangen, und mitlerweile stehe ich an meinem größten problem^^

Ich möchte überprüfen ob der Name mit dem man sich anmelden will, schon vergeben ist.

der code dazu ist folgender:

PHP:
$NAbfrage= "SELECT COUNT(ID) as anzahl FROM  benutzer WHERE name = '$Name'";

mysql_connect ($Host, $UName, $DBPw) or die
    ("Keine Verbindung moeglich");
    $verbindung= mysql_connect ($Host, $UName, $DBPw);
    mysql_select_db("$DBName") or die
    ("Keine Datenbank vorhanden");

$Anzahl = mysql_result($NAbfrage,"anzahl");
if ($Anzahl>'0') {
echo "Diese E-Mail Adresse ist bereits angemeldet!";
}
mysql_close($verbindung);
die fehlermeldung ist folgende:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource

in der zeile
PHP:
$Anzahl = mysql_result($NAbfrage,"anzahl");
ich hab schon alles ausprobiert was ich weiß, und ein freund der sich mit php sehr gut auskennt weiß auch nicht mehr wo der fehler liegen könnte.

vllt weiß es ja einer von euch ;)

Vielen Dank im vorraus und guts Nächtle :)
 
Ich kann dir so einfach nicht sagen, woran es liegt, was vielleicht an der späten Stunde liegt, aber versuch es doch mal mit diesem Code, ist ein bisschen länger, aber sollte funktionieren, wenn es nicht ein inhaltlicher Fehler deiner Query ist.

PHP:
$abfrage = "SELECT * FROM benutzer WHERE name = '$Name'";
        $ergebnis = mysql_query($abfrage);
                 $anzahl = mysql_num_rows($ergebnis);
if ($anzahl>'0') {

usw.
 
PHP:
$Anzahl = mysql_result(mysql_query($NAbfrage),0,"anzahl");

wenn den query nicht abschickst, kann da auch kein wert rauskommen :)

oder probiers mal so:

PHP:
if(mysql_num_rows(mysql_query("select id from ..... where name='name' or emailadresse='email'"))!=0)
{echo "Benutzername oder E-Mail adresse existiert bereits";}
else
{
... und weiter gehts...
}

*alles ohne Garantie *g
 
PHP:
$Anzahl = mysql_result(mysql_query($NAbfrage),0,"anzahl");
wenn den query nicht abschickst, kann da auch kein wert rauskommen :)

oookay, man sollte wirklich um 3 Uhr nachts nicht auf PHP-Fragen antworten, dann fällt einem sowas auch auf *g*

@delicious: bei deinem Script würde aber falsch rauskommen, wenn der Benutzername mit DER Emailadresse schon existiert, wenn sich also ein Benutzer aus versehen nochmal anmelden will oder? Ich meine, das mit der "or" Anweisung nimmt PHP sehr ernst. Kann mich aber auch täuschen.
 
Jetzt Funktioniert es :D big thx euch beiden ;)

ich hab echt alles ausprobiert, aber das ich das mysql_query vergessn hab, is mir jetz echt peinlich....

naja dafür mache ich diesen fehler jetz nich mehr.^^

mfg Raze
 
if ($anzahl>'0') {[/PHP]
oO. Soll ich noch mehr sagen? Ok, tu ich mal, sonst versteht das nicht jeder. Die 0 hast du als String geschrieben, willst aber gucken ob der Integar $anzahl größer als 0 ist. Seitwann kann man das bei Strings?
Ich hoffe das is verständlich erklärt^^
 
Einen String schreibt man in Anführungszeichen. Die 0 wurde in Anführungszeichen gesteckt und war deswegen ein String. $anzahl ist aber nen Integer (is aber eigentlich unwichtig, da man bei Strings kein "kleiner/größer als" Zeichen braucht). Du kannst also folglich keine Strings mit Integern vergleichen.
 
Ne sry ich versteh grad nicht richtig was du meinst^^
aber das script funktioniert jetz so wie es is ;)
der text war auch nich wirklich an dich gerichtet, bzw. hat nix mit deinem problem zu tun.

flaschenkind meinte, dass man integer (zahl) nicht mit nem string (zeichenkette, wort etc.) vergleichen kann - und deshalb das posting von stex generell nich hätte funktionieren können.

quasi:
wenn irgend ein wert, grösser als 0 ist. und hier stell dir bsp. die null nicht als zahl, sondern mal als O (<< ooh) vor. geht halt nicht.

z.b. ob 100 > delicious, weiss niemand ^^, weil man zahlen und wörter nich vergleichen kann.

aber solange´s funzt is ja okay :) *g
 
Macht mich nur fertig ;)

Tut mir leid, das ist mir in der Nacht nicht aufgefallen und ich habe später nicht darauf geachtet, aber danke für die Berichtigung ;)