Seite 1 von 1

Aktionsaufruf fehlerhafte Abfrage

BeitragVerfasst: Fr 28. Okt 2016, 22:26
von 3xproaudio
beim Aufrufen einer Aktion übers Menü werden die Artikel falsch eingelesen.
Der Funktionsaufruf aus der themes/kategorie/aktions.php
Code: Alles auswählen
// Artikelanzahl in der Kategorie ermitteln
   $ArtikelAnzahl = GetArtikelAnzahl($SearchField, $SearchString, "", "", "", "", "", 1, 1);

gibt mehr Artikel zurück, als in einer Aktion sind.
Immer dann, wenn aktive Aktionen eine Ziffer gleich haben.
Der Fehler dürfte in der artikel.functions.inc.php oder im Aufruf der Funktion GetArtikelAnzahl liegen.
Der SQL String für die Datenbankabfrage wird immer in der ELSE IF Verzweigung der FUnktion GetArtikelAnzahlPA erzeugt:
(bei mir Zeile 1807)
Code: Alles auswählen
   } elseif ($SearchField && $SearchString) {
      $SQLString .= "(" . $SearchField . " LIKE '%" . $SearchString . "%') AND ";
      //echo $SQLString ;   

Durch die fixen % davor und danach wird alles "mitgenommen", was einer einstelligen Suchabfrage entspricht.
Das kann nicht richtig sein.

Re: Aktionsaufruf fehlerhafte Abfrage

BeitragVerfasst: Sa 29. Okt 2016, 07:55
von 3xproaudio
Das ist nur die Funktion um die Anzahl der Artikel eines Angebotes zu ermitteln.
Danach folgt ja der Artikeldetailaufruf.
Auch hier wird aus der functions.artikel.inc.php nur die letzte Verzweigung aufgerufen.
Funktion: GetArtikelDataArray
Code: Alles auswählen
   } elseif ($SearchField && $SearchString) {

      $SQLString .= "(" . $SearchField . " LIKE '%" . $SearchString . "%') AND ";
      

Dürfte also ein Problem des Aufrufs sein........

Die erste Bedingung wird nicht erfüllt:
Code: Alles auswählen
   $SQLString .= " WHERE ( ";

   // Suche
   if (is_array($SearchField) && is_array($SearchString)) {


Re: Aktionsaufruf fehlerhafte Abfrage

BeitragVerfasst: Sa 29. Okt 2016, 12:14
von 3xproaudio
Der Fehler würde bei einer Herstellerauswahl genauso auftreten, ABER:
da greift ein zusätzlicher FIlter:
Code: Alles auswählen
   // Filter Hersteller
   if ($FilterHerstellerID) {
      $SQLString .= "(" . TABLE_ARTIKEL . ".hersteller_id = '" . $FilterHerstellerID . "') AND ";
      echo "<->";
   }


ich werde jetzt in die functions.artikel ein paar Zeilen mehr rein bauen ála
Code: Alles auswählen
      
.
.
.


                if($SearchField == TABLE_ARTIKEL . ".angebote")
         {
            $SQLString .= "(" . $SearchField . " = '" . $SearchString . "') AND ";
         }
      else
         {      
            $SQLString .= "(" . $SearchField . " LIKE '%" . $SearchString . "%') AND ";
         }


den Code an zwei Stellen:
GetArtikelAnzahlPA Zeile ca. 1808
GetArtikelDataArrayPA Zeile ca. 2579

jeweils nach:
Code: Alles auswählen
   } elseif ($SearchField && $SearchString) {

Re: Aktionsaufruf fehlerhafte Abfrage

BeitragVerfasst: Mo 7. Nov 2016, 13:25
von mmaass
Hab ich in dem anderen Thread erklärt, denke, dass sollte das ganze auflösen.