Shop Support News Archive - Shopbetreiber News -> Forum : Sql Fehlermeldung Beim Aufrufen Der Sonderangebote (specials.php)
Hallo,
in meinem Shop habe ich einen direkten Link zu der Seite mit den Sonderangeboten eingernichtet.
Jetzt sind aktuall aber keine Sonderangebote im Shop eingetragen. Klicke ich jetzt auf meinen Link erscheint diese Fehlermeldung beim Aufrufen der specials.php:
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 '-9, 9' at line 13
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 -9, 9
[XT SQL Error]
Die Ursache scheint eben zu sein, dass keine Sonderangebote zu finden sind. Kennt jemand eine Lösung diesen Fehler zu unterdrücken oder im Idealfall eine Seite mit dem Hinweis auszugeben, dass zur Zeit keine Sonderangebote vorhanden sind?
Viele Grüße
Andreas
lockdron
09.05.2007, 13:17
Versuch mal die Stelle mit der SQL zu finden.
Da wird am Ende scheinbar eine Variable angefügt, die für die "-9" beim Limit sorgt.
Da setzt du vorher eine Abfrage nach dem Schema:
if($VARIABLE < 0)
$VARIABLE = 0;
dann sollte es eigentlich ohne Fehlermeldung gehen. Nur weiß ich nicht, was dann überhaupt für ein Ergebnis kommt.
by lockdron
fiese möpp
09.05.2007, 13:27
Kannst auch ein Artikel etwas teuerer machen und den eigentlichen Preis als Sonderangebot.
Noch besser ist es, daß der Kunde beim anklicken der Seite etwas sieht.
Leg einen Artikel mit Bild an (den kannst Du ja bei Bedarf immer aktivieren oder deaktivieren.
Schönes Bild und Text mit Preis 0 - Zur Zeit sind keine besondern Angebote vorhanden, aber demnächst warten wieder unglaubliche Schnäppchen auf Sie. Vergessen Sie also nicht unsere Angebotsseite immer wieder einmal zu besuchen.
Dann ist die Seite nicht leer und der Kunhde erhält eine Info.
Gruß
Ernst
lockdron
10.05.2007, 11:25
''>ZITAT(emet @ May 10 2007, 11:18) 26070
Noch besser ist es, daß der Kunde beim anklicken der Seite etwas sieht.
Leg einen Artikel mit Bild an (den kannst Du ja bei Bedarf immer aktivieren oder deaktivieren.
Schönes Bild und Text mit Preis 0 - Zur Zeit sind keine besondern Angebote vorhanden, aber demnächst warten wieder unglaubliche Schnäppchen auf Sie. Vergessen Sie also nicht unsere Angebotsseite immer wieder einmal zu besuchen.
Dann ist die Seite nicht leer und der Kunhde erhält eine Info.
Gruß
Ernst
[/b]
Würde ich eher mit einer Abfrage im Template machen. Ich kenn zwar die Seite nicht, weil ich keine Sonderangebote habe, aber wenn meine Vermutung mit dieser Variable wirklich stimmt, kann man die danach auch an das Template übergeben und dann per IF überprüfen, ob sie 0 ist und entsprechend einen Alternativtext anzeigen.
Ist evtl. bischen einfacher zu handhaben, statt immer einen Artikel zu aktivieren/deaktivieren, wenn Sonderangebote da sind, oder nicht.
by lockdron
Ja, eben nur wo.
Da ich auch kein PHP-Experte bin hab ich halt diesen Vorschlag gemacht.
Wenn ich als Shopbeistzer die Angebote rausnehme, ist es doch kein Problem, die Leerseite aktiv anzuklicken.
Stell ich was rein, dann klick ich und deaktiviere sie.
Viel Arbeit ist das nicht und man kann es swelbst machen - egal wie gut man proggen kann.
Evtl. hat ja hier jemand einen Lösungsansatz dazu.
Viele Grüße
Ernst
Vielen Dank für Eure Hilfe.
Beide Lösungsansätze funktionieren tadellos, DANKE!
hallo,
hatte bis eben die gleiche fehlermeldung beim happy_hour modul gehabt.
habe jetzt endlich die lösung im oscommerce forum gefunden!!!
es muss folgende datei geändert werden:
/includes/classes/split_page_results.php
folgende zeile suchen,
$offset = ($this->number_of_rows_per_page ($this->current_page_number - 1));
$this->sql_query .= " LIMIT " . $offset . ", " . $this->number_of_rows_per_page;
und dazwischen folgendes einfügen
$offset = ($this->number_of_rows_per_page ($this->current_page_number - 1));
if ($offset < 0) $offset=0;
$this->sql_query .= " LIMIT " . $offset . ", " . $this->number_of_rows_per_page;
und der fehler ist geschnichte!
gruß
ewo
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.