Abteilung->Mitarbeiter

Hallo

Ich hab den Fehler gefunden: aus irgendeinem grund war meine DB nach dem Serverneustart leer.

Jetzt funktionierts wieder.

Nur ein Problem ist noch aufgetaucht: Wenn ich im moment einen Datensatz erstelle und mehrere Mitarbeiter einer Abteilung zuweise, wird jeweils eine neue Tabelle generiert.

--------------------Geschäftsleitung-------------------------

---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------

---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------

---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------

So sollte es aussehen, so sieht es aus

--------------------Geschäftsleitung-------------------------

---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------

--------------------Geschäftsleitung-------------------------

---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------

--------------------Geschäftsleitung-------------------------

---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------

Wo liegt mein fehler?

mfg
 
Zuletzt bearbeitet:
Hi,

Du hast ja auch keinen Gruppenwechsel in die Schleife implementiert (jedenfalls nicht in dem Code, den Du zuletzt gepostet hast). Du gibst einfach für jeden Datensatz den Abteilungsnamen mit aus.

LG
 
OK jetzt is das eingetreten was DeLuXe gemeint hat: Ich bin vollkommen verwirrt.

Ich hab gerade bei Google nachgeschaut allerdings nur, für mich zumindest, verwirrende Treffer gefunden.

Was ist ein Gruppenwechsel und wie macht man so einen?

mfg
 
Hi,

das ist einfach eine Kontrollstruktur, die Du in Deiner Schleife ergänzen musst. Kann man sich auch eigentlich ganz logisch überlegen. Z. B.:

PHP:
$abteilung = '';
while($row = mysql_fetch_assoc($result)) {
   if($abteilung != $row['abteilung']) {
      echo "<h3>$row['abteilung']</h3>";
   }
   echo "$row['mitarbeiter']<br/>";
   ...
   $abteilung = $row['abteilung'];
}

LG
 
Zuletzt bearbeitet:
Sry das ich diesen URALTEN Tread wieder hochbringe, aber auf einmal funktioniert das Teil nicht mehr.

Gestern funktionierte er noch ohne Probleme und jetzt wirft er mir den Code in einer Wurst aus, also so:

--------------------Geschäftsleitung-------------------------
---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------
----------------------------Buchhaltung---------------------------
---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------
-- Bild | Name | Email | Kurzwahl | Geburtstag --
---------------------------------------------------------------------
PHP:
<?php

$sql="SELECT abteilung.name AS aName, 
   bild, 
   mitarbeiter.name AS mName, 
   email,
   kurzwahl,
   geburtstag,
   telefonnr,
   DATE_FORMAT(mitarbeiter.geburtstag,'%d.%m')AS datum
   FROM mitarbeiter
         JOIN abteilung      ON abteilung.id = mitarbeiter.abteilung
   ORDER BY abteilung.id ASC,
            mitarbeiter.Name ASC";
    $result = mysql_query($sql) OR die(mysql_error());
   
    $rubrik_akt="";
    if(mysql_num_rows($result)) {
		echo"<table border=\"1\" align=\"center\">";
		echo"<tr>";
        while($row = mysql_fetch_assoc($result)) {		
		    $rubrik = $row['aName']; 
			if($rubrik != $rubrik_akt) { 
				echo"<td colspan=\"6\" align=\"center\" class=\"abteilung\">".$row['aName']."</td>";
				echo"</tr>";
            }
				$rubrik_akt = $rubrik;							
				echo"<tr>";
				echo"<td class=\"bild\"><a name=".$row['mName']."></a><img src=\"./bilder/".$row['bild'].".jpg\" alt=".$row['mName']."></td>";
				echo"<td class=\"name\">".$row['mName']."</td>";
				echo"<td class=\"telnr\">".$row['telefonnr']."</td>";
				echo"<td class=\"kw\">".$row['kurzwahl']."</td>";
				echo"<td class=\"mail\"><a href=\"mailto:".$row['email']."\">".$row['email']."</td>";
				echo"<td class=\"datum\">".$row['datum']."</td>";			
				echo"</tr>";
			}			
			echo"</table>";	
			echo"<br/>";
			}    
    else {
            echo "Kein Mitarbeiter eingetragen\n";
        }           

?>

Er sollte eigentlich nach dem letzten Mitarbeitereintrag einer Abteilung den Table Tag schliessen und einen neuen mit für die nächste Abteilung erstellen. Hat er auch bis gestern getan. Das einzige was geändert wurde, ist der Server, der wurde gestern erneuert und damit auch die PHP und MYSQL versionen, was aber eigentlich nix an der Lauffähigkeit einer Seite ändern sollte oder?

Hilfe
 
Zuletzt bearbeitet:
So jetzt zerschiesst es mir das komplette Layout.

PHP:
<?php
	echo"<div class=\"test\">";

	$sql="SELECT abteilung.name AS aName, 
	   bild, 
	   mitarbeiter.name AS mName, 
	   email,
	   kurzwahl,
	   geburtstag,
	   telefonnr,
	   DATE_FORMAT(mitarbeiter.geburtstag,'%d.%m')AS datum
	   FROM mitarbeiter
			 JOIN abteilung      ON abteilung.id = mitarbeiter.abteilung
	   ORDER BY abteilung.id ASC,
				mitarbeiter.Name ASC";
		$result = mysql_query($sql) OR die(mysql_error());
			
		
			
		$rubrik_akt="";	
		if(mysql_num_rows($result)) {
			while($row = mysql_fetch_assoc($result)) {	
				
				$rubrik = $row['aName']; 
				if($rubrik != $rubrik_akt) { 				
					echo "<table style=\"width:100%;\" align=\"center\"><tr><td colspan=\"6\" align=\"center\" class=\"abteilung\">".$row['aName']."</td></tr>";
					echo"<tr><th class=\"thbild\"></th><th class=\"thname\">Name</th><th class=\"thtele\">Telefonnr.</th><th class=\"thkw\">Kurzwahl</th><th class=\"thmail\">E-Mail</th><th class=\"thgeb\">Geburtstag</th></tr>";
					}
					$rubrik_akt = $rubrik;							
					echo"<tr>";
					echo"<td class=\"tdbild\"><a name=\"".str_replace(' ','', $row['mName'])."\"></a><img src=\"./bilder/".$row['bild'].".jpg\" alt=\"".str_replace(' ','', $row['mName'])."\"/></td>";
					echo"<td class=\"tdname\">".$row['mName']."</td>";
					echo"<td class=\"tdtelnr\">".$row['telefonnr']."</td>";
					echo"<td class=\"tdkw\">".$row['kurzwahl']."</td>";
					echo"<td class=\"tdmail\"><a href=\"mailto:".$row['email']."\">".$row['email']."</a></td>";
					echo"<td class=\"tddatum\">".$row['datum']."</td>";			
					echo"</tr>";	
					
					}
					echo"</table>";
			}  			
		else {
				echo "Kein Mitarbeiter eingetragen\n";
			}           

echo"</div>";
?>
Irgendwie bin ich zu blöd oder hab falsche Denkansätze bei whileschleifen und Tabellen.

Wie kann ich das richten, das es wieder stimmt?
 
Zuletzt bearbeitet:
Zurück