summaryrefslogtreecommitdiff
path: root/kalorien_zaehler/index.php
diff options
context:
space:
mode:
authorstefan_gey <stfngy@proton.me>2025-03-25 22:51:39 +0100
committerstefan_gey <stfngy@proton.me>2025-03-25 22:51:39 +0100
commitf99b7701847efec51466d6a54f5f057cc6234d88 (patch)
tree0fe595f297aa9d83a74f124b2c7a0cbd1e7ae6ab /kalorien_zaehler/index.php
commit
Diffstat (limited to 'kalorien_zaehler/index.php')
-rwxr-xr-xkalorien_zaehler/index.php344
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>