Abteilung->Mitarbeiter

nchristoph

Erfahrenes Mitglied
Hallo

Ich habe folgendes Problem:

Und zwar muss ich für meine Firma die Interne Seite neu machen und will das ganze mit PHP/MySql machen.

Ich hab bis auf eine Sache alles fertig.

Ich soll für jede Abteilung und den zugehörigen mitarbeiten ein eigenes feld machen.

Also z.b. Abteilung 1 : Mitarbeiter x, y, z
Abteilung 2: Mitarbeiter a, b, c

usw.

Ich kann schon die einzelnen Abteilungen und Mitarbeiter erstellen, allerdings schaff ichs nicht das die Mitarbeiter in der einzelnen Abteilung angezeigt werden.

Kann mir eventuell wer einen Denkanstoss geben?

mfg
 
Zuletzt bearbeitet:
Ohne zu wissen, wie du genau du die Ausgaben bewerkstelligst, bzw. wo du welche Daten speicherst, können wir dir da nicht helfen. :)
 
Kann mir eventuell wer einen Denkanstoss geben?

Ok hier ein parr Denkanstösse.

.)Normalisieren
.)Er Diagram
.)Weitere Diagrame siehe UML


Danach sollte der Lösung weg gefunden sein. Und man kann sich ans Programmieren machen.

Mfg Splasch
 
Ok

Ich speichere die ganze schose in 2 tabellen,
1 Tabelle Abteilungen : Nummer der abteilung, Name der Abteilung
1 Tabelle mitarbeiter: Bild, Name, Email,Kurzwahl,Geburtstag, Abteilung

Ich stehe allerdings auf dem schlauch wie ich die Abfrage machen muss damit beide zusammengefasst werden.

das ganze soll ungefähr so aussehen

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

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

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

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


usw.

und das für alle Abteilungen.

Ist es jetzt leichter verständlich?

Die einzelnen Abfragen sind kein problem und ich kann sie auch jeweils anzeigen lassen

also Abteilungstabelle und die Mitarbeitertabelle aba so wie oben aufgezeichnet eben nicht.
 
Also wen du eine 1/n Beziehug hast dann so

PHP:
SELECT Bild, Name, Email,Kurzwahl,Geburtstag FROM
       Abteilungen,mitarbeiter WHERE Abteilung=Nummer der abteilung

Mfg Splasch
 
Zum post von splasch:
Der Zugriff auf die Tabelle "Abteilungen" ist überflüssig, da keinerlei Daten daraus bezogen oder verglichen werden.

Was mich zu der Frage bringt:
Macht das einen Performanceunterschied, eine Tabele mit aufzuführen, sie jedoch nicht zu benutzen?
Wenn, dann nur einen minimalen, das ist mir klar, aber interessant wäre es schon, ob MySQL so schlau ist und sie ignoriert. :)


Back to topic:
Ich würde einfach zwei Queries machen.
Einen um die Abteilung und deren Namen auszulesen:
Code:
SELECT id, name FROM abteilungen WHERE id=$abteilungsnummer
Und einen Weiteren, um die Mitarbeiter auszulesen:
Code:
SELECT Bild, Name, Email,Kurzwahl,Geburtstag FROM mitarbeiter WHERE abteilung=$abteilungsnummer
Meiner Meinung nach kann man damit jedenfalls leichter weiter arbeiten, als wenn man alles in einem Array stehen hat.
 
Hi,

Back to topic:
Ich würde einfach zwei Queries machen.
[...]
Und einen Weiteren, um die Mitarbeiter auszulesen:
Code:
SELECT Bild, Name, Email,Kurzwahl,Geburtstag FROM mitarbeiter WHERE abteilung=$abteilungsnummer

den weiteren Query machst Du dann aber innerhalb einer Schleife für jede Abteilung einzeln...

Das löst man doch klassischerweise über einen JOIN

Code:
SELECT abteilungen.Name AS aName, 
   Bild, 
   mitarbeiter.Name AS mName, 
   Email,
   Kurzwahl,
   Geburtstag 
   FROM mitarbeiter JOIN abteilungen
      ON abteilungen.id = mitarbeiter.abteilung
   ORDER BY abteilungen.id ASC,
            mitarbeiter.Name ASC        (zum Beispiel)

und implementiert einen einfachen Gruppenwechsel über aName in der Schleife.
Kostet nur eine einzige DB-Abfrage. ;)

LG
 
Lach, und schon bestätigt sich wieder das Sprichwort mit Rom und den vielen Wegen dahin. :)

Ich glaube nun ist der Threadstarter vollkommen verwirrt. ;)
 
Danke erstmal für die vielen antworten.

Vollkommen verwirrt ist nicht ganz richtig aber ein bissel schon:P

Der Tip mit JOIN hats gebracht

Danke kuddeldaddeldu.

Jetzt funktioniert der Sch.... endlich.
 
Ok so jetzt funktioniert der Kram wieder nicht.

Ich kriege ausser der ID keine Daten aus der Dbase.

Hier mal mein Code

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());
	
	echo "<table width=\"100%\" border=\"0\">";
	echo "  <tr>";


    if(mysql_num_rows($result)) { // gucken ob was im Query drinsteckt
		while($row = mysql_fetch_assoc($result)) {
		    echo" <tr>";
    		echo" <td>".$row['aName']."</td>";  
			echo "<td width=\"48\"><img src=".$row['bild']." /></td>";
			echo "<td width=\"48\">".$row['mName']."</td>";
			echo "<td width=\"48\">".$row['telefonnr']."</td>";
			echo "<td width=\"48\">".$row['kurzwahl']."</td>";
			echo "<td width=\"48\">".$row['email']."</td>";
    		echo "<td width=\"82\">".$row['datum']."</td>";
			echo "  </tr>";
			echo "</tr>";
			}
	}	
	else {
			echo "Kein Mitarbeiter eingetragen\n";
		}		   

echo "</table>";
?>

Ich weis ist etwas unübersichtlich aber gestern hat er noch funktioniert, heute nach dem neustart des servers nicht mehr, auch ein nochmaliger start des Servers hat nichts gebracht.

$result habe ich schon mit echo ausgeben lassen und da wirft er mir nur die id nummer aus.
 
Zurück