Jump to content
xt:Commerce Community Forum

Error 1054 - Hier eine Allroundlösung gefunden


Recommended Posts

Bei wem dieser Fehler auftritt, de bekommt hier eine Lösung.

Ich mache das mal anhand eines Beispiels:

Fehlermeldung:

1054 - Unknown column 'p.products_id' in 'on clause'

in diesem Fall kommt der Fehler aus der product_reviews_info.php

Wer den Fehler hat, ersetzt in der Zeile 33 mit dem Inhalt

$reviews_query = xtc_db_query("select r.products_id, rd.reviews_text, r.reviews_rating, r.reviews_id, r.customers_name, r.date_added, r.last_modified, r.reviews_read, p.products_id, pd.products_name, p.products_image from ".TABLE_REVIEWS." r, ".TABLE_REVIEWS_DESCRIPTION." rd left join ".TABLE_PRODUCTS." p on (r.products_id = p.products_id) left join ".TABLE_PRODUCTS_DESCRIPTION." pd on (p.products_id = pd.products_id and pd.language_id = '".(int) $_SESSION['languages_id']."') where r.reviews_id = '".(int) $_GET['reviews_id']."' and r.reviews_id = rd.reviews_id and p.products_status = '1'");

zu dem hier:

$reviews_query = xtc_db_query("select r.products_id, rd.reviews_text, r.reviews_rating, r.reviews_id, r.customers_name, r.date_added, r.last_modified, r.reviews_read, p.products_id, pd.products_name, p.products_image from (((".TABLE_REVIEWS." r, ".TABLE_REVIEWS_DESCRIPTION." rd) left join ".TABLE_PRODUCTS." p on (r.products_id = p.products_id)) left join ".TABLE_PRODUCTS_DESCRIPTION." pd on (p.products_id = pd.products_id and pd.language_id = '".(int) $_SESSION['languages_id']."')) where r.reviews_id = '".(int) $_GET['reviews_id']."' and r.reviews_id = rd.reviews_id and p.products_status = '1'");

Zur Allroundlösung bei ähnlichen 1054 - Probleme:

Ich habe (rot markiert) einfach Klammern gesetzt. Bei vergleichbaren Scripts sollte dies genauso funktionieren. Wer sich etwas mit SQL-Scripts auskennt sollte mit etwas Verstand die Logik verstehen die hinter den Klammern steht.

Wer Probleme hat, kann seine Scriptzeile hier reinwerfen, mal gucken ob es dann auch funktioniert, wenn ich dafür dann eine Hilfe gebe.

Link to comment
Share on other sites

  • 1 month later...
  • Replies 131
  • Created
  • Last Reply

Schade diese Lösung funktioniert bei mir nicht, obwohl ich auch diese 1054 Fehlermeldung seit neustem habe.

Einfach mal in meinem Shop auf eine Kategorie klicken oder die Suche benutzen.

Woran liegt es? Dieser Fehler tritt erst seit kurzem auf.

Link to comment
Share on other sites

[COLOR=#000000][B]1054 - Unknown column 'p.products_id' in 'on clause'


select count(p.products_id) as total from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '2' and p.products_fsk18!=1 and p2c.categories_id = '21' ORDER BY pd.products_name ASC 


[COLOR=#ff0000][XT SQL Error][/COLOR][/B][/COLOR]

Diese Fehlermeldung erscheint sobald ich eine Kategorie aufrufe oder die Suche benutze

Link to comment
Share on other sites

select count(p.products_id) as total from (((products_description pd, products p) left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c) left join specials s on p.products_id = s.products_id) where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '2' and p.products_fsk18!=1 and p2c.categories_id = '21' ORDER BY pd.products_name ASC

Bitte das mal da einfügen bzw. die alte Abfrage rausnehmen und das hier dafür einsetzen und testen :rolleyes:

Link to comment
Share on other sites

schau doch mal in der adressleiste bei welcher php-Datei der Fehler angezeigt wird...dann öffnest du diese datei und schaust nach, wo sich denn da überall SQL-Abfragen befinden...Diese markierst du mal und postest hier rein...SQL-Abfragen beginnen zumeist mit SELECT.

Manchmal sind in einer Datei mehrere drinne...kipp mal alles hier rein, ich passe dir das dann an :)

Link to comment
Share on other sites

$category_depth = 'top';

if (isset($cPath) && xtc_not_null($cPath)) {

$categories_products_query = xtc_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . $current_category_id . "'");

$cateqories_products = xtc_db_fetch_array($categories_products_query);

if ($cateqories_products['total'] > 0) {

$category_depth = 'products'; // display products

} else {

$category_parent_query = xtc_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . $current_category_id . "'");

$category_parent = xtc_db_fetch_array($category_parent_query);

if ($category_parent['total'] > 0) {

$category_depth = 'nested'; // navigate through the categories

} else {

$category_depth = 'products'; // category has no products, but display the 'no products' message

}

}

}

Link to comment
Share on other sites

Na mal gucken ob das jetzt klappt :)

1. suche nach:

$categories_products_query = xtc_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . $current_category_id . "'");

ersetze mit:

$categories_products_query = xtc_db_query("select count * as total from (" . TABLE_PRODUCTS_TO_CATEGORIES . ") where categories_id = '" . $current_category_id . "'");

2. suche nach:

$category_parent_query = xtc_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . $current_category_id . "'");

ersetze mit:

$category_parent_query = xtc_db_query("select count * as total from (" . TABLE_CATEGORIES . ") where parent_id = '" . $current_category_id . "'");

Link to comment
Share on other sites

Jetzt erscheint folgende Fehlermeldung:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as total from (products_to_categories) where categories_id = '24'' at line 1

select count * as total from (products_to_categories) where categories_id = '24'

[XT SQL Error]

Link to comment
Share on other sites

das ist aber seltsam :confused:

alles rückgängig machen wieder und dann das hier:

suche nach

$categories_products_query = xtc_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . $current_category_id . "'");

ersetze mit:

$categories_products_query = xtc_db_query("select count * as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . $current_category_id . "'");

Link to comment
Share on other sites

dann erscheint dieser Fehler:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as total from products_to_categories where categories_id = '24'' at line 1

select count * as total from products_to_categories where categories_id = '24'

[XT SQL Error]

Übrigens ich danke Dir, rivendarkness, für deine Hilfe

Link to comment
Share on other sites

Nix zu danken :) Ich weiß auch nicht warum ich das hier grad tu :P wahrscheinlich ehrgeiz ;)

zum thema:

Aha, dann versteht der SQL-Server also manche Sachen anders als andere...das ist ja auch das ursprüngliche problem...dein mysql-server wurde updatet und hat jetzt gewisse probleme mit der abfragesyntax.

Bitte stelle also die Zeile wieder dahin zurück:

$categories_products_query = xtc_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . $current_category_id . "'");

Ich hab mir Deinen ursprünglichen Eingangstext nochmal durchgelesen. Die Abfrage hier ist eine ganz andere als die urspüngliche :confused: Fehlermeldung aussagt.

Suche mal in allen Dateien folgende Zeichenkette:

select count(p.products_id) as total from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status =

Wenn Du eine Liste der Dateien hast, wo diese Zeichenkette drin steht, dann bitte hier reindingsen :D

Link to comment
Share on other sites

Dann such mal bitte nach ORDER BY pd.products_name ASC

Bitte nicht die Windowssuche nutzen! Bitte lade dir dazu sowas wie freecommander runter. Windowstextsuche findet in unbekannten Dateitypen, wozu php zählt, nix.

Wegens dem Patch hab ich keine Ahnung. Ich zahle für den Shop nicht, da mich die Qualität des Shops nicht überzeugt, da es voller Fehler ist, wobei ich nicht die sql-sachen meine, sondern das sowas wie das gutscheinsystem nicht funktioniert ohne harten eingriff in die programmierung.

Link to comment
Share on other sites

Diesen Code finde ich nur hier:

admin/new_attributes_select.php

Ich glaube das hat damit nicht so viel zu tun.

P.S. Ich möchte ja auch nicht auf die 3er Version umsteigen, weil ich soviel Stunden in den jetzigen Shop gesteckt habe und dies dann wieder tun muss, um die Templates anzupassen pp. - ich möchte mit dem Shop Geld verdienen und mehr nicht.

Link to comment
Share on other sites

Tja, ich hab jetzt mal beim 3er Shop geschaut wo sich diese Select-Abfrage befinden könnten. Diese müssen wir finden, dann haben wir das Problem gepackt. Ich weiß eben nicht inwieweit sich der 2er vom 3er unterscheidet. Die php-Dateien greifen alle ineinader, das es schwer ist den Weg zu verfolgen wo die Abfrage herkommt...ich glaube dazu brauch ich den 2er selber auch :mad:

Ich muss hier echt die Arme heben, solange ich nicht weiß wo diese Abfrage herkommt kann ich nüschts machen :(

Link to comment
Share on other sites

  • 2 weeks later...

Zur Allroundlösung bei ähnlichen 1054 - Probleme:

Ich habe (rot markiert) einfach Klammern gesetzt. Bei vergleichbaren Scripts sollte dies genauso funktionieren. Wer sich etwas mit SQL-Scripts auskennt sollte mit etwas Verstand die Logik verstehen die hinter den Klammern steht.

Wer Probleme hat, kann seine Scriptzeile hier reinwerfen, mal gucken ob es dann auch funktioniert, wenn ich dafür dann eine Hilfe gebe.

Link to comment
Share on other sites

ich werf mal kurz mein Befehl hier rein und würde mich über eine Lösung freuen:

1054 - Unknown column 'p.products_id' in 'on clause'

select p.products_fsk18, p.products_shippingtime, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.products_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '2' and p2c.categories_id = '2' ORDER BY p.products_price ASC

Danke

Link to comment
Share on other sites

Hallo,

die Abfrage steht ja schon oben. Ich habe diese auch in der default.php gefunden. Es scheint jedoch nicht die Richtige zu sein, da trotz dort gemachter Änderungen die gleiche Fehlermeldung angezeigt wird (ja, cache wurde gelöscht). Gibt es noch eine andere Möglichkeit, wo die Abfrage stehen könnte? Shopversion ist die 3.0.4 (SP1)

Erstaunlich ist auch, dass ein anderer Shop genau mit dieser Abfrage funktioniert.

Wenn ich die Abfrage in mySQL ausführe, komme ich zu dem gleichen Problem....

Bin für jeden Hinweis dankbar ...

enjoy

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
  • Create New...