Werbung / Banner buchen
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Warning in MySQL

    der-mit-dem-shop-kaempft

    • Neu im Forum
    • Beiträge: 4
    Warning in MySQL
    am: 14. Juni 2011, 09:31:02
    Halli Hallo,

    ich bekomme sporadisch folgende Fehlermeldung wenn ich mich im Shop bewege:

    Code: PHP  [Auswählen]
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Hat jemand da eine Lösung, bzw. kann mir sagen woher das kommt?



    Linkback: https://www.modified-shop.org/forum/index.php?topic=13548.0
    Shop Hosting

    franky_n

    • Experte
    • Beiträge: 4.950
    Warning in MySQL
    Antwort #1 am: 14. Juni 2011, 09:33:53
    Hallo der-mit-dem-shop-kaempft,

    sieht so aus als ob Deine Datenbank nicht permanent erreichbar ist.
    Wahrscheinlich ein Hosting Problem also eher:
    der-mit-dem-hosting-kaempft :D

    Viele Grüße

    Franky

    RossiRat

    • Fördermitglied
    • Beiträge: 96
    Warning in MySQL
    Antwort #2 am: 14. Juni 2011, 12:11:08
    Es könnte aber auch eine fehlerhafte Abfrage sein, welche kein Ergebnis ausspuckt. Und das nicht vorhandene Ergebnis wirft dann beim "xtc_db_fetch_array" die Fehlermeldung aus.  :mhhh:

    @der-mit-dem-shop-kaempft
    Was steht denn bei Dir in der benannten Zeile 44? Am Besten hier mal den Code mit den 5 Zeilen davor posten.

    Falls es diese Zeile ist:

    Code: PHP  [Auswählen]
                            $ergebnis = @mysql_fetch_array($db_query, MYSQL_ASSOC);

    ... dann kannst Du mal testweise das @ Zeichen wegnehmen. Dann bekommst Du die PHP Roh-Fehlermeldung.

    Eckhard

    • Neu im Forum
    • Beiträge: 5
    Re: Warning in MySQL
    Antwort #3 am: 17. Februar 2012, 18:18:46
    Der o.g. Fehler tritt sporadisch auf, oftmals unmittelbar nachdem der Cache im Adminbereich geleert wurde und man anschließend den Shop per Browser-Refresh neu aufruft. Dann kommt diese Fehlermeldung ca. 35 mal nacheinander oben auf dem Bildschirm, darunter ist dann der Shop zu sehen. Nach einem erneuten Browser-Refresh ist der Fehler zunächst verschwunden. Der Shop baut sich sodann korrekt ohne erneute Fehlermeldung auf.

    In Zeile 44 steht: return mysql_fetch_array($db_query, MYSQL_ASSOC);

    googelt man nach dem nachfolgend genannten Teilstring aus unserer Fehlermeldung "/is/htdocs/wp1033333_GY7M92AOVX/www/webshop", erhält man zahlreiche Suchergebnisse mit genau solchen Fehlermeldungen, die auf unseren Shop hinweisen, bei denen offenbar mehrfach Probleme mit den Fremdwährungen auftauchten.

    Der Fehler wurde bei uns nach wie vor nicht gefunden.

    Hinweis:

    Wir haben seinerzeit Folgendes in die  "includes/classes/xtcPrice.php"  eingebaut (Währungsupdate):

    Code: PHP  [Auswählen]
    // [start] :ADDED: - get current rates
            $ccache = DIR_FS_DOCUMENT_ROOT . 'cache/last_currency_run.txt';
            if (filemtime($ccache) + 86400 < time()) {
                // get new values from ecb
                $xml = @simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml');
                if (is_object($xml)) {
                    // successfully grabbed, touch markerfile, update db
                    touch($ccache);
                    foreach ($xml->Cube->Cube->Cube as $curEntry) {
                        xtDBquery("
                            UPDATE  "
    . TABLE_CURRENCIES . "
                            SET     value = '"
    . $curEntry['rate'] . "', last_updated = now()
                            WHERE   code = '"
    . $curEntry['currency'] . "'
                            LIMIT   1
                            "
    );
                    }
                }
            }
    // [ end ] :ADDED:

    Das Währungsupdate-Script wurde unserer meinung nach korrekt eingebaut. Es legt im Cache-Verzeichnis eine Datei  "last_currency_run.txt"  an.

    Wird diese beim Cache-Löschen ebenfalls gelöscht? Kann das (vorübergehende) Fehlen dieser Datei, unmittelbar nach dem Cache-Löschen ggf. den fehler hervorrufen?

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Warning in MySQL
    Antwort #4 am: 17. Februar 2012, 20:16:46
    Wie lautet denn die genaue Fehlermeldung? Und werden die Währungen wirklich aktualisiert? Welche Version ist denn deine MySQL-Datenbank? Ältere können keine Limits bei Update.

    Eckhard

    • Neu im Forum
    • Beiträge: 5
    Re: Warning in MySQL
    Antwort #5 am: 18. Februar 2012, 10:36:15
    Hallo Matt, vielen Dank zunächst für die Rückmeldung. Folgende Datenbankversion ist im Einsatz; HostEurope: Die aktuell laufende MySQL Version ist: 5.1.49-3~bpo50+1

    Ich werde mal prüfen, ob ein automatisches Update der Währungskurse (gemäß nachgerüstetem Script) tatsächlich erfolgt und ob täglich Kursänderungen im Adminbereich daraufhin sichtbar werden.

    Ich möchte Euch ja nicht auf eine falsche Fährte locken, aber wenn ich die Währungen im Adminbereich aktualisiere, was wir seit Monaten nicht mehr getan haben, da wir ja auf die automatische Routine vertrauten, dann erhalten wir folgende rot hinterlegte Warnmeldungen im Adminbereich:

     Der Wechselkurs Euro / € (EUR) wurde erfolgreich aktualisiert
     Der Wechselkurs Danske kroner / dkr (DKK) wurde erfolgreich aktualisiert
     Der Wechselkurs Svenska kronor / kr (SEK) wurde erfolgreich aktualisiert
     Fehler: Der Wechselkurs für Norske kroner / kr (NOK) wurde nicht aktualisiert. Ist dies ein gültiges Währungskürzel?
     Der Wechselkurs British Pound / £ (GBP) wurde erfolgreich aktualisiert
     Fehler: Der Wechselkurs für Schweizer Franken / SFr. (CHF) wurde nicht aktualisiert. Ist dies ein gültiges Währungskürzel?
     Der Wechselkurs Česká Koruna / Kč (CZK) wurde erfolgreich aktualisiert
     Der Wechselkurs Polskich złotych / zł (PLN) wurde erfolgreich aktualisiert
     Der Wechselkurs Magyar Forint / Ft (HUF) wurde erfolgreich aktualisiert
     Der Wechselkurs Bulgarian Lev / лв (BGN) wurde erfolgreich aktualisiert
     Der Wechselkurs Lei româneşti / L (RON) wurde erfolgreich aktualisiert
     Der Wechselkurs Hrvatska kuna / kn (HRK) wurde erfolgreich aktualisiert
     Der Wechselkurs Eesti kroon / kr (EEK) wurde erfolgreich aktualisiert
     Fehler: Der Wechselkurs für Latvijas Lati / Ls (LVL) wurde nicht aktualisiert. Ist dies ein gültiges Währungskürzel?
     Fehler: Der Wechselkurs für Lietuvos Litas / Lt (LTL) wurde nicht aktualisiert. Ist dies ein gültiges Währungskürzel?
     Der Wechselkurs Türk Lirası / TL (TRY) wurde erfolgreich aktualisiert
     Fehler: Der Wechselkurs für Russian Ruble / RUB (RUB) wurde nicht aktualisiert. Ist dies ein gültiges Währungskürzel?
     Fehler: Der Wechselkurs für Japanese Yen / ¥ (JPY) wurde nicht aktualisiert. Ist dies ein gültiges Währungskürzel?
     Fehler: Der Wechselkurs für Chinese RMB / ¥ (CNY) wurde nicht aktualisiert. Ist dies ein gültiges Währungskürzel?
     Der Wechselkurs US Dollar / $ (USD) wurde erfolgreich aktualisiert

    Wiederhole ich das shop-eigene Admin-Währungsupdate, werden nunmehr andere Währungskürzel nicht erkannt, während solche Währungen, die eben noch unbekannt waren, nunmehr erkannt werden. Welche Quelle nutzt denn das shop-eigene Währungs-Update-Tool? Vielleicht ist dieser Gedankengang aber auch nur ein Irrweg und lenkt von dem eigentlichen Fehler ab.

    Offenbar lässt sich die eigentliche Fehlermeldung am leistesten provozieren, wenn wir unmittelbar hintereinander sowohl Daten-Cache und Tempolate-Cache löschen und dann sofort erneut den Shop im Frontend aufrufen. Sodann folgt oberhalb des Shops folgende Fehlermeldung:

    Warning: filemtime() [function.filemtime]: stat failed for /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/cache/last_currency_run.txt in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/includes/classes/xtcPrice.php on line 54

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1033333_GY7M92AOVX/www/webshop/inc/xtc_db_fetch_array.inc.php on line 44

    Darunter erscheint dann der Shop, mit etwas zerrissenem Layout.

    In der  includes/classes/xtcPrice.php on line 54  (sowie davor und danach) steht Folgendes:

         Zeile 54:       if (filemtime($ccache) + 86400 < time()) {

    bzw. die gesamte Routine:

          $currencies_query = "SELECT *
                                                    FROM
                                                         ".TABLE_CURRENCIES;
          $currencies_query = xtDBquery($currencies_query);
        while ($currencies = xtc_db_fetch_array($currencies_query, true)) {
             $this->currencies[$currencies['code']] = array ('title' => $currencies['title'], 'symbol_left' => $currencies['symbol_left'], 'symbol_right' => $currencies['symbol_right'], 'decimal_point' => $currencies['decimal_point'], 'thousands_point' => $currencies['thousands_point'], 'decimal_places' => $currencies['decimal_places'], 'value' => $currencies['value']);
          // [start] get current rates - currency update
          $ccache = DIR_FS_DOCUMENT_ROOT . 'cache/last_currency_run.txt';
          if (filemtime($ccache) + 86400 < time()) {
            // get new values from ecb
            $xml = @simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml');
              if (is_object($xml)) {
                // successfully grabbed, touch markerfile, update db
                touch($ccache);
                foreach ($xml->Cube->Cube->Cube as $curEntry) {
                  xtDBquery("
                    UPDATE  " . TABLE_CURRENCIES . "
                    SET     value = '" . $curEntry['rate'] . "', last_updated = now()
                    WHERE   code = '" . $curEntry['currency'] . "'
                    LIMIT   1
                    ");
                }
              }
          }
          // [ end ] get current rates - currency update
        }

    In Zeile 44 von    inc/xtc_db_fetch_array.inc.php   steht:
            return mysql_fetch_array($db_query, MYSQL_ASSOC);

    Ergänzender Hinweis:
    Die Cache-Einstellungen sind folgendermaßen konfiguriert:

    Cache benutzen = true
    Cache Ordner = cache
    Cache Lebenszeit = 900
    Prüfe ob Cache modifiziert = true
    DB Cache = true
    DB Cache Lebenszeit = 300

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Warning in MySQL
    Antwort #6 am: 18. Februar 2012, 14:00:50
    Der stat-Fehler kommt daher, dass das File nach dem Cache-Löschen fehlt. Müsste man halt mit !file_exists erweitern.

    Die MySQL-Fehler müsste man im Detail analysieren, liegt aber vermutlich an einer falschen Query.

    Bitte Code-Button benutzen. Danke.

    Eckhard

    • Neu im Forum
    • Beiträge: 5
    Re: Warning in MySQL
    Antwort #7 am: 18. Februar 2012, 18:19:07
    Der stat-Fehler kommt daher, dass das File nach dem Cache-Löschen fehlt. Müsste man halt mit !file_exists erweitern.

    Die MySQL-Fehler müsste man im Detail analysieren, liegt aber vermutlich an einer falschen Query.

    Bitte Code-Button benutzen. Danke.

    Danke für die Info.
    Und entschuldigt bitte, wegen des Code-Buttons. War 'ne Bildungslücke. Sorry.