Zur Navigation

ausgegebene Datensätze manipulieren

1 tobi

Gibt es die Möglichkeit, dass ich Datensätze bei der Ausgabe umschreibe?

In der Datenbank stehen neben Tag, Datum, Uhrzeit, auch Spielklasse und Heimverein und Gastverein.

Aktuell schaut es so aus:
Tag Datum und Uhrzeit Spielklasse Heimmannschaft Gastmannschaft H:G
Sa. 16.09.2017 15:00 Ju Kr Kl TTC Musterbach III TTG Mainz 6:2
Sa. 16.09.2017 18:30 He Bez Li TTC Musterbach EK Mönsheim 3:9
So. 17.09.2017 10:00 Ju Bez Kl ASV Grünbach II TTC Musterbach II 7:7
Di. 19.09.2017 19:30 He Kr Li TTC Musterbach II SC Wetterheim 9:5
Mi. 20.09.2017 19:30 He Kr Kl C TTC Forchheim III TTC Musterbach VI 9:0

Aus der Kombination "Ju Kr Kl" und "TTC Musterbach III" soll Jugend 3 werden
Aus der Kombination "He Bez Li" und TTC Musterbach" soll Herren 1 werden
Aus der Kombination "Ju Bez Li" und "TTC Musterbach II" soll Jugend 2 werden
....

<?php

//Einbinden von CSS Datei
include "css.php.inc";

/**
* pdo extension
*/
class MyPDO extends PDO
{

    function __construct($file = 'db-config.ini')
    {
        if (!$settings = parse_ini_file($file, TRUE))
            throw new Exception("Unable to process file: " . $file);

        $dns = $settings['database']['driver'] .
            ':host=' . $settings['database']['host'] .
            ((!empty($settings['database']['port']))
                ? (';port=' . $settings['database']['port'])
                : '') .
            ';dbname=' . $settings['database']['schema'];

        $opt = [
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES   => false,
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
        ];

        parent::__construct(
            $dns,
            $settings['database']['username'],
            $settings['database']['password'],
            $opt
        );

    }
}

$pdo = new MyPDO();
$sql = "
    SELECT
        id, wochentag, spielzeit, spielklasse, heimmannschaft,
        gastmannschaft, heimergebnis, gastergebnis
    FROM
        spielergebnisse
    WHERE
        heimmannschaft
    NOT LIKE '%spielfrei%'
    AND gastmannschaft NOT LIKE '%spielfrei%'
    AND spielzeit >= CURDATE()
    AND spielzeit < DATE_ADD(CURDATE(), INTERVAL 7 DAY)
    ORDER BY
        spielzeit
";

try {
    printResult($pdo->query($sql)->fetchAll());
} catch (Exception $e) {
    die('Something went wrong...<br />' . $e->getMessage());
}
function printResult($res) {
    echo "
        <table class='table_gesamtspielplan'> 
            <tr>
                <td><b>Tag</b></td>
                <td><b>Datum und Uhrzeit</b></td>
                <td><b>Spielklasse</b></td>
                <td><b>Heimmannschaft</b></td>
                <td><b>Gastmannschaft</b></td>
                <td align=center><b>H</b></td>
                <td align=center><b>:</b></td>
                <td align=center><b>G</b></td>
             </tr>
    ";

    foreach ($res as $val) {
        $date = DateTime::createFromFormat('Y-m-d H:i:s', $val["spielzeit"]);
        $newDate = $date->format('d.m.Y H:i');
        echo "
        <tr>
            <td> {$val["wochentag"]} </td>
            <td> {$newDate} </td>
            <td> {$val["spielklasse"]} </td>
            <td> {$val["heimmannschaft"]} </td>
            <td> {$val["gastmannschaft"]} </td>
            <td align=center> {$val["heimergebnis"]} </td>
            <td align=center> <b>:</b></td>
            <td align=center> {$val["gastergebnis"]} </td>
        </tr>
        ";
    }
    echo "</table>";
}
?>

17.10.2017 13:34 | geändert: 17.10.2017 13:35

2 Jörg

Du kannst die Array-Werte innerhalb der foreach Schleife vor der eigentlichen Ausgabe überschreiben, z.B.:

if ($val["spielklasse"] == "Ju Kr Kl" && $val["heimmannschaft"] == "TTC Musterbach III") {
    $val["heimmannschaft"] = "Jugend 3";
}

17.10.2017 14:38

3 tobi

Hat geklappt. Danke.

19.10.2017 13:27

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]