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: modified eCommerce Shopsoftware v1.05 dated: 2010-07-18 SP1a - Diverse Fragen

    dan0ne

    • Neu im Forum
    • Beiträge: 30
    Hallo an alle,

    ich möchte mich als aller erstes einmal für diese wunderbare Shopversion bedanken. Im Moment baue ich damit einen neuen Shop, und soweit laeuft auch alles recht gut!

    Allerdings habe ich ein paar Probleme:

    1) Ich habe die Suche um den EAN Code erweitert, dies klappt soweit auch allerdings bekomme ich sehr oft folgende Fehlermeldung:

    Code: PHP  [Auswählen]
    Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 40 bytes) in /home/www/web3/html/inc/xtc_db_queryCached.inc.php on line 63

    Am Anfang war diese mit 16MB Ram diesen habe ich nun auf 64mb hochgestellt. An was liegt den diese Fehlermeldung..

    Da im Moment ein IceCat Import läuft und dieser die Daten direkt in die DB schreibt denke ich das es wohl auch damit zu tun haben könnte, allerdings bin ich mir nicht sicher.

    2) Ich würde gerne in meinem Template (TEMPLATE: Kostenloses Template "shop6") ein neues Datenbankfeld ausgeben, allerdings muss ich wohl irgendetwas vergessen haben da nichts angezeigt wird wenn ich die Variable dort einfüge.

    Vielen Dank.

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

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Aber was hat das bitte in "Bugs oder Funktionsfehler" zu suchen? Lies doch bitte mal: FAQ: Was gehört hier rein und was nicht?

    Verschoben in die "Bastelecke".

    Grüße

    Torsten

    hbauer

    • Experte
    • Beiträge: 1.097
    Uiuiui, da ist aber jemand schlecht drauf. ;-)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Ach gar nicht! Wirklich nicht, war nur in der Hektik etwas überzogen formuliert. :hust: :whistle:

    Danke für den Schubs. ;-)

    Grüße

    Torsten

    hbauer

    • Experte
    • Beiträge: 1.097
    Nur dass nach Deinem "Edit" jetzt keiner mehr mein Posting versteht. (jetzt wo die Vögel fehlen) Ist aber egal. ;-)

    dan0ne

    • Neu im Forum
    • Beiträge: 30
    Hallo,

    sorry wenn ich den Thread in der falschen Rubrik eröffnet hatte. Hat evtl. trotzdem jemand eine Idee an was dies Liegen könnte ?

    Gruss

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Nur dass nach Deinem "Edit" jetzt keiner mehr mein Posting versteht. (jetzt wo die Vögel fehlen) Ist aber egal. ;-)

    Ich denke, dass das schon im Kontext klar wird, dass ich mich anfangs etwas unglücklich ausgedrückt hatte. ;-)

    Zum Thema:

    Zu 1.) Durch die zusätzliche Suche nach der EAN reicht das "memory_limit" deines Servers nicht mehr aus. Bitte deinen hoster um Erhöhung des Limits.

    Zu 2.) Siehe: Tutorial: Zusätzliche Datenfelder Artikel

    Grüße

    Torsten

    dan0ne

    • Neu im Forum
    • Beiträge: 30
    Hallo,

    wird da dann so extrem mehr Memory benötigt ? Am Anfang stand es ja auf 16MB nun habe ich es schon auf 64mb gestellt. Ich mein, klar ich kann es noch erhöhen allerdings verwundert mich, dass eine zusätzliche Frage dann so extrem mehr RAM benötigt.

    Der Shop hat 70.000 Artikel, auf was für einen Wert sollte ich es denn am besten stellen ?

    Gruss

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Also 128MB dürfen es schon sein. ;-)

    Grüße

    Torsten

    dan0ne

    • Neu im Forum
    • Beiträge: 30
    Danke für deine schnelle Antwort!

    Ich habe es nun auf 128MB hoch gesetzt, allerdings kommt der Fehler nun immer noch.

    Code: PHP  [Auswählen]
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 15730385 bytes) in /home/www/web3/html/inc/xtc_db_queryCached.inc.php on line 59

    So nun habe ich es sogar noch einmal auf 256MB hoch gesetzt und siehe da...

    Code: PHP  [Auswählen]
    Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 35 bytes) in /home/www/web3/html/inc/xtc_db_queryCached.inc.php on line 63

    Das passiert z.B. wenn ich auch einfach nur einen Hersteller auswähle damit er mir alle Artikel von diesem Anzeigt.

    Aber irgendetwas muss da doch dann grundlegend falsch sein, oder nicht ?

    Gruss

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo dan0ne,

    tjo das mag alles sein, nur wie sollen wir Dir jetzt helfen wenn Du das gemacht hast:

    [...]
    1) Ich habe die Suche um den EAN Code erweitert, [...]

    uns aber nicht sagst wie? (Quellcode der Abfrage)

    Im Zauberkurs "Gedankenübertragung"  :glaskugel: bin ich noch in der 1. Klasse!  :ironie:
    Oder wir sollten jemanden finden der es kann! ;)

    Viele Grüße

    Franky

    dan0ne

    • Neu im Forum
    • Beiträge: 30
    Sorry, ich bin heute irgendwie nicht ganz da!

    Also ich habe die Suche nach dieser Anleitung erweitert: ANLEITUNG: Produktsuche um Suche nach EAN Nummer erweitern

    Gruss

    [EDIT Tomcraft 08.09.2011: Full-Quote entfernt, siehe: FAQ: Full-Quotes und Groß-/Kleinschreibung - mit anderen Worten Netiquette!]

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo dan0ne,

    probiere mal aus dem in der "advanced_search.php":

    Code: PHP  [Auswählen]
              $where_str .= "OR p.products_ean LIKE ('%".addslashes($search_keywords[$i])."%') ";

    das zu machen:

    Code: PHP  [Auswählen]
              $where_str .= "OR p.products_ean LIKE ('%".$keyword."%') ";

    Ansonsten wäre es mal schön wenn Du folgendes mal postest.

    In der "advanced_search.php" diese Zeile suchen:

    Code: PHP  [Auswählen]
      $listing_sql = $select_str.$from_str.$where_str;

    dahinter das einfügen:

    Code: PHP  [Auswählen]
      echo $listing_sql;
      exit();

    Dann einmal im Shop suchen und die Ausgabe mal posten.
    Danach können die 2 Zeilen wieder entfernt werden.
    Ich denke wenn man den kompletten SQL Query mal sieht wird es vielleicht einfacher den Fehler zu finden warum er so viel Speicher braucht. :)

    Viele Grüße

    Franky

    dan0ne

    • Neu im Forum
    • Beiträge: 30
    Moin,

    also als Query kommt folgendes raus:

    Code: SQL  [Auswählen]
    SELECT DISTINCT p.products_id, p.products_ean, p.products_manufacturers_model, p.products_price, p.products_model, p.products_quantity, p.products_shippingtime, p.products_fsk18, p.products_image, p.products_weight, p.products_tax_class_id, p.products_vpe, p.products_vpe_status, p.products_vpe_value, pd.products_name, pd.products_short_description, pd.products_description FROM products AS p LEFT JOIN products_description AS pd ON (p.products_id = pd.products_id) LEFT OUTER JOIN products_attributes AS pa ON (p.products_id = pa.products_id) LEFT OUTER JOIN products_options_values AS pov ON (pa.options_values_id = pov.products_options_values_id) LEFT OUTER JOIN specials AS s ON (p.products_id = s.products_id) AND s.status = '1' WHERE p.products_status = '1' AND pd.language_id = '2' AND ( ( pd.products_keywords LIKE ('%hp%') OR p.products_ean LIKE ('%hp%') OR p.products_manufacturers_model ('%hp%') OR pd.products_description LIKE ('%hp%') OR pd.products_short_description LIKE ('%hp%') OR pd.products_name LIKE ('%hp%') OR p.products_model LIKE ('%hp%') OR (pov.products_options_values_name LIKE ('%hp%') AND pov.language_id = '2') ) OR ( pd.products_keywords LIKE ('%98a%') OR p.products_ean LIKE ('%98a%') OR p.products_manufacturers_model ('%98a%') OR pd.products_description LIKE ('%98a%') OR pd.products_short_description LIKE ('%98a%') OR pd.products_name LIKE ('%98a%') OR p.products_model LIKE ('%98a%') OR (pov.products_options_values_name LIKE ('%98a%') AND pov.language_id = '2') ) ) GROUP BY p.products_id ORDER BY p.products_id

    Was mir allerdings aufgefallen ist ist folgendes: Wenn ich auf der Startseite bin, und in der Herstellerbox z.b. HP auswähle kommt er fast immer mit dem Fehler das der Ram ausgegangen ist. Allerdings steht dieser ja mittlerweile schon auf 256MB.

    Gruss

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo dan0ne,

    ich habe es mal formatiert und sehe jetzt schon erste Fehler im Query:

    Code: PHP  [Auswählen]
    SELECT DISTINCT
                    p.products_id,
                    p.products_ean,
                    p.products_manufacturers_model,
                    p.products_price,
                    p.products_model,
                    p.products_quantity,
                    p.products_shippingtime,
                    p.products_fsk18,
                    p.products_image,
                    p.products_weight,
                    p.products_tax_class_id,
                    p.products_vpe,
                    p.products_vpe_status,
                    p.products_vpe_value,
                    pd.products_name,
                    pd.products_short_description,
                    pd.products_description
               FROM products AS p
          LEFT JOIN products_description AS pd ON (p.products_id = pd.products_id)
    LEFT OUTER JOIN products_attributes AS pa ON (p.products_id = pa.products_id)
    LEFT OUTER JOIN products_options_values AS pov ON (pa.options_values_id = pov.products_options_values_id)
    LEFT OUTER JOIN specials AS s ON (p.products_id = s.products_id)
                AND s.STATUS = '1'
              WHERE p.products_status = '1'
                AND pd.language_id = '2'
                AND ( ( pd.products_keywords LIKE ('%hp%')
                 OR p.products_ean LIKE ('%hp%')
                 OR p.products_manufacturers_model ('%hp%')
                 OR pd.products_description LIKE ('%hp%')
                 OR pd.products_short_description LIKE ('%hp%')
                 OR pd.products_name LIKE ('%hp%')
                 OR p.products_model LIKE ('%hp%')
                 OR (pov.products_options_values_name LIKE ('%hp%') AND pov.language_id = '2') )
                 OR ( pd.products_keywords LIKE ('%98a%')
                 OR p.products_ean LIKE ('%98a%')
                 OR p.products_manufacturers_model ('%98a%')
                 OR pd.products_description LIKE ('%98a%')
                 OR pd.products_short_description LIKE ('%98a%')
                 OR pd.products_name LIKE ('%98a%')
                 OR p.products_model LIKE ('%98a%')
                 OR (pov.products_options_values_name LIKE ('%98a%') AND pov.language_id = '2') ) )
           GROUP BY p.products_id
           ORDER BY p.products_id

    also diesen hier:

    Code: PHP  [Auswählen]
                 OR p.products_manufacturers_model ('%hp%')

    dort fehlt ein "LIKE".

    Und das dieser Status an falscher Stelle vor dem "WHERE" steht also:

    Code: PHP  [Auswählen]
                  AND s.STATUS = '1'
              WHERE p.products_status = '1'
     

    müsste so lauten:

    Code: PHP  [Auswählen]
              WHERE p.products_status = '1'
                  AND s.STATUS = '1'

    EDIT:

    Also in der "advanced_serach_result.php" in Z. 186 das:

    Code: PHP  [Auswählen]
            $from_str .= "LEFT OUTER JOIN ".TABLE_SPECIALS." AS s ON (p.products_id = s.products_id) AND s.status = '1'";

    ändern in das:

    Code: PHP  [Auswählen]
            $from_str .= "LEFT OUTER JOIN ".TABLE_SPECIALS." AS s ON (p.products_id = s.products_id) ";

    In Z.200 das:

    Code: PHP  [Auswählen]
            $where_str = " WHERE p.products_status = '1' "." AND pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check;

    ändern in das:

    Code: PHP  [Auswählen]
            $where_str = " WHERE p.products_status = '1' AND s.status = '1'"." AND pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check;

    Das mit dem "OR products_manufacturers_model" solltest Du mal in deiner Datei suchen und ein LIKE dahinter setzen.
    Kann es im Original nicht finden, scheint also auch erweitert zu sein.

    Viele Grüße

    Franky