SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.04.2010, 18:16:39
Bloodytoast Bloodytoast ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 36
Beiträge: 6
Anfängerfrage zu Mysql (Beziehungen)

Hi@all erstmal :-)

Also ich soll für meinen arbeitgeber ein elektronisches mitarbeiter informationssystem programmieren und stehe gerade ein wenig auf dem schlauch was meine datenbank angeht.

Ich habe zur Zeit folgende Tabellen in meiner Datenbank:

Personalmanagement --> Personalnummer (PK), Name, Vorname, Organisationseinheit

Gebäudemanagement --> Raumnummer (PK), Personalnummer (FK)

Telekommunikationstechnik --> Telekommunikationstechnik_ID (PK), Personalnummer (FK), Telefonnummer, Faxnummer

Ittechnik --> User_ID (PK), Personalnummer (FK), eMail

So jetzt die frage wo ich hänge. Also angenommen das Personalmanagement legt einen neuen user an wie bekomme ich dann die Personalnummer in die anderen tabellen damit zum Beispiel Raumnummer, Telefonnummer etc eindeutig einem Mitarbeiter zugeordet ist??

Über Beziehungen geht das ja bei mysql nicht wie ich jetzt schon des öfteren gelesen habe.

Muss ich also wenn das personalmanagement eine Personalnummer vergibt diese dann auch über ein INSERT in die übrigen tabellen schreiben wo dann später zum Beispiel Raumnummer, Telefonnummer eingetragen werden.

Wie kann ich diesen INSERT realisieren oder gibt es da "bessere" wege die Personalnummer in die anderen Tabellen zu schreiben.

Bin leider noch der absolute mysql anfänger und bräuchte echt ein wenig unterstützung da ich bislang nur mit access gearbeiten habe und man dort ja mit beziehungen arbeiten konnte.

Vielen vielen herzlichen Dank schonmal im Vorraus!!
Mit Zitat antworten
  #2  
Alt 02.04.2010, 19:00:33
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: Anfängerfrage zu Mysql (Beziehungen)

Nehmen wir mal an, daß eine neue/r Mitarbeiter/in vom Personalmanagment angelegt wird.

Beim Anlegen könnte theoretisch schon alles mitgegeben werden, da man zu diesem Zeitpunkt schon weiß wo er/sie arbeiten soll.
Beim INSERT wird vermutlich erst die Personalnummer als AUTO_INCREMENT vergeben. Diese kannst du dir zurück geben lassen und die anderen INSERT auf die restlichen Tabellen auslösen.

EMAIL: Hängt etwas von der internen Vergabe der Emailadressen ab.
vrname.nachname@firma.de funktioniert nur solange bis jemand den gleichen Namen hat. Also wäre hier die beste Lösung diese bei der Vergabe der USER-ID mit einzutragen.

Somit musst du nur den Mitarbeiter nachträglich bearbeiten lassen, wenn Daten nicht von Anfang an zur Verfügung stehen.
Mit einem SELECT holst du dir die Daten des Mitarbeiter, der berabeitet werden soll. Bei mehrfachen Ergebnissen müsstest du eine Auswahlmöglichkeit schaffen. Und dann können die Daten nachgetragen werden.

PS: Bei Telekommunikation und IT kannst du die ID weglassen, da ja die Personalnummer schon eindeutig ist und als ID reichen würde.
Mit Zitat antworten
  #3  
Alt 02.04.2010, 21:37:23
Bloodytoast Bloodytoast ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 36
Beiträge: 6
AW: Anfängerfrage zu Mysql (Beziehungen)

Vielen Dank schonmal für die schnelle antwort.

Also beim anlegen eines neuen Mitarbeiters durch das Personalmanagement ist leider noch nicht klar wo dieser neue mitarbeiter arbeiten wird.

Momentan sieht es bei mir in der firma so aus, dass das Personalmanagement den neuen Mitarbeiter anlegt (halt mit Personalnummer, Name, Vorname und der zugehörigen Fachabteilung). Danach wird nacheinander zuerst das Gebäudemanagement (wegen Raumnummer), die Telekommunikationstechnik (wegen Telefon & Faxnummer) und die IT (wegen Email) kontaktiert.

Meine Aufgabe besteht nun darin, eine Intranet Website anzulegen, wo diese schritte zentral geschehen. Sprich ich habe atm 4 User (Personalmanagement, Gebäudemanagement, Kommunikationstechnik, IT). Diese 4 können sich auf der Startseite einloggen und werden dann je nach dem auf 4 verschieden Seiten weitergeleitet. Dort kann dann z.B. das Personalmanagement einen neuen Mitarbeiter anlegen. Sobald das Personalmanagemenet dann diesen neuen Mitarbeiter anlegt, wird eine eMail an das Gebäudemanagement generiert in dem dann steht "Bitte Raumnummer für Mitarbeiter XXXXXX" vergeben. Das Gebäudemanagement loggt sich dann auf der Startseite unter seiner Kennung ein und bekommt eine Tabelle generiert, in der dann dieser neue bzw die neuen Mitarbeiter (mit Personalnummer,Name, Vorname) stehen und die Raumnummer vergeben kann. Nach eintragen der Raumnummer wird dann wiederrum eine eMail an die Kommunikationstechnik generiert etc....

Ich hoffe nun ist klarer worin mein Problem besteht.

Also Personalmanagement legt den neuen Mitarbeiter mit der Personalnummer 12345 an.
Anhand dieser Personalnummer kann ich dann dem neuen Mitarbeiter in den jeweiligen Tabellen Raumnummer,Telefonnummer etc zuordnen.

Später soll es dann möglich sein diese Informationen in einer Suchmaske abzufragen. Sprich ich suche Mitarbeiter XY und bekomme dann alle Informationen über diese Person angezeigt.

Ich hoffe ihr könnt mir nun sagen wie ich die ganze sache am besten angehe :-)

Vielen Vielen herzlichen dank vür eure hilfe... bin in mysql leider nicht so bewandert und bräuchte echt etwas hilfe :-)
Mit Zitat antworten
  #4  
Alt 03.04.2010, 10:58:33
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: Anfängerfrage zu Mysql (Beziehungen)

Ok, also mit dem was du jetzt beschreibst kannst du zwei Wege gehen.

1. Weg
Beim Anlegen des Mitarbeiter speicherst du in die restlichen DB Tabellen auch gleich die Personalnummer. Alle weiteren Abteilungen könnten dann eine Übersicht erhalten in der alle Mitarbeiter ohne Tel.-Nr. oder ohne Email aufgelistet werden, da diese ja die einzigen sind, die in dieser Spalte keinen Wert beinhalten. (IS NULL)

2. Weg
Da ja jeder weiteren Stelle bekannt ist welchen Mitarbeiter sie bearbeiten sollen (Pers.-Nr) rufen diese Ihre Seite auf und nutzen die Suche anhand der Pers.-Nr.. Diese ist eindeutig und kann nur ein Ergebnis bringen.
Jetzt muss di entsprechende Stelle nur noch ihren Teil nachtragen, der dan in die entsprechende Tabelle geschrieben wird. Die Pers.-Nr. ist ja an jeder Stelle bekannt.
Mit Zitat antworten
  #5  
Alt 03.04.2010, 13:07:16
Bloodytoast Bloodytoast ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 36
Beiträge: 6
AW: Anfängerfrage zu Mysql (Beziehungen)

ok das hört sich doch schonmal gut an :-)

Wenn also das Personalmanagement einen neuen Mitarbeiter anlegt, wird also auch in die anderen tabellen die Personalnummer eingetragen.

Wie kann ich solch einen Insert am besten realisieren? Sprich wie kann ich bei einem Insert den Wert Personalnummer in alle 3 anderen tabellen reinschreiben??

Vielen Dank nochmal für die hilfe :-)
Mit Zitat antworten
  #6  
Alt 03.04.2010, 16:41:17
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Anfängerfrage zu Mysql (Beziehungen)

Zitat:
Zitat von Bloodytoast Beitrag anzeigen
[...]
Wie kann ich solch einen Insert am besten realisieren? Sprich wie kann ich bei einem Insert den Wert Personalnummer in alle 3 anderen tabellen reinschreiben??

Vielen Dank nochmal für die hilfe :-)
Ein möglicher (Gedanken-)Ansatz wäre:
PHP-Code:
$sql[] = "INSERT INTO Personalmanagement ...";
$sql[] = "INSERT INTO Gebäudemanagement ...";
$sql[] = "INSERT INTO Telekommunikationstechnik ...";
$sql[] = "INSERT INTO Ittechnik  ...";

for(...)
{
  
mysql_querry($§sql[i]);

** ungetestet !! **

Noch die INSERT + for-Schleife vervollständigen und die Fehlerbehandlung mit einbauen.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7  
Alt 05.04.2010, 20:39:29
Bloodytoast Bloodytoast ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 36
Beiträge: 6
AW: Anfängerfrage zu Mysql (Beziehungen)

Soooo da bin ich wider :-)

bin leider durch den ganzen osterstress nicht an den rechner gekommen ;-)

Also das eintragen in mehere tabellen mit hilfe des arrays und der for schleife hat ohne probleme funktioniert!! Also vielen dank schonmal an dieser stelle ;-) Von seölbst wäre ich da glaub ich erst in nen paar wochen drauf gekommen :-D

Jetzt bin ich mir nur noch bei einer sache unsicher und das wären die tabellen an sich. Sprich in welcher tabelle brauche ich welche attribute und welche davon werden primär schlüssel. Bin da grad noch ein wenig verwirrt :-/

Oben hab ich ja schon geschrieben, wie zurzeit meine tabellen aussehen, was muss ich dort noch verändern damit die ganze sache "richtig" wird :-)

Vielen dank schonmal im vorraus :-)

lg
Mit Zitat antworten
  #8  
Alt 06.04.2010, 14:48:31
Bloodytoast Bloodytoast ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 36
Beiträge: 6
AW: Anfängerfrage zu Mysql (Beziehungen)

So also ich hab mich jetzt den ganz morgen/mittag mit meinen problemchen herumgeschlagen und bin gerade am rande eines nervenzusammenbruchs :-/

So gut wie nicht funktioniert wie es soll :-(

Daher jetzt nochmal für dumme da mir sonst gleich der Kopfplatzt:

Ich habe zurzeit folgende tabellen und attribute:

Personalmanagement: Personalnummer (PK), Name, Vorname, Organisationseinheit
Gebäudemanagement: Personalnummer (PK), Raumnummer
Telekommunikationstechnik: Personalnummer (PK), Telefonnummer, Faxnummer
Ittechnik: Personalnummer (PK), eMail

Das kann ja eigentlich schonmal nicht stimmen, weil ich ja 4 mal die Personalnummer als Primärschlüssel vergeben habe. Wie löse ich das am besten anderster???

In diesem zusammenhang noch die Frage was der Befehl "Reference" bei Create Tabel bewirkt?

Die Seite des Personalmanagements habe ich gott sei dank schon fertig gestellt. Sprich ich kann einen neuen Mitarbeiter anlegen und die Personalnummer wird in die übrigen Tabellen eingetragen (also in Gebäudemanagement, Telekommunikationstechnik, Ittechnik).

Jetzt würde ich mich gerne als z.B. Gebäudemanagement einloggen und eine Übersicht (Tabelle) erhalten in der alle Mitarbeiter mit Personalnummer, Vorname, Nachname angezeigt werden bei denen noch keine Raumnummer vergeben wurde. In dieser Tabelle soll es dann pro user eine Textbox geben in der ich die Raumnummer eintragen kann.

Das auslesen von Personalnummer, Vorname, Nachname funktioniert schon, nur schaffe ich es nicht die Raumnummer an der "richtigen" stelle also wo personalmanagement.personalnummer == gebäudemanagement.personalnummer ist einzutragen!

Wenn ihr mir dabei helfen koenntet wäre mir schon extremst geholfen!!!

Leider muss ich dieses Projekt bis ende des Monats fertig haben, daher drückt ein wenig die zeit und ich habe keine zeit mir das alles selbst beizuspringen.

Im vorraus schonmal vielen vielen herzlichen Dank :-)

lg
Mit Zitat antworten
  #9  
Alt 06.04.2010, 15:24:26
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: Anfängerfrage zu Mysql (Beziehungen)

Du hast 4 Tabellen. Jede Tabelle hat eine PK als Primärschlüssel. Was soll daran falsch sein solange PK eindeutig ist?

Wegen deiner Abfrage für die Gebäudeverwaltung etc. würden dir JOINS behilflich sein.

Zitat:
Leider muss ich dieses Projekt bis ende des Monats fertig haben, daher drückt ein wenig die zeit und ich habe keine zeit mir das alles selbst beizuspringen.
Wie soll dir hier jemand helfen, wenn all das was du bislang geschrieben hast unter höchster Geheimhaltung liegt?
Bislang ist doch alles nur rein rethorisch besprochen worden ohne konkreten Code.
Mit Zitat antworten
  #10  
Alt 06.04.2010, 15:59:00
Bloodytoast Bloodytoast ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 36
Beiträge: 6
AW: Anfängerfrage zu Mysql (Beziehungen)

OK hast ja recht :-)

Also wie gesagt den Programmcode für das Personalmanagement habe ich bereits. Jetzt hänge ich am Code für das Gebäudemanagement. Das auslesen aus der Datenbank Personalmanagement funktioniert bereits. Nur halt das eintragen der Raumnummer an der richtigen stellen noch nicht. So wie ich mir das bei Joins angeschaut habe brauche ich doch einen left join, richtig? oder doch einen Full Join.

Habt bitte nachsicht, hatte zwar sql an der schule aber mehr als insert, select,update und delete haben wa nicht gemacht.

PHP-Code:
<?php
$verbindung 
mysql_connect('localhost','root','') or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("emis2") or die ("Datenbank konnte nicht ausgewählt werden");

$auslesen "select * from pm";

$test mysql_query ($auslesen);

$anzahl mysql_num_rows($test);

echo 
"<form action = 'admin_gebaeude.php' method = 'POST'>";
echo 
"<h4 align = 'center'><u>Mitarbeiter hinzufügen</u></h4>";
echo 
"<table border = '2' align = 'center' width = '90%'>";
echo 
"<tr>";
echo 
"<td align = 'center'><b><u>Personalnummer</td>";
echo 
"<td align = 'center'><b><u>Name</u></b></td>";
echo 
"<td align = 'center'><b><u>Vorname</u></b></td>";
echo 
"<td align = 'center'><b><u>Raumnummer</u></b></td>";
echo 
"</tr>";
while ( 
$row mysql_fetch_row $test ))
{
echo 
"<tr>";
echo 
"<td align = 'center'>$row[0]</td>";
echo 
"<td align = 'center'>$row[1]</td>";
echo 
"<td align = 'center'>$row[2]</td>";
echo 
"<td align = 'center'><input type = 'text' name = 'Raumnummer'></td>";
echo 
"</tr>";
}
echo 
"</table>";
echo 
"<br>";
echo 
"<p align = 'center'><input type = 'submit' value = 'Mitarbeiter eintragen'></p>";
echo 
"</form>";
gruß
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Brauche Hilfe Partygirl MySQLi/PDO/(MySQL) 10 01.03.2011 08:18:11
Anfängerfrage MySQl longisland MySQLi/PDO/(MySQL) 1 16.09.2008 20:44:56
Beziehungen bei MySql? mc220487 MySQLi/PDO/(MySQL) 5 14.07.2008 10:22:26
MySQL Page Script. Problem. dtone MySQLi/PDO/(MySQL) 8 15.10.2006 14:58:06
Anfängerfrage - MySQL Query Moses PHP für Fortgeschrittene und Experten 3 15.10.2002 09:12:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:12:35 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt