Aktionsaufruf fehlerhafte Abfrage

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

Aktionsaufruf fehlerhafte Abfrage

Beitragvon 3xproaudio » Fr 28. Okt 2016, 22:26

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.
Benutzeravatar
3xproaudio
 
Beiträge: 105
Registriert: Mo 13. Apr 2009, 13:16
Wohnort: Berlin

Re: Aktionsaufruf fehlerhafte Abfrage

Beitragvon 3xproaudio » Sa 29. Okt 2016, 07:55

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)) {

Benutzeravatar
3xproaudio
 
Beiträge: 105
Registriert: Mo 13. Apr 2009, 13:16
Wohnort: Berlin

Re: Aktionsaufruf fehlerhafte Abfrage

Beitragvon 3xproaudio » Sa 29. Okt 2016, 12:14

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) {
Benutzeravatar
3xproaudio
 
Beiträge: 105
Registriert: Mo 13. Apr 2009, 13:16
Wohnort: Berlin

Re: Aktionsaufruf fehlerhafte Abfrage

Beitragvon mmaass » Mo 7. Nov 2016, 13:25

Hab ich in dem anderen Thread erklärt, denke, dass sollte das ganze auflösen.
www.randshop.com
Entwicklung - Anpassung - Support
Benutzeravatar
mmaass
Admin
 
Beiträge: 5185
Registriert: Di 24. Aug 2004, 17:44
Wohnort: Berlin


Zurück zu Bugmeldungen

Wer ist online?

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