Abstimmung auswerten

Abstimmung auswerten

am 22.12.2007 21:24:12 von sahlender

Hallo Gruppe,

ich möchte (muss!) eine Abstimmung auswerten.

Tabelleninhalt:

ID NAME VOTE

Beispiel:

1 FRANZ 2
1 FRANZ 2
1 FRANZ 2
2 MICHAEL 4
3 STEPHAN 8
4 KERSTIN 8

Wie kann ich eine Anzeige realisieren, die mir ausgibt, wieviele
Stimmen ingesamt in der Spalte Vote stehen? Der Platz mit den me=EDsten
Stimmen soll oben stehen, gefolgt absteigend nach Anzahl der Stimmen.

Beispiel Ausgabe:

Platz 1: VOTE2 (3 Stimmen)
Platz 2: VOTE8 (2 Stimmen)
Platz 3: VOTE4 (1 Stimmen)
usw.

Wäre sehr nett, wenn mir da jemand helfen könnte. Ich stehe auf dem
Schlauch.

Gruß Stephan

Re: Abstimmung auswerten

am 22.12.2007 21:57:10 von dnoeth

sahlender@gmail.com wrote:

> ID NAME VOTE
>
> Beispiel:
>
> 1 FRANZ 2
> 1 FRANZ 2
> 1 FRANZ 2
> 2 MICHAEL 4
> 3 STEPHAN 8
> 4 KERSTIN 8
>
> Wie kann ich eine Anzeige realisieren, die mir ausgibt, wieviele
> Stimmen ingesamt in der Spalte Vote stehen? Der Platz mit den meísten
> Stimmen soll oben stehen, gefolgt absteigend nach Anzahl der Stimmen.
>
> Beispiel Ausgabe:
>
> Platz 1: VOTE2 (3 Stimmen)
> Platz 2: VOTE8 (2 Stimmen)
> Platz 3: VOTE4 (1 Stimmen)
> usw.

Komische Auswertung, aber leut deiner Beschreibgung:
select vote, count(*) from tab order by 2 desc

Dieter

Re: Abstimmung auswerten

am 22.12.2007 22:08:03 von Sebastian Suchanek

Dieter Noeth schrieb:
> sahlender@gmail.com wrote:
>
>> [...]
>> Platz 1: VOTE2 (3 Stimmen)
>> Platz 2: VOTE8 (2 Stimmen)
>> Platz 3: VOTE4 (1 Stimmen)
>> usw.
>
> Komische Auswertung, aber leut deiner Beschreibgung:
> select vote, count(*) from tab order by 2 desc

Du hast ein "GROUP BY vote" vergessen.


Tschüs,

Sebastian

Re: Abstimmung auswerten

am 22.12.2007 22:48:11 von sahlender

On 22 Dez., 22:08, Sebastian Suchanek
wrote:
> Dieter Noeth schrieb:
>
> > sahlen...@gmail.com wrote:
>
> >> [...]
> >> Platz 1: VOTE2 (3 Stimmen)
> >> Platz 2: VOTE8 (2 Stimmen)
> >> Platz 3: VOTE4 (1 Stimmen)
> >> usw.
>
> > Komische Auswertung, aber leut deiner Beschreibgung:
> > select vote, count(*) from tab order by 2 desc
>
> Du hast ein "GROUP BY vote" vergessen.

Vielen Dank für Eure Antworten, aber leider bleibt das Problem
ungelöst.

Die Stimmen in der Spalte VOTE müssen ja kumuliert werden, um eine
Abfrage auszugeben, aus der ersichtlich ist, welcher Teilnehmer die
meisten Stimmen hat.

So habe ich es nach Eurer Anleitung probiert:

$anzeigen =3D mysql_query("SELECT * FROM $tabellenname group by pic_nr
DESC");

while($row =3D mysql_fetch_object($anzeigen))
{
echo $row->pic_nr;
}

Aber so werden nur die Teilnehmer aufgelistet, ohne die Anzahl der
Stimmen. Was mache ich falsch?

Gruß Stephan

Re: Abstimmung auswerten

am 23.12.2007 07:23:01 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Abstimmung auswerten

am 25.12.2007 22:54:59 von sahlender

> Das hast Du nicht. Erstens ist PHP nebenan und zweitens ist das SQL
> nicht das, was Dir vorgeschlagen wurde und drittens ist es flasch.
>
> > Aber so werden nur die Teilnehmer aufgelistet, ohne die Anzahl der
> > Stimmen. Was mache ich falsch?
>
> Du solltest erst einmal SQL lernen, mit einem Buch. Lesen. Das würde Dir=

> auch helfen, ein besseres Tabellendesign zu finden.
>
> end
> Andreas

Vielen Dank, Deine Antwort hilft mir echt weiter.

Diesen Tipp von mir gibt es gratis: "Du musst die Welt nicht alleine
retten. Wenn Du nichts zu sagen hast, halt einfach die Klappe."

"End, Stephan"

Re: Abstimmung auswerten

am 26.12.2007 09:32:30 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Abstimmung auswerten

am 27.12.2007 12:51:20 von dev-null-use-reply-adress

sahlender@gmail.com schrieb:
> On 22 Dez., 22:08, Sebastian Suchanek
> wrote:
>> Dieter Noeth schrieb:
>>
>> > sahlen...@gmail.com wrote:
>>
>> >> [...]
>> >> Platz 1: VOTE2 (3 Stimmen)
>> >> Platz 2: VOTE8 (2 Stimmen)
>> >> Platz 3: VOTE4 (1 Stimmen)
>> >> usw.
>>
>> > Komische Auswertung, aber leut deiner Beschreibgung:
>> > select vote, count(*) from tab order by 2 desc
>>
>> Du hast ein "GROUP BY vote" vergessen.
>
> Vielen Dank für Eure Antworten, aber leider bleibt das Problem
> ungelöst.

Komisch

> Die Stimmen in der Spalte VOTE müssen ja kumuliert werden, um eine
> Abfrage auszugeben, aus der ersichtlich ist, welcher Teilnehmer die
> meisten Stimmen hat.

Ja, das macht "GROUP BY".

> So habe ich es nach Eurer Anleitung probiert:
>
> $anzeigen = mysql_query("SELECT * FROM $tabellenname group by pic_nr
> DESC");

Das wäre dann aber *nicht* gemäß den Vorschlägen von Dieter und Sebastian.

> while($row = mysql_fetch_object($anzeigen))
> {
> echo $row->pic_nr;
> }
>
> Aber so werden nur die Teilnehmer aufgelistet, ohne die Anzahl der
> Stimmen.

Na wenn Du nur eine Spalte ausgibst ...

> Was mache ich falsch?

Du verwirrst uns mit einer neuen, unbekannten Spalte. Was ist
denn pic_nr? In Deinem Ausgangsbeispiel gab's es nur id, name
und vote.

Du setzt die Vorschläge eben nicht um, sondern erfindest
ein ganz andere Abfrage.


Also jetzt noch einmal richtig:

SELECT vote, count(*) AS anzahl
FROM ....
GROUP BY vote
ORDER BY anzahl DESC


Gruß
JPM

Re: Abstimmung auswerten

am 27.12.2007 19:36:56 von sahlender

> Also jetzt noch einmal richtig:
>
> =A0 SELECT vote, count(*) AS anzahl
> =A0 =A0 FROM ....
> GROUP BY vote
> ORDER BY anzahl DESC
>
> Gruß
> JPM

Vielen Dank _allen_ hier ! Jetzt klappts!

Gruß Stephan