Jump to content
xt:Commerce Community Forum

Fehler beim Aufruf der Specials.php


webrise

Recommended Posts

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 '-6, 6' at line 12

Diese Fehlermeldung erscheint, sobald keine Sonderangebote mehr definiert sind und ich die specials.php aufrufe.

Ich w?rde es gerne so haben, dass ich einen Text abgeben kann wenn es zZt keine Sonderangebote gibt. Oder funktioniert das nicht?

W?re f?r jede Hilfe dankbar.

Link to comment
Share on other sites

Originally posted by webrise@Oct 24 2005, 12:42 PM

Hat keiner eine Idee, warum es zu dieser Fehlermeldung kommt?

Nun ja, ich h?tte ein paar, kann den Fehler aber bei mir nicht nachvollziehen und finde das SQL-Statement auch nicht.

Welche Version benutzt Du denn?

Gruss, Peter

Link to comment
Share on other sites

moin!

ich habe diesen fehler auch. im einsatz habe ich mysql 4.1.14 sowie den xtc 3.0.4 sp1.

- gibt es inzwischen eine l?sung?

- haben andere dieses problem mit meiner software-kombination zuf?llig auch?

das system ist gestern neu aufgesetzt, 2 artikel testweise mit cao hochgeladen, ein anderes template genommen, sonst nichts ver?ndert.

mfg, chris

Link to comment
Share on other sites

  • 10 months later...

hat sich für diesen Problem, falls es denn eins ist, eine Lösung gefunden?

Wie gesagt, sobald ich keine Sonderangebote habe, kommt es beim Aufruf der specials.php zu dieser Fehlermeldung. Kann ja nicht ständig Sonderangebote haben. Irgendwo ist doch da der Wurm drin. Einstellungssache?

Kann einer helfen?

Hier nochmal die 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 '-8, 8' at line 12

select p.products_id, pd.products_name, p.products_price, p.products_tax_class_id, p.products_image, s.specials_new_products_price from products p, products_description pd, specials s where p.products_status = '1' and s.products_id = p.products_id and p.products_id = pd.products_id and pd.language_id = '2' and s.status = '1' order by s.specials_date_added DESC limit -8, 8

Stimmt irgendwas mit Tabelle in der Datenbank nicht? Irgendwas muss doch den Fehler verursachen.

mySql-Version: 4.1.15-Debian bei Host Europe

Kennt sich einer damit aus?

Link to comment
Share on other sites

Ich weiß echt nicht mehr weiter.

Wenn ich nur mit der Fehlermeldung etwas anfangen könnte. Blicke da nicht durch. Liegt das nun an meiner SQL-Version oder hat sich irgendwo ein Fehler eingeschlichen?

Beim XTC-Demoshop erscheint ja auch keine Fehlermeldung wenn keine Sonderangebote vorhanden sind. Sind die Unterschiede zwischen 2er und 3er Version in dieser Hinsicht so verschieden?

Woran kann das nur liegen? Bitte um Hilfe

:confused:

Link to comment
Share on other sites

  • 5 months later...
  • 1 month later...

aber scheint keinen zu jucken

Doch, mich jucken solche Fehler (obwohl ich gar kein Sonderangebote habe ;) )

Ich kann Euch wenigstens den Fehler erklären: Es liegt am negativen Offset im LIMIT der SQL-Abfrage (-8,8) - genau das sagt die Fehlermeldung!

Die tritt unter MySQL ab Version 4.1 auf, weil dort keine negativen Werte mehr bei LIMIT erlaubt sind. Siehe http://dev.mysql.com/doc/refman/4.1/en/upgrading-from-4-0.html (ziemlich weit unten)

Im Shop kommen die negativen Werte aus der includes/modules/split_page_results.inc.php, da steht in Zeile 58

$offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1));

$this->sql_query .= " LIMIT " . $offset . ", " . $this->number_of_rows_per_page;[/PHP]

Der Shop nimmt also die Zahl, die als Maximum pro Seite für Sonderangebote im Admin eingetragen ist, nimmt die mal der aktuellen Seitennummer -1 und macht dann mit der eigentlichen Zahl der Sonderangebote das LIMIT draus.

Beispiel:

Acht Sonderangebote definiert, aber keine da.

Deshalb ist Seite = 0.

Null - 1 = -1,

acht Sonderangebote mal -1 = -8...

Eine Lösung hab' ich auch nicht, wobei man versuchen könnte, die oben angegebenen Zeilen so zu ändern (wobei die split_page_result eigentlich schon auf Seite = 0 checkt, und dann 1 setzt...):

[PHP]// beginn neu
if($this->current_page_number == 0) $this->current_page_number = 1;
// ende neu
$offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1));

$this->sql_query .= " LIMIT " . $offset . ", " . $this->number_of_rows_per_page;[/PHP]

Aber [b]ACHTUNG[/b]! Der Shop könnte sich dann an mehreren Stellen ungewöhnlich verhalten, da diese Funktion von allen Listen, die mehrere Seiten generieren, verwendet wird! Getestet hab ich's auch nicht!

Link to comment
Share on other sites

Archived

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

×
  • Create New...