Beitrag von tim (301 Beiträge) am Mittwoch, 23.Juli.2003, 18:54.
was für bastler
hallo!
habe mitgliederportal, dort sind auch adressen jedes einzelnen mitglieds hinterlegt.
habe vor ein kleines gimmick einzubauen.
es sollen die "top 3" städte der mitglieder aufgelisted werden.
also z.b.
top 3 städte:
1. münchen 33%
2. berlin 15%
3. hamburg 6%
wie kann ich das realisieren?
angenommen die db heisst "adressen" und das stadtfeld heisst "ort"
würde mich freuen aw zu erhalten!
viele grüße
tim
Antworten
Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 24.Juli.2003, 00:36.
Re: was für bastler
Antworten
Beitrag von tim (301 Beiträge) am Donnerstag, 24.Juli.2003, 08:35.
Re: was für bastler
hi Pouraga,
merk schon, du bist paar level weiter wie ich *g*.
leider weiss ich nicht mal so genau, was ein hash ist (dacht das raucht man).
wie müsste ich jetzt weitermachen???
die prozentanzahl kann auch mit anzahl der pers. ersetzt werden
gruß
tim
Antworten
Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 24.Juli.2003, 17:38.
Re: was für bastler
>die prozentanzahl kann auch mit anzahl der pers. ersetzt werden
Na das ist das kleinste Problem. ;)
Aber das ist wirklich nicht ohne was du dir da ausgesucht hast, da habe ich gestern noch gehoft das jemand anders weitermacht. :)
Aber so müsste es
---------------------------------------
my %orte;
while (get_next("adressen")){
$orte{$ort}++;
}
@sortorte = sort {$orte{$b} <=> $orte{$a}} (keys(%orte)); #sortieren
splice(@sortorte,3,@sortorte); #die höchsten 3 nur
foreach(@sortorte) {
my $proz = sprintf("%.2f", 100/$_amount*$orte{$_}); # Prozent in 2 nachkomma stellen
out convert_html($_)," (<b>$proz%</b>)<br>\n";
}
-------------------------------------
Antworten
Beitrag von tim (301 Beiträge) am Donnerstag, 24.Juli.2003, 18:11.
Re: was für bastler
rehi,
also, danke, dass du dir das antust *g*.
habs gerade so übernommen und:
es kommt immerhin keine fehlermeldung *g*,
allerdings ein etwas merkwürdiges ergebnis...
und zwar genau das hier:
---
(43.48%)
Berlin (6.52%)
Stuttgart (6.52%)
---
(also ganz genau so!)
fazit:
da passt was nicht!
hast du ahnung was?
gruß
tim
Antworten
Beitrag von tim (301 Beiträge) am Donnerstag, 24.Juli.2003, 18:19.
Re: was für bastler
HALT!!!
habs gecheckt!
deine formel passt!!!!
nehm alles zurück und behaupte das gegenteil ;o)
ABER!
manche haben eben keinen ort angegeben!
deswegen siehts so aus.
frage nun:
wie kann ich die leeren ortsfelder ausklammern?
zusatzfrage, wie kann ich die anzahl der pers. noch vor dem prozentanteil angeben?
gruß
tim
SUPER DANKESCHÖN SCHONMAL!!! I KNOW U CAN DO IT AND I REALLY DO APPRECIATE
Antworten
Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 24.Juli.2003, 19:01.
Re: was für bastler
Ich war selbst mal wieder erstaunt wie schön man mit perl arbeiten kann. *g*
>wie kann ich die leeren ortsfelder ausklammern?
Möchtest du die mit in den gesamt Prozent haben? Dann so
...
while (get_next("adressen")){
$orte{$ort}++ if $ort;
...
Wenn nicht dann rufe die gernicht erst mit ab:
get ["Id","==","*","°","ort","==",""],"adressen"; #oderso
>zusatzfrage, wie kann ich die anzahl der pers. noch vor dem prozentanteil angeben?
out convert_html($_)," $orte{$_}(<b>$proz%</b>)<br>\n";
Antworten
Beitrag von tim (301 Beiträge) am Donnerstag, 24.Juli.2003, 22:53.
Re: was für bastler
*yahooooo*
1000 dank!!!
u saved my day!
tim
Antworten
Beitrag von sabine (44 Beiträge) am Freitag, 25.Juli.2003, 11:27.
@Pouraga Re: was für bastler
hallo,
das ist echt super - darf ich das auch verwenden ;-))
bin anfängerin und könnte das gut gebrauchen.
3 fragen habe ich auc noch:
1. wenn mein abgefragtes feld in der feldbezeichnung ein "-"
hat funktioniert das nicht.
2. mache ich das mit orten gibt er mir z.b. aus:
hannover 18 (20%)
münchen x (x%)
berlin x (x%)
obwohl ich 19x hannover habe, davon 1x mit zusatz (hannover-langenhagen)
kann man das irgendwie mit einbinden?
3. ich bin ja anfängerin.
das $ort verstehe ich ja im perl-script
was,wofür,wieso ist das $orte. wird das als neues feld benötigt
um die ausgabe zu genierieren?
wenn ich das mit $land mache, müßte dann $orte z.b. $land1 heißen?
zu glück steht oben im forum:
"Es gibt keine dummen Fragen - jeder hat mal angefangen!"
ich hoffe du kannst mir meine fragen beantworten :-)
wäre echt nett von dir.
tschau
sabine
Antworten
Beitrag von Pouraga (1396 Beiträge) am Freitag, 25.Juli.2003, 15:21.
Re: @Pouraga Re: was für bastler
>obwohl ich 19x hannover habe, davon 1x mit zusatz (hannover-langenhagen)
>kann man das irgendwie mit einbinden?
Sonnst noch was? Sollen vieleicht noch die Postleizahlen zu den orten geholt werden und ein vergleichstattfinden ob der Ort der eingeben würd vieleicht nur ein Vorort einbes anderen ist.... :)
Ok, so schneidest du nach dem ersten - ab:
$ort =~ /(.*?)-/; $ort = $1;
(aber was machst du wenn die Leute "hannover langenhagen" oder "hannover(langenhagen)" oder "Hannover Langenhagen" oder "HANNOVER Langenhagen".....
eingeben? ;)
Ok:
while (get_next("adressen")){
$ort =~ /(.*?)[^a-zA-ZäÄöÖüÜß]/; $ort = ucfirst(lc($1));
$orte{$ort}++;
}
Dürfte das meiste packen...
>was,wofür,wieso ist das $orte. wird das als neues feld benötigt
>um die ausgabe zu genierieren?
my %orte; # is nen Hash (>viele Variablen)
Antworten
Beitrag von tim (301 Beiträge) am Freitag, 25.Juli.2003, 19:04.
Re: @Pouraga Re: was für bastler
guess whos back *g*,
also,
sabines problem hab ich zum glück noch nicht, wird aber noch kommen...
bei mir funzt dein befehl leider diesbezgl. nicht.
bei dir, sabine?
habe noch eine weitere frage.
ist es möglich hinter jedem ort einen link zu hinterlegen, der dann zu den jeweiligen personen (adressen) die genau in dem ort leben zeigt?
diese sind auch in der db adressen aufgeführt?
das wär jetzt noch really nice to have *g*
tim
Antworten
Beitrag von Pouraga (1396 Beiträge) am Samstag, 26.Juli.2003, 22:00.
Re: @Pouraga Re: was für bastler
>bei mir funzt dein befehl leider diesbezgl. nict
Hast du die Zeile an der richtigen Stelle? IN der while Schleife aber vor dem $orte{$ort}++?
Ist es möglich hinter jedem ort einen link zu hinterlegen, der dann zu den jeweiligen personen (adressen) die genau in dem ort leben zeigt?
Jein, du kannst dir die Ausgabe anpassen wie du möchtest und damit auch einen Link mit abfrage zur Datenbank ($_ ist der Ortsname)
out convert_html($_)," $orte{$_}(<b>$proz%</b>)<br>\n";
Aber Vorsicht nur auf den Anfang und ohne beachtung von gross und klein schreibung abfragen.
Schau mal in die Hilfe das kriegst schon hin. ;)
Antworten