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, 11: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 12:26 Uhr) Grund: überlangen Code umgebrochen
  #2 (permalink)  
Alt 09-11-2011, 12: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, 12: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, 12: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, 13: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, 13: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, 14: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, 15: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, 15: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, 15: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 12:47
Daten aus Datenbank holen !!! Polohatzer SQL / Datenbanken 4 06-03-2003 16:49
Daten aus Datenbank holen !!! Polohatzer PHP Developer Forum 20 04-01-2003 19:55
PDF aus Datenbank holen Wotan PHP Developer Forum 9 01-11-2002 13:58
ID aus sql-datenbank holen und als mail mitsenden... Metallica PHP Developer Forum 9 05-11-2001 21: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

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:29 Uhr.