PHP Datumsrelevante Anzeige für Sportergebnisse

Moe

1
Der Ergebnisservice einer Webseite gibt mir folgendes zum Spielen:

Code:
<?PHP 

    $zip = "0"; 
    if (function_exists('gzinflate')) 
    { 
        $zip = "1"; 
    } 
     
    $data = file('http://www.binb.info/spielplan.php?feed=fd17cb1b7ce5da44fd422a96d78bed67&zip='.$zip); 
    $data = implode('', $data); 
    if ($zip) 
    { 
        $data = gzinflate($data); 
    } 

    $data = unserialize($data); 

/* 
Wichtig: Wenn möglich, bitte die ZIP-Komprimierung verwendet. 
Bei diesen Daten wird eine sehr hohe Kompression erreicht (70-80%). 

Beschreibung der Rückgabefelder im Array $data: 


**** Felder für den Spielplan-Feeder **** 

Rückgabewert ist ein ein-dimensionales Array: 

Die einzelnen Zeilen enthalten die Spielplan-Daten, sortiert nach Datum/Uhrzeit. 

[0] => Array 
    ( 
    [s_pkey] => Ohne Verwendung (ein automatischer Zähler) 
    [s_sort] => eindeutige Spielbezeichnung (z. B. "heol003") 
    [s_spieltag] => Spieltag 
    [s_datum] => Datum im Format "jjjjmmtt" (z.B. "20060909") 
    [s_halle] => Halle 
    [s_spielnr] => Spielnummer 
    [s_zeit] => Uhrzeit im Format "hhmm" (z.B. "1930") 
    [s_liga] => Liga 
    [s_teama] => Team A 
    [s_teamb] => Team B 
    [s_ergeba] => Ergebnis aus der Spielplandatei - Punkte Team A 
    [s_ergebb] => Ergebnis aus der Spielplandatei - Punkte Team B 
    [s_sra] => Schiedsrichter A 
    [s_srb] => Schiedsrichter A 
    [s_change] => interne Verwendung 
    [c_sort] => interne Verwendung 
    [gesamtds] => Anzahl der übermittelten Datensätze 
    [datei_version] => Version der Spielplandatei 
    [last_db_update] => Datum der letzten Datenbankaktualisierung (im Format "tt.mm.jjjj") 
    ) 
     
Hinweis: Zukünftig können weitere Felder hinzukommen, aber die vorhandenen werden nicht unbenannt. 
Es sind auch "spielfreie" Spiele oder Spiele gegen Nachrücker enthalten. 


**** Felder für den Tabellen-Feeder **** 

Rückgabewert ist ein zwei-dimensionales Array: 

In der ersten Dimension befinden sich zurückgegebenen Ligen, je Eintrag eine Liga. 
Hinweis: Auch bei einzelnen Ligen können u.U. zwei oder 
mehr Ligen als Ergebnis zurückgegeben werden (z.B. bei Ligen mit a.K. Teams). 

Die zweite Dimension enthält die einzelnen Tabellenzeilen, sortiert nach dem Platz. 

Array 
( 
    [liga] => Ligen-Bezeichnung 
    [platz] => Platzierung 
    [team] => Vereinsname 
    [spiele] => Anzahl Spiele 
    [diff] => Anzahl Korbdifferenz 
    [kp] => Anzahl Korbpunkte Plus 
    [km] => Anzahl Korbpunkte Minus  
    [pp] => Anzahl Punkte Plus 
    [pm] => Anzahl Punkte Minus 
    [wertung] => Anzahl Spielwertungen 
    [datei_version] => Version der Spielplandatei 
    [last_db_update] => Datum der letzten Datenbankaktualisierung (im Format "tt.mm.jjjj") 
) 

Hinweis: Zukünftig können weitere Felder hinzukommen, aber die vorhandenen werden nicht unbenannt. 
  
*/ 

?>

Was ich brauche ist folgendes:

Zwei Datensätze, zuerst der erste zurückliegende (nach Datum) ODER aktuelles Datum, danach der erste zukünftige Satz, am Besten schön in Variablen, es denen ich dann ein HTML-Statement bauen kann.

Könnte mir jemand dabei helfen? Der Link im Code funktioniert (damit man sich im Detail ansehen kann, mit was eigentlich hantiert wird). Falls noch Fragen sind, her damit.
 
Kannst Du vielleicht noch etwas konkreter werden und uns mitteilen woran Du scheiterst und was Du evtl. schon versucht hast?
 
Im Prinzip geht es mir um die Implementierung des Algorithmus zur Filterung der Daten in PHP. Ich habe leider nicht die geringste Ahnung, wie oder wo ich da anfangen soll bzw. welche Funktionen von PHP mir da behilflich sein könnte (ob es z.B. schon so etwas wie eine Datumssortierung oder Vergleichsfunktion gibt). Ich muss aber auch gestehen, dass mein PHP nicht sonderlich gut ist. Aber deswegen wende ich mich ja vertrauensvoll an euch ;-)
 
Da das Datum ja als Jahr+Monat+Tag vorliegt und die Uhrzeit als Stunde+Minute, lässt es sich dank dieser Reihenfolge wunderbar lexikographisch sortieren..

und um Arrays mit benutzerdefinierter Funktion zu sortieren, gibt es die Funktion usort() oder uasort()

(Unterschied: bei uasort() bleibt die Key-Value-Beziehung erhalten)



hier mal ein kleiner Beispiel-Code:
PHP:
<?php

    $zip = "0"; 
    if (function_exists('gzinflate')) 
    { 
        $zip = "1"; 
    } 
     
    $data = file('http://www.binb.info/spielplan.php?feed=fd17cb1b7ce5da44fd422a96d78bed67&zip='.$zip); 
    $data = implode('', $data); 
    if ($zip) 
    { 
        $data = gzinflate($data); 
    } 

    $data = unserialize($data);
    
    
    //User-definierte Vergleichs-Funktion
    function cmp_date($a, $b)
    {
        return strcmp($a["s_datum"].$a["s_zeit"],$b["s_datum"].$b["s_zeit"]);
    }
    
    //sortiere nach Datum+Uhrzeit von alt nach neu
    uasort($data,"cmp_date");
    
    $currentdate=date("YmdHi");
    
    $last=null;
    $next=null;
    
    //Array durchgehen und mit aktuellem Datum vergleichen
    foreach($data as $spiel)
    {
        if(strcmp($spiel["s_datum"].$spiel["s_zeit"],$currentdate)<0)
        {
            $last=$spiel;
        }
        else
        {
            $next=$spiel;
            break;
        }
    }
    
    //Ausgabe
    echo "<pre>";
    echo "letztes Spiel: ";
    print_r($last);
    echo "nächstes Spiel: ";
    print_r($next);
    echo "</pre>";

?>
 
Wunderbar, vielen vielen Dank. Mit deinem Beispielcode habe ich es hinbekommen. Wenn du möchtest, schreibe ich dich in den Header. Sende mir deine Daten und deinen Lizenzwunsch (ich dachte an GPLv3) per PN oder so :-)
 
Wenn du möchtest, schreibe ich dich in den Header. Sende mir deine Daten und deinen Lizenzwunsch (ich dachte an GPLv3) per PN oder so :-)

für die paar Zeilen erhebe ich nicht gleich Urheberrechts-Ansprüche... :)
Kannst mich ja gerne mit im Header vermerken (sowas wie "thx @ Martin Bergann <info@cs-bergann.de>" oder so) - aber wenn nicht, dann werd ich dir auch nicht gleich böse sein... ;)

oder wir treffen uns einfach beim nächsten HaBo-Treffen und du gibst mir ein Bierchen aus oder so =)

ansonsten kannst du auch einfach mal diese neue Beitrags-Bewertungs-Funktion der neuen Forensoftare nutzen - Karma=0 sieht irgendwie deprimierend aus ;)
 
Zurück
Oben