diff options
| author | stefan_gey <stfngy@proton.me> | 2025-03-25 22:51:39 +0100 |
|---|---|---|
| committer | stefan_gey <stfngy@proton.me> | 2025-03-25 22:51:39 +0100 |
| commit | f99b7701847efec51466d6a54f5f057cc6234d88 (patch) | |
| tree | 0fe595f297aa9d83a74f124b2c7a0cbd1e7ae6ab /kalorien_zaehler/index.php | |
commit
Diffstat (limited to 'kalorien_zaehler/index.php')
| -rwxr-xr-x | kalorien_zaehler/index.php | 344 |
1 files changed, 344 insertions, 0 deletions
diff --git a/kalorien_zaehler/index.php b/kalorien_zaehler/index.php new file mode 100755 index 0000000..8641a83 --- /dev/null +++ b/kalorien_zaehler/index.php @@ -0,0 +1,344 @@ +<?php session_start(); + +/* error_reporting(E_ALL); +ini_set('display_errors', 1); */ + +$tag = (isset($_POST['tag_aendern'])) ? $_POST['tag_aendern'] : time(); +$tabelle_datum = date("d. M Y", $tag); +$datenbank_datum = date("Y-m-d", $tag); + +if (isset($_SESSION['benutzer'])) { + $benutzer = $_SESSION['benutzer']; + $datenbank = new mysqli('localhost', 'root', 'sexyweyer', 'Annapurna'); + + if (isset($_POST['werte_uebernehmen'])) { + $gesamt_kalorien = round($_POST['gesamt_kalorien']); + $gesamt_kohlenhydrate = round($_POST['gesamt_kohlenhydrate']); + $gesamt_fett = round($_POST['gesamt_fett']); + $gesamt_protein = round($_POST['gesamt_protein']); + $gesamt_zucker = round($_POST['gesamt_zucker']); + + $datenbank->query("DELETE FROM ernaehrungswerte WHERE benutzer_id = $benutzer"); + $datenbank->query("INSERT INTO ernaehrungswerte VALUES ('$benutzer', '$gesamt_kalorien', '$gesamt_kohlenhydrate', '$gesamt_fett', '$gesamt_protein', '$gesamt_zucker')"); + } else { + $response = $datenbank->query("SELECT gesamt_kalorien, gesamt_kohlenhydrate, gesamt_fett, gesamt_protein, gesamt_zucker FROM ernaehrungswerte WHERE benutzer_id = $benutzer"); + $data = $response->fetch_assoc(); + $gesamt_kalorien = $data['gesamt_kalorien']; + $gesamt_kohlenhydrate = $data['gesamt_kohlenhydrate']; + $gesamt_fett = $data['gesamt_fett']; + $gesamt_protein = $data['gesamt_protein']; + $gesamt_zucker = $data['gesamt_zucker']; + } + + if (isset($_POST['lebensmittel_hinzufuegen'])) { + $lebensmittel_id = $_POST['lebensmittel_hinzufuegen']; + $menge = $_POST['menge']; + + $datenbank->query("INSERT INTO benutzer_lebensmittel (benutzer, lebensmittel, menge, datum, uhrzeit) VALUES ('$benutzer', '$lebensmittel_id', '$menge', CURRENT_DATE(), CURRENT_TIME())"); + } + + $antwort = $datenbank->query( + "SELECT + lebensmittel.namen AS lebensmittel_namen, + benutzer_lebensmittel.menge AS menge, + (lebensmittel.kalorien / 100 * benutzer_lebensmittel.menge) AS kalorienwert, + (lebensmittel.kohlenhydrate / 100 * benutzer_lebensmittel.menge) AS kohlenhydratwert, + (lebensmittel.fett / 100 * benutzer_lebensmittel.menge) AS fettwert, + (lebensmittel.protein / 100 * benutzer_lebensmittel.menge) AS proteinwert, + (lebensmittel.zucker / 100 * benutzer_lebensmittel.menge) AS zuckerwert, + benutzer_lebensmittel.uhrzeit AS eintrag_uhrzeit + FROM benutzer_lebensmittel INNER JOIN lebensmittel + ON benutzer_lebensmittel.lebensmittel = lebensmittel.lebensmittel_id + WHERE benutzer_lebensmittel.benutzer = '$benutzer' + AND benutzer_lebensmittel.datum = '$datenbank_datum' + ORDER BY benutzer_lebensmittel.uhrzeit;" + ); + + $alle_lebensmittel = []; + while ($lebensmittel = $antwort->fetch_assoc()) { + $alle_lebensmittel[] = $lebensmittel; + } + $datenbank->close(); + + $verbraucht_kalorien = 0; + $verbraucht_kohlenhydrate = 0; + $verbraucht_fett = 0; + $verbraucht_protein = 0; + $verbraucht_zucker = 0; + + foreach ($alle_lebensmittel as $lebensmittel) { + $verbraucht_kalorien += $lebensmittel['kalorienwert']; + $verbraucht_kohlenhydrate += $lebensmittel['kohlenhydratwert']; + $verbraucht_fett += $lebensmittel['fettwert']; + $verbraucht_protein += $lebensmittel['proteinwert']; + $verbraucht_zucker += $lebensmittel['zuckerwert']; + } +} +?> + +<!DOCTYPE html> +<html lang="de"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Ernährungszähler</title> + <link rel="icon" type="image/x-icon" href="/style/avocado.png"> + <link rel="stylesheet" type="text/css" href="/style/style.css"> +</head> + +<body> + +<nav class="medium_box"> + <ul class="hor_spacing"> + <li class="hor_spacing_item"> + <a class="small_box color_inverse_on_hover" href="/login">Login</a> + </li> + <li class="hor_spacing_item"> + <a class="small_box color_inverse_on_hover" href="/kalorien_rechner">Kalorien-rechner</a> + </li> + <li class="hor_spacing_item"> + <a class="small_box tertiary_color_style" href="/kalorien_zaehler">Kalorien-zähler</a> + </li> + <li class="hor_spacing_item"> + <a class="small_box color_inverse_on_hover" href="/rezepte">Rezepte</a> + </li> + <li class="hor_spacing_item"> + <a class="small_box color_inverse_on_hover" href="/workouts">Workouts</a> + </li> + </ul> +</nav> + +<main class="big_box hor_spacing"> + <h1>Ernährungszähler</h1> + <?php if (isset($_SESSION['benutzer'])) { ?> + <div class="medium_box hor_spacing_item"> + <h2>Heutiger Ernährungsbedarf</h2> + <div class="listenbox" style="text-align: left"> + <div class="listenobjekt flexbox"> + <div style="flex: 2; overflow: hidden"> + <b>Wert</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Kalorien</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Kohlenhydrate</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Fett</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Protein</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Zucker</b> + </div> + </div> + <div class="listenobjekt flexbox"> + <div style="flex: 2; overflow: hidden"> + Gesamter Bedarf + </div> + <div style="flex: 1; overflow: hidden"> + <?= $gesamt_kalorien ?? 0 ?> kcal + </div> + <div style="flex: 1; overflow: hidden"> + <?= $gesamt_kohlenhydrate ?? 0 ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= $gesamt_fett ?? 0 ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= $gesamt_protein ?? 0 ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= $gesamt_zucker ?? 0 ?> gramm + </div> + </div> + <div class="listenobjekt flexbox"> + <div style="flex: 2; overflow: hidden"> + Verbraucht + </div> + <div style="flex: 1; overflow: hidden"> + <?= $verbraucht_kalorien ?? 0 ?> kcal + </div> + <div style="flex: 1; overflow: hidden"> + <?= $verbraucht_kohlenhydrate ?? 0 ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= $verbraucht_fett ?? 0 ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= $verbraucht_protein ?? 0 ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= $verbraucht_zucker ?? 0 ?> gramm + </div> + </div> + <div class="listenobjekt flexbox"> + <div style="flex: 2; overflow: hidden"> + Übrig + </div> + <div style="flex: 1; overflow: hidden"> + <?= max($gesamt_kalorien - $verbraucht_kalorien, 0) ?> kcal + </div> + <div style="flex: 1; overflow: hidden"> + <?= max($gesamt_kohlenhydrate - $verbraucht_kohlenhydrate, 0) ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= max($gesamt_fett - $verbraucht_fett, 0) ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= max($gesamt_protein - $verbraucht_protein, 0) ?> gramm + </div> + <div style="flex: 1; overflow: hidden"> + <?= max($gesamt_zucker - $verbraucht_zucker, 0) ?> gramm + </div> + </div> + <div class="listenobjekt flexbox"> + <div style="flex: 2; overflow: hidden"> + % Verbraucht + </div> + <div style="flex: 1; overflow: hidden"> + <?= ($gesamt_kalorien) ? round(($verbraucht_kalorien / $gesamt_kalorien) * 100) : 0 ?> % + </div> + <div style="flex: 1; overflow: hidden"> + <?= ($gesamt_kohlenhydrate) ? round(($verbraucht_kohlenhydrate / $gesamt_kohlenhydrate) * 100) : 0 ?> % + </div> + <div style="flex: 1; overflow: hidden"> + <?= ($gesamt_fett) ? round(($verbraucht_fett / $gesamt_fett) * 100) : 0 ?> % + </div> + <div style="flex: 1; overflow: hidden"> + <?= ($gesamt_protein) ? round(($verbraucht_protein / $gesamt_protein) * 100) : 0 ?> % + </div> + <div style="flex: 1; overflow: hidden"> + <?= ($gesamt_zucker) ? round(($verbraucht_zucker / $gesamt_zucker) * 100) : 0 ?> % + </div> + </div> + </div> + </div> + + <div class="medium_box hor_spacing_item hor_spacing"> + + <h2>Lebensmittel hizufügen</h2> + <form class="flexbox hor_spacing_item" action="" method="POST"> + <input class="small_box color_inverse_on_hover" type="text" name="lebensmittel_suchquery" style="flex-grow: 1" required> + <button class="small_box color_inverse_on_hover" type="submit" name="lebensmittel_suche" style="width: auto">Suchen</button> + </form> + + <?php + if (isset($_POST['lebensmittel_suche'])) { + $suchbegriff = $_POST['lebensmittel_suchquery']; + + $ch = curl_init(); + $url = 'https://api.webapp.prod.blv.foodcase-services.com/BLV_WebApp_WS/webresources/BLV-api/foods?lang=de&search=' . urlencode($suchbegriff); + + $curl_options = [ + CURLOPT_URL => $url, + CURLOPT_HEADER => false, + CURLOPT_RETURNTRANSFER => true, + ]; + curl_setopt_array($ch, $curl_options); + + $antwort = curl_exec($ch); + curl_close($ch); + $alle_api_lebensmittel = json_decode($antwort, true); + + if ($alle_api_lebensmittel) { ?> + <form class="listenbox" action="./lebensmittel_hinzufuegen.php" method="POST"> + <?php foreach ($alle_api_lebensmittel as $api_lebensmittel) { ?> + <button type="submit" class="color_inverse_on_hover listenobjekt" style="width: 100%" name="lebensmittel_auswahl" value="<?= $api_lebensmittel['id'] ?>"> + <?= $api_lebensmittel['foodName'] ?> + </button> + <?php } ?> + </form> + <?php } else { ?> + <div class="small_box hor_spacing_item"> + Keine Einträge in der Datenbank! + </div> + <?php } + } ?> + </div> + <div class="medium_box hor_spacing"> + <h2>Konsumierte Lebensmittel</h2> + <form class="flexbox hor_spacing_item" action="" method="POST"> + <button class="small_box color_inverse_on_hover" style="flex: 1" type="submit" name="tag_aendern" value="<?= strtotime("-1 day", $tag) ?>"><h2 style="margin: 0">-1 Tag</h2></button> + <button class="small_box color_inverse_on_hover" style="flex: 3" type="submit" name="tag_aendern" value="<?= strtotime("now") ?>"><h2 style="margin: 0"><?= $tabelle_datum ?></h2></button> + <button class="small_box color_inverse_on_hover" style="flex: 1" type="submit" name="tag_aendern" value="<?= strtotime("+1 day", $tag) ?>"><h2 style="margin: 0">+1 Tag</h2></button> + </form> + <div class="listenbox hor_spacing_item" style="text-align: left"> + <div class="listenobjekt flexbox"> + <div style="flex: 3; overflow: hidden"> + <b>Namen</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Menge</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Kalorien</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Kohlenhydrate</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Fett</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Protein</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Zucker</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Fett</b> + </div> + <div style="flex: 1; overflow: hidden"> + <b>Uhrzeit</b> + </div> + </div> + <?php if ($alle_lebensmittel) { + foreach ($alle_lebensmittel as $lebensmittel) { ?> + <div class="listenobjekt flexbox"> + <div style="flex: 3; overflow: hidden"> + <?= $lebensmittel['lebensmittel_namen'] ?> + </div> + <div style="flex: 1; overflow: hidden"> + <?= $lebensmittel['menge'] ?> g + </div> + <div style="flex: 1; overflow: hidden"> + <?= round($lebensmittel['kalorienwert']) ?> kcal + </div> + <div style="flex: 1; overflow: hidden"> + <?= round($lebensmittel['kohlenhydratwert']) ?> g + </div> + <div style="flex: 1; overflow: hidden"> + <?= round($lebensmittel['fettwert']) ?> g + </div> + <div style="flex: 1; overflow: hidden"> + <?= round($lebensmittel['proteinwert']) ?> g + </div> + <div style="flex: 1; overflow: hidden"> + <?= round($lebensmittel['zuckerwert']) ?> g + </div> + <div style="flex: 1; overflow: hidden"> + <?= round($lebensmittel['fettwert']) ?> g + </div> + <div style="flex: 1; overflow: hidden"> + <?= substr($lebensmittel['eintrag_uhrzeit'], 0, -3) ?> + </div> + </div> + <?php } + } else { ?> + <div class="listenobjekt" style="text-align: center"> + Keine Einträge in der Datenbank! + </div> + <?php } ?> + </div> + </div> + <?php } else { ?> + <div class="medium_box hor_spacing_item"> + <p><a class="small_box color_inverse_on_hover" href="/login">Melde dich an</a>, um diesen Teil der Webseite zu nutzen!</p> + </div> + <?php } ?> +</main> +</body> +</html> |
