TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 10.03.2005, 15:26   #1
TP-Insider
 
Benutzerbild von Rizzla
 
Registriert seit: Mar 2001
Ort: München
Rizzla macht alles soweit korrekt

Problem PHP Stundenplan


grad bin ich dabei eine Stundenplan zu coden.
Der sieht vom Layout her wie angefügte aus.

Es gibt pro Tag bis zu 3 Einträge also Montags z.B. von 8.00 - 11.00, von 11.30 - 14.00 und von 14.30 - 17.30

Nun sollten sich also für den jeweiligen Zeitraum die Zellen einfärben und verbinden, damit dort auch der jeweilige Zusatzeintrag platz findet.

Und genau da steh ich aufm Schlauch. Ich will ne möglichst resourcenschonende Abfrage aber ich bin grad vom ablauf der abfrage überfordert.

In der DB Tabelle hab ich folgende Felder

id | start | ende | text - start und ende sind jeweils als timestamp vorhanden.

Ich hoff ich hab mich nicht zu kryptisch ausgedrückt und mir jemand ein tip geben kann.

Thx
Miniaturansicht angehängter Grafiken
ein-stundenplan-plan.gif  
__________________
Format C:

Geändert von Rizzla (10.03.2005 um 16:52 Uhr).
Rizzla ist offline   Mit Zitat antworten


Alt 10.03.2005, 21:21   #2
TP-Insider
 
Benutzerbild von Rizzla
 
Registriert seit: Mar 2001
Ort: München
Rizzla macht alles soweit korrekt
keiner ne Idee??
__________________
Format C:
Rizzla ist offline   Mit Zitat antworten
Alt 10.03.2005, 21:36   #3
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Also ich habe nicht verstanden was genau Deine Frage ist.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 10.03.2005, 22:05   #4
TP-Insider
 
Benutzerbild von Rizzla
 
Registriert seit: Mar 2001
Ort: München
Rizzla macht alles soweit korrekt
das hatte ich befürchtet

deswegen noch ein Bild dazu, ich denk der vergleich der beiden bilder macht klar was passieren soll.

Die Zellen sollen je nach Belegung verbunden sein und mit den dazugehörigen Infos befüllt sein.

Ich häng eben bei der Abfrage wie ich das so hinbekommen wie in dem neuen bildchen.
Miniaturansicht angehängter Grafiken
ein-stundenplan-planneu.gif  
__________________
Format C:
Rizzla ist offline   Mit Zitat antworten
Alt 10.03.2005, 22:08   #5
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Aus den Uhrzeiten den Unterschied in Zeilen errechnen und dann mit "rowspan" kombinieren.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 10.03.2005, 22:09   #6
TP-Specialist
 
Benutzerbild von PeterBrand
 
Registriert seit: Aug 2001
Ort: Graz
PeterBrand hilft, wo's gehtPeterBrand hilft, wo's gehtPeterBrand hilft, wo's geht
Wie wär´s wenn Du einfach eine Ebene an die Position setzt und deren Höhe an die Dauer anpasst (also wenn eine halbe Stunde 20px hoch ist und der Termin 1 1/2 Std dauert ist die Ebene 3x20=60px hoch).
__________________
Freedom for Mars!

» Auszeichnung für "KlassenTreffen"...
» zum Kunden des Monats
PeterBrand ist offline   Mit Zitat antworten
Alt 10.03.2005, 22:20   #7
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
So wie Peter würd ich's auch angehen - ich tüftel schon seit längerem an einem Urlaubsplaner rum und diese Lösung war bisher die praktikabelste Darstellungsmethode.
webmichl ist offline   Mit Zitat antworten
Alt 10.03.2005, 22:23   #8
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Rizzla sprach doch von Zellen, also hat er offensichtlich eine Tabelle.
Was liegt da näher als mit rowspan zu arbeiten?
Einfacher geht es doch gar nicht.
Wieso jetzt divs einführen?
Das würde Sinn machen wenn die ganze Seite auf Tabellen verzichtet.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 10.03.2005, 22:32   #9
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
rowspan ist hier das einfachste. Du hast 26 zeilen, und bei einem Termin kannst Du
(Endzeit-Startzeit)/30 rechnen, dann hast Du die rowspan-grösse.

P.S. Da Du die Zeiten als timestamp hast, empfiehlt sich dei Umwandlung mit den MySQL Datumsfunktionen direkt in der SQL-Anweisung.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer

Geändert von steffenk (10.03.2005 um 22:35 Uhr).
steffenk ist offline   Mit Zitat antworten
Alt 24.03.2005, 11:58   #10
TP-Insider
 
Benutzerbild von Rizzla
 
Registriert seit: Mar 2001
Ort: München
Rizzla macht alles soweit korrekt
Muss euch leider nochmal belästigen, ich hatte das mal auf eis gelegt und jetzt wieder rausgekramt. Das mit dem rowspan is klar soweit. Die Verbindung der Zellen zu 1 Termin klappt auch schon nur sollten auch mehrere Termine möglich sein, also in einer spalte mehrere rowspans vorkommen.

Genau da haperts aber gerade - ich post mal einfach den quelltext den ich bisher hab, vielleicht hat jemand von euch ne idee wie ich das lösen könnte.

Die Datenbank dazu sieht wie folgt aus, ich hab selbig ein wenig verändert.

id || start || ende || termin || startzeile || endzeile

start und ende sind ein datetime feld, termin der inhalt, und start- bzw. endzeile sind die zeilen der tabelle in der das rowspan anfängt bzw. aufhört.

PHP-Code:
<table width='850' border='1' cellpadding='0' cellspacing='0'>
    <tr>
        <td width='70'>
<table width='70' border='1' cellpadding='0' cellspacing='0'>
<?php
// Anzeige der Stunde und der Minuten am linken Rand der Tabelle


$stunde 8;
for (
$i=0$i<=25$i++)
    {
    
    
// wechselt jede zeile zwischen 00 und 30 Minutenangabe
    
if ( $i == )
        { 
$min "00"
          echo 
"<tr><td width='35' rowspan='2' height='60'>$stunde</td><td width='35' height='30'>$min</td></tr>\n";
          
$stunde++;
        }
    else
        { 
$min "30"
          echo 
"<tr><td width='35' height='30'>$min</td></tr>\n";
        }
    
    }
?>
</table>
        </td>
        <td width='780'>
<table width='780' border='1' cellpadding='0' cellspacing='0'>
    
<?php
for ( $anzahl_zeilen 1$anzahl_zeilen <= 26$anzahl_zeilen++ )
    {
    echo 
"<tr>";
    
        for ( 
$anzahl_spalten 1$anzahl_spalten <= 6$anzahl_spalten++ )
            {
            
             
$auslesen "SELECT * FROM stud_plan ORDER BY start";
             
$ergebnis query_test($auslesen);
             WHILE ( 
$auswurf mysql_fetch_array$ergebnis ) )
                 {
                
$start $auswurf['startzeile'];
                
$ende  $auswurf['endzeile'];
                
$anzahl_rowspan $ende $start;
                }
            
            if ( 
$anzahl_zeilen == $start && $anzahl_spalten == 1)
                {
                echo 
"<td width='130' height='30' rowspan='$anzahl_rowspan'>$anzahl_zeilen $start</td>";
                }
            elseif ( 
$anzahl_zeilen $start && $anzahl_zeilen $ende && $anzahl_spalten == )
                { 
/* In dieser Schleife darf keine ausgabe erfolgen */    }
            else
                { echo 
"<td width='130' height='30'>&nbsp;</td>"; }
             }
             
    echo 
"</tr>\n";
    }

?>

</table>        
        </td>
    </tr>
</table>
__________________
Format C:
Rizzla ist offline   Mit Zitat antworten
Alt 24.03.2005, 12:41   #11
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
Ich würde innerhalb der ge'rowspan'ten Zelle eine weitere Tabelle mit den entsprechenden Größen erzeugen - oder hier mit Layern arbeiten.
webmichl ist offline   Mit Zitat antworten
Alt 24.03.2005, 13:04   #12
TP-Insider
 
Benutzerbild von Rizzla
 
Registriert seit: Mar 2001
Ort: München
Rizzla macht alles soweit korrekt
da hast mich jetzt glaub ich falsch verstanden, es soll nicht innerhalb der ge'rowspan'ten (goiles wort) zelle noch was ausgegeben werden sondern in der gleichen spalte noch ein paar zellen gerowspant werden so wie in dem bild das ich an den 4. Beitrag gehängt hab.

Und über ebenen ist das glaub ich noch unübersichtlicher.
__________________
Format C:
Rizzla ist offline   Mit Zitat antworten
Alt 24.03.2005, 13:16   #13
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
dann versteh ich offenbar wirklich was nicht.

Das da oben ist doch nur ( nur auf die Spalte bezogen ):

<td>...
<td rowspan=11>...
<td>...
<td rowspan=11>...
<td>...
<td>...

Jede halbe Stunde kriegt ihre eigene Zellenreihe und da kannst dann 'rowspan'nen...
webmichl ist offline   Mit Zitat antworten
Alt 24.03.2005, 13:40   #14
TP-Insider
 
Benutzerbild von Rizzla
 
Registriert seit: Mar 2001
Ort: München
Rizzla macht alles soweit korrekt
mein aktuelles problem ist das auslesen aus der datenbank.
so wie mein code nun ist wird immer nur der zuletzt gefundene eintrag zu dem jeweiligen datum ausgegeben.

ich hab aber bis zu 5 Termine und bräuchte also bis zu 5 rowspans in der spalte

wie krieg ichs nun hin das beim ersten datum in der spalte ein rowspan gemacht wird und beim 2 datum in der spalte usw.

ich hoff das ist besser formuliert, is n bißchen kompliziert das ganze, sonst hätt ichs glaub ich auch schon
__________________
Format C:
Rizzla ist offline   Mit Zitat antworten
Alt 24.03.2005, 13:43   #15
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Du musst das in der Schleife berücksichtigen.

1. Schritt: Alle Termine auslesen, die zum Tag passe, sortiert nach Anfangszeit
2. Schleife für alle 30 min, prüfen, ob ein Termin anfängt
3. wenn ja - rowspan ermitteln

Wichtig ist, das Du immer die Zeit in der Schleife mit der Anfangszeit des nächsten Termins vergleichst.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Ein Stundenplan Ein Stundenplan
« Per PHP Inhalt umschalten | Komme so gar nicht mit Newsletterscript klar :( »

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 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 | | |