Beitrag von Oliver ;-) (500 Beiträge) am Freitag, 27.Mai.2005, 13:50.
Unterschiedliche Rubriken und deren Anzahl
Hallo Zusammen,
ich habe eine Datenbank in der u.a. das Feld "Rubrik" vorkommt. Die Einträge in diesem Feld können in der Datenbank mehrmals vorkommen.
Ich will nun (über while (get_next)) eine Übericht aller enthaltenen Rubriken ausgeben und dabei deren Anzahl anzeigen lassen.
In etwa so:
Sport (10)
Nachrichten (3)
Firmen (5)
...
Hat da jemand eine Idee?
Grüße
Oliver ;-)
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Freitag, 27.Mai.2005, 14:40.
Re: Unterschiedliche Rubriken und deren Anzahl
ich hab's mal so probiert:
<perl>
%seenrubrik = (); #Hash zum sammeln der anzahl im Key.
get ["Id","==","*"],"db";
while (get_next("db"))
{
push @rubriken,$Favrubrik unless $seenrubrik{$Favrubrik}++;
my @sortrubriken = sort(@rubriken);
out "Rubrik: <br>";
foreach $rub (@sortrubriken)
{
out "$rub ($seenrubrik{$rub})<br>";
}
out "<br>";
}
</perl>
Das Ergebnis sieht so aus:
Rubrik:
Firmen (1)
Rubrik:
Computer & Technik (1)
Firmen (1)
Rubrik:
Computer & Technik (1)
Firmen (1)
Nachrichten & Medien (1)
Rubrik:
Computer & Technik (1)
Firmen (2)
Nachrichten & Medien (1)
Rubrik:
Computer & Technik (1)
Firmen (2)
Nachrichten & Medien (1)
Reisen & Freizeit (1)
Es werden also nach jedem gefundenen DS die bisherigen ausgeworfen...
Irgendwo fehlt wohl noch etwas?!
Grüße
Oliver ;-)
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Freitag, 27.Mai.2005, 14:44.
manchmal kommt man auch...
...mit Selbstgesprächen zum Ziel... ;-)
"while (get_next)" muss nach push geschlossen werden... dann klappt's...
<perl>
%seenrubrik = (); #Hash zum sammeln der anzahl im Key.
get ["Id","==","*"],"db";
while (get_next("db"))
{
push @rubriken,$Favrubrik unless $seenrubrik{$Favrubrik}++;
}
my @sortrubriken = sort(@rubriken);
out "Rubrik: <br>";
foreach $rub (@sortrubriken)
{
out "$rub ($seenrubrik{$rub})<br>";
}
out "<br>";
</perl>
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 27.Mai.2005, 15:01.
Re: manchmal kommt man auch...
oder kürzer, das push und die Liste kannste sparen
<perl>
%seenrubrik = (); #Hash zum sammeln der anzahl im Key.
get ["Id","==","*"],"db";
while (get_next("db"))
{
$seenrubrik{$Favrubrik}++;
}
out "Rubrik: <br>";
foreach $rub (sort keys %seenrubrik)
{
out "$rub ($seenrubrik{$rub})<br>";
}
out "<br>";
</perl>
Antworten
Beitrag von Oliver ;-) (439 Beiträge) am Freitag, 27.Mai.2005, 15:24.
Re: manchmal kommt man auch...
...nicht...
klappt bei mir so nicht.
Aber wo du gerade da bist... ;-)
Ich will die Variable $rub in eine Url packen und darüber die Datebank aufrufen und alle DS mit $rub ausgeben.
Das funktioniert solange kein Leerzeichen in $rub ist. Mit Leerzeichen klappt es nicht - auch nicht mit convert_url! Muss ich im Zieltemplate convert_url wieder rückgängig machen? Und wenn ja, wie?
Grüße
Oliver ;-)
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 27.Mai.2005, 15:45.
Re: manchmal kommt man auch...
wenn du beim zieltemplate mit get arbeitest, mußt du die Leerzeichen mit \ schützen
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Freitag, 27.Mai.2005, 16:39.
Re: manchmal kommt man auch...
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Freitag, 27.Mai.2005, 18:12.
Re: manchmal kommt man auch...
...wieder selber darauf...
$Rubrik=~s/\+/\ /gi;
get ["Rubrik", "==", "$Rubrik", "sort=Titel"],"db";
Für Verbesserungsvorschläge bin ich dankbar...
Grüße
Oliver ;-)
Antworten