Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP API Abfrage

Einklappen

Neue Werbung 2019

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

  • PHP API Abfrage

    Hallo zusammen,
    ich möchte mit meinem PHP Code die aktuellen Bundesligaspiele zusammen mit den Ergebnissen von der URL "https://www.openligadb.de/api/getmatchdata/bl1/2018/1" abfragen. Bei den Teamnamen funktionert das auch ganz normal, wenn ich allerdings das Ergebnis abfragen will erhalte ich jedesmal die Fehlermeldung: "Notice: Undefined index: MatchResult in C:\xampp\htdocs\footballexpert\index.php on line 38". Mein Code sieht so aus:
    PHP-Code:
    <?php
    $matchCount 
    34;
    $current 1;
    $error false;
    $ch curl_init();
    curl_setopt($chCURLOPT_URL"https://www.openligadb.de/api/getmatchdata/bl1/2018/1");
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    $output curl_exec($ch);
    curl_close($ch);
    $matches json_decode($outputtrue);
    ?>

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8"/>
        <title>FootballExpert</title>

    </head>

    <body>
    <h1>FootballExpert</h1>

    <div>
        <table>
            <thead>
            <tr>
                <th>Begegnung</th>
                <th>Ergebnis</th>
            </tr>
            </thead>
            <tbody>
            <?php
            
    foreach ((array)$matches as $match) {
                
    ?>
                <tr>
                    <td><?php echo $match["Team1"]["TeamName"]." - ".$match["Team2"]["TeamName"]; ?></td>
                    <td><?php echo $match["MatchResults"]["MatchResult"]["PointsTeam1"]." : ".$match["MatchResults"]["MatchResult"]["PointsTeam2"]; ?></td>
                </tr>
                <?php
            
    }
            
    ?>
            </tbody>
        </table>
    </div>
    </body>
    </html>
    Weiß vielleicht jemand wie ich dieses Problem lösen kann ?

    Grüsse Christian

  • #2
    Weil es $match["MatchResults"]["MatchResult"] nicht gibt, schau Dir doch mal $matches genau an.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Z.b. mit

      PHP-Code:
      var_dump($matches); 

      Kommentar


      • #4
        Vielen Dank euch beiden, da stand ich ganz schön auf dem Schlauch

        Kommentar


        • #5
          Aber wenigstens mal sauberes html, sieht man auch nicht oft.

          Du solltest noch den Kontextwechsel von PHP zu HTML beachten.

          und anstatt curl kannst du hier auch einfach file_get_contents einsetzen.
          PHP-Code:
          $matchCount 34;
          $current 1;
          $error false;

          $output file_get_contents('https://www.openligadb.de/api/getmatchdata/bl1/2018/1');

          $matches json_decode($outputtrue); 

          Kommentar


          • #6
            Beachte aber, dass OpenLigaDB ein Limit von 1000 Requests pro Tag und IP hat. Daher erst via https://www.openligadb.de/api/getlas...ate/bl1/2018/1 das Datum der letzten Änderung ermitteln und nur wenn dieses neuer ist als dein letzter Request eine erneute getmatchata Abfrage machen. Anderenfalls die Daten vom vorherigen Abruf aus der Datenbank oder einem Cachefile laden.
            sorry, shift-taste kaputt

            Kommentar

            Lädt...
            X