Frage zu einer Abfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu einer Abfrage

    Hallo,

    wie muss denn die Abfrage aussehen
    damit folgendes auch bei MySQL 3.23.37 funktioniert?

    PHP-Code:
    $id_ich intval($cookie[1]);
    $id_andere intval($_POST['auswahl']);

    $abfrage "SELECT a.serie,
                       a.spielpunkte as ich_punkte,
                       a.gesamtergebnis as ich_gesamt,
                       a.platzierung as ich_platzierung,
                       b.serie,
                       b.spielpunkte as andere_punkte,
                       b.gesamtergebnis as andere_gesamt,
                       b.platzierung as andere_platzierung
                 FROM ergebnisse as a 
                 JOIN ergebnisse as b 
                 ON a.serie=b.serie 
                 WHERE a.spieler_id=
    $id_ich AND b.spieler_id=$id_andere";
    $ergebnis mysql_query($abfrage) or die(mysql_error());        
    while (
    $row mysql_fetch_object($ergebnis)) 
    {
       
    Hier kommt die Tabelle rein

    Es läuft auf dem Server noch diese alte Version,
    da der Mieter des Servers sich nicht daran traut,
    die Version upzudaten, weil er Angst vor Datenverlust hat.


    Grüße von Sven

  • #2
    Was funktioniert denn nicht?

    (Abgesehen von der Tatsache, dass es so etwas wie Datensicherung gibt, um evtl. Fehlerhafte upgrades zu beheben)
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Hallo,

      ich bekomme folgende Fehlermeldung:

      PHP-Code:
      You have an error in your SQL syntax near 'ON a.serie=b.serie 

      Grüße von Sven

      Kommentar


      • #4
        kann es sein das bei dieser alten mysql version, die reihenfolge bei ON wichtig ist?

        also
        b.serie = a.serie statt a.serie=b.serie?!

        sonst sieht er ziemlich fehlerfrei aus...

        Kommentar


        • #5
          Das sieht mir ehrlich gesagt nicht nach einer kompletten Fehlermeldung aus.
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Re: Frage zu einer Abfrage

            Original geschrieben von Sven4972
            wie muss denn die Abfrage aussehen
            damit folgendes auch bei MySQL 3.23.37 funktioniert?
            [...]
            Es läuft auf dem Server noch diese alte Version,
            da der Mieter des Servers sich nicht daran traut,
            die Version upzudaten, weil er Angst vor Datenverlust hat.
            Angst vor Datenverlust beim Update?
            Da hätte ich deutlich mehr Angst davor, dass eine Software-Version, die seit dem Jahr 2003 veraltet ist, mir meine Tabellen schrottig macht...

            Mal abgesehen von den ganzen neuen Features, der besseren Standard-Konformität und der Performance, die MySQL doch teilweise zugelegt hat.

            Ist natürlich Arbeit, keine Frage, lohnt sich aber meiner Meinung nach...
            Und Angst vor Datenverlust ist da doch nur eine unzureichende Entschuldigung.

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Hallo,

              ich möchte in einer Tabelle ausgeben lassen
              wie oft ich gegen einen Gegner gespielt habe,
              wieviel Punkte und welchen Platz ich erreicht habe.

              Zu jedem Spiel gibt es in der Datenbank 3 Datensätze,
              da ein Spiel mit 3 Spielern stattfindet.
              Und das Spiel wird durch den Wert "serie" bestimmt,
              dieser Wert ist in allen 3 Datensätze gleich.

              PHP-Code:
                  $abfrage "SELECT a.serie,
                                 date_format(a.datum, '%d.%m.%Y') AS ich_datum,
                                 a.spielpunkte as ich_punkte,
                                 a.gesamtergebnis as ich_gesamt,
                                 a.platzierung as ich_platzierung,
                                 b.serie,
                                 date_format(b.datum, '%d.%m.%Y') AS andere_datum,
                                 b.spielpunkte as andere_punkte,
                                 b.gesamtergebnis as andere_gesamt,
                                 b.platzierung as andere_platzierung
                                 FROM ergebnisse as a 
                                 INNER JOIN ergebnisse as b
                                 USING(serie) 
                                 WHERE a.spieler_id = '" 
              $_POST['nick1'] . "' 
                                 AND b.spieler_id = '" 
              $_POST['nick2'] . "' 
                                 AND a.datum = b.datum AND a.datum >= '2004-01-01' ORDER BY a.datum"
              ;
              $ergebnis mysql_query($abfrage) or die(mysql_error()); 
              Jetzt werden alle Angaben angezeigt, die ich ausgeben möchte.

              Nun möchte ich aber noch den 3.Spieler ausgeben lassen.

              Wie kann ich das erreichen?


              Grüße von Sven

              PS: Ich habe auch schon auf ihn eingeredet, das er die Datenbank updaten sollte.

              Kommentar


              • #8
                Na halt noch einen Join auf ergebnisse -- also grob ungefähr die Hälfte vom Query kopieren an diversen Stellen einfügen und b durch c ersetzen~

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Hallo,

                  ich habe das jetzt hinzugefügt:

                  PHP-Code:
                  c.serie,
                  c.spieler_id AS spieler3,
                  date_format(c.datum'%d.%m.%Y') AS spieler3_datum
                  FROM ergebnisse 
                  as 
                  INNER JOIN ergebnisse 
                  as b
                  USING
                  (serie)
                  INNER JOIN ergebnisse as c
                  USING
                  (serie
                  Nur jetzt weiß ich nicht, was ich bei WHERE einfügen muss:

                  PHP-Code:
                  WHERE a.spieler_id '" . $_POST['nick1'] . "' 
                  AND b.spieler_id '" . $_POST['nick2'] . "' 
                  AND c.spieler_id '*****' 
                  ich habe es mit:

                  PHP-Code:
                  AND c.spieler_id $spieler3 
                  und
                  PHP-Code:
                  AND c.spieler_id '$spieler3' 
                  versucht, jedesmal wird aber nichts angezeigt.


                  Grüße von Sven

                  Kommentar


                  • #10
                    Dann hast du wohl keine Konstellation in deinen Daten, die auf diese Bedingungen zutrifft *zuck*

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Hallo,

                      wenn ich

                      PHP-Code:
                      AND c.spieler_id '*****' 
                      weglasse, werden mir Ergebnisse angezeigt,
                      nur das Problem ist, das die Serie 3 mal ausgegeben wird,
                      sie sollte aber nur einmal ausgegeben werden.

                      Und dann noch eine Frage dazu.

                      Wie kann ich den ausgeben lassen,
                      wer wieviel mal gewonnen hat?

                      Hier mal ein Bild von der Tabelle in der Datenbank:




                      Grüße von Sven

                      Kommentar

                      Lädt...
                      X