Seite 1 von 1

Falsche Daten in Tabelle "artikel_abhaenging"

BeitragVerfasst: Mo 9. Mär 2015, 09:14
von HerMer
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.

Re: Falsche Daten in Tabelle "artikel_abhaenging"

BeitragVerfasst: Mo 9. Mär 2015, 14:26
von HerMer
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. :?

Re: Falsche Daten in Tabelle "artikel_abhaenging"

BeitragVerfasst: Mi 10. Jun 2015, 12:39
von ablass
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.