php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.03.2006, 20:17  
Benutzer
 
Registriert seit: 18.02.2006
Beiträge: 32
aherzog
Standard Doppelte DB-Einträge pro Jahr als 1 Eintrag / Jahr zählen.

Hallo,

ist es möglich doppelte oder dreifache Einträge pro Rennen in der Datenbank als 1 pro Rennen zu zählen?

Im Detail:
Ich bin an einer F1-Statistik dran die alle Rennteilnahmen der Teams zählt.
Mit dem zusammenzählen funktioniert es zwar, doch werden alle (Fahrer) pro Team gezählt.
Da aber pro Team mehrere Fahrer fahren (heutzutage sind es 2 pro Team) werden auch 2 gezählt.
Aber es ist ja nur 1 Team. Früher fuhren auch nur 1 Fahrer pro Team. Deshalb funktioniert das halbieren der Teilnahmen nicht.

Hoffe ich habe es einigermassen verständlich erklährt.
Habt ihr eine Lösung dafür????

Hier noch der Code, der jetzt alles zählt:
Code:
<?php
//SQL-Abfrage ausführen
                                        $res = mysql_query("SELECT `nurteam`, Count(*) as `teilnahmen` FROM `ergebnis` GROUP BY `nurteam` ORDER BY `teilnahmen` DESC");
                                        //Tabellen-Beginn
                                        echo "<table border=1 align=center>";
                                        //Tabellen-Ueberschrift
                                        echo "<tr><td>Platz</td> <td>Team</td> <td>GP-Teilnahmen</td></tr>";
                                        $zahler = 0;
                                        $platz = 0;
                                        $id =0;
                                        //Tabellen-Inhalt
                                        while ($dsatz = mysql_fetch_assoc($res))
                                        {
                                            $id = $id + 1;
                                            //Zähler für die Platz-Nr.
                                            echo "<tr>";
                                            if ($zahler <> $dsatz["teilnahmen"])
                                            {
                                                $platz = $id;
                                                echo "<td><div align=center>$platz</div></td>";
                                            }
                                            else 
                                            {
                                                echo "<td><div align=center>.</div></td>";
                                            }
                                            $fahrer2 = utf8_encode($dsatz["nurteam"]);
                                            echo "<td>" . $fahrer2 . "</td>";
                                            echo "<td>" . $dsatz["teilnahmen"] . "</td>";
                                            echo "</tr>";
                                            $zahler = $dsatz["teilnahmen"];
                                        } 
                                        //Tabellen-Ende
                                        echo "</table>";
                                        ?>
Danke für eure Hilfe.
Gruss Andreas
aherzog ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.03.2006, 11:29  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Sinnvoll wäre es, wenn du mal deine Tabellenstruktur mit ein paar Beispieldatensätzen zeigst und daran erklärst, wie das Resultat aussehen soll.
xabbuh ist offline  
Alt 19.03.2006, 21:00  
Benutzer
 
Registriert seit: 18.02.2006
Beiträge: 32
aherzog
Standard

Ok. versuche ich es anders.

Nehmen wir als Bsp. das Ergebniss des letzten Rennens.
...http://www.f1statistik.ch/web_seiten...tum=2006-03-19

Das PHP-Script zählt nun zusammen wieviel mal das Wort "Toyota" in der Spalte Team vorkommt. Das Ergebniss lautet 2.

Das ist aber falsch. Für dieses Rennen ist es ja nur 1 Team.

Also muss die Abfrage zwar die Teamnamen zählen, aber alles was doppelt oder dreifach (pro Rennen) vorkommt ignorieren....

Bin um jede Anregung froh.

Gruss Andreas
aherzog ist offline  
Alt 19.03.2006, 21:30  
Gast
 
Beiträge: n/a
Standard

???? geht doch
 
Alt 19.03.2006, 21:48  
Benutzer
 
Registriert seit: 18.02.2006
Beiträge: 32
aherzog
Standard

hmmm.....der server scheint woll überlastet zu sein.......
mal scheint es zu klappen, mal nicht....bitte versucht es doch etwas später.....danke
aherzog ist offline  
Alt 20.03.2006, 08:12  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Und deine Tabellenstruktur sieht wie aus?
xabbuh ist offline  
Alt 20.03.2006, 13:02  
Benutzer
 
Registriert seit: 18.02.2006
Beiträge: 32
aherzog
Standard

Ach ja die DB-Tabelle hier ein Auszug davon:


Datum:__1950-05-13
Position:__1
Fahrer-Nr.:__2
Fahrer:__Giuseppe Farina
Team:__Alfa Romeo
Nur Team:__Alfa Romeo
Runden:__70
Zeit:__2:13'23.6
Ausfallgrund:
Startplatz:__1
Fahrer-Pk:__9


Un hier ist die .csv-Datei herunterladbar. Damit könnt ihr alle Einträge der Datenbank vom Jahr 2003-heute einsehen.
http://www.f1statistik.ch/ergebnis.csv
aherzog ist offline  
Alt 25.03.2006, 00:36  
Benutzer
 
Registriert seit: 18.02.2006
Beiträge: 32
aherzog
Standard

Hallo,

hat jemand ne Idee wie ich das Problem in den Griff kriege?????
aherzog ist offline  
Alt 25.03.2006, 21:48  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Versuch mal sowas:
Code:
SELECT Team, COUNT(DISTINCT Datum) FROM tabelle GROUP BY Team
xabbuh ist offline  
Alt 25.03.2006, 22:47  
Erfahrener Benutzer
 
Registriert seit: 23.05.2005
Beiträge: 374
scooter
scooter eine Nachricht über ICQ schicken
Standard

oder schreibe jedes team das du gezählt hast in ein array. So bevor du nen die rennteilnahmen um 1 hochzählst kontrollierst du, ob das team für dieses rennen schon im array ist, wenn ja, darfst du halt nicht hochzählen. Achso du musst natürlich bei jedem neuen rennen das array leeren.. Wenn du es mysql seitig möchtest bin ich raus...
__________________
Life is Life and life is hard
scooter ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
db ersten eintrag, sql ein eintrag pro jahr pro

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.