php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-03-2008, 12:07
maniac81
 Newbie
Links : Onlinestatus : maniac81 ist offline
Registriert seit: Oct 2005
Beiträge: 9
maniac81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Spieltabelle aus DB generieren

moin zusammen,

ich habe eine problem mit der berechnung einer Tabelle.

diese Tabelle soll die mannschaften anzeigen, mit punkten, spielen, sätzen usw..

struktur der tabelle ist folgende:

Feld Typ Null Standard
ID int(11) Nein
spieltag int(5) Nein 0
heimteam int(10) Nein 0
gastteam int(10) Nein 0
heimpunkte int(5) Ja 0
spiele_heim int(5) Ja 0
gastpunkte int(5) Ja 0
spiele_gast int(5) Ja 0
datum date Ja 0000-00-00

die int's heimteam, gastteam sind die team-ID's welche aus der tabelle "teams" geholt werden.

tabelle "teams":

ID int(11) Nein
teamname varchar(255) Nein
liga_id int(2) Nein 0
passwort varchar(100) Nein
session varchar(32) Ja NULL

das problem ist, das für jedes eingetragene spiel eine spiel-id vergeben wird.

daraus soll nun die tabelle generiert werden. und wie halt in jeder tabelle der mit den meisten punkten und spielen an erster stelle usw..

mit 1ner abfrage bekomm ich es nicht hin, ich denke da muss was durch ein script berechnet werden, das schafft sql alleine nicht.

beispiel:

spiel id = 1
heimteam = 1
gastteam = 2
heimpunkte = 2
gastpunkte= 0
spiele_heim = 10
spiele_gast = 8
----------------------------
spiel id = 2
heimteam = 2
gastteam = 1
heimpunkte = 0
gastpunkte = 2
spiele_heim = 8
spiele_gast = 10
----------------------------

nun sollen alle punkte errechnet werden welches die team_id = 1 hat. an einem spieltag sind sie heimteam und am anderen gastteam.
genau das ist mein problem.

biher lös ich das über 2 tables, also die spieltabelle wird nicht über den table "spiele" generiert sondern bei jedem eingetragenem spiel noch was in eine andere tabelle geschrieben. aber ich möchte zur vereinfachung des script-ablaufes die Tabelle über spiele generieren, sofern das möglich wäre.

ich hoffe mir kann jemand helfen
Mit Zitat antworten
  #2 (permalink)  
Alt 10-03-2008, 12:20
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich nehme an du willst wissen wie die SQL Query ausschauen könnte. Richtig? Dann ist das wohl eher ein SQL Problem und kein PHP Problem
**move** to SQL
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 10-03-2008, 12:24
maniac81
 Newbie
Links : Onlinestatus : maniac81 ist offline
Registriert seit: Oct 2005
Beiträge: 9
maniac81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja wenn es nur mit einer SQL-abfrage funktionirt schon. ich glaube aber eher das ich dafür ein php-script verwenden muss, da MYSQL das alleine nicht rechnen kann, oder doch?
Mit Zitat antworten
  #4 (permalink)  
Alt 10-03-2008, 12:31
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
ich glaube aber eher das ich dafür ein php-script verwenden muss, da MYSQL das alleine nicht rechnen kann, oder doch?
Also MySql kann sehr wohl auch rechnen. Eine Übersicht über die Funktionen findest du hier
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 10-03-2008, 13:53
maniac81
 Newbie
Links : Onlinestatus : maniac81 ist offline
Registriert seit: Oct 2005
Beiträge: 9
maniac81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jepp, ich weiß das MySQL auch rechnen kann, habe auch in anderen scripts die funktionen ausgenutzt.
im obrigen beispiel geht es mir nur darum das ich einfach nicht weiterkomme weil ja eben an einem spieltag die heimmannschaft ist und am anderen gastmannschaft. hier müssen die punkte also unterschiedlich addiert werden.
Mit Zitat antworten
  #6 (permalink)  
Alt 10-03-2008, 15:36
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du machst dir mit deiner DB-Struktur das Leben selber schwer. Aber irgendwie geht es trotzdem, z.B. so:
PHP-Code:
$sql "SELECT
            SUM(heimpunkte) + (
                SELECT 
                    SUM(gastpunkte)
                FROM
                    spiele
                WHERE
                    gastteam = 1
            )
        FROM
            spiele
        WHERE
            heimteam = 1"

__________________
Gruss
H2O
Mit Zitat antworten
  #7 (permalink)  
Alt 10-03-2008, 17:19
maniac81
 Newbie
Links : Onlinestatus : maniac81 ist offline
Registriert seit: Oct 2005
Beiträge: 9
maniac81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das ist schon mal ein guter ansatz

hauptproblem scheint hier wirklich die struktur zu sein.

weil einmal kann ja ein team auch als gast-team punkte-plus machen, und am anderen mal als gast-team minus. das lässt sich so wahrscheinlich nicht rechnen, oder?

wie würde denn die perfekte struktur dafür aussehen?
Mit Zitat antworten
  #8 (permalink)  
Alt 11-03-2008, 09:04
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von maniac81
weil einmal kann ja ein team auch als gast-team punkte-plus machen, und am anderen mal als gast-team minus.
Von Minus-Punkten ist in deinem Beispiel auch nie die Rede. Aber grundsätzlich ist das in meiner Abfrage ja auch enthalten.
Und um bei einer bessern Struktur zu helfen, habe ich definitiv zu wenig Informationen.
__________________
Gruss
H2O
Mit Zitat antworten
  #9 (permalink)  
Alt 11-03-2008, 10:11
maniac81
 Newbie
Links : Onlinestatus : maniac81 ist offline
Registriert seit: Oct 2005
Beiträge: 9
maniac81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ein spieltag wird so eingetragen:

heim_1 vs gast_2, punkte_heim : punkte_gast, sätze_heim : sätze_gast

heimteam ist immer die mannschaft welche das spiel einträgt. folglich ist einmal die team_id als heim und als gast zu finden in den verschiedenen spieltagen.

ein spiel wird entweder 2:0, 1:1 oder 0:2 gewertet, immer aus sicht des heimteams.

also der lösungsweg oben ist schon der richtige, es wird die richtige punktezahl angegeben. doch wie mach ich das dynamisch damit ich es in einer schleife ausgeben kann? dazu müssten noch die gegenpunkte errechnet werden wie zb.:

team 1: 15 pluspunkte, 10 gegenpunkte, differenz = +5
Mit Zitat antworten
  #10 (permalink)  
Alt 14-03-2008, 10:55
maniac81
 Newbie
Links : Onlinestatus : maniac81 ist offline
Registriert seit: Oct 2005
Beiträge: 9
maniac81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kann mir niemand weiterhelfen?
Mit Zitat antworten
  #11 (permalink)  
Alt 14-03-2008, 12:06
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich verstehs halt immer noch nicht. Die Punkte werden doch einfach beim siegreichen Team eingetragen, egal ob Heim-oder Gastfrauschaft. Da gibts doch keine Minuspunkte und auch nichts zu berechnen. Und wenn du das in einer Schleife haben willst:
PHP-Code:
$sql "SELECT 
            s1.heimteam Team,
            SUM(heimpunkte) + (
                SELECT 
                    SUM(s2.gastpunkte)
                FROM
                    spiele s2
                WHERE
                    s1.heimteam = s2.gastteam
            ) punkte
        FROM
            spiele s1
        GROUP BY
            s1.heimteam
        ORDER BY
            punkte DESC"

__________________
Gruss
H2O
Mit Zitat antworten
  #12 (permalink)  
Alt 14-03-2008, 12:20
maniac81
 Newbie
Links : Onlinestatus : maniac81 ist offline
Registriert seit: Oct 2005
Beiträge: 9
maniac81 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmm, ich versuchs mal anders zu erklären.

spieltag 1:

team A vs team B, team A gewinnt und bekommt 2 punkte.

spieltag 2:

team C vs team A, team C gewinnt und bekommt 2 punkte.

nun hat team A 2:2 punkte

so sollte es dann ausgegeben werden. ich versuch auch schon die ganze zeit eine view zusammen zu basteln, aber ich bekomms nich gebacken.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:20 Uhr.