Falsche Daten in Tabelle "artikel_abhaenging"

Kein System ist vollkommen, findet Ihr Fehler im System, könnt ihr diese hier gerne Posten. Wir werden auch kurzfistige Lösungen und Fixes hier schreiben.

Moderatoren: Magnus, mmaass, ablass

Falsche Daten in Tabelle "artikel_abhaenging"

Beitragvon HerMer » Mo 9. Mär 2015, 09:14

Beim Crosselling wird nach dem Zuordnen oder Löschen eines Crosselling-Artikels folgende Funktion aufgerufen:
Code: Alles auswählen
UpdateMerkmalkombination($ArtikelID);

Damit soll der Crosselling-Artikel auch allen Merkmalkombinationen des Hauptartikels zugeordnet werden, sonst gibt es fehlerhafte Anzeigen im Shop.
Mit folgendem Code werden nun alle Merkmalkombinationsartikel gesucht:
Code: Alles auswählen
$MerkmalkombinationenDataArray = GetArtikelDataArray($MerkmalkombinationenSearchField, $MerkmalkombinationenSearchString, "", "", "", "", "", "", "", "", "", "", "", "", "", 0, 2);

(wozu am Ende des Funktionsaufrufes die "0" und die "2" ist, ist mir nicht ganz klar. Denn wenn ich mich nicht verzählt habe wird die "0" an "$FilterBestseller" übergeben und die "2" an "$OptionVarianten")

soweit sogut.. nur werden aber zu viele Artikel in dieses Array gelegt.
ist die ID des Artikels z.B. "142" werden auch Artikel mit der ID "1142" oder "1420" oder "2142" usw. gefunden. Also alle ID in denen "142" vorkommt.

In der Funktion "GetArtikelDataArray" habe ich in "Suche" das hier gefunden: "if (isset($OptionSearchExact)) {"
Diese Variable "$OptionSearchExact" wird aber nirgends festgelegt oder übergeben.
Zuletzt geändert von HerMer am Mo 9. Mär 2015, 14:33, insgesamt 1-mal geändert.
HerMer
 
Beiträge: 180
Registriert: So 30. Nov 2008, 16:00

Re: Falsche Daten in Tabelle "artikel_abhaenging"

Beitragvon HerMer » Mo 9. Mär 2015, 14:26

Ich habe jetzt in der Datei "functions.artikel.inc.php" ab ca. Zeile 2500 folgenden Code abgeändert (die "%"-Zeichen entfernt)
Code: Alles auswählen
} elseif ($SearchField && $SearchString) {

    //$SQLString .= "(" . $SearchField . " LIKE '%" . $SearchString . "%') AND "; --- geändert von HH
    $SQLString .= "(" . $SearchField . " LIKE '" . $SearchString . "') AND ";

}


Jetzt funktioniert zumindest beim Crosselling die Zuordnung richtig. Ich habe aber keine Ahnung, ob das Auswirkungen auf andere Bereiche hat. :?
HerMer
 
Beiträge: 180
Registriert: So 30. Nov 2008, 16:00

Re: Falsche Daten in Tabelle "artikel_abhaenging"

Beitragvon ablass » Mi 10. Jun 2015, 12:39

Ich hab das Problem für die v2.4 jetzt mal anders behoben. Deine Lösung ist nicht so optimal, weil du damit ja grundsätzlich die Wildcardsuche ausschaltest, also beispielsweise auch in der Artikelliste wenn man nach Namen sucht, da ist es schon ganz praktisch wenn man nicht den kompletten Namen angeben muss.
ablass
 
Beiträge: 126
Registriert: Mi 22. Jul 2009, 07:56


Zurück zu Bugmeldungen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste