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-Key: 366044

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

Printed on: April 25, 2024 at 03:04 o'clock

Member: emeriks
emeriks Feb 25, 2018 at 16:49:22 (UTC)
Goto Top
Datenbankabdrafe
Что это?
Member: TheAlex
TheAlex Feb 25, 2018 at 17:11:25 (UTC)
Goto Top
Sry bissl in den tasten verirrt. habs nun korrigiert!
Member: falscher-sperrstatus
falscher-sperrstatus Feb 25, 2018 at 17:56:46 (UTC)
Goto Top
Abfrage auf Werte und diese nimmst du als Basis für das Setzen von CSS Tags
Member: TheAlex
TheAlex Feb 25, 2018 updated at 18:18:43 (UTC)
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>";  
				

			
			
		
		
	}
Member: Arano
Arano Feb 26, 2018 at 09:51:31 (UTC)
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