mysql_fetch_object() Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mysql_fetch_object() Problem

    Ich habe ein Problem das ich mir einfach nicht erklären kann und hoffe die Lösung ist ganz einfach.
    Mein SCript sieht so aus (stark vereinfacht):

    $sql = "SELECT * FROM funtable ORDER BY timestamp";
    $result = mysql_query($sql);

    while($row = mysql_fetch_object($result))
    {
    echo $row->timestamp;
    [COLOR=crimson]echo $row->owner;[/COLOR]
    }

    Mein Problem habe ich rot markiert. Und zwar gibt das Script $row->timestamp korrekt aus mit dem Wert der jeweils in der Spalte steht.
    sobald ich aber $row->owner abfrage gibt mir das script folgende Fehlermeldung:
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\wampp13cs\htdocs\cds\cds.php on line 91


    Die Spalte owner ist VARCHAR(15) und timestam INT(11)

    Ich wäre froh wenn mir jemand weiterhelfen könnte.

  • #2
    ok, ihr müsst euch nicht mehr um mich kümmern, ich habe den Fehler unterdessen gefunden.

    Ich habe in der while schleife eine INSERT abrage der datenbank gebraucht. Scheinbar funktioniert das nicht.

    $sql = "SELECT * FROM funtable ORDER BY timestamp";
    $result = mysql_query($sql);

    while($row = mysql_fetch_object($result))
    {
    $sql = "INSERT INTO `othertable` ... ";
    $result = mysql_query($sql);
    }


    gibt es denn keine möglichkeit während die Abfrage läuft einen Insert befehl zu benützen?

    Kommentar


    • #3
      doch
      EDIT:
      bau eine zweite verbindung zur datenbank auf und geb bei jedem aufruf einer mysql-funktion die zu verwendende verbindung mit an
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Code:
        $sql = "SELECT * FROM funtable ORDER BY timestamp";
        [b]$result[/b] = mysql_query($sql);
        
        while($row = mysql_fetch_object($result))
        {
        $sql = "INSERT INTO `othertable`  ...   ";
        [b]$result[/b] = mysql_query($sql);
        }
        du solltest die beiden ergebnisvariablen mal unterschiedlich benennen...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          beziehungsweise (grad erst richtig gelesen ): wozu musst du das ergebnis eines insert überhaupt speichern?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            recht hast du, speichern müsste ich es eigentlich nicht. Ich habe beim script aber für beide resultate eine andere Variable gebraucht (Und hier dann falsch geschrieben).

            Irgend etwas stimmt hier einfach nicht. Den Trick mit den zwei Verbindungen habe ich unterdessen auch schon versucht, hat aber auch nicht geklappt.

            Ich werde das irgendwie anders machen, die Lust am Ausprobieren ist mir hier vergangen. Ich werde das ganze in einem Array speichern und bei jedem Aufruf neu berechnen, so viel ist das auch nicht.

            Danke auf jeden Fall für die Antworten, wenn ich meine Geduld für die Datenbank wieder gefunden habe kann ich immer noch die Daten aus dem Array speichern

            Kommentar


            • #7
              mit zwei verbinungen sollte es aber gehen. wie hast du's denn probiert?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                zwei verbindungen halt:

                $dbase1 = mysql_connect ("$db_server", "$db_user", "$db_password") or die ('I cannot connect to the database because: ' . mysql_error());

                $dbase2 = mysql_connect ("$db_server", "$db_user", "$db_password") or die ('I cannot connect to the database because: ' . mysql_error());

                und dann:

                $result1 = mysql_query($sql, $dbase1);
                $result2 = mysql_query($sql, $dbase2);



                Ich bin mir aber im Nachhinein doch nicht mehr ganz sicher ob ich wirklich für das reultat verschiedene Variablen gebracuht habe. Den Teil habe ich auch schon gelscht und kann nicht mehr nachschauen.

                Aber es scheint zu funktionieren mit den Arrays. sogar fast einfacher als wenn ich das alles in der Datenbank gespeichert hätte.

                Kommentar


                • #9
                  dann öffnest du keine neue verbindung, sondern nutzt die bereits bestehende
                  PHP-Code:
                  $dbase1 mysql_connect ($db_server$db_user$db_password) or die ('I cannot connect to the database because: ' mysql_error());
                  $dbase2 mysql_connect ($db_server$db_user$db_password,true) or die ('I cannot connect to the database because: ' mysql_error()); 
                  sollte gehen
                  resource mysql_connect ( [string Server [, string Benutzername [, string Benutzerkennwort [, bool neue_Verbindung [, int client_flags]]]]])

                  Für den Fall, dass ein zweiter Aufruf von mysql_connect() mit den gleichen Argumenten erfolgt, wird keine neue Verbindung aufgebaut, sondern die Verbindungs-Kennung der schon bestehenden Verbindung zurückgeliefert. Der Parameter neue_Verbindung beeinflusst dieses Verhalten und mysql_connect() öffnet immer eine neue Verbindung, sogar dann, wenn mysql_connect() zu einem früheren Zeitpunkt mit den gleichen Parametern aufgerufen wurde
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    ok, das wusste ich nicht. danke vielmals.

                    Kommentar


                    • #11
                      np, dazu sind handbücher und foren ja da...
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Original geschrieben von durri
                        PHP-Code:
                        $sql "SELECT * FROM funtable ORDER BY timestamp";
                        $result mysql_query($sql);

                        while(
                        $row mysql_fetch_object($result))
                        {
                        $sql "INSERT INTO `othertable`  ...   ";
                        mysql_query($sql);

                        Also: sowas funzt auf jeden Fall auch ohne gleich mit verschieden Connections zuzumurksen ... ich verwende das auch hin und wieder ... und es gibt überhaupt keinen Grund dafür das es nicht funzt ...

                        Es ist aber auf jeden Fall zu über legen, ob sich das Problem nicht leichter über ein "INSERT INTO ... SELECT ..." lösen läßt.
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar

                        Lädt...
                        X