problem mit mysql_fetch_object()

cni

Mitglied
Thread Starter
Mitglied seit
14.10.2004
Beiträge
27
hallo zusammen

ich bin php am lernen und bin am verzweifeln.
kann mir jemand helden, bekomme diesen fehler

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /moskqpeq/www.mosser.ch/mcdonald/form.php on line 15


das ist der coder


<?

anmelden($fertig, $user, $password1, $password2, $email);

function anmelden ($fertig, $user, $password1, $password2, $email)
{
include("config.php");

if($fertig) {
$abfrage1 = mysql_query("SELECT user FROM login");
while ($row = mysql_fetch_object($abfrage1)) {
if ($row->user==$user) {
echo "Dieser Benutzer existiert schon!";
exit;
}
}
if ($user=="" OR $password1=="" OR $password2=="" or $email=="") {
echo "Sie haben mindestens ein Feld nicht ausgefüllt!";
}
else if ($password1!=$password2) {
echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
}
else {
$anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
echo "Erfolgreich angemeldet! Sie können sich nun einloggen:<br>";
@login();
}
}
else {
echo "<h2>Anmelden</h2>";
echo "<form method=\"POST\" action=\"$PHP_SELF?anmelden=yes&fertig=yes\">";
?>
<table cellspacing="1" cellpadding="2" border="0">
<tr>
<td><font size="2">Benutzername:</font></td>
<td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><font size="2"><input type="password" name="password1" value=""></font></td>
</tr>
<tr>
<td><font size="2">Wiederholen:</font></td>
<td><font size="2"><input type="password" name="password2" value=""></font></td>
</tr>
<tr>
<td><font size="2">E-Mail:</font></td>
<td><font size="2"><input type="text" name="email" value="">&nbsp;</font></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=Anmelden></td>
</tr>
</table>
</form>
<?
}

}
?>

danke
 

aguilera

Mitglied
Mitglied seit
09.03.2004
Beiträge
48
Bei Dir steht:
$abfrage1 = mysql_query("SELECT user FROM login");
while ($row = mysql_fetch_object($abfrage1)
...

Es muss heissen:
$result = mysql_query($abfrage1);
$row = mysql_fetch_object($result);

http://de3.php.net/mysql_fetch_object
ist Dein Freund.

Gruesse
agui
 

cni

Mitglied
Thread Starter
Mitglied seit
14.10.2004
Beiträge
27
hallo aguilera

und wie weiss er wohin er hin muss. also ich meine zu db
$abfrage1 = mysql_query("SELECT user FROM login");
 

Thommy

Mitglied
Mitglied seit
23.06.2003
Beiträge
1.889
Zudem solltest du diese Zeile...

anmelden($fertig, $user, $password1, $password2, $email);

....unter die Funktion anmelden() {} schreiben, da php diese funktion ganz oben noch nicht kennt, da sie erst dadrunter deklariert wird.
 

cni

Mitglied
Thread Starter
Mitglied seit
14.10.2004
Beiträge
27
hallo thommy

das habe ich auch gemacht. ich habe nun das gemacht was ihr geschriebe habt, jedoch ohne erfolg.

fehler

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /moskqpeq/www.mosser.ch/mcdonald/form.php on line 11
 

maceis

Mitglied
Mitglied seit
24.09.2003
Beiträge
16.860
Noch ein kleiner Hinweis:
Wenn Du das ganze peim Posten innerhalb der PHP-Tags einbindest, wird es deutlich einfacher lesbar.
Einrückungen bleiben dann auch erhalten.
Du machst es damit Dir und anderen einfacher, den Code zu lesen.
Beispiel:
PHP:
<?
    anmelden($fertig, $user, $password1, $password2, $email);

    function anmelden ($fertig, $user, $password1, $password2, $email)
    {
        include("config.php");
        if($fertig) {
            $abfrage1 = mysql_query("SELECT user FROM login");
            while ($row = mysql_fetch_object($abfrage1)) {
                if ($row->user==$user) {
                    echo "Dieser Benutzer existiert schon!";
                    exit;
                }
            }
[...]
?>
 
Zuletzt bearbeitet:

cni

Mitglied
Thread Starter
Mitglied seit
14.10.2004
Beiträge
27
ja natürlich, sorry, also ich poste mal den ganzen code nochmal mit der hoffning das mir jemand weiterhelfen kann

PHP:
<?

//anmelden($fertig, $user, $password1, $password2, $email);

function anmelden ($fertig, $user, $password1, $password2, $email)
{
include("config.php");

if($fertig) {
 $result = mysql_query($abfrage1);
 while ($row = mysql_fetch_object($result)) {
// $abfrage1 = mysql_query("SELECT user FROM login");
 //while ($row = mysql_fetch_object($abfrage1)) {
	if	($row->user==$user) {
	echo "Dieser Benutzer existiert schon!";
	exit;
	}
	}
	if ($user=="" OR $password1=="" OR $password2=="" or $email=="") {
	echo "Sie haben mindestens ein Feld nicht ausgefüllt!";
	}
	else if ($password1!=$password2) {
	echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
	}
	else {	
	$anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");	
	echo "Erfolgreich angemelde
	t! Sie können sich nun einloggen:<br>";
	@login();	
	}
}
else {
	echo "<h2>Anmelden</h2>";
	echo "<form method=\"POST\" action=\"$PHP_SELF?anmelden=yes&fertig=yes\">";
	?>
	<table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password1" value=""></font></td>
  </tr>
  <tr>
    <td><font size="2">Wiederholen:</font></td>
    <td><font size="2"><input type="password" name="password2" value=""></font></td>
  </tr>
  <tr>
    <td><font size="2">E-Mail:</font></td>
    <td><font size="2"><input type="text" name="email" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Anmelden></td>
  </tr>
</table>
</form>
<? 
}

}


anmelden($fertig, $user, $password1, $password2, $email);
?>
 

maceis

Mitglied
Mitglied seit
24.09.2003
Beiträge
16.860
Der Fehler befindet sich vermutlich in der "config.php", die Du einbindest.
In dem geposteten Code kommt "mysql_fetch_object()" ja gar nicht vor.
 

maceis

Mitglied
Mitglied seit
24.09.2003
Beiträge
16.860
Der Fehler befindet sich vermutlich in der "config.php", die Du einbindest.
In dem geposteten Code kommt "mysql_fetch_object()" ja gar nicht vor.