Probs mit Event Kalender

ihop

Mitglied
HI leutz brauche wieder mal eure hilfe ;)
folgendes Problem:
ich möchte gern einen event Kalender schreiben sprich es gibt mehrere events am selben Tag und ich möchte das dass Datum als Überschrift steht und zu dem dazugehörigem Datum die events gelistet werden egal welche Uhrzeit.
Desweiteren möcht ich das die Events der vergangenen Tage ausgebledet werden aber die folgenden events wie oben auch gelistet werden

Die DB schaut wie folgt aus:
Code:
DROP TABLE IF EXISTS `event_kalender`;
CREATE TABLE IF NOT EXISTS `event_kalender` (
  `id` int(255) NOT NULL auto_increment,
  `ort` varchar(255) NOT NULL,
  `veranstaltung` varchar(255) NOT NULL,
  `beschreibung` text NOT NULL,
  `adresse` text NOT NULL,
  `ak` int(255) NOT NULL,
  `vvk` int(255) NOT NULL,
  `internet` varchar(255) NOT NULL,
  `flyer` varchar(255) NOT NULL,
  `datum` int(14) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

das derzeitige script schaut so aus :
PHP:
function event_kalender_allgemein($theme,$modules){
  global $DatabaseHost, $DatabaseUser, $DatabasePassword, $Database;
  mysql_connect ($DatabaseHost, $DatabaseUser, $DatabasePassword) or die ("Keine Verbindung zum Server");	
  mysql_select_db ($Database) or die ("Keine Verbindung zur Datenbank");
  $config1 = mysql_query ("SELECT * FROM event_kalender ORDER BY datum ASC") or die ("User nicht gefunden");
  while ($zeile1 = mysql_fetch_array($config1)) {
    $event_datum=$zeile1["datum"];

    $todayfruh = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
    $todayabend = mktime(23, 59, 59, date("m"), date("d"), date("Y"));  
    $today = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
  
    $newdatum1 = date("d.m.Y",$event_datum);   
    $todaydatum = date("d.m.Y",$today);         
    //if($event_datum >= $todaydatum){
      $content_modul .= "
      <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"85%\">
      <tr>
      <td align=\"left\" valign=\"middle\"><strong>$newdatum1</strong></td>
      </tr>
      </table><br><br>
      ";
      $config = mysql_query ("SELECT * FROM event_kalender ORDER BY datum ASC") or die ("User nicht gefunden");
      while ($zeile = mysql_fetch_array($config)) {
        $event_id=$zeile["id"];
        $event_ort=$zeile["ort"];
        $event_veranstaltung=$zeile["veranstaltung"];
        $event_beschreibung=$zeile["beschreibung"];
        $event_flyer=$zeile["flyer"];
        $event_datum=$zeile["datum"];
        $event_ak=$zeile["ak"];
        $event_vvk=$zeile["vvk"];
        if(($todayfruh<=$event_datum) AND ($todayabend>=$event_datum)){
      
          if($event_ak=="0"){
            $event_ak="-";
          }else{
            $event_ak="$event_ak &euro;";
          }
          
          if($event_vvk=="0"){
            $event_vvk="-";
          }else{
            $event_vvk="$event_vvk &euro;";
          }
          $format = date("H:i",$event_datum); 
          $event_datum=date($format, $event_datum); 
           
          $content_modul .= "
          <table border=\"1\" width=\"70%\">
            <tr>
              <th "; if($event_flyer!="0"){ $content_modul .= "colspan=\"2\""; } $content_modul .= "><a href=\"index.php?modules=$modules&op=detail&mid=$event_id\">$event_veranstaltung &nbsp; @ &nbsp; $event_ort</a></th>
            </tr>
            <tr>
              "; 
              if($event_flyer!="0"){ 
                $content_modul .= "
                <td><img src=\"modules/$modules/eventimages/$event_flyer\" border=\"0\" height=\"170\" width=\"120\"></td>";
              } 
              $content_modul .= "
              <td>
              <u>Uhrzeit:</u> $event_datum<br>
              <u>Abendkassa:</u> $event_ak <br>
              <u>VVK:</u> $event_vvk<br><br>
              <u>Beschreibung:</u> $event_beschreibung
              </td>
            </tr>
          </table>
          ";
        }  
      }
    //}
  }
  include("theme/$theme/module.php");
}


anzeigen tut er mir das http://dvddb.pytalhost.com/index.php?modules=event

hoffe jemand kann mir Helfen THX
 
er zeigt mir die Einträge duch einander

Code:
INSERT INTO `event_kalender` (`id`, `ort`, `veranstaltung`, `beschreibung`, `adresse`, `ak`, `vvk`, `internet`, `flyer`, `datum`) VALUES (2, 'Babenberger Passage', 'Bachelor Club pres. Discofieber', 'Welcome Drink<br>\r\nFreier Eintritt von 20 - 22 Uhr<br>\r\nvon 22 bis 23 Uhr: Ausgewählte Cocktails um 5€<br>\r\nSound: Discomusic (70ies, 80ies & 90ies)<br>\r\nDJs: Thomas & Flo', '0', 10, 0, 'www.bachelorclub.at', '0', 1149616800),
(3, 'Flex', 'London Calling', 'Musik: underground rock\r<br>DJ: DJ Binford Binder, Manshee, Sputnik\r<br>', 'Abgang Augartenstrasse\r<br>1010 Wien', 5, 0, 'www.flex.at', '0', 1149714000),
(4, 'Babenberger Passage', 'Club Cosmopolitan', 'Musik: house, RnB\r<br>DJ: Tom Silver, Mastercash, Manfredo', 'Burgring 3\r<br>1010 Wien', 10, 0, '', '0', 1118167200),
(5, 'test', 'test', '', '', 0, 0, '', '0', 1152298800),
(6, 'test1', 'test', '', '', 0, 0, '', '0', 1149706800);

und das ist das umgewandelte
Timestamp:1118167200
Datum:07.06.2005 20:00:00
Ort:Babenberger Passage
Veranstaltung: Club Cosmopolitan

Timestamp:1149616800
Datum:06.06.2006 20:00:00
Ort:Babenberger Passage
Veranstaltung: Bachelor Club pres. Discofieber

Timestamp:1149706800
Datum:07.06.2006 21:00:00
Ort:test1
Veranstaltung: test

Timestamp:1149714000
Datum:07.06.2006 23:00:00
Ort:Flex
Veranstaltung: London Calling

Timestamp:1152298800
Datum:07.07.2006 21:00:00
Ort:test
Veranstaltung: test

Hoffe das hilft weiter
 
Also bei mir sind die Einträge in der richtigen Reihenfolge sortiert.
Vielleicht hast du nicht gesehen dass der erste Termin von 2005 ist.
Ich würde trotzdem die neuesten Termine ganz oben anzeigen, also andersrum sortieren.
Dazu brauchst du nur das ASC durch DESC zu ersetzen:
PHP:
$config = mysql_query ("SELECT * FROM event_kalender ORDER BY datum DESC") or die ("User nicht gefunden");
Gruß,
TwoFaze
 
und das ist das umgewandelte
Timestamp:1118167200
Datum:07.06.2005 20:00:00
Ort:Babenberger Passage
Veranstaltung: Club Cosmopolitan

Timestamp:1149616800
Datum:06.06.2006 20:00:00
Ort:Babenberger Passage
Veranstaltung: Bachelor Club pres. Discofieber

Timestamp:1149714000
Datum:07.06.2006 23:00:00
Ort:Flex
Veranstaltung: London Calling

Diese Daten sind jetzt in der DB
er zeigt mir immer das richtige datum an aber er schreibt immer nur denn Datensatz vom Flex hineinsprich die anderen ignoriert er
 
Kannst du mir erklären wieso du 2 mal die gleiche Abfrage machst und somit auch 2 while-Schleifen ineinander verschachtelst?
 
am anfang war es so das ich bei mysql Timestamp verwendet habe da habe ich beid er ersten while das datum geholt und bei der 2ten habe ich alle Datensätze gesucht die an dem tag waren das hat auch funktioniert aber da gab es zuviele probs mit dem eintragen in die DB.

deswegen habe ich timestamps gemacht und speicher das in ein int Feld das war noch das überbleibsl aber ich habe keine ahnung wie ich das script so machen soll.
 
Kann es leider nicht ausprobieren, aber probiere es doch mal so:
PHP:
<?php

function event_kalender_allgemein($theme,$modules){
  global $DatabaseHost, $DatabaseUser, $DatabasePassword, $Database;
  
  mysql_connect ($DatabaseHost, $DatabaseUser, $DatabasePassword) or die ("Keine Verbindung zum Server");    
  mysql_select_db ($Database) or die ("Keine Verbindung zur Datenbank");
  
  $config1 = mysql_query ("SELECT * FROM event_kalender ORDER BY datum ASC") or die ("User nicht gefunden");
  
  while ( $zeile1 = mysql_fetch_array($config1) ) {
    
    $event_datum = $zeile1["datum"];
    $event_id=$zeile["id"];
    $event_ort=$zeile["ort"];
    $event_veranstaltung=$zeile["veranstaltung"];
    $event_beschreibung=$zeile["beschreibung"];
    $event_flyer=$zeile["flyer"];
    $event_datum=$zeile["datum"];
    $event_ak=$zeile["ak"];
    $event_vvk=$zeile["vvk"];

    $todayfruh = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
    $todayabend = mktime(23, 59, 59, date("m"), date("d"), date("Y"));  
    $today = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
  
    $newdatum1 = date("d.m.Y",$event_datum);   
    $todaydatum = date("d.m.Y",$today);         

    $content_modul .= "
      <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"85%\">
        <tr>
          <td align=\"left\" valign=\"middle\"><strong>$newdatum1</strong></td>
        </tr>
      </table><br><br>";
    
    
    if(($todayfruh<=$event_datum) AND ($todayabend>=$event_datum)){
    
      if($event_ak=="0"){
        $event_ak="-";
      }
      else{
        $event_ak="$event_ak &euro;";
      }
      
      if($event_vvk=="0"){
        $event_vvk="-";
      }
      else{
        $event_vvk="$event_vvk &euro;";
      }
      $format = date("H:i",$event_datum); 
      $event_datum=date($format, $event_datum); 
       
      $content_modul .= "
        <table border=\"1\" width=\"70%\">
          <tr>
            <th "; if($event_flyer!="0"){ $content_modul .= "colspan=\"2\""; } $content_modul .= "><a href=\"index.php?modules=$modules&op=detail&mid=$event_id\">$event_veranstaltung &nbsp; @ &nbsp; $event_ort</a></th>
          </tr>
          <tr>"; 
        
      if($event_flyer!="0"){ 
        $content_modul .= "
          <td><img src=\"modules/$modules/eventimages/$event_flyer\" border=\"0\" height=\"170\" width=\"120\"></td>";
      } 
          
          $content_modul .= "
            <td>
              <u>Uhrzeit:</u> $event_datum<br>
              <u>Abendkassa:</u> $event_ak <br>
              <u>VVK:</u> $event_vvk<br><br>
              <u>Beschreibung:</u> $event_beschreibung
            </td>
          </tr>
        </table>";
        
    }
  }
  include("theme/$theme/module.php");
}  

?>
 
Danke aber da gibt es noch immer das Prob das das Datum von den vergangen Events angezeigt wird und das bei jeden Datensatz das Datum angezeigt wird siehe Screenshot:
 

Anhänge

  • 24716attachment.jpg
    24716attachment.jpg
    22,2 KB · Aufrufe: 31
Sorry, aber deine Fragestellung war Anfangs wieso die Termine durcheinander erscheinen.
Dabei hab ich dir geholfen! :p
Um das verfeinern wirst du dich jetzt wohl wieder selbst kümmern müssen, schließlich willst ja du das Skript schreiben ;)
Wenn du Fragen dies bezüglich hast kannst du aber trotzdem jederzeit wieder Fragen.
Vielleicht hilft dir auch noch jemand anders, aber ich finde ab hier wird es immer umfangreicher.
LG,
TwoFaze
 
Zuletzt bearbeitet von einem Moderator:
Zurück