problem mit mysql_fetch_object()

cni

Mitglied
Thread Starter
Dabei seit
14.10.2004
Beiträge
27
Reaktionspunkte
0
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
 
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
 
hallo aguilera

und wie weiss er wohin er hin muss. also ich meine zu db
$abfrage1 = mysql_query("SELECT user FROM login");
 
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.
 
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
 
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:
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);
?>
 
Der Fehler befindet sich vermutlich in der "config.php", die Du einbindest.
In dem geposteten Code kommt "mysql_fetch_object()" ja gar nicht vor.
 
Der Fehler befindet sich vermutlich in der "config.php", die Du einbindest.
In dem geposteten Code kommt "mysql_fetch_object()" ja gar nicht vor.
 
Zurück
Oben Unten