schillermann / trolleydienst-php

Plane den Trolleydienst für deine Versammlung kinderleicht. Du kannst das Trolley Programm auf deinen Server installieren und nach belieben in der Programmiersprache PHP an die Bedürfnisse deiner Versammlung anpassen.
MIT License
8 stars 2 forks source link

Teilnehmer Eigenschaften -> Abfrage wie ? #32

Closed S-Pfeil closed 1 year ago

S-Pfeil commented 2 years ago

Hallo da unser Saal außerhalb liegt muss mindestens eine Person in der Schicht ein Auto zum Transport der Trolleys haben. Daher habe ich unter anderem die Eigenschaft (Auto) in der Teilnehmerliste mit aufgenommen. Nun weiß ich nicht wie ich in der /templates/pages/shift.php das abfragen kann … ob der User ein Auto hat… also ob eine „1“ in der Datenbank (users) in Spalte „is_car“ ist.

Ich brauche dringend HILFE !!!

Screenshot 2022-09-25 135014

user-kh commented 2 years ago

Hallo @S-Pfeil ich bin mir nicht ganz sicher ob ich die Aufgabenstellung richtig verstanden habe.

Aber kannst du nicht in dein Modal (was angezeigt wird, wenn sich jemand bewirbt) die Frage (Checkbox) mit aufnehmen ob ein PKW vorhanden ist?

Ich würde es vielleicht noch ganz anders lösen: (Nur eine Überlegung.) In der Datenbank hast du zu jeden VK hinterlegt ob ein PKW vorhanden ist oder nicht... Richtig? Kannst du nicht einfach Hinter dem Namen ein Icon mit einem Auto anzeigen, wenn "is_car" true ist? Dann sieht man es auf einen Blick unf niemand muss etwas klicken.

S-Pfeil commented 2 years ago

Guten Abend @user-kh ja das wäre ok, nur genau das ist ja mein Problem, dass ich es einfach nicht hinbekomme ... die Abfrage - ob "is_car" true ist. Wie wäre der Code dafür? Ich bin blutiger Anfänger in der Programmierung. lg

user-kh commented 2 years ago

<button class="enable" onclick="submitForm(this)" type="button"> <i class="fa fa-thumbs-o-up"></i> <?= $name ?> </button>

Such mal nach dem Absatz Hinter dem $name müsstet du jetzt sowas schreiben:

<?= $is_car == true ? '<i class="fa fa-car"></i>' : "" ?> (ich kenne nicht genau deinen Code, aber von der Struktur müsst es gehen)

S-Pfeil commented 2 years ago

Danke für deine Hilfe aber das funktioniert leider nicht. Wenn ich nur <?= $is_car ?> einfüge hinter <?= $name ?> , da müsste ja wenigstens eine "1" oder eine "0"angezeigt werden, das macht es aber nicht. Die Variable scheint nicht gefüllt zu sein.

user-kh commented 2 years ago

@S-Pfeil Tut mir leid, dass es bei dir nicjr klappt.

Deine Idee ist gut die Varaiable so auszugeben. Nutz doch mal ein var_dump.

Wie hast du es den geschafft dass die Variable auf der VK Seite zur Verfügung steht?

BN1010 commented 2 years ago

Hi @S-Pfeil und @user-kh, wenn ich S-Pfeil richtig verstehe, gibt es noch gar keine Abfrage aus der Datenbank. Hier müsste man also ein ganzes Stück weiter vorn ansetzen, und den Wert erst einmal verfügbar machen. Das geht dann für die shift.php über /src/Tables/ShiftUserMaps.php -> dort in der function select_all den is_car Wert mit abholen. Und dann den Wert in /src/Services/get_users_from_shift.php mit in das $user_list array packen.

S-Pfeil commented 2 years ago

Hi @BN1010 heee super vielen Dank das ist die Lösung, nun wird die Variable ausgegeben. Aber ich hab keine Ahnung wie ich "is_car" in die $user_list array packen soll, damit sie mir einzeln zu Verfügung steht? Aber funktionieren tut es, denn wenn ich hier $user_list[$shift_position][$id_user] = $users['name']; den $users['name'] ersetze durch $users['is_car'] erhalte ich statt der Namen den Wert von "is_car". Doch wie erhalte ich "name" und "is_car", so dass diese hintereinander stehen, aber dennoch getrennt voneinander sind?

BN1010 commented 2 years ago

@S-Pfeil Du könntest ein $user_details array erstellen, in das du die Infos wie Name, is_car und bei Bedarf noch weitere zusammenfasst. Das user_details Array verschachtelst du dann in das user_list Array. Zugeordnet ist dann alles schon korrekt, weil es ja ein assoziatives Array ist. Also z.B.:

$user_details = array();
$user_details['name'] = $users['name'];
§user_details['is_car'] = $users['is_car'];

$user_list[$shift_position][$id_user] = $user_details;

In der /templates/pages/shift.php kannst du's dann so machen:

Im Original Zeile 57: <?php foreach ($user_list as $id_user => $name) : ?>

änderst du z.B. so:

<?php foreach ($user_list as $id_user => $user_details) : ?>
    <?php $name = $user_details['name'] ?>
    <?php $is_car = $user_details['is_car'] ?>

Dann hast du die Information als $is_car zur Verfügung und kannst sie nutzen.

S-Pfeil commented 2 years ago

Hallo @BN1010 es funktioniert ... du bist mein Held ! Danke für deine Mühe und den Code ...habe mich gleich mal über Array's informiert :-) ... damit ich das auch verstehen kann noch eine Frage: Woher weißt du in welchen Ordner die notwendige Datei liegt die dafür nötig ist?

BN1010 commented 2 years ago

Freut mich ;)

Woher weißt du in welchen Ordner die notwendige Datei liegt die dafür nötig ist?

Ganz plump: den Code lesen. Dazu fängst du am Besten immer mit der jeweils aufgerufenen Seite im /public Folder an. Wenn du das konsequent machst, erschließen sich die Zusammenhänge, Ordnerstrukturen etc.

user-kh commented 1 year ago

Frage beantwortet ;-)