getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 05.10.2004, 17:31   #1
TP-Member
 
Registriert seit: Nov 2003
blaah macht alles soweit korrekt

PHP-Stundenplan


Hi,
ich möchte eine Art Stundenplan erstellen. Es sollen sich Leute mit Zeitangaben darin eintragen können. Darunter versteh ich als Beispiel:

05.10.2004
-"Member1" "12:00-14:00"
-"Member2" "03:00-06:00"
-"Member3" "16:00-18:00"

Nun stellt sich mir die Frage, welche Datenbankstruktur ich dazu am besten verwende und wie ich dafür sorgen kann, dass ein Member der sich eintragen möchte nur die Zeiten zur Auswahl hat, die noch nicht "besetzt" sind.
Kann mir jemand dabei helfen?
blaah ist offline   Mit Zitat antworten


Alt 06.10.2004, 11:37   #2
TP-Insider
 
Benutzerbild von loki
 
Registriert seit: May 2003
Ort: Aachen
loki ist auf einem guten Weg
ID userid zeit

so würde ich die DB gestallten..
Und dann mit timestamps oder mit der date sache, die mysql als datentypen unterstützt..

Bei Timestamps ist das vergleichen der Zeiten einfacher, aber du musst erstmal aus einem eingegeben Datum eine timestamp machen.
Beim anderen hast du den Vorteil, dass du nix umwandeln brauchst, da weiss ich aber nicht genau, wie das mit den Vergleichsfunktionen aussieht.
Ob man das erst alles mühsam auseinanderfummeln muss, oder ob das direkt auch unterstützt wird..
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein

loki ist offline   Mit Zitat antworten
Alt 06.10.2004, 12:48   #3
TP-Specialist
 
Benutzerbild von the0bone
 
Registriert seit: Mar 2001
Ort: NDS
the0bone ist auf einem guten Weg
id userid taskid datum startzeit endzeit

würde ich machen. Zumindest nach deinen Aussagen, da man so schnell und einfach nach datum sortieren kann.
Beim Anzeigen eines Tages würde ich dann alle Zeiten eines Datums lesen und den Bereich als gesperrt anzeigen lassen. Bei den Bereichen wo die userid auch der userid des aktuellen Users entspricht kann man dann dem User über die taskid auch sein Stundeninhalt anzeigen lassen. (vergleichbar mit dem Outlookterminplaner!)
__________________
the0bone

Wissen ist Macht, nichts Wissen macht nichts!

Geändert von the0bone (06.10.2004 um 13:36 Uhr).
the0bone ist offline   Mit Zitat antworten
Alt 06.10.2004, 13:28   #4
TP-Member
 
Registriert seit: Nov 2003
blaah macht alles soweit korrekt
Hi!
Danke schonmal für die guten Tips!
Ich habe nun als Feldtyp für das Datum "Date" (2004-10-06) genommen, da Timestamp ja 14-Stellig ist, und ich dann mit PHP etwas in der Art $datum = date('Ymd000000') erstellen müßte - was ja eigentlich unnötig wäre.

Das nächste Problem ist jetzt, dass es sich ja nicht nur um einen Zeitpunkt, sondern um Zeitspannen handelt. Also z.B. 14.00 - 16.00 Uhr.
Ist es sinnvoll, dafür zwei Felder zu erstellen, also "von" und "bis" oder sollte ich das in ein Feld, getrennt durch ein "-" schreiben und später exploden?

Wenn die Leute sich später eintragen, sollen sie aus z.B. einem <select>-Feld die Uhrzeit auswählen können (01-24Uhr). Wie kann ich denn nun PHP beibringen, dass nicht nur die "von"-Stunden gesperrt sind, sondern auch die Stunden, die zwischen "von" und "bis" liegen?
Sonst würde er ja nur die Anfangszeit markieren.

Geändert von blaah (06.10.2004 um 13:37 Uhr).
blaah ist offline   Mit Zitat antworten
Alt 06.10.2004, 13:49   #5
TP-Specialist
 
Benutzerbild von the0bone
 
Registriert seit: Mar 2001
Ort: NDS
the0bone ist auf einem guten Weg
Hast recht, brauchst start und end zeit!
Aber wo ist das Problem mit dem Check?

Du musst eine Schleife machen und dieses mit jedem Datenbankeintrag zu diesem Tag prüfen
PHP-Code:
if($zuprüfendestartzeit<$startzeitausDB ||  $zuprüfendestartzeit>$endzeitausDB){
   
//startzeit ist ok
}
if(
$zuprüfendeendzeit<$startzeitausDB ||  $zuprüfendeendzeit>>$endzeitausDB){
   
//endzeit ist ok
}
if(
$startzeitausDB<$zuprüfendestartzeit && $endzeitausDB<$zuprüfendeendzeit){
   
//Datenbanktermin liegt zwischen den neuen Start und Endpunkt

Hoffe es ist richtig, habs jetzt nicht geprüft!
Aber die technik sollte sein:
- Prüfen ob der neue Starttermin nicht im Datenbankzeitraum liegt
- Prüfen ob der neue Endtermin nicht im Datenbankzeitraum liegt
- Prüfen ob nicht der gesamte Datenbankzeitraum im neuen Zeitraum liegt
__________________
the0bone

Wissen ist Macht, nichts Wissen macht nichts!

Geändert von the0bone (06.10.2004 um 16:16 Uhr).
the0bone ist offline   Mit Zitat antworten
Alt 06.10.2004, 14:02   #6
TP-Insider
 
Benutzerbild von loki
 
Registriert seit: May 2003
Ort: Aachen
loki ist auf einem guten Weg
Alternativ ginge noch die Startzeit und die Dauer einzutragen, aber ich weiss nicht, was von der Verwaltung und der Weiterverarbeitung sinnvoller ist..
Und vor allem, was weniger Aufwand beim Coden macht,..
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein

loki ist offline   Mit Zitat antworten
Alt 06.10.2004, 14:07   #7
TP-Member
 
Registriert seit: Nov 2003
blaah macht alles soweit korrekt
Hoi!
Den Operator >> kenn ich nicht, was bewirkt der?

Habe mir eben auf die Schnelle etwas gebastelt:
HTML-Code:
$datum = $jahr.'-'.$monat.'-'.$tag;

Die For-Schleife erstellt die Stunden (17-24Uhr)
for($i=16;$i<=24;$i++){
	$reserved = mysql_num_rows(mysql_query("SELECT id FROM station WHERE von = '$i.00' AND datum = '$datum'"));
	if($reserved > 0){
		$playtime = mysql_fetch_array(mysql_query("SELECT von, bis FROM station WHERE von = '$i.00'"));
		$playtime = $playtime[1]-$playtime[0]-1;
		#$stunden .= '<option style="background-color:#dddddd;" value="'.$i.'">'.$i.'</option>';
		$i+=$playtime;
	}else{
		$stunden .= '<option value="'.$i.'">'.$i.'</option>';
	}
}
das scheint mir allerdings stark umständlich und resourcen-fressend, da 24 Abfragen durchgeführt werden müßen. *gg*

Geändert von blaah (06.10.2004 um 14:10 Uhr).
blaah ist offline   Mit Zitat antworten
Alt 06.10.2004, 16:16   #8
TP-Specialist
 
Benutzerbild von the0bone
 
Registriert seit: Mar 2001
Ort: NDS
the0bone ist auf einem guten Weg
<< = < jajajaja :-D
__________________
the0bone

Wissen ist Macht, nichts Wissen macht nichts!
the0bone ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
PHP-Stundenplan PHP-Stundenplan
« Weiterleitung auf HTML Seite wenn in Datenbank kein Eintrag vorhanden ist | [php]Text kürzen und per "mehr..." wieder lang machen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP 5 RC1 sowie PHP 4.3.5 RC4 veröffentlicht PortalNews Traum-News 0 19.03.2004 16:00
Wie funktioniert PHP, was ist Apache Nice Einfach so ... 1 24.09.2002 01:01
Php 4.1.0 Rc1 Doc.Silizium Traum-Dynamik 0 19.10.2001 18:22
PHP 4.0.7 RC2 freigegeben Flixxtoras Traum-Dynamik 3 11.09.2001 21:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:14 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67