Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 22, 2012, 21:54:14

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5257 Beiträge in 1422 Themen von 333 Mitglieder
Neuestes Mitglied: pje
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  Anzahl der Varianten auf Artikelseiten auslesen?
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Anzahl der Varianten auf Artikelseiten auslesen?  (Gelesen 917 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« am: Dezember 31, 2010, 10:32:03 »

Hallo,

Ich möchte auf bestimmten Seiten auf denen mehrere Artikel mit Varianten liegen gerne die Anzahl der Varianten statt der Artikelanzahl ausgeben.
(bei Detailseiten wo es nur einen Artikel gibt war das einfach aber auf Artikelseiten mit variabler Artikelanzahl schaffe ich es nicht...)

wie muss ich da das sub (in location.ipl) schreiben?
Code:
sub itemcount {
    my %pageinfo = ssp::getCurrentPageInfo();
    my $catid = $ssp::pgid;
    if ($catid <10 or $catid > 1200000000){
        return;
    }
    if (($pageinfo{pagetype} >= 11) && ($pageinfo{pagetype} <= 17)){
        return;
    }
    
    my %pages = ();
    
    ssp::getChildCategoriesRecursive ($catid, \%pages);
    
    my @keys = keys %pages;
    my $pre = ssp::db_get_prefix();
    my $TABLE = $pre . "ITEM";
    my $counter = scalar(@keys);
    my $sqlstring = qq |SELECT COUNT(*) FROM $TABLE WHERE |;
        
     $sqlstring .= qq| PGID IN (|. join(",", @keys) .qq|)|;
                    
    ssp::readSQLData($sqlstring, "COUNT");
    my $count = ssp::get_var_db("COUNT", 0);
    main::mprint qq|            
<span class="text_before_items">$text_before_count</span><span class="count">$count</span> <span class="text_count">$text_items</span><span class="text_after_count">$text_after_count</span>
    |;
    
}
gibt ja nur die Artikelanzahl
Habe - erfolglos - alle möglichen "intuitiven" Varianten versucht, aber dazu reichen meine SQL-Kenntnisse mal wieder nicht  Cry

mit
Code:
   my @keys = keys %pages;
    my $pre = ssp::db_get_prefix();
    my $TABLE = $pre . "ITEM";
    my $TABLE2 = $pre . "SITM";
    my $counter = scalar(@keys);
    my $sqlstring = qq |SELECT ITEMID FROM $TABLE WHERE |;
        
     $sqlstring .= qq| PGID IN (|. join(",", @keys) .qq|)|;
                    
    my $read = ssp::readSQLData($sqlstring, "ITEMID");
my $count2;
for (my $i = 0; $i < $read; $i++) {
my $test = ssp::get_var_db("ITEMID", $i);
my $sqlstring2 = qq |SELECT COUNT(*) FROM $TABLE2 WHERE MITEMID = '$test'|;
   ssp::readSQLData($sqlstring2, "COUNT");
$count2 .= ssp::get_var_db("COUNT", 0);
}
bekomme ich nur die Teilmengen
(9 10 4 9 5 6 5 7 3 7 5 8 Artikel)
ich komme nicht drauf, wie ich da jetzt sie SUMME der gefundenen Varianten ausgeben kann.

mit
SELECT SUM(COUNT(*)) FROM $TABLE2
kommt x mal wiederholt
[Fri Dec 31 10:24:58 2010] iboshop.cgi: DBD::ODBC::st execute failed: [MySQL][ODBC 3.51 Driver][mysqld-5.0.67-community-nt]Invalid use of group function (SQL-HY000)(DBD: st_execute/SQLExecute err=-1) at Ibodata.pm line 1969.

und
Code:
my $summe=0;
for (my $i = 0; $i < $read; $i++) {
my $test = ssp::get_var_db("ITEMID", $i);
my $sqlstring2 = qq |SELECT COUNT(*) FROM $TABLE2 WHERE MITEMID = '$test'|;
   ssp::readSQLData($sqlstring2, "COUNT");
$count2 .= ssp::get_var_db("COUNT", 0);
$summe=$summe+$i;
}
bringt falsche Zahlen


ERLEDIGT

falsch
$count2 .= ssp::get_var_db("COUNT", 0);
richtig
$count2 += ssp::get_var_db("COUNT", 0);
bringt das korrekte Ergebnis  Smiley
« Letzte Änderung: Dezember 31, 2010, 12:36:34 von dobra » Gespeichert

Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS