PDA

Shop Support News Archive - Shopbetreiber News -> Forum : Module Erweiterungen Open Source Shopsystem xt eCommerce Templates Module SEO Support: : Nach Datum Suchen


DeeCoo
23.12.2006, 21:39
Hallo,

ich möchte gerne nach einem bestimmten Datum suchen.

Also ich habe als Attribute ein VÖ (Veröffentlnichtsdatum).

Nach einem Datenbank Update aktualisiere ich das Datum "Added" mit dem VÖ,
quasi sind Artikel die ein VÖ von 2002 hatten weiter hinten zu finden.

Nun möchte ich gerne dem User die Möglichkeit geben nach einem Datum zu sortieren.

Ich würde das gerne (wie schon in OSC Zeiten) das über die advanced_search machen, leider bietet aber die advanced search keine datumssuche mehr, muss aber auch hier mal funktioniert haben, denn in der php habe ich noch reste gefunden:

****if (($_GET['errorno'] & 10) == 10) {
********$error .= str_replace('\n', '
', JS_INVALID_FROM_DATE);
****}
****if (($_GET['errorno'] & 100) == 100) {
********$error .= str_replace('\n', '
', JS_INVALID_TO_DATE);


wie und was kann ich machen, diese wieder in Betrieb zu nehmen.

ungefähr so soll das später funktionieren:


10/2006 (advanced_search_result.php?keywords=10.2006&x=0&y=0)
11/2006 (advanced_search_result.php?keywords=11.2006&x=0&y=0)
12/2006 (advanced_search_result.php?keywords=12.2006&x=0&y=0)



Vielen Dank
Greets Mario

DeeCoo
29.12.2006, 09:49
dezent nach oben schieb

TechWay
29.12.2006, 13:05
Hallo Mario,

in welchem Feld speicherst du das Datum ab?
products.products_date_added ?

das muss man wohl selbst mit einbauen... das was du gefunden hast, ist die Fehlerbehandlung...

Gruß
Steffen

DeeCoo
29.12.2006, 13:13
Hi Steffen,

ja genau, ich schiebe meine Produkt mit Attribute Erscheinungsdatum hoch und führe in der SQL
UPDATE products SET `products_date_added` = `products_date_available`;
aus. also könnte ich in den Attributen suchen (products_date_available) und auch in der date_added.

gruss Mario

DeeCoo
29.12.2006, 14:32
also,

mir is aufgefallen das wenn ich in der products_description (products_keywords) das Datum eingebe wird es in der Suchabfrage gefunden nun eine Frage nach dem SQL Befehl, ich komm einfach nich drauf

hab es versucht mit

UPDATE products_description SET `products_keywords` = `products.products_date_available`;

oder mit

UPDATE products_description SET `products_keywords` = `products_date_available` FROM products;

oder mit

UPDATE products_description SET products_keywords WHERE products.products_date_added = products_description.products_keywords;

geht aber nicht :(

hat vllt jmd einen Tip?

gruss DeeCoo

TechWay
29.12.2006, 17:18
Hallo Mario,

so müsste es theoretisch klappen (praktisch, habe ich es nicht getestet ;) )


UPDATE products_description, products SET products_description.products_keywords=products.pr oducts_date_available WHERE products.products_id = products_description.products_id;


Gruß
Steffen

DeeCoo
29.12.2006, 17:56
hi steffen, nee das wars leider nich :(

gibt n err

#1064 - You have an error in your SQL syntax near ' products SET products_description.products_keywords=products.pr oducts_date_avai' at line 1


mit

UPDATE products_description SET products_keywords = (SELECT MAX(products.products_date_added) FROM products WHERE products_description.products_keywords = products.products_date_added);

funzt es auch nich grml ...

hab schon sämtlich comments aus der mysqldoku durch -.-

fiese möpp
03.01.2007, 00:57
Um welche MySQL Version geht es hier?

fiese möpp
03.01.2007, 01:10
Versuch es mal mit

UPDATE products_description pd, products p
SET pd.products_keywords = p.products_date_available
where p.products_id=pd.products_id;


viellenicht noch das Datum in String umwandeln, sollte aber gehen.

DeeCoo
03.01.2007, 03:18
vielen Dank fiese möpp,

auf meinem Testserver habe ich Version 3.23.58
auf dem rnichtigen Version 4.1.22

auf dem Testserver ging es nicht und "mutiger" weise hab ich es trotzdem nochmal auf dem rnichtigen probiert und siehe da, da funktionierte es.

Perfekt!


gruss DeeCoo

TechWay
03.01.2007, 09:17
achso, deine alte Version arbeitet wohl "nur" mit INNER JOINS

so hätte ichs auch noch versucht...


UPDATE products_description pd INNER JOIN products p ON p.products_id=pd.products_id
SET pd.products_keywords = p.products_date_available

DeeCoo
03.01.2007, 09:34
nee das klappt leider auch nicht, aber nicht mehr den Kopf zerbrechen ... es funzt ja in der neuen

fiese möpp
03.01.2007, 12:27
Hatte mal dasselbe Problem.
Die Lösung war, eine temporäre Tabelle erstellen und diese so füllen, wie man es haben will. Die Einträge aus der ursprünglichen Tabelle löschen und dann die temporäre Tabelle zurückkopieren bzw. umbenennen.

Aber was elegantes weiss ich auch nicht. Währe aber an ner Lösung interressiert.