Klassenpage mit versch. Gruppen

ne0x

Grünschnabel
Hallo,

ja ich weis, der Titel ist recht komisch, ich werde es aber gleich erzählen, worum es geht!
Vorneweg: Es läuft natürlich mit Datenbank.. xD mySQL

Ich plane für die gesamte Jahrgangsstufe eine Klassenhomepage zu erstellen! Das sind 4 Klassen, die in Teilbereichen miteinander auf der Page verknüpft werden sollen!

Ich möchte in der Page oben ein Loginfeld haben, das dann wenn man sich eingeloggt hat, mit einem "Postfach" ausgetauscht werden soll, wo dann z.b. steht "Sie haben 0 neue Nachricht(en) (0 ungelesene, 182 Nachricht(en) insgesamt)."
Dann möchte ich rechts ein Menü haben, das anfangs (also uneingeloggt) nur die Infos über die versch. Klassen zeigt, ohne die Namen der Mitschüler!
loggt man sich nun ein, soll in dem Menü weitere Links zu finden sein!

ich möchte in die Seite folgende Sachen einbauen:
Vertretungsplan
Lehrersprüche
Klassenliste
Ausfrageliste
LK-GK-Wahlomat

Nun sollte aber z.B. beim Vertretungsplan nur die Seite aufgerufen werden, in der man sich befindet!
Ich würde also die Datenbank so aufziehen, das ich dann eine Tabelle habe, die "User" genannt wird und wo alle 100 Leute gespeichert sind! Eine Spalte ist dann "Klasse" und wenn nun zum Beispiel ein Schüler in die A-Klasse geht, wird das dort eingetragen und dann wenn er den Vertretungsplan aufruft, sollte nur der Vertretungsplan der A-Klasse sichtbar sein!
Gleichzeitig sollte jeder der A-Klasse den Vertretungsplan editieren können (Lehrer hinzufügen usw.) und der Vertetungsplan sollte auch die vorherigen Wochen anzeigen können (also ganz normal mit ner Blätter-funktion) Die aus der B-Klasse das selbe halt in der B-Klasse....
hier das Problem: die Klassen werden untereinander verbunden, und da sollte dann z.B. bei Latein (das die A und B Klasse gemeinsam haben) die Vertetung bei beiden eingetragen werden


Dann die Lehrersprüche: Jeder sollte Sprüche hinzufügen können (egal welche Klasse) und die Sprüche sollen dann auswählbar sein: Entweder nach Lehrer geordnet oder nach zufallsprinzip (kann sich jeder User selber aussuchen)

Die Zufallsprüche mach ich mit
SELECT `text` FROM `sprueche` ORDER BY RAND() LIMIT 1

Dann in der Klassenliste sollten alle namen sichtbar sein (also hab ich dann 4 Kategoriern) und wenn ich dann die Klass ausgewählt habe, sollen die Namen aufgelistet werden, und wenn ich nun auf den Namen klicke, soll das Profil des jeweiligen Users angezeigt werden, mit den Daten, die er im Kontrollzentrum bearbeiten kann

Die Ausfrageliste: Wieder wie beim Vertretungsplan, nur das hier das Problem ist, die Klassen werden untereinander verbunden, und da sollte dann z.B. bei Latein (das die A und B Klasse gemeinsam haben, die Latein-Schüler gemeinsam angezeigt werden sollen) Hier soll jeder User bei dem Fach ein häcken reinmachen können, wenn er ausgefragt wurde, und danach wird das Datum in eine Liste eingetragen, damit die anderen Schauen können, wann die Liste durch ist und wieder von vorne ausgefragt wird...

Der LK-GK-Wahlomat sollte nur ganz einfach sein, jeder seine gewünschten LKs und GKs eintragen können (im Kontrollzentrum) und auf der Seite sollte stehen, wie viele z.b. den LK Physik belegen...

So, jetzt hab ichs mal erklärt, jetzt das wo ich Tutoriaals brauche xD

Habt ihr Tutorials
  • wie ich eben das mit dem Vertretungsplan hinkriege, das nur die angezeigt werden, welche diese Klasse haben
  • wie ich es mache, das jeder User etwas hinzufügen kann, und der username mit gespeichert wurde, und jeder den Eintrag wieder editieren kann
  • wie ich die Wochen-Blätterfunktion erstellen kann, das das wie ein echter Kalender aussieht
  • die Lehrersprüche jeder hinzufügen kann (das in einer Dropdownliste der Lehrer ausgewählt wird und danach auch auf den Klick "Lehrersprüche" die Lehrer aufgelistet werden, und ich die Sprüche sio nach den Lehrer ordnen kann
  • die Klassenliste gespaltet auf die 4 Klassen ist und das bei den Klick auf die jeweilige Klasse die gesamten Namen aus der Klasse aufgelistet werden und mit klick auf den Namen "Max Mustermann" nun das Profil erscheint von dem Max, und der Max die Daten alle im kontrollzentrum ändenr kann
  • in der Ausfragenliste das nach den jeweiligen Klassen ordnen kann und jeder eintragen kann, wann er ausgefragt wurde (mit nur einem Klick) und dann das Datum gespeichert wurde
  • die Klassenliste z.B. da die Hälfte von Klasse A und die gesamte Klasse B Latein haben, ihre eigene Liste haben, jedoch die andere Hälft der Klasse A und die Klasse C ihre eigene Liste haben
  • das selbe mit den versch. Klassen auch bei dem Vertrungsplan der Fall ist, wo man wenn ich Latein auswähle nur die Schüler sehen, die Latein bei derjenigen Lehrerin haben - die Laterinschüler die bei dem anderen Lehrer haben, sehen dies nicht
  • das bei dem LK-GK-Wahlomat die eingegeben Daten ausgewählt werden und die Leute zusammengefasst werden, die z.b. LK Mathe haben und dann da steht: 8 Leute wählen LK mathe
  • das ich ein richtiges Rechtesystem habe...

Ich will nichts von euch geschrieben haben, sondern nur Tutorials, Codeschnippsel oder einfache Tipps/Hilfestellungen

Danke für eure Hilef,
ne0x

P.S.:Habe gerade ganz viel auf einmal geschrieben, also bitte die paar Rechtschreibfehler übersehen! Danke!
 
Zuletzt bearbeitet:
Ich pick einfach mal was raus
-->
die Lehrersprüche jeder hinzufügen kann (das in einer Dropdownliste der Lehrer ausgewählt wird und danach auch auf den Klick "Lehrersprüche" die Lehrer aufgelistet werden, und ich die Sprüche sio nach den Lehrer ordnen kann
<--

Wenn ich das richtig versteh soll jeder ein Zitat hinzufügen können. Die Zitate sollen nach Lehrer geordnert werden

Ich würde das entweder direkt über MySQL lösen und einfach per WHERE den gerade gebrauchen Lehrer auslesen

oder vorher alle lehrer in ein Array speichern wobei der Index der Lehrername darstellt

PHP:
$sql = "SELECT * FROM quotes WHERE lehrer = 'Herr/Frau xxx'";
$result = ...;
while($row = mysql_fetch_object($result)) {
     // Mit den DAten arbeiten
}

oder eben die Array variante

PHP:
$sql = "SELECT * FROM quotes";
$result = ...;
while($row = mysql_fetch_object($result)) {
     $DasArray[$row->lehrer] = $row->quote;
}

Nur ein Vorschlag. Es gibt glaub aber auch eine Funktion die sofort alles in ein Array speichert, weiß aber leider grad nich wie sie heißt oder wie sie genau funktioniert

Nächster Pick
-->
die Klassenliste z.B. da die Hälfte von Klasse A und die gesamte Klasse B Latein haben, ihre eigene Liste haben, jedoch die andere Hälft der Klasse A und die Klasse C ihre eigene Liste haben
<--

Wenn ich das richtig verstehe ist man entweder lateiner oder nicht. Somit könnte man den Nutzern einfach in der Datenbank einen Eintrag zuteil werden lassen in dem Festgehalten wird ob man Lateiner ist oder nicht. Die Anzeige der Liste erfolgt dann je nachdem wie der Eintrag aussieht

Selbiges wieder über ein Array lösbar, man speichert alle Lateiner in ein Array und fragt ab ob der der gerade die Liste aufruft gleichzeitig auch in dem gespeicherten Array vorhanden ist, je nachdem wird dann wieder die Liste angezeigt.


Gibt natürlich noch mehr Lösungsmöglichkeiten, sind nur mal 2 Inputs =)
 
Ich Pick dann mal mit ;D
Zum Rechtesystem:
Rechtesystem ein umfangreiches ist z.B. das Binäres Rechtesystem hier im Forum.

Anderer Ansatz wäre das du mit Gruppenzugehörigkeiten arbeitest und den Gruppen unterschiedliche Rechte in den Verschiedenen Modulen gibts z.b. Gruppe 1 darf was hinzufügen und Gruppe 2 nicht (geht z.B. mit einer If-Anweisung)

Zum LK's:
Das kannst du auch mit Gruppenzugehörigkeiten machen: z.B. in der Membertabelle eine Spalte erstellen mit den Namen grp und darin die jeweilige LK eintragen lassen.
 
danke erstmal...
das mit dem Rechtesystem ist ja recht kompliziert.... gehts auch einfacher?
Ich will ja eigentlich nur das, wenn z.B. den Vertretungsplan überprüft wird, in welcher Klasse man ist, und das z.B. C-Klasser dann auch nur den Vertretunsgplan von der C-Klasse bearbeiten können...
 
Wenn es einfach sein soll würde ich es mit Gruppen machen z.B. so
PHP:
If($grp="KLASSEC")
  {
   //Darf ändern
  }
 else
   {
    echo "Zugriff verweigert";
   }

oder

PHP:
$result = mysql_query("SELECT * FROM member WHERE uname='".$username."' and klasse='".$klasse."'"); 
$num_rows = mysql_num_rows($result);
if($num_rows)
  {
   //Darf ändern
  }
 else
   {
    echo "Zugriff verweigert";
   }
 
Ein Problem besteht wenn in der Klasse selber dann auch noch die Leistungskurse, Sprache, sonstige Fächer, Unterricht oder sonstige DAten noch verarbeitet werden sollen die NICHT Klassengeteilt sind. Drum hab ich einen extraeintrag vorgeschlagen...

Gruppen sind eine geschickte Idee ;) darauf ist auch mein Beitrag zu den Lateinern rausgelaufen, ich wollt nur dass er sich dazu noch ein wenig gedanken macht und ein wenig damit spielt, vorallem eben wenn man dann mehr verschiedene Daten hat =)

Die Frage wäre immer noch wie kann man all das in Möglichst wenigen Daten zusammenfassen.

- LK's
- Sprachwahl
- Vertretungsplan
- Klasse
- Unterricht mit welcher anderen Klasse zusammen

Wird interessant ;).

Am ungeschicktesten wäre es wohl wenn du für alle Daten eine extra Spalte in deiner Tabelle machen würdest :rolleyes:

Ich würde fast zu einem Array raten in dem die Daten gespeichert sind und über eine Klasse(php) jeweils den Angemeldeten User überprüfen und somit dann indirekt die Rechte setzen (man siehe den Post vor mir)
 
Das was mir total weiterhelfen könnte, ist, wie ich die Datenbank-tabelle am einfachsten aufbaue.... damit ich möglichst viel aufeinmal hab, und nicht 1000 tabellen/spalten
 
Zurück