Autor Thema: Doppelte Hersteller  (Gelesen 10380 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline bytefender

  • Newbie
  • *
  • Beiträge: 12
  • Lob: 0
Doppelte Hersteller
« am: Oktober 07, 2004, 13:14:51 »
Um ein Select zu befüllen habe Ich ein Script geschrieben (Danke für die Mithilfe von Markus), um aus der Datenbank die Optionsfelder automatisch zu befüllen. Gleichzeitig werden mit $t1 und $t die Duplikate abgefangen. Das Feld 'HERSTNAME' ist ein benutzerdefiniertes Feld vom Typ TEXT.

   <!--spmacro:module(herst)
   sub h
   {
      my $t;
      my $text;
      my $t1;
      my $i=1;
      while ($i <= 211)
      {         
         $t =ssp::get_var_article('HERSTNAME',$i);
         if ($t ne $t1)
         {
            $text = qq{<option value="$t">$t</option>};
            main::mprint($text);
            $t1 = $t;
            $i++;
            
         }
         else
         {
            $i++;
            $t1 = $t;
         }
         
      }
      main::mprint($text1);
   }
   -->
Die Options Tags werden dann mit __herst::h__ in das Dokument weggeschrieben.
Es funktioniert auch mit dem einlesen, jedoch werden sporadisch die Hersteller doppelt angezeigt und das letzte Optionsfeld ist immer undefined.

Habe ich hier etwas vergessen?

Sorry aber C liegt bei mir schon ein paar Tage zurück und mit Perl fange ich jetzt erst an.

MFG
Fehlt hier noch was.

Linkback: https://www.shoppilot.net/pf/index.php?topic=391.0
« Letzte Änderung: Februar 11, 2007, 13:10:00 von ahe »

Offline admin

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 545
  • Lob: 10
...
« Antwort #1 am: November 09, 2004, 23:53:54 »
Hallo,

also hier eine noch bessere Lösung (die auch die Duplikate abfängt und die korrekte Anzahl berücksichtigt)

Anwendung: In einem Feld (hier ergaenz1) ist der Hersteller verzeichnet. Im shop Soll auf der Artikelseite eine Auswahloption angeboten werden, wozu eine Liste (<select><option></option></select>) der Auswahlmöglichkeiten zu generieren ist. Diese wird dann als Suchfeld verwendet und man erhält so eine z.B. nach Hersteller gefilterte Liste. Hier geht es um die Generierung der Select-Box.

<!--spmacro:module(herst)
sub h {
  my $anz = $_[1];
  my $t;
  my $i=0;
  my %TEST =();
  main::mprint("<select name=hersteller>");
  while ($i <= $anz)
  {
    $t =ssp::get_var_article('ergaenz1',$i);
    if (!defined ($TEST{$t})) {
       $text = qq{<option value="$t">$t</option>\n};
       main::mprint($text);
       $TEST{$t} =1;
     }
     ++$i;
  }
  main::mprint("</select>");
}
-->



Gruss hop
« Letzte Änderung: Februar 11, 2007, 13:09:39 von ahe »

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Doppelte Hersteller
« Antwort #2 am: Februar 11, 2007, 12:18:17 »
Hallo - genau so ein Script suche ich.........

Den Code von hop habe ich mir aus dem Quelltext geholt, aber ohne das "Optionsfelder befüllen" - Skript kann ich nichts damit anfangen.

Wäre suppernett, wenn Sie mir das verraten würden.

Vielen Dank im Voraus
dobra
mfG
dobra

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Doppelte Hersteller
« Antwort #3 am: Februar 11, 2007, 13:10:50 »
Hallo dobra,

jetzt sollten wieder alle Scripte sichtbar sein.
MfG ahe

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Doppelte Hersteller
« Antwort #4 am: Februar 11, 2007, 13:40:27 »
Danke ahe,

Irgendwas fehlt mir aber???
Es funktioniert bei mir nicht  http://www.woll-insel.at/cgi-bin/shop2/iboshop.cgi?show1200004230

<!--spmacro:module(marke)
sub listmarke {
  my $anz = $_[1];
  my $t;
  my $i=0;
  my %TEST =();
  main::mprint("<select name=Marke>");
  while ($i <= $anz)
  {
    $t =ssp::get_var_article('MARKE',$i);
    if (!defined ($TEST{$t})) {
       $text = qq{<option value="$t">$t</option>\n};
       main::mprint($text);
       $TEST{$t} =1;
     }
     ++$i;
  }
  main::mprint("</select>");
}

sub marke {

my $count = ssp::readSQLData("SELECT MARKE FROM PY2_ITEM","MARKE");
if ($count >= 0) {
my $i=0;
while ($count > $i) {
$marke = ssp::get_var_db("MARKE",$i);
main::mprint(" $marke<br>\n");
++$i;
}
} else {
my $errtext = ssp::get_last_sqlerr();
main::mprint("Fehler beim DB Zugriff: $errtext<br>\n");
}
}
-->

ich kann zwar mit __marke::marke__ die DB nach benutzerdef. Feld "MARKE" abfragen aber ich bringe es nicht in die Listbox

habe versucht, das Skript anzupassen:  $t =ssp::get_var_article('ergaenz1',$i);
  -  die Marke steht bei mir in ben. def. Feld MARKE - $t = ssp::get_var_article("MARKE",$i);
was bedeutet z.B. die Zeile  my %TEST =();
muß ich nicht %TEST irgendwie definieren?

mal wieder ratlos
« Letzte Änderung: Februar 11, 2007, 14:01:55 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Doppelte Hersteller
« Antwort #5 am: Februar 11, 2007, 14:28:54 »
Die Funktion listmarke liest die Marken der Artikel auf einer einzelnen Artikelseite aus (zu sehen an: my $anz = $_[1]; und get_var_article).
Nicht shopweit wie Ihre Funktion marke.
Legen Sie also auf Ihrer Testseite mal einige Artikelverknüpfungen an.
Dann sollten die Hersteller dieser Verknüpfungen in der Listbox ausgegeben werden.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Doppelte Hersteller
« Antwort #6 am: Februar 11, 2007, 14:37:52 »
alles klar - Danke - so funktioniert's
war wieder ein grober Gedankenfehler von mir

ich hatte da eigentlich eine andere Idee, die ich dann wieder mal nicht so umsetzen kann, wie ich mir das ausgedacht hatte.......

.........oder vielleicht doch?
Zitat
Diese wird dann als Suchfeld verwendet
wie kann ich das machen?
« Letzte Änderung: Februar 11, 2007, 14:42:04 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Doppelte Hersteller
« Antwort #7 am: Februar 11, 2007, 14:50:53 »
Schauen Sie mal in den Demoshop Styleshop.
Dort ist eine Herstellersuche (auch per Listbox) eingebaut.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Doppelte Hersteller
« Antwort #8 am: Februar 11, 2007, 15:07:10 »
DANKE

ich denke, damit kann ich etwas anfangen (= meine Idee doch realisieren)
mal sehen ob's was wird........

Sie haben mir jedenfalls sehr geholfen
wünsche noch ein ganz besonders schönes Restwochenende

dobra
« Letzte Änderung: Februar 11, 2007, 15:08:46 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Doppelte Hersteller
« Antwort #9 am: Februar 11, 2007, 17:13:36 »
Danke, wünsche ich Ihnen ebenfalls.


xx
Artikelreihenfolge nach Hersteller/Preis etc.

Begonnen von Andi

3 Antworten
6735 Aufrufe
Letzter Beitrag Januar 27, 2009, 14:32:28
von Andi
xx
Doppelte Bestellung

Begonnen von jg

2 Antworten
4797 Aufrufe
Letzter Beitrag Oktober 13, 2008, 12:50:43
von jg
xx
Doppelte Benutzernamen

Begonnen von jg

2 Antworten
4099 Aufrufe
Letzter Beitrag Februar 25, 2009, 14:56:57
von jg
xx
Doppelte Anzeige Zahlarten

Begonnen von Andi

4 Antworten
6205 Aufrufe
Letzter Beitrag April 24, 2003, 13:39:32
von jg