mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 21:56 Benutzername: Passwort: Auto-Login

Thema: [sql] date, veranstaltungskalender vom 20.07.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [sql] date, veranstaltungskalender
Autor Nachricht
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 20.07.2005 17:47
Titel

[sql] date, veranstaltungskalender

Antworten mit Zitat Zum Seitenanfang

Kann mir mal einer n Denkanstoß geben. Ich bin irgendwie betriebsblind oder wie auch immer man es nennen will.

Folgendes, ich schreibe gerade nen Veranstaltungskalender.
Es besteht die Möglichkeit eintägige Veranstaltungen einzutragen, und mehrwöchige. Dann gibt es noch die Möglichkeit sich die Veranstaltungen für einen Monat anzeigen zu lassen. Wenn man den Aktuellen Monat auswählt, soll man allerdings nur die Veranstaltungen ab dem aktuellen Tag gezeigt bekommen.

Also Beispiel, Monat Juli wird gewählt:

Veranstaltung 1: 1-tägig, am 18.07.2005 - vorbei. wird nicht angezeigt
Veranstaltung 2: 1-tätig, am 22.07.2005 - ausstehend, wird angezeigt
Veranstaltung 3: Mehrwöchig, vom 05.06.2005 – 12.08.2005

Nun hab ich alles versucht, bekomme es aber einfach nicht hin. Entweder werden alle Veranstaltungen im Juli angezeigt, oder nur die ab dem aktuellen Datum, aber dafür die Mehrwöchigen nicht, oder es wird garnichts angezeigt *gg*

Die DB ist wiefolgt angelegt:

Name, Ort, etc... datum, datum_ende

Bei eintägigen Veranstaltungen wird als datum_ende 0000-00-00 eingetragen. (MySQL-Date)

Meine Query bisher:
Code:
$querystring = "SELECT * FROM `v_kalender` WHERE
   (datum >= '".date("Y")."-$monat-".date("d")."' AND datum_ende <= '".date("Y")."-$monat-31' AND datum_ende != '0000-00-00') OR
   (datum_ende >= '".date("Y")."-$monat-01' AND datum <= '".date("Y")."-$monat-31') OR
   (datum LIKE '%-$monat-%' AND datum >= '".date("Y")."-$monat-".date("d")."')
   AND aktiv = '1' ORDER BY datum ASC";


mag komisch aussehen, funktioniert aber schon soweit, das er alles korrekt anzeigt, AUSSER, wenn eine Veranstaltung mehrtägig ist, und vor dem aktuellen Datum endet. also z.b. vom 05.07.2005 - 07.07.2005.
alles andere wird korrekt angezeigt.

Jetzt brauch ich nur mal nen Denkanstoß wie ich das hinkrieg. noch n zusätzliches OR mit datum >= heute AND datum_ende >= heute. geht ja irgendwie nich, dann zeigter mir ja alle nachfolgenden monate gleich mit an.

man ey ich sitz da jetzt ne stunde dran und komm einfach nich drauf. einer ne idee?
ich weiß das der ganze code an sich vermutlich murks is, aber so isses nunmal *ha ha*


//edit:
ich checks einfach nich. so sieht die query aus:
Code:
SELECT * FROM `v_kalender` WHERE
(datum >= '2005-07-20' AND datum_ende <= '2005-07-31' AND datum_ende != '0000-00-00') OR
(datum_ende >= '2005-07-01' AND datum <= '2005-07-31' ) OR // wegen dieser zeile zeigter die VA vom 05.07 an.
(datum LIKE '%-07-%' AND datum >= '2005-07-20') AND aktiv = '1'
ORDER BY datum ASC


wie änder ich das jetzt so das das passt? wenn ich noch n AND datum >= xy mach dann zeigter mir ja wieder die nachfolgenden monat mit an. wenn ich irgendwas anderes irgendwie ändere zeigter mir die mehrwöchigen nich mehr an. ich glaub das is überhaupt nich mögilch was ich da vor hab, kann das sein? *ha ha*


Zuletzt bearbeitet von shakadi am Mi 20.07.2005 19:13, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Mi 20.07.2005 18:01
Titel

Antworten mit Zitat Zum Seitenanfang

Das hatten wir vor kurzem schonmal. Ich würd da SQL-Funktionen zum Vergleich verwenden:
Code:

SELECT * FROM termine WHERE datum > NOW() OR datum_ende > NOW()


sollte doch eigentlich schon reichen, oder?

//
Ja, reicht:

Code:
<?
$user = "root";
$pw ="";
$base="test";
$server="localhost";

$db = mysql_connect ( $server, $user, $pw);
mysql_select_db($base, $db);

/* Alle ab jetzt */
$query = "SELECT name,
            DAYOFMONTH(datum) AS tag,
            MONTH(datum) AS monat,
            YEAR(datum) AS jahr,
            DAYOFMONTH(datum_ende) AS tagEnde,
            MONTH(datum_ende) AS monatEnde,
            YEAR(datum_ende) AS jahrEnde,
            datum_ende AS checkDatum
            FROM datum WHERE datum >= NOW() OR datum_ende >= NOW()";

$result1 = mysql_query($query);


/* Alle überhaupt */
$query = "SELECT name,
            DAYOFMONTH(datum) AS tag,
            MONTH(datum) AS monat,
            YEAR(datum) AS jahr,
            DAYOFMONTH(datum_ende) AS tagEnde,
            MONTH(datum_ende) AS monatEnde,
            YEAR(datum_ende) AS jahrEnde,
            datum_ende AS checkDatum
            FROM datum";

$result2 = mysql_query($query);


/*Alle ab 1.9.2005 */
$query = "SELECT name,
            DAYOFMONTH(datum) AS tag,
            MONTH(datum) AS monat,
            YEAR(datum) AS jahr,
            DAYOFMONTH(datum_ende) AS tagEnde,
            MONTH(datum_ende) AS monatEnde,
            YEAR(datum_ende) AS jahrEnde,
            datum_ende AS checkDatum
            FROM datum WHERE datum >= '2005-09-1' OR MONTH(datum_ende) >= '2005-09-1'";

$result3 = mysql_query($query);
?>

<html>
    <head>
        <title>Db-Test</title>
    </head>
    <body>
        <h1>Alle ab jetzt:</h1>
        <table border="1" cellpadding="5" cellspacing="5">
            <tr>
                <th>Name</th>
                <th>Start</th>
                <th>Ende</th>
            </tr>
            <?while ($row = mysql_fetch_object($result1)):?>
            <tr>
                <td><?=$row->name?>: </td>
                <td><?=$row->tag?>.<?=$row->monat?>.<?=$row->jahr?></td>
                <td>
                    <?if($row->checkDatum == NULL):?>
                        &mdash;
                    <?else:?>
                        <?=$row->tagEnde?>.<?=$row->monatEnde?>.<?=$row->jahrEnde?>
                    <?endif?>
                </td>
            </tr>
            <?endwhile?>
        </table>
        <h1>Alle, auch die beendeten:</h1>
        <table border="1" cellpadding="5" cellspacing="5">
            <tr>
                <th>Name</th>
                <th>Start</th>
                <th>Ende</th>
            </tr>
            <?while ($row = mysql_fetch_object($result2)):?>
            <tr>
                <td><?=$row->name?>: </td>
                <td><?=$row->tag?>.<?=$row->monat?>.<?=$row->jahr?></td>
                <td>
                    <?if($row->checkDatum == NULL):?>
                        &mdash;
                    <?else:?>
                        <?=$row->tagEnde?>.<?=$row->monatEnde?>.<?=$row->jahrEnde?>
                    <?endif?>
                </td>
            </tr>
            <?endwhile?>
        </table>
       
        <h1>Alle in ferner Zukunft:</h1>
        <table border="1" cellpadding="5" cellspacing="5">
            <tr>
                <th>Name</th>
                <th>Start</th>
                <th>Ende</th>
            </tr>
            <?while ($row = mysql_fetch_object($result3)):?>
            <tr>
                <td><?=$row->name?>: </td>
                <td><?=$row->tag?>.<?=$row->monat?>.<?=$row->jahr?></td>
                <td>
                    <?if($row->checkDatum == NULL):?>
                        &mdash;
                    <?else:?>
                        <?=$row->tagEnde?>.<?=$row->monatEnde?>.<?=$row->jahrEnde?>
                    <?endif?>
                </td>
            </tr>
            <?endwhile?>
        </table>
    </body>
</html>


Zuletzt bearbeitet von am Mi 20.07.2005 18:38, insgesamt 2-mal bearbeitet
 
Anzeige
Anzeige
Account gelöscht


Ort: -
Alter: -
Verfasst So 24.07.2005 10:54
Titel

Antworten mit Zitat Zum Seitenanfang

Keine Ursache, mach ich gern nach Feierabend weil ich eh nix besseres zu tun hab.
 
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 24.07.2005 13:57
Titel

Antworten mit Zitat Zum Seitenanfang

Grins danke. funktionierte aber leider auch nich ganz. habs aber jetzt anders gelöst bekommen.
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Mo 25.07.2005 13:02
Titel

Antworten mit Zitat Zum Seitenanfang

natürlich funktioniert das. du musst die queries noch anpassen natürlcih.
 
caZpa
Account gelöscht


Ort: -

Verfasst Mo 25.07.2005 14:06
Titel

Antworten mit Zitat Zum Seitenanfang

kuhl!

genau sowas war ich auch am planen dranne.
hat sich das reduziert.

Grins

danke schön. werd ich später mal ausprobieren. Lächel
 
 
Ähnliche Themen Vernünftiger Veranstaltungskalender?
Veranstaltungskalender mit Landkarte für Webseite
[PHP] Date ADD
[PHP] String -> date
Sind WAP-Seiten noch up to date?
SQL Datentype - Brauche DATE für Format 23.09.2010
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.