php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.03.2005, 12:59  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Dazu brauchst du nicht nomals einen SELECT, du musst nur den ersten etwas ändern und die darauf folgende Zeile anpassen:
PHP-Code:
<?php
...
     
$sql "SELECT event
             FROM termine
             WHERE CONCAT(datum, ' ', anfang) < '$end'
             AND CONCAT(datum, ' ', ende) >= '$begin'"
;
     
$res mysql_query($sql) or die(mysql_error());
     list(
$event) = mysql_fetch_row($res);
     
$liste[$idx][$id2]['status'] = $cnt != $event 'frei';
...
?>
Sofern sichergestellt ist, dass nur ein Even zu einem bestimmten Zeitpunkt möglich ist, genügt das. Im andern Fall hast sowieso ein Problem.
__________________
Gruss
L
lazydog ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.03.2005, 03:15  
Gast
 
Beiträge: n/a
Standard

Hi,

irgendwie komm ich nich mehr weiter (

ich kann weder ne woche/monat/jahr vor bzw. zurück schalten noch schaffe ich es den letzten beitrag von dir einzubinden das er funktioniert...

event zeigt er mir etz im kalender aber das hab ich über nen 2. select gemacht ...

hier mal der derzeitige stand der dinge >>

PHP-Code:
<?php
echo "
<style>
<!--
td.frei {
     background-color:#00FF00;
     width:110px;
}
td.bes  {
     background-color:#FFFF00;

}
td.dat  {
     background-color:#BBBBBB;
}
-->
</style>"
;


$datum time();

list(
$woNr$woTag) = explode(':'date('W:w'$datum));
$startdatum $datum - (($woTag 1) * 24 3600);
list(
$tag$mon$jahr) = explode(':'date('d:m:Y'$startdatum));
$startdatum mktime(000$mon$tag$jahr);
$enddatum $startdatum 24 3600;   // + 7 Tage
$altertag 0;
$liste = array();
$idx = -1;

for (
$datum $startdatum$datum $enddatum$datum += 1800){ // 30 Minuten
     
list($beginstr$tag$datstr) = explode('|'date('H:i|d|D d.m.Y'$datum));
     
$tag date('d'$datum);
     
$begin date('Y-m-d Hi'$datum);
     
$end   date('Y-m-d Hi'$datum 1800);
     
     if (
$tag != $altertag){
         
$idx++;
     
$id2 0;
     
$liste[$idx]['kopf'] = $datstr;
     
$altertag $tag;
     }
     
$sql "SELECT count(*)
             FROM termine 
             WHERE CONCAT(datum, ' ', anfang) < '$end'
             AND CONCAT(datum, ' ', ende) >= '$begin'"
;
     
$res mysql_query($sql) or die(mysql_error());
     list(
$cnt) = mysql_fetch_row($res);
     
$liste[$idx][$id2]['status'] = $cnt != 'besetzt' 'frei';
     
$liste[$idx][$id2]['zeit'] = $beginstr;
     
$id2 ++;
}

echo 
"<table align='center' border='0'>\n";
echo 
"<tr><td colspan='14' align='center' class='dat'>[b]Kalender vom " .
      
date('d.m.Y'$startdatum) . " bis " date('d.m.Y'$enddatum 1) .
      
"[/b]</td></tr>\n";
echo 
"<tr>";
for(
$i 0;$i 7;$i ++){
    echo 
"<td colspan='2' class='dat'>" $liste[$i]['kopf'] . "</td>";
}
echo 
"</tr>\n";
for(
$j 0;$j 48;$j++){
    echo 
"<tr>";
    for(
$i 0;$i 7;$i ++){
        
$cl = ($liste[$i][$j]['status'] == 'frei') ? 'frei' 'bes';
        echo 
"<td class='dat'><a href=cal_eintrag.php?loginstring=$loginstring&ID=$ID&ADM_name=".$ADM2['set_ADM']." target=blank>".$liste[$i][$j]['zeit']."</a></td>";
        
        if(
$cl=="bes")
            {
            
$cal_event1=mysql_query("SELECT * FROM termine WHERE an='6' AND datum='".date('Y-m-d'$startdatum)."' AND ende > '" $liste[$i][$j 1]['zeit']. "'; ");

        
$cal_event2=mysql_fetch_array($cal_event1);
        
                echo 
"<td class='$cl'>".substr($cal_event2['event'],,15)."</td>";
        }
            else
            {
                echo 
"<td class='$cl'>[url="http://test"][/url]</td>";
            
}
        }
    echo 
"</tr>\n";
}
echo 
"</table>\n";

?>
vielleicht sind 34 stunden wachsein auch nicht so gut

ist warscheinlich so einfach das ich es nicht schnalle...

gruß Gero
 
Alt 17.03.2005, 10:12  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dbt459
vielleicht sind 34 stunden wachsein auch nicht so gut
Vielleicht solltest du zwischendurch mal 34 Stunden schlafen.
Um die Events zu finden, brauchst du keinen zusätzlichen SELECT (der so wie du in programmiert hast, auch noch falsch ist), du brauchst nur den alten (so um Zeile 45 rum) und die Zeilen danach so zu ändern, wie ich es dir geschrieben habe.
Und zum vor-/zurückscrollen kannst du z.B. die Zeilen am Anfang (nach </style>) folgendermassen anpassen:
PHP-Code:
<?php
$datum 
= isset($_GET['datum']) ? $_GET['datum'] : time();
list(
$woNr$woTag) = explode(':'date('W:w'$datum));
$startdatum $datum - (($woTag 1) * 24 3600);
list(
$tag$mon$jahr) = explode(':'date('d:m:Y'$startdatum));
$startdatum mktime(000$mon$tag$jahr);
setlocale(LC_TIME'de_DE');

$letzte_woche $startdatum - (24 3600);
$naechste_woche $startdatum + (24 3600);
$monat_vorher mktime(000$mon 1$tag$jahr);
$monat_nachher mktime(000$mon 1$tag$jahr);
$jahr_vorher mktime(000$mon$tag$jahr 1);
$jahr_nachher mktime(000$mon$tag$jahr 1);

$self $_SERVER['PHP_SELF'];
echo 
"<table border='0' width='100%'>\n";
echo 
"<tr><td align='left'><a href='$self?datum=$letzte_woche'>
      &lt;&lt; Woche</a></td>"
;
echo 
"<td align='right'><a href='$self?datum=$naechste_woche'>
      Woche &gt;&gt;</a></td></tr>\n"
;
echo 
"<tr><td align='left'><a href='$self?datum=$monat_vorher'>
      &lt;&lt; Monat</a></td>"
;
echo 
"<td align='right'><a href='$self?datum=$monat_nachher'>
      Monat &gt;&gt;</a></td></tr>\n"
;
echo 
"<tr><td align='left'><a href='$self?datum=$jahr_vorher'>
      &lt;&lt; Jahr</a></td>"
;
echo 
"<td align='right'><a href='$self?datum=$jahr_nachher'>
      Jahr &gt;&gt;</a></td></tr>\n"
;
echo 
"</table>\n";
?>
Aber nicht einfach kopieren, ein Teil ist schon drin. Und versuch zu verstehen, was abläuft. Das Ganze macht auch noch Probleme, am Tag an dem Sommer-/Winterzeit umgestellt wird. Ich hab im Moment allerdings nicht Zeit, mich um das auch noch zu kümmern.
__________________
Gruss
L
lazydog ist offline  
 


Themen-Optionen
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
[Erledigt] Kalender aktuellen Tag markieren al-kohli-ker Scriptbörse 5 27.05.2008 07:52
Kalender in PHP rezix PHP Tipps 2008 3 10.01.2008 15:42
Kalender Problem pPanther PHP Tipps 2008 10 12.12.2007 18:32
MySQL-Abfrage in Kalender tsvst Datenbanken 5 13.09.2006 08:22
Tagesansicht bei Kalender macht Probleme Borlox PHP Tipps 2006 20 30.06.2006 13:05
Suche PHP Event Kalender PHP Tipps 2005-2 2 28.09.2005 19:57
[Script] Kalender Beitragsarchiv 11 20.09.2005 15:31
fehler im Kalender PHP-Fortgeschrittene 3 01.06.2005 12:58
Kalender... arcor PHP Tipps 2005 13 08.05.2005 10:01
[Erledigt] Rollenspiel Kalender PHP Tipps 2005 4 29.01.2005 18:18
[Erledigt] Kalender Termine hervorheben PHP Tipps 2004-2 1 24.11.2004 13:02
kalender - variablenuebermittlung PHP-Fortgeschrittene 15 14.11.2004 21:24
kalender in background einfügen Sclot PHP Tipps 2004 4 06.10.2004 16:04
kalender in php Beitragsarchiv 2 02.08.2004 13:47
[Erledigt] kalender in php PHP Tipps 2004 1 02.08.2004 01:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
list($tag,$mon

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.