Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_result

Einklappen

Neue Werbung 2019

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

  • mysql_result

    Hallo an alle...erstmal ich habe schon alle Foren und tutorials durchstöbert und find irgendwie keine Lösung zu meinem Problem...

    So und zwar habe ich folgenden Code

    Code 1
    PHP-Code:
    global $prefix$uid;
    $time_last time()-86400;
    $time_select mysql_query("SELECT user_writetime FROM {$prefix}_users where uid={$uid}");
    $timeresult mysql_result($time_select0);

    if (
    $timeresult $time_last) { 
        echo 
    "Fehler";

    else { 
        echo 
    "Weiter..."
    und dann noch diesen Code:

    Code2
    PHP-Code:
    global $prefix$uid$IP$time_last;
    $iptime_select mysql_query("SELECT time FROM {$prefix}_ip where IP= '".$IP."' LIMIT 1");
    $iptime_result mysql_result($iptime_select1);

    if (
    $iptime_result $time_last) {
        echo 
    "Fehler";
        }
    else {
        echo 
    "Weiter...";
        }

    Beide Codeschnipsel sind werden mit dem aufrufen der Datei ausgeführt....Code 1 geht auch ohne Probleme....Code 2 spuckt diese Fehlermeldung aus:

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 1 on MySQL result index 45 in C:\... on line 99
    wobei Zeile 99 diese ist: (Code 2)

    $iptime_result = mysql_result($iptime_select, 1);
    Jetzt schon mal vielen Dank für eure Hilfe...

  • #2
    du bist lustig

    Du machst nen Limit 1 und versuchst dann in Reihe 1 was zu lesen. Versuchs mal mit

    $iptime_result = mysql_result($iptime_select, 0);

    Bedenke Array beginnt mit 0 also wenn ein Element drin ist, kannst du nicht auf 1 zugreifen.

    Kommentar


    • #3
      MySQL-Ergebnisse, von denen du sowieso nur 1 Ergebnis erwartest, solltest du mit LIMIT 1 versehen, dann muss MySQL nicht weitersuchen obwohl eh klar ist (dir) dass es nur ein Ergebnis gibt. Es sei denn das Feld der WHERE-Bedingung ist UNIQUE oder PRIMARY KEY.
      Der Übersicht halber solltest dus aber durchziehen.
      Also mach das LIMIT auch bei "Code 1" rein

      Wenn du das ganze aber in einer Funktion machst, übergib der Funktion lieber die benötigten globalen Variablen per Argument anstatt sie per global einzubinden.

      Kommentar


      • #4
        ok hab jetzt den Code 2 geändert wie folgt:

        Code2:
        PHP-Code:
        <?php
        $iptime_select 
        mysql_query("SELECT time FROM {$prefix}_ip where IP= '".$IP."' LIMIT 1");
        $iptime_result mysql_result($iptime_select0);
        ?>
        kommt trotzdem diese Fehlermeldung

        Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 46 in C: ...
        @Zergling wie meinst du das per Funktion übergeben so
        PHP-Code:
        <?
        if (irgendwas..) { 
             blabla($uid, $prefix);
        }


        function blabla($uid, $prefix)
        {
        }
        ?>

        Kommentar


        • #5
          Dann ist wohl schon der mysql_query-Aufruf fehlgeschlagen.
          Mach doch mal hinter den mysql_quer() sowas hier:
          ... = mysql_query(...) or die (mysql_error());

          Oder es kam einfach kein Ergebnis zurück.
          Frag mal ab, ob mysql_num_rows(...) != 0 ist.

          Zu den Funktionen:
          Ja, so dürfte Zergling das gemeint haben.
          **********************************
          Nein, ich bin nicht die Signatur.
          Ich putze hier nur.
          **********************************

          Kommentar


          • #6
            Es kann auch sein, dass es keinen Datensatz mit uid=$uid gibt.
            Dann kann mysql_result natürlich auch nichts abholen.

            PHP-Code:
            global $prefix$uid;
            $time_last time()-86400;
            $sql 'SELECT user_writetime FROM '.$prefix.'_users where uid='.(int)$uid;
            $result mysql_query($sql) or die(mysql_error().': '.$sql);

            $row mysql_fetch_array($time_select);
            if (!
            $row) {
                echo 
            'kein uid='.(int)$uid.' gefunden.';
            }
            else if (
            $row['user_writetime'] > $time_last) { 
                echo 
            "Fehler";

            else { 
                echo 
            "Weiter...";

            Kommentar


            • #7
              @Bruchpilot..den Teil den du da bearbeitet hast ist nicht der Fehlerteil.. egal..und in $uid ist ein Wert, da sonst Code 1 nicht funktionieren würde und habs grad nochmal getestet, also uid ausgeben lassen...und es wird ein Wert ..also genau der richtige Wert ausgegeben..

              Kommentar


              • #8
                so und wenn ich folgendes mach:

                PHP-Code:
                <?php
                $iptime_select 
                mysql_query("SELECT time FROM {$prefix}_ip where IP= '".$IP."' LIMIT 1") or die (mysql_error());
                $iptime_result mysql_result($iptime_select0);
                if (
                mysql_num_rows($iptime_result) != 0) {
                echo 
                "ja";
                }
                else {echo 
                "nein";}
                }
                ?>
                Dann hat er mir sowas raus...:
                Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 46 in C:.... on line 99
                Fehler
                Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:.... on line 108
                nein

                Kommentar


                • #9
                  Dann hast du nen Fehler in der mySQL abfrage. Mach mal nach dem query ein
                  PHP-Code:
                  echo mysql_error(); 

                  Kommentar


                  • #10
                    hab ich doch schon..:

                    PHP-Code:
                    <?php
                    $iptime_select 
                    mysql_query("SELECT time FROM {$prefix}_ip where IP= '".$IP."' LIMIT 1") or die (mysql_error()); 
                    ?>
                    hier kommt aber auf jedenFall nur die Fehlermeldung die ich oben schon beschrieben hab..

                    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 45 in .... on line 99
                    oder meinst du:
                    PHP-Code:
                    <?php
                    $iptime_select 
                    mysql_query("SELECT time FROM {$prefix}_ip where IP= '".$IP."' LIMIT 1") or die (echo mysql_error()); 
                    ?>
                    Bei sowas kommt dann nämlich..(ist wahrscheinlich schon klar...aber trotzdem )

                    Parse error: parse error, unexpected T_ECHO in ... on line 98

                    Kommentar


                    • #11
                      Zitat von maser2005
                      @Bruchpilot..den Teil den du da bearbeitet hast ist nicht der Fehlerteil.. egal..und in $uid ist ein Wert, da sonst Code 1 nicht funktionieren würde und habs grad nochmal getestet, also uid ausgeben lassen...und es wird ein Wert ..also genau der richtige Wert ausgegeben..
                      Du hättest es auch auf den anderen Teil übertragen sollen. Ich wollte Dir nicht Dein Skript komplett (um-)schreiben. Etwas Eigenleistung ist erwünscht.

                      Kommentar


                      • #12
                        Zitat von maser2005
                        so und wenn ich folgendes mach:

                        PHP-Code:
                        <?php
                        $iptime_select 
                        mysql_query("SELECT time FROM {$prefix}_ip where IP= '".$IP."' LIMIT 1") or die (mysql_error());
                        $iptime_result mysql_result($iptime_select0);
                        if (
                        mysql_num_rows($iptime_result) != 0)
                        ?>
                        Dann hat er mir sowas raus...:
                        Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 46 in C:.... on line 99
                        Fehler
                        Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:.... on line 108
                        nein
                        Das ist ja auch Pfusch.
                        Selbstverständlich sollst Du ERST mit mysql_num_rows() abfragen, ob das Ergebnis eine Zeile enthält und DANACH diese auslesen.
                        Außerdem sagt Dir die Doku doch schon, was mysql_num_rows als Argument will: Den Rückgabewert von mysql_query() und sicher nicht den von mysql_result().

                        Was Du machst, ist das hier:
                        1 Abfrage
                        2 Auslesen des ersten Ergebnisses
                        3 Abfrage, ob es ein Ergebnis gibt.

                        Du kriegst wohl kaum eine Fehlermeldung weg, wenn Du danach irgendwas machst. Das muss schon vorher passieren.

                        So wird ein Schuh draus:
                        PHP-Code:
                        <?php
                        $iptime_select 
                        mysql_query("SELECT time FROM {$prefix}_ip where IP= '".$IP."' LIMIT 1") or die (mysql_error());
                        if (
                        mysql_num_rows($iptime_select) != 0
                        {
                           
                        $iptime_result mysql_result($iptime_select0);
                           echo 
                        'JA!';
                        }
                        else
                        {
                           echo 
                        'MOEP!';
                        }
                        ?>
                        **********************************
                        Nein, ich bin nicht die Signatur.
                        Ich putze hier nur.
                        **********************************

                        Kommentar


                        • #13
                          Zitat von CC84
                          Dann hast du nen Fehler in der mySQL abfrage.
                          [/php]
                          Nein, das Ergebnis von mysql_query() wurde nicht richtig weiter verwendet.
                          **********************************
                          Nein, ich bin nicht die Signatur.
                          Ich putze hier nur.
                          **********************************

                          Kommentar


                          • #14
                            @ Der_Gerhard
                            Danke falsch Verstanden sry....hab das mal ausprobiert....Ergebnis "MOEP!" Wobei die Zeile die ich in der Datenbank abfrage..enthält ja Daten..

                            Kommentar


                            • #15
                              Dann lass Dir die Abfrage nochmal ausgeben.
                              PHP-Code:
                              $sql "SELECT time FROM {$prefix}_ip where IP= '".$IP."' LIMIT 1";
                              $iptime_select mysql_query($sql) or die (mysql_error());
                              if (
                              mysql_num_rows($iptime_select) != 0
                              {
                                 
                              $iptime_result mysql_result($iptime_select0);
                                 echo 
                              'JA!';
                              }
                              else
                              {
                                 echo 
                              'Die Abfrage: "'$sql'" lieferte ein leeres Ergebnis';

                              Kommentar

                              Lädt...
                              X