php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-11-2011, 10:23
jpb
 Registrierter Benutzer
Links : Onlinestatus : jpb ist offline
Registriert seit: Nov 2011
Beiträge: 5
jpb ist zur Zeit noch ein unbeschriebenes Blatt
Standard Datum aus Datenbank holen und in einem Kalender markieren

Moin,

ich habe in einer Datenbanktabelle einen Datumszeitraum abgespeichert.
Z.b. 18.10.2011 bis 23.10.2011.

Die werden alle einzelnd gespeichert also:
18.10.2011
19.10.2011
20.10.2011
21.10.2011
22.10.2011
23.10.2011

Nun möchte ich diese Daten in einem Kalender unterbringen und markieren damit zu sehen ist, dass der bestimmte Tag ausgebucht ist.

Mein Kalenderscript sieht folgendermaßen aus:

PHP-Code:
<?PHP $month = isset($_GET['month']) ? intval($_GET['month']) : date('n');
    
$year = isset($_GET['year']) ? intval($_GET['year']) : date('Y');
    
    
$options['today_class'] = "background-color:#008bb8; font-weight:bold; color:#fff;";
    
$weekdays = array('So''Mo''Di''Mi''Do''Fr''Sa');
    
    
$weekdays = array('So''Mo''Di''Mi''Do''Fr''Sa');
    
$months = array(
        
'01' => 'Januar',
        
'02' => 'Februar',
        
'03' => 'M&aumlrz',
        
'04' => 'April',
        
'05' => 'Mai',
        
'06' => 'Juni',
        
'07' => 'Juli',
        
'08' => 'August',
        
'09' => 'September',
        
'10' => 'Oktober',
        
'11' => 'November',
        
'12' => 'Dezember'
    
);
    
    
$prev_symbol "&laquo;";
    
$next_symbol "&raquo;";
    
$summary "Belegungsplan";
    
$caption "Belegungsplan";
    
$options['month_link']     = '<a href="'.$_SERVER['PHP_SELF'].'?month=%d&amp;year=%d&Titel='.$Titel.'">%s</a>';
    
    
$total_days date('t'mktime(000$month1$year));
    
$day_offset date('w'mktime(000$month1$year));
    
    list(
$n_month$n_year$n_day) = split(', 'strftime('%m, %Y, %d'));
    
$day_highlight = (($n_month == $month)."&amp;&amp;".($n_year == $year));
    
    list(
$n_prev_month$n_prev_year) = split(', 'strftime('%m, %Y'mktime(000$month-11$year)));
    
$prev_month_link sprintf($options['month_link'], $n_prev_month$n_prev_year$prev_symbol);
 
    list(
$n_next_month$n_next_year) = split(', 'strftime('%m, %Y'mktime(000$month+11$year)));
    
$next_month_link sprintf($options['month_link'], $n_next_month$n_next_year$next_symbol);
    
    echo 
'
    <table border="0" summary="'
.$summary.'" style="width: 400px;">
    <caption>'
.$caption.'</caption>
    <thead>
    <tr>
    <th style="background-color:#647b8d;">'
?> 
    
    <?PHP
     
if (date('m') >= $month AND date('Y') == $year): 
     else:
     
     echo 
$prev_month_link;     
     
     endif; 
    
?>
    
    <?PHP echo '</th>
    <th colspan="5">'
.$months[strftime('%m'mktime(000$month1$year))].' '.$year.'</th>
    <th style="background-color:#647b8d;">'
.$next_month_link.'</th>
    </tr>'
;
    echo 
"<tr>\n";
    
    foreach (
$weekdays as $weekday)
        {
          echo 
"\t";
          echo 
"<th>".$weekday."</th>\n";
          echo 
"\n";
        }
        
    echo 
"\n";
    echo 
"\n";
    echo 
"</tr>
    </thead>
    <tbody>\n"
;
    echo 
"<tr>\n";
    
    if (
$day_offset 0) {
      for (
$i=0$i<$day_offset$i++)
        {
            echo 
"\t";
            echo 
'<td class="empty_cell">';
            echo 
"\n";
        } 
     }
     for (
$day=1$day<=$total_days$day++)
        {
          if (
$day_highlight && ($day == $n_day) && ($month == $n_month))
          {
      echo 
"\t";
      echo 
'</td>
       <td id="day_'
.$day.'" style="'.$options['today_class'].'">'.$day.'';
       echo 
"\n";           
            }                          
                
    else   {
     echo 
"\t";
     echo 
'</td>
    <td id="day_'
.$day.'">'.$day.'</td>';
         echo 
"\n";
       }
       
$day_offset++;
        if (
$day_offset == 7)   {
         
$day_offset 0;
         if (
$day $total_days)
         {
           echo 
"</tr>\n<tr>";
         }
       }   
       
     }
     if (
$day_offset 0)
        {
          
$day_offset 7-$day_offset;
        }
    if (
$day_offset 0)
{
  for (
$i=0$i$day_offset$i++)
  {
    echo 
'<td class="empty_cell">';
     echo 
"\n";
  }
}
  
?>
Der Kalender funktioniert soweit aber die Markierung der eingegebenen Daten aus der Datenbank bekomme ich einfach nicht hin. :/

Den aktuellen Tag kann ich auslesen und markieren aber nicht die, die aus der Datenbank übergeben werden.

Leider konnte mir bisher noch niemand wirklich helfen.
Hat jemand für mich einen Tipp/Denkanstoß wo ich ansetzen kann?

Viele Grüße
Paul

Geändert von AmicaNoctis (09-11-2011 um 11:26 Uhr) Grund: überlangen Code umgebrochen
  #2 (permalink)  
Alt 09-11-2011, 11:24
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

ich sehe im Code keinerlei Datenbankabfragen. Woher soll der Kalender die Daten aus der DB bekommen?

Übrigens erzeugst du invaliden HTML-Code. Jag die Seite mal durch den Validator und korrigiere die Fehler im Code.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #3 (permalink)  
Alt 09-11-2011, 11:40
jpb
 Registrierter Benutzer
Links : Onlinestatus : jpb ist offline
Registriert seit: Nov 2011
Beiträge: 5
jpb ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Moin Amica,

vielen Dank für Deine Antwort.

Eine Datenbankabfrage habe ich noch nicht eingebunden.
Hier ist die Datenbankabfrage die ich über dem Kalender habe.

Ausgabe ist:
"ausgebucht vom:
XX.XX.XXXX bis XX.XX.XXXX"

Den Zeitraum zwischen den Daten möchte ich auf den Kalender übertragen sodass diese dort als gebucht markiert werden.

PHP-Code:
<?PHP     
    $Tabellenname
="belegungsplan";
    
$query mysql_query("SELECT * FROM $Tabellenname WHERE Titel='$Titel'order by Datum1",$db);
    
$num=mysql_NumRows($query);
    include(
"../../intern/inc/funk.makedate.php");
    
$i=0; while ($i<$num):
    
$row mysql_fetch_array($query);
    
$Datum1=makedate($row[Datum1]);
        
$Datum2=makedate($row[Datum2]);
?>
<?PHP 
echo $Datum1[9];?>    bis <?PHP echo $Datum2[9];?><br>
    
<?PHP $i++; endwhile;
    
// Datenausgabe Schleifenende    ?>
    <br>
Ich möchte Datenbankabfrage und Kalender miteinander verbinden.

Viele Grüße
Paul
  #4 (permalink)  
Alt 09-11-2011, 11:45
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Okay, jetzt weiß ich, was du vor hast, aber noch nicht, woran es nun genau scheitert.

Du kannst einen Kalender anzeigen, prima! Du kannst die Datenbank abfragen, prima! Beides sieht zwar noch nicht professionell aus, aber darum kann man sich später kümmern.

Worin besteht jetzt das konkrete Problem, diese beiden Puzzleteile zusammenzusetzen?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #5 (permalink)  
Alt 09-11-2011, 12:20
jpb
 Registrierter Benutzer
Links : Onlinestatus : jpb ist offline
Registriert seit: Nov 2011
Beiträge: 5
jpb ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja genau!
Ich weiß nicht wie ich diese beiden kombinieren soll damit die Daten aus der Datenbank im Kalender als "ausgebucht" markiert werden.

Tut mir leid, bin leider noch Anfänger. :/
  #6 (permalink)  
Alt 09-11-2011, 12:23
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Speichere die Daten aus der DB in einem Array. Beim Zusammenbasteln der Kalenderansicht prüfst du für jeden Tag den du ausgibst, ob er in einen Zeitraum aus dem Array fällt und markierst ihn entsprechend.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #7 (permalink)  
Alt 09-11-2011, 13:12
jpb
 Registrierter Benutzer
Links : Onlinestatus : jpb ist offline
Registriert seit: Nov 2011
Beiträge: 5
jpb ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, vielen Dank und wie mache ich das genau?
Überprüfe ich das mit einer Schleife?
  #8 (permalink)  
Alt 15-11-2011, 14:54
jpb
 Registrierter Benutzer
Links : Onlinestatus : jpb ist offline
Registriert seit: Nov 2011
Beiträge: 5
jpb ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Moin,

so ich habe es jetzt soweit hinbekommen, dass er die tage die aus der db kommen markiert.

Danke für Deine Hilfe!

Jetzt ist es nur noch so, dass er die Tage doppelt nimmt.

Also z.B. 15 (markiert) | 15 (unmarkiert) | 16 (markiert) | 16 (unmarkiert)
sozusagen 1515 1616 aber er soll ja dann nur die marktierten anzeigen und nicht nochmal die normalen Tage.

PHP-Code:
if ($day_offset 0) { 
      for (
$i=0$i<$day_offset$i++) 
        { 
            echo 
"\t"
            echo 
'<td class="empty_cell">'
            echo 
"\n"
        }  
     } 
     for (
$day=1$day<=$total_days$day++) 
        { 
          if (
$day_highlight && ($day == $n_day) && ($month == $n_month) && ($year == $n_year)) 
          { 
      echo 
"\t"
      echo 
'</td> 
       <td id="day_'
.$day.'" style="'.$options['today_class'].'">'.$day.''
       echo 
"\n";        
             
            }  
                 
    else   { 
         
        
$query mysql_query("SELECT * FROM belegungsplangebucht WHERE Titel='$Titel'order by Datum2",$db); 
        
$num=mysql_NumRows($query); 
        
$i=0; while ($i<$num): 
        
$row mysql_fetch_array($query); 
        
$Datum1=makedate($row[Datum1]); 
        
$Datum2=makedate($row[Datum2]); 
                 
        if ((
$day == $Datum2 [1]) && ($month == $Datum2 [2])&& ($year == $Datum2 [3])) { 
          echo 
"\t"
          echo 
'</td> 
           <td id="day_'
.$day.'" style="'.$options['today_class'].'">'.$day.''
           echo 
"\n";            
        }  
        
$i++; endwhile;  
         
     echo 
"\t"
     echo 
'</td> 
    <td id="day_'
.$day.'">'.$day.'</td>'
         echo 
"\n"
       } 
       
$day_offset++; 
        if (
$day_offset == 7)   { 
         
$day_offset 0
         if (
$day $total_days
         { 
           echo 
"</tr>\n<tr>"
         } 
       }    
        
     } 
Habe schon versucht die Abfrage dementsprechend zu ändern aber leider ohne Erfolg. Entweder er zeigt mir nur die markierten oder nur die unmarkierten Tage.

Hat jemand eine Idee?

Vielen Dank und viele Grüße
Paul
  #9 (permalink)  
Alt 15-11-2011, 14:58
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Die Ausgabe der unmarkierten Daten solltest du in den else-Teil der if-Anweisung setzen und nicht außerhalb der if-Anweisung, wo sie immer ausgeführt wird.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #10 (permalink)  
Alt 15-11-2011, 14:58
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Bitte beachten: PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr - Ankündigungen im Forum : PHP Developer Forum

Datum aus Datenbank holen und in einem Kalender markieren - php.de

*close*
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Thema geschlossen

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
txt laden, dann wörter aus ner datenbank holen und ersetzen Enzio PHP Developer Forum 2 11-01-2004 11:47
Daten aus Datenbank holen !!! Polohatzer SQL / Datenbanken 4 06-03-2003 15:49
Daten aus Datenbank holen !!! Polohatzer PHP Developer Forum 20 04-01-2003 18:55
PDF aus Datenbank holen Wotan PHP Developer Forum 9 01-11-2002 12:58
ID aus sql-datenbank holen und als mail mitsenden... Metallica PHP Developer Forum 9 05-11-2001 20:56

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:53 Uhr.