thealex
Goto Top

Datenbankabfrage korrekt integrieren, aber wie?

In letzter zeit bin ich etwa aktiver hier bei euch, und einigen wird meine Fragerrei wohl bestimmt schon nerven^^

Ich habe nochmals eine kleine Frage:

Ich habe eine Funktion die mir pro User in der DB eine Tabellenzeile generiert:

	public function get_list($list){
			
			echo "<table>";  
			foreach(array_unique(array_column($list, 'mitarbeiter'), SORT_REGULAR) as $user){  
			$i = 1;		
			echo "<tr><td>".$user."</td>";  
			echo "<td><table><tr>";  
			while($i < 32){
			
			echo "<td id='".$user.$i."' width='18px' height='18px'><center>".$i."</center></td>";  
			$i++;			
			}
			echo "</tr></table></td></tr>";  
			}
			echo "</table>";  
				

			
			
			
		
		
	}

Jetzt möchte ich diese Funktion so anpassen das Tage an denen der Nutzer Frei hat Grün einfärben und Arbeitstage Gelb. An denen der Nutzer nichts eingetragen hat möchte ich das er die schriftfarbe auf Trenzparent setzt.

Jedoch bin ich mir nicht sicher wie ich das am besten lösen kann. Hier noch ein Foto der Datenbank:

database

Content-ID: 366044

Url: https://administrator.de/contentid/366044

Ausgedruckt am: 17.11.2024 um 09:11 Uhr

emeriks
emeriks 25.02.2018 um 17:49:22 Uhr
Goto Top
Datenbankabdrafe
Что это?
TheAlex
TheAlex 25.02.2018 um 18:11:25 Uhr
Goto Top
Sry bissl in den tasten verirrt. habs nun korrigiert!
certifiedit.net
certifiedit.net 25.02.2018 um 18:56:46 Uhr
Goto Top
Abfrage auf Werte und diese nimmst du als Basis für das Setzen von CSS Tags
TheAlex
TheAlex 25.02.2018 aktualisiert um 19:18:43 Uhr
Goto Top
Habe bislang folgenden Code, leider zeigt er mir nurnoch den ersten User an und da auch nur den 1 Tag!

public function get_list($list, $mnum){
			
			echo "<table>";  
			foreach(array_unique(array_column($list, 'mitarbeiter'), SORT_REGULAR) as $user){  
			$i = 1;
			$work = $this->conn->prepare("SELECT cal_day, ma_wish FROM ma_wishes WHERE mitarbeiter=:user AND cal_mon=:mnum");  
			$work->execute(array(":user"=>$user, ":mnum"=>$mnum));  
			$events = array();
			while($workRow = $work->fetch(PDO::FETCH_ASSOC)) { 
			$events[$workRow['cal_day']] = $workRow;}  
			echo "<tr><td>".$user."</td>";  
			echo "<td><table><tr>";  
			for($i=1; $i <= 31; $i++){
			
			if( isset($events[$i]) && !empty($events[$i]) ) // ist Index vorhanden UND enthält es Daten
			{
			// alle Daten ausgeben
			foreach( $events[$i] as $refArrEvent )
			{
			if($refArrEvent['ma_wish'] == "Dienst"){  
			echo "<td id='".$user.$i."' width='18px' height='18px' background-color='yellow'><center>".$i."</center></td>";  
			}
			if($refArrEvent['ma_wish'] == "Frei"){  
			echo "<td id='".$user.$i."' width='18px' height='18px' background-color='green'><center>".$i."</center></td>";  
			}
			}
			echo "</tr></table></td></tr>";  
  
			return NULL;
			}
			
			
						
			}
			
			}
			echo "</table>";  
				

			
			
		
		
	}
Arano
Arano 26.02.2018 um 10:51:31 Uhr
Goto Top
Hi.

Habe bislang folgenden Code, leider zeigt er mir nurnoch den ersten User an und da auch nur den 1 Tag!
Habe dich schon mal drauf Hingewiesen deine Code zu formatieren: Problem wenn kein mehrere Eintrag Einträge für Monat vorhanden
Diesen "Fehler" hast du nämlich genau deswegen !
Also,
  • Editor mit Syntaxhighlighting ("Buntercode") und
  • denn Code formatieren (einrücken)
Ob du dabei nun
if( true ) {
    // do something
}
oder
if( true )
{
    // do something
}
wählst ist wahrscheinlich ein Jahrhundert-Thema (Mir pers. gefällt letzteres besser weil die Klammerpaare { } einfach zu erkennen sind und durch die zusätzliche fast leere Zeile alles etwas aufgelockert wird. Andere haben es vermutlich lieber etwas kompakter ... Jahrhundert-Thema)
ABER: Entscheide dich für einen(kreiere keinen Neuen!) und dann formatiere deinen Code.
Dann wirst du den Fehler selber sehen OHNE nachdenken zu müssen. (Das springt einem direkt ins Auge).


~Arano