problem mit mysql_fetch_object()

Diskutiere das Thema problem mit mysql_fetch_object() im Forum Web-Programmierung

  1. cni

    cni Thread Starter Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    Mitglied seit:
    14.10.2004
    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
     
  2. aguilera

    aguilera Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    Mitglied seit:
    09.03.2004
    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
     
  3. cni

    cni Thread Starter Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    Mitglied seit:
    14.10.2004
    hallo aguilera

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

    Thommy Mitglied

    Beiträge:
    1.882
    Zustimmungen:
    0
    Mitglied seit:
    23.06.2003
    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.
     
  5. cni

    cni Thread Starter Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    Mitglied seit:
    14.10.2004
    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
     
  6. maceis

    maceis Mitglied

    Beiträge:
    16.742
    Zustimmungen:
    604
    Mitglied seit:
    24.09.2003
    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;
                    }
                }
    [...]
    ?>
     
  7. cni

    cni Thread Starter Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    Mitglied seit:
    14.10.2004
    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);
    ?>
     
  8. maceis

    maceis Mitglied

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

    aguilera Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    Mitglied seit:
    09.03.2004
    Man macht vorher ein mysql_select_db("NAME").

    Kuckst Du hier:
    http://de3.php.net/mysql
     
  10. maceis

    maceis Mitglied

    Beiträge:
    16.742
    Zustimmungen:
    604
    Mitglied seit:
    24.09.2003
    Der Fehler befindet sich vermutlich in der "config.php", die Du einbindest.
    In dem geposteten Code kommt "mysql_fetch_object()" ja gar nicht vor.
     
Die Seite wird geladen...

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...