kompaktor Posted November 7, 2006 Report Share Posted November 7, 2006 Moin Community. Hab schon die Forum-Suche benutzt aber nichts gefunden. Mir sind 2 Fehler in der Suchfunktion aufgefallen. 1. Wenn ich nach einem Artikel suche werden auch inkative Artikel angezeigt. 2. Wenn bei der Suche nichts gefunden wurde wird im Hauptbereich nichts angezeigt, genauso wie bei einer leeren Kategorie. Über Tipps/Tricks würde ich mich sehr freuen. jb Link to comment Share on other sites More sharing options...
yoowmo Posted November 16, 2006 Report Share Posted November 16, 2006 Hallo Community, wir haben das gleiche Problem. Artikel die auf Status ROT also inaktiv sind, werden dem Kunden in den Kategorien nicht angezeigt. Wenn der Kunde aber über die Suchfunktion sucht, werden auch die inaktiven Artikel angezeigt. Uns ist das passiert, bei Artikeln bei denen wir noch keinen Preis angelegt hatten. Die Artikel waren gesperrt und sind in den Kategorien auch nicht aufgetaucht. Der Kunde hat diese Artikel aber über die Suchfunktion des Shops gefunden und diese dann für 0,00 Euro bestellt. Danke für die Hilfe Link to comment Share on other sites More sharing options...
wibros Posted November 16, 2006 Report Share Posted November 16, 2006 Hier nicht nachvollziehbar. Artikel aktiv: Wird gefunden und auch angezeigt. Artikel inaktiv: Wird weder gefunden noch, wenn man den Link direkt zum Artikel über C&P nochmal eingibt, angezeigt. Matt Link to comment Share on other sites More sharing options...
yoowmo Posted November 16, 2006 Report Share Posted November 16, 2006 Hallo Matt, danke für die schnelle Antwort. Entschuldige ein kleiner Fehler - die ganze Kategorie war inaktiv, wurde also nicht angezeigt. In der Kategorie waren dann noch Artikel mit 0 Euro die aktiv waren (diese Artikel waren auch nur in dieser Kategorie). Diese Artikel konnte der Kunde über die Kategorien natürlich nicht finden, da die Kategorie inaktiv war. Hat der Kunde aber ein Suchwort eingegeben, das in der Artikelbeschreibung des Artikels vorkam, wurde der Artikel unter Suchergebnisse angezeigt. Björn Link to comment Share on other sites More sharing options...
wibros Posted November 17, 2006 Report Share Posted November 17, 2006 Hallo Björn! Mit einer deaktivierten Kategorie kann ich es in der Tat auch nachvollziehen. Ich würde das als Bug einstufen, ob das xtC-Team das auch so sieht, keine Ahnung. Ein Fix ist nicht weiter schwierig, in die SQL-Abfrage muss nur die zusätzliche Überprüfung eingebaut werden, ob das Kategorie aktiv ist. Ist aber aus der Hüfte geschossen, ob das wirklich so funktioniert kann ich morgen mal testen. Spielt sich alles in advanced_search_results.php ab. $from_str = "FROM ".TABLE_PRODUCTS." AS p LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." AS pd ON (p.products_id = pd.products_id) "; in $from_str = "FROM ".TABLE_PRODUCTS." AS p, ".TABLE_PRODUCTS_TO_CATEGORIES." as pc, ".TABLE_CATEGORIES." as c LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." AS pd ON (p.products_id = pd.products_id) "; ändern (Zeile 179), sowie $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; in $where_str = " WHERE p.products_status = '1' "." AND p.products_id = pc.products_id AND pc.categories_id = c.categories_id AND c.categories_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. Ist aber nur die halbe Miete, das Problem, das sich ein Produkt aufrufen läßt, obwohl es in einer deaktivierten Kategorie steht, bleibt. Kann z.B. auftreten, wenn ein Produkt in die Bookmarks gelegt wurde und später die Kategorie deaktiviert wurde. Dazu sind Anpassungen in includes/classes/product.php notwendig. Die in Zeile 44 beginnende $product_query $product_query = "select * FROM ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd where p.products_status = '1' and p.products_id = '".$this->pID."' and pd.products_id = p.products_id ".$group_check.$fsk_lock." and pd.language_id = '".(int) $_SESSION['languages_id']."'";[/php] ist zu ersetzen durch [php] $product_query = "select distinct p.*, pd.* FROM ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_PRODUCTS_TO_CATEGORIES." pc, ".TABLE_CATEGORIES." c where p.products_status = '1' and p.products_id = '".$this->pID."' and p.products_id = pc.products_id and pc.categories_id = c.categories_id and c.categories_status = 1 and pd.products_id = p.products_id ".$group_check.$fsk_lock." and pd.language_id = '".(int) $_SESSION['languages_id']."'"; Matt Link to comment Share on other sites More sharing options...
yoowmo Posted November 17, 2006 Report Share Posted November 17, 2006 Hallo Matt, ganz vielen Dank! Du hast mir auf jedenfall schon mal weitergeholfen... und ich bin froh das es nicht an mir liegt. Schönes Wochende Gruß Björn Link to comment Share on other sites More sharing options...
toby86 Posted November 19, 2006 Report Share Posted November 19, 2006 Funktioniert aber leider nicht. Zumindest nicht bei mir... Allein schon die Änderungen in der advanced_search_result.php führen zu folgender Fehlermeldung: 1054 - Unknown column 'p.products_id' in 'on clause' SELECT distinct p.products_id, 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, pd.products_name, pd.products_short_description, pd.products_description FROM products AS p, products_to_categories as pc, categories as c 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 p.products_id = pc.products_id AND pc.categories_id = c.categories_id AND c.categories_status=1 AND pd.language_id = '2' AND ( ( pd.products_keywords LIKE ('%rot%') OR pd.products_description LIKE ('%rot%') OR pd.products_short_description LIKE ('%rot%') OR pd.products_name LIKE ('%rot%') OR p.products_model LIKE ('%rot%') OR (pov.products_options_values_name LIKE ('%rot%') AND pov.language_id = '2') ) ) GROUP BY p.products_id ORDER BY p.products_id [XT SQL Error] Kannst du dir da was zusammenreimen?! Wär prima, ich hab nämlich genau das gleiche Problem... --------------------------------------------------------------------------------- Und noch was neues zum Thema "Fehler in der Suchfunktion" damit ich nicht extra nen neuen Thread aufmachen muss: Wenn ich bei der QuickSearch an der Seite ohne Eingabe einfach auf Suchen, also auf die Lupe, klicke, dann werden alle Artikel meines Shops aufgelistet. Wie kann ich das verhindern, ohne z.B. eine Javascript-Überprüfung einbauen zu müssen? Link to comment Share on other sites More sharing options...
wibros Posted November 19, 2006 Report Share Posted November 19, 2006 1054 - Unknown column 'p.products_id' in 'on clause'[/code] Nicht nachvollziehbar. Wenn ich das SQL nehme, das du gepostet hast und es über phpMyAdmin ausführe, erhalte ich entsprechend Treffer zurückgeliefert. Und noch was neues zum Thema "Fehler in der Suchfunktion" damit ich nicht extra nen neuen Thread aufmachen muss: Wenn ich bei der QuickSearch an der Seite ohne Eingabe einfach auf Suchen, also auf die Lupe, klicke, dann werden alle Artikel meines Shops aufgelistet. Wie kann ich das verhindern, ohne z.B. eine Javascript-Überprüfung einbauen zu müssen? Du kannst in Zeile 38 [php] $keyerror = 1;[/php] durch [php] $error = 1;[/php] ersetzen. Es wird zwar aktuell überprüft, ob keywords leer ist, aber es wird mit dem Ergebnis nichts gemacht... Matt Link to comment Share on other sites More sharing options...
toby86 Posted November 19, 2006 Report Share Posted November 19, 2006 Du kannst in Zeile 38 $keyerror = 1; durch $error = 1; ersetzen. Es wird zwar aktuell überprüft, ob keywords leer ist, aber es wird mit dem Ergebnis nichts gemacht... Matt Super! Danke für die schnelle Antwort! Nicht nachvollziehbar. Wenn ich das SQL nehme, das du gepostet hast und es über phpMyAdmin ausführe, erhalte ich entsprechend Treffer zurückgeliefert. Was hast du denn für ne xtC-Version laufen? Ich setze, laut den Credits xt:Commerce v3.0.4 SP2 Release Datum: 1 Okt 2005 ein. An was könnte es sonst liegen? Hab deinen Code direkt bei mir in die advanced_search_result.php reinkopiert, alten String auskommentiert und deinen daruntergesetzt. Komisch.... Link to comment Share on other sites More sharing options...
wibros Posted November 19, 2006 Report Share Posted November 19, 2006 Was hast du denn für ne xtC-Version laufen? Ich setze, laut den Credits xt:Commerce v3.0.4 SP2 Release Datum: 1 Okt 2005 ein. Ich hab hier v3.0.4 SP2.1 vom 20.08.2006, die Query läuft aber auch bei einer 3.0.3-Installation problemlos durch. An was könnte es sonst liegen? Hab deinen Code direkt bei mir in die advanced_search_result.php reinkopiert, alten String auskommentiert und deinen daruntergesetzt. Komisch.... Änderungen am Query-String betreffen eigentlich nur die Einbindung der Kategorie, mit p.products_id wird auch schon im originalen Code gearbeitet. Von daher verblüfft mich die Fehlermeldung umso mehr. Matt Link to comment Share on other sites More sharing options...
techway Posted November 19, 2006 Report Share Posted November 19, 2006 ich glaube es liegt an der MySQL-Version, er hat wohl die 5er Version! Link to comment Share on other sites More sharing options...
toby86 Posted November 20, 2006 Report Share Posted November 20, 2006 Änderungen am Query-String betreffen eigentlich nur die Einbindung der Kategorie, mit p.products_id wird auch schon im originalen Code gearbeitet. Von daher verblüfft mich die Fehlermeldung umso mehr. Matt genau ^^ mich verblüfft's eben auch... wiegesagt, ich hab nur deine Replacements übernommen, hab noch nie irgendwas an der Datenbank rumgemacht oder sonst wie.. seeehr komisch Edit: letzten Post übersehen ^^ ja, techway, da hast du völlig recht... Projekt liegt hier in meiner lokalen testumgebung die mit PHP 5.1.4 und MySQL 5.0.21 läuft... ich hab grad mal nachgeschaut, blöderweise entspricht das nicht den versionen auf dem server später, aber ich würd's gern auch mit MySQL 5 zum laufen kriegen... hast du mir da einen Tipp? Link to comment Share on other sites More sharing options...
techway Posted November 20, 2006 Report Share Posted November 20, 2006 probier mal so: $from_str = "FROM ((".TABLE_PRODUCTS." AS p, ".TABLE_PRODUCTS_TO_CATEGORIES." as pc, ".TABLE_CATEGORIES." as c ) LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." AS pd ON (p.products_id = pd.products_id)) "; [/PHP] (ungetestet!) Gruß TechWay Link to comment Share on other sites More sharing options...
toby86 Posted November 20, 2006 Report Share Posted November 20, 2006 super!!! funktioniert einwandfrei!!!! dankeschön Link to comment Share on other sites More sharing options...
techway Posted November 20, 2006 Report Share Posted November 20, 2006 ja bitte schön, jetzt kenn ich auch endlich mal die ursache... (diese klammern) Link to comment Share on other sites More sharing options...
Reiner Helmrich Posted November 20, 2006 Report Share Posted November 20, 2006 probier mal so: $from_str = "FROM ((".TABLE_PRODUCTS." AS p, ".TABLE_PRODUCTS_TO_CATEGORIES." as pc, ".TABLE_CATEGORIES." as c ) LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." AS pd ON (p.products_id = pd.products_id)) "; [/php] (ungetestet!) Gruß TechWay Da ich genau dasselbe Problem habe (1054 - Unknown column 'p.products_id' in 'on clause') würde ich gerne noch einmal ganz genau wissen wohin ich diesen Code-Schnipsel kopieren soll. Irgendwie kann ich nämlich den Ursprungsstring in der Datei "advanced_search_result.php" nicht finden. Ich habe schon heute mittag an anderer Stelle erfolgreich eine Änderung wg. PHP5 vorgenommen. (Download mysql 5 fix.zip) Aber hier komme ich nicht klar. Habe die Version 304SP2.1 Gruß, Reiner Link to comment Share on other sites More sharing options...
tutsn Posted November 20, 2006 Report Share Posted November 20, 2006 Hallo Björn! Mit einer deaktivierten Kategorie kann ich es in der Tat auch nachvollziehen. Ich würde das als Bug einstufen, ob das xtC-Team das auch so sieht, keine Ahnung. Ich würde das nicht als Bug sehen, sondern als Feature. Es gibt Situationen, da möchte man als Shopbetreiber eine Kategorie unsichtbar machen, aber gerne die Produkte dortdrin zur Verfügung stellen, z.B. als Zubehör zu bestimmten Produkten. Wer nicht will, daß bestimmte Produlte gefunden werden, muss halt die Produkte deaktivieren. Link to comment Share on other sites More sharing options...
kompaktor Posted November 23, 2006 Author Report Share Posted November 23, 2006 Ich hab da noch das andere Problem. Wenn ich eine leere Kategorie aufrufe wird einfach nichts angezeigt. Hab mal etwas geschaut und an der /includes/modules/product_listing.php nen bischen rumgespielt, jedoch ohne Erfolg. MfG Kompaktor Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.