Bedingte Ausgabe von Objekten

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
JFuchs
Junior Member
Beiträge: 28
Registriert: Mi 14. Dez 2016, 10:23

Bedingte Ausgabe von Objekten

Beitragvon JFuchs » Mo 2. Jan 2017, 16:42

Hallo zusammen,
ich glaube ich stehe gerade völlig auf dem Schlauch. Ich habe eine Listview über Objekte / Multiobjekte gebaut, welch Schulungsnamen zu Trainern zuweist - es sollte so sein, dass natürlich nur die entsprechende Schulung beim entsprechenden Trainer erscheint - im Moment erscheinen alle Schulungen bei allen Trainern - ich habe irgendwo einen Gedankenfehler und komme nicht drauf.

Hier der Code - die wichtigen Dinge habe ich in fett beschrieben:


<we:master>
<we:ifRegisteredUser>
<?php
$monat="";
$monat_zahl="";
$i="";
?>
<we:listview type="object" classid="3">
<?php
$anzahl_trainer = $GLOBALS['lv'] ->anz_all ; ==> Hier bestimme ich die Anzahl der im Moment vorhanden Trainer (hier 3)

?>
</we:listview>

<we:listview type="object" classid="2">
<?php
$anzahl_raeume = $GLOBALS['lv'] ->anz_all ;

?>
</we:listview>
<?php
if($_POST[anzeigen]==1)
{
$jahr = $_POST[jahr];
}
else
{
$jahr = date("Y");

}

if($_POST[anzeigen]==1)
{
$monat = $_POST[monat];
}
else
{
$monat = date("m");

}

// UNIX Timestamp des letzten Tages des Monats
$lastday_ts = mktime(0,0,0,$monat+1,0,$jahr);

// letzter Tag des Monats = Anz. der Tage(numerischer Wert)
$lastday_d = date("d",$lastday_ts);

// aktueller Tag
$heute_tag = date("d");
$heute_monat = date("n");
$heute_jahr = date("Y");
?>
<div id="ctn-content" style="width:6000px;">
<we:form id="9" method="post">
<input type="hidden" name="anzeigen" value="1">
<select name="monat" >
<option value="1" <?php if($monat == 1) echo "selected style='background-color=#99CCFF;'"?>>Januar</option>
<option value="2" <?php if($monat == 2) echo "selected style='background-color=#99CCFF;'"?>>Februar</option>
<option value="3" <?php if($monat == 3) echo "selected style='background-color=#99CCFF;'"?>>M&auml;rz</option>
<option value="4" <?php if($monat == 4) echo "selected style='background-color=#99CCFF;'"?>>April</option>
<option value="5" <?php if($monat == 5) echo "selected style='background-color=#99CCFF;'"?>>Mai</option>
<option value="6" <?php if($monat == 6) echo "selected style='background-color=#99CCFF;'"?>>Juni</option>
<option value="7" <?php if($monat == 7) echo "selected style='background-color=#99CCFF;'"?>>Juli</option>
<option value="8" <?php if($monat == 8) echo "selected style='background-color=#99CCFF;'"?>>August</option>
<option value="9" <?php if($monat == 9) echo "selected style='background-color=#99CCFF;'"?>>September</option>
<option value="10" <?php if($monat == 10) echo "selected style='background-color=#99CCFF;'"?>>Oktober</option>
<option value="11" <?php if($monat == 11) echo "selected style='background-color=#99CCFF;'"?>>November</option>
<option value="12" <?php if($monat == 12) echo "selected style='background-color=#99CCFF;'"?>>Dezember</option>
</select>
<select name="jahr">
<?php
// Anz. der Jahre vor und nach heute
$anz_jahre = 1;

for($i = $heute_jahr - $anz_jahre ; $i <= $heute_jahr + $anz_jahre; $i++)
{
if($i == $jahr)
echo "<option value=\"".$i."\" selected style='background-color=#99CCFF;'>".$i."</option>";
else
echo "<option value=\"".$i."\">".$i."</option>";
}
?>
</select>
<input type="submit" value="Jahr bestätigen">
</we:form>

<div class="divTable" style="border: 1px solid; width:5700px;">
<div class="divTableBody">
<div class="divTableRow">
<div class="divTableCell" style="width:70px;text-align:center;font-weight: bold;">Datum</div>
<we:listview type="object" name="Raumliste" classid="2" order="Raum_Ordnungszahl">
<we:repeat>
<div class="divTableCell" style="width:100px;text-align:center;font-weight: bold;"><we:field name="Raum_Raumname" alt="we_path" hyperlink="false"/></div>
</we:repeat>
</we:listview>

<we:listview type="object" name="Trainerliste" classid="3" order="Trainer_Ordnungszahl">
<we:repeat>
<div class="divTableCell" style="width:150px;text-align:center;font-weight: bold;"><we:field name="Trainer_Vorname" alt="we_path" hyperlink="false"/> <we:field name="Trainer_Nachname" alt="we_path" hyperlink="false"/></div>
</we:repeat>
</we:listview>
</div>

<?php for($i = 1; $i <= $lastday_d; $i++) {

// UNIX Timestamp des aktuellen Tages ermitteln
$tag_ts = mktime(0,0,0,$monat,$i,$jahr);



// Tag mit fuehrender Null aus $i erzeugt
if($i < 10)
$tag_nr = "0".$i;
else
$tag_nr = $i;
$monat_zahl = $monat;

if ($monat < 10)
$monat_zahl="0".$monat;

$my_condition = " ((FROM_UNIXTIME(date_Von,'%Y') < ".$jahr.") OR (FROM_UNIXTIME(date_Von,'%Y') = ".$jahr." AND FROM_UNIXTIME(date_Von,'%c') < ".$monat.") OR (FROM_UNIXTIME(date_Von,'%Y') = ".$jahr." AND FROM_UNIXTIME(date_Von,'%c') = ".$monat." AND FROM_UNIXTIME(date_Von,'%d') <= ".$tag_nr.")) AND ((FROM_UNIXTIME(date_Bis,'%Y') > ".$jahr.") OR (FROM_UNIXTIME(date_Bis,'%Y') = ".$jahr." AND FROM_UNIXTIME(date_Bis,'%c') > ".$monat.") OR (FROM_UNIXTIME(date_Bis,'%Y') = ".$jahr." AND FROM_UNIXTIME(date_Bis,'%c') = ".$monat." AND FROM_UNIXTIME(date_Bis,'%d') >= ".$tag_nr."))";

?>

<div class="divTableRow">
<div class="divTableCell" style="width:70px;">
<div class="divTable">
<div class="divTableBody">
<div class="divTableRow">
<div class="divTableCell" style="width:70px;"><?php echo $tag_nr.".".$monat_zahl.".".$jahr; ?></div>
</div>
</div>
</div>
</div>
<?php
for ($anzahlraeume=1;$anzahlraeume<=$anzahl_raeume;$anzahlraeume++) { ?>
<div class="divTableCell" style="width:150px;">
<div class="divTable">
<div class="divTableBody">
<div class="divTableRow">
<we:listview type="object" classid="7" condition="\$my_condition" order="Raum_Ordnungszahl">
<we:ifFound>
<we:repeat>
<we:ifField type="text" name="Raum" match="4">
<div class="divTableCell" style="width:120px;"><we:field name="Schulungsname"/></div>
</we:ifField>

</we:repeat>
</we:ifFound>
</we:listview>
</div>
</div>
</div>
</div>
<?php } ?>

<?php

==> Ab hier starte ich die Ausgabe der Schulung zu den Trainern <==
for ($anzahltrainer=1;$anzahltrainer<=$anzahl_trainer;$anzahltrainer++) { ?>
<div class="divTableCell" style="width:150px;">
<div class="divTable">
<div class="divTableBody">
<div class="divTableRow">
<we:listview type="object" classid="7" condition="\$my_condition" > ==> Listview über die Schulungen zu einem bestimmten Datum => das funktioniert !!

<we:repeat>
<we:ifFound>
<?php $idtrainer = $GLOBALS['lv']->f('Trainer'); ==> Hier lese ich die ID des zugeordneten Trainers aus => funktioniert
$schulungsname = $GLOBALS['lv']->f('Schulungsname'); ==> Hier lese ich den Schulungsnamen aus => funktioniert
echo "TrainerID - Schulung: ".$idtrainer; ?>

==> Jetzt gehe ich nochmals die Trainerobjekte durch <==
<we:listview type="multiobject" name="Trainer" classid="3" order="Trainer_Ordnungszahl">


<we:repeat>
<we:ifFound>
<we:field name="WE_ID"/>
==> Ab hier versuche ich den Schulungsnamen nur beim entsprechenden Trainer auszugeben - leider ohne Erfolg
<we:ifField name="WE_ID" match="\$idtrainer">
<div class="divTableCell" style="width:150px;"><?php echo $schulungsname; ?></div>

</we:ifField>
</we:ifFound>
</we:repeat>


</we:listview>
</we:ifFound>

</we:repeat>
</we:listview>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
<?php }
$monat="";
$i="";
?>
</div>
</div>
</div>
</we:ifRegisteredUser>
<we:ifNotRegisteredUser>
<div id="ctn-content" style="width:900px;">
<div class="tabinput">
<div class="tabinputrow">
<div class="tabinputcell" style="width:900px;border-bottom: 1px solid gray; border-top:2px solid black;text-align:center;"><strong>!!! Bitte anmelden !!!</strong></div>
</div>
</div>
</div>
</we:ifNotRegisteredUser>
</we:master>


Vielen Dank vorab für Eure Hilfe

AndreasWitt

Re: Bedingte Ausgabe von Objekten

Beitragvon AndreasWitt » Di 3. Jan 2017, 00:32

... mach mal aus:

Code: Alles auswählen

$idtrainer = $GLOBALS['lv']->f('Trainer');
besser:

Code: Alles auswählen

$GLOBALS['idtrainer'] = $GLOBALS['lv']->f('Trainer');
Grüße, Andreas

P. S. dein Code sieht etwas kompliziert aus :wink:


Zurück zu „DB-/Objektmodul“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste