Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Abfrage in PHP mit Join?

Einklappen

Neue Werbung 2019

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

  • #16
    Habs

    PHP-Code:
    SELECT v.name FROM ws_verein v INNER JOIN ws_spiel s ON s.home_verein v.id WHERE s.spieltag 12 UNION SELECT v.name FROM ws_verein v INNER JOIN ws_spiel s ON s.gast_verein v.id WHERE s.spieltag 12 

    Kommentar


    • #17
      Code:
      s.home_verein = v.id AND s.gast_verein = v.id
      wo Heim- und Gast-Verein gleich sind? Also wo eine Mannschaft gegen sich selber spielt? Ich versteh nicht was dabei rauskommen soll, also welche Vereine du da selektieren willst. Und formatier das mal ordentlich, so mit Absätzen, machen deine Helfer doch auch.
      [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

      Kommentar


      • #18
        So ich bin jetzt fast am Ende und es klappt eigentlich alles. Ein Problem gibt es noch. Es wird nur der Name vom Heimteam ausgegeben, nicht der Vom Gastteam.

        PHP-Code:
        SELECT v.name as heimteam
        FROM ws_verein v
        INNER JOIN ws_spiel s
        ON s
        .home_verein v.id
        WHERE s
        .spieltag " . $_GET['spieltag']. "
        UNION
        SELECT v
        .name as gastteam
        FROM ws_verein v
        INNER JOIN ws_spiel s
        ON s
        .gast_verein v.id
        WHERE s
        .spieltag " . $_GET['spieltag']; 

        Kommentar


        • #19
          Warum auch UNION? Das brauchst du doch nicht.

          Code:
          SELECT v.name as heimteam
          ...
          UNION
          SELECT v.name as gastteam
          ...
          Bei UNION müssen beide Abfragen die selben Ergebnisfelder haben.

          Warum fragst du zwei mal extra die selbe Tabelle mit den selben Spalten ab?
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #20
            Zitat von hausl Beitrag anzeigen
            Warum auch UNION? Das brauchst du doch nicht.



            Bei UNION müssen beide Abfragen die selben Ergebnisfelder haben.

            Warum fragst du zwei mal extra die selbe Tabelle mit den selben Spalten ab?

            Wie soll ich es denn sonst machen? ich kann doch nicht zweimal die v.id in einer Abfrage abfragen oder?

            Kommentar


            • #21
              Schau: http://stackoverflow.com/a/34601314
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #22
                Zitat von hausl Signatur
                Kein Support per PN
                Bitte beachten! Wenn dann hier.

                Du hast die Tabellen ws_verein und ws_spiel. Wie sehen die aus?

                ws_verein hat eine id und den Vereinsnamen?

                ws_spiel hat home_verein und gast_verein Felder mit der ID des Vereins aus der Tabelle ws_verein?

                Stimmt das so? Das sind die Infos die gleich zu Beginn von dir hätten kommen sollen.
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #23
                  Hallo

                  Danke für die Antwort

                  ws_verein hat id und name
                  ws_spiel hat id, home_verein (INT) und gast_verein (INT)

                  Liebe Grüße

                  Kommentar


                  • #24
                    ws_spiel hat id, home_verein und gast_verein home_verein und gast_verein
                    und in gast_verein und home_verein steht was genau? Die ID des Vereins hoffentlich? Ich muss jetzt leider weg.. ev. später dann...
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #25
                      Zitat von hausl Beitrag anzeigen

                      und in gast_verein und home_verein steht was genau? Die ID des Vereins hoffentlich? Ich muss jetzt leider weg.. ev. später dann...
                      ganz genau

                      Kommentar


                      • #26
                        Code:
                        MariaDB [test]> select * from ws_verein;
                        +----+----------------+
                        | id | name           |
                        +----+----------------+
                        |  1 | FC Kicker      |
                        |  2 | SV Balla Balla |
                        +----+----------------+
                        Code:
                        MariaDB [test]> select * from ws_spiel;
                        +----+-------------+-------------+
                        | id | home_verein | gast_verein |
                        +----+-------------+-------------+
                        |  1 |           1 |           2 |
                        |  2 |           2 |           1 |
                        +----+-------------+-------------+
                        2 rows in set (0.00 sec)

                        Code:
                        SELECT
                            h.name AS heim,
                            g.name AS gast
                        
                        FROM
                            ws_spiel s
                        
                        INNER JOIN
                            ws_verein h ON s.home_verein = h.id
                        
                        INNER JOIN
                           ws_verein g ON s.gast_verein = g.id
                        
                        +----------------+----------------+
                        | heim           | gast           |
                        +----------------+----------------+
                        | SV Balla Balla | FC Kicker      |
                        | FC Kicker      | SV Balla Balla |
                        +----------------+----------------+
                        2 rows in set (0.00 sec)
                        The string "()()" is not palindrom but the String "())(" is.

                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #27
                          Bedanke mich schon mal. Bin nur am Handy on und werd das morgen ausprobieren und mir den Code genau angucken damit ich es natürlich auch verstehe. Meld mich dann gleich morgen früh.

                          Kommentar


                          • #28
                            Wollt jetzt kein neues Thema aufmachen. Habe da ein kleines Problem mit meiner Abfrage

                            PHP-Code:
                            $sql"SELECT bild, name, sa_siege, sa_niederlagen, sa_unentschieden, sa_punkte, sa_tore, sa_gegentore FROM ws_verein WHERE liga_id=" .$_GET ['liga']. "ORDER BY sa_punkte"
                            Wenn ich das ORDER BY entferne, krieg ich meine Ausgabe, mit ORDER BY nicht. Fehler bekomm ich auch keinen.

                            Kommentar


                            • #29
                              Query ausgeben lassen -> da fehlt ein Leerzeichen vor ORDER BY. Gewöhne dir an Queries mehrzeilig zu schreiben dann passiert sowas erst gar nicht.

                              Und du hast immer noch die Injection Lücke! Prepapred Statments nutzen!

                              PHP-Code:
                              $sql "
                                  SELECT
                                      bild, name, sa_siege, sa_niederlagen, sa_unentschieden,
                                      sa_punkte, sa_tore, sa_gegentore

                                  FROM ws_verein

                                  WHERE liga_id = :liga

                                  ORDER BY sa_punkte
                              "

                              The string "()()" is not palindrom but the String "())(" is.

                              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                              PHP.de Wissenssammlung | Kein Support per PN

                              Kommentar


                              • #30
                                Herzlichen Dank.

                                Eine letzte Frage bevor Ihr Ruhe von mir habt.

                                Ich möchte ja nach den Punkten natürlich nach Tordifferenz sortieren, jetzt die Frage, wie kann ich direkt in der SQL Abfrage sa_tore (minus) sa_gegentore rechnen?

                                Kommentar

                                Lädt...
                                X