<?php

function db_gericht_select_karte()
{
try {

$link = connectdb();


$sql_gerichte = "SELECT * FROM gericht ORDER BY RAND() LIMIT 5";
$result_sql_gerichte = mysqli_query($link, $sql_gerichte);

$tabelle = "<table class=\"speisen\"><tr class=\"speisen\"> <td>Gerichte</td><td>Preis intern</td><td>Preis extern</td><td>Bild</td></tr>";

$verwendete_allergene_code = [];
$verwendete_allergene_string = "";

while ($row_gerichte = mysqli_fetch_assoc($result_sql_gerichte)) {

    // Abfrage der vorhandenen Allergene im aktuellen Gericht

    $sql_gericht_hat_allergene = "SELECT * FROM gericht_hat_allergen WHERE gericht_id=" . $row_gerichte['id'];
    $result_sql_gericht_hat_allergene = mysqli_query($link, $sql_gericht_hat_allergene);
    $allergene = "";
    while ($row_allergene = mysqli_fetch_assoc($result_sql_gericht_hat_allergene)) {
           $allergene .= $row_allergene['code'] . ", ";

           if (!in_array($row_allergene['code'], $verwendete_allergene_code)) {
               $verwendete_allergene_code[] = $row_allergene['code'];
            }
    }

        // Preise in EUR

        $preisintern = number_format($row_gerichte['preisintern'], 2, ',', '.');
        $preisextern = number_format($row_gerichte['preisextern'], 2, ',', '.');

        // Ausgabe des aktuellen Gerichts

        $tabelle .= "<tr class=\"speisen\"><td>" . htmlspecialchars($row_gerichte['name']) . " <sup>" . htmlspecialchars($allergene) . "</sup></td><td>" . htmlspecialchars($preisintern) . "€</td><td>" . htmlspecialchars($preisextern) . "€</td><td>Kein Bild in der Datenbank </td></tr>";
    }
    $tabelle .= "</table>";

    // Abfrage der Allergen Code und Name

    $sql_allergen = "SELECT code, name FROM allergen";
    $result_sql_allergen = mysqli_query($link, $sql_allergen);

    while ($row_allergen = mysqli_fetch_assoc($result_sql_allergen)){
        if (in_array($row_allergen['code'], $verwendete_allergene_code)){
            $verwendete_allergene_string .= "<sup>". htmlspecialchars($row_allergen['code']) ."</sup> ". htmlspecialchars($row_allergen['name']) . ", ";
        }
    }


    $data = [
        "gericht" => $tabelle,
        "allergene" => $verwendete_allergene_string
    ];



mysqli_close($link);


} catch (Exception $ex) {
$data = array(
'id' => '-1',
'error' => true,
'name' => 'Datenbankfehler ' . $ex->getCode(),
'beschreibung' => $ex->getMessage());
} finally {
return $data;
}
}