php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.05.2005, 15:33  
Gast
 
Beiträge: n/a
Standard Termine eines begrenzten Zeitraums auslesen

Hallo,

ich habe Termine in der Datenbank. Das Datum ist im Format JJJJ-MM-TT dort eingetragen.

Nun möchte ich gerne, sofern wir uns in einem ungeraden Monat befinden, alle Termine von heute bis zum letzten Tag des Folgemonats auslesen. Befinden wir uns in einem geraden Monat, sollen nur die Termine bis zum Ende des Monats ausgegeben werden. (Erklärung: Es gehören also immer zwei Monate zusammen. Dort sollen die noch ausstehenden Termine angezeigt werden)

Nun hab ich leider keinerlei Ahnung, wie ich dies ohne hunderttausend Schleifen machen soll. Ich suche nach einer möglichst einfachen Lösung.

Vielen Dank für Eure Hilfe
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.05.2005, 16:38  
Gast
 
Beiträge: n/a
Standard

geht doch auch ohne Schleifen...

Eine Möglichkeit via PHP:

$startdatum=date("Y-m-d");
$i=(bcmod(date("m"), 2) == 0) ? 1 : 2;
$enddatum=date("Y-m-d", mktime(0, 0, 0, date("m")+$i, 1, date("Y")));

und das dann in die Datenbank-Abfrage einbauen.

Gibt aber noch weitere Möglichkeiten
  Mit Zitat antworten
Alt 23.05.2005, 16:44  
Gast
 
Beiträge: n/a
Standard

teste diese Abfrage:
Code:
SELECT datum
FROM tabelle
WHERE
   MONTH(datum) BETWEEN MONTH(CURDATE()) AND MONTH(CURDATE()) + MONTH(CURDATE())%2
mfG ~dilemma~

kleine Korrektur:
Code:
SELECT datum
FROM tabelle
WHERE
   datum >= CURDATE()
   AND
   (MONTH(datum) BETWEEN MONTH(CURDATE()) AND MONTH(CURDATE()) + MONTH(CURDATE())%2)
mfG ~dilemma~
  Mit Zitat antworten
Alt 23.05.2005, 17:25  
Erfahrener Benutzer
 
Registriert seit: 30.06.2004
Beiträge: 619
tapferesschneiderlein
Standard

Nur MONTH() reicht vermutlich nicht, hier eine kleine Erweiterung:
Code:
SELECT 
    datum
FROM 
    tabelle
WHERE
    DATE_FORMAT( datum, "%Y%m" ) 
    BETWEEN 
        DATE_FORMAT( NOW(), "%Y%m" ) 
    AND 
        PERIOD_ADD( 
            DATE_FORMAT( NOW(), "%Y%m" ), 
            MONTH( NOW() ) % 2
        )
tapferesschneiderlein ist offline   Mit Zitat antworten
Alt 23.05.2005, 20:06  
Gast
 
Beiträge: n/a
Standard

Danke für eure Mühe, aber leider bekomm ich folgende Fehlermeldung:

Zitat:
You have an error in your SQL syntax near '( DATE_FORMAT( NOW(), "%Y%m" ), MONTH ' at line 11
  Mit Zitat antworten
Alt 24.05.2005, 00:46  
Erfahrener Benutzer
 
Registriert seit: 30.06.2004
Beiträge: 619
tapferesschneiderlein
Standard

Mmh, in Deinem Code kann ich keinen Fehler finden ...
tapferesschneiderlein ist offline   Mit Zitat antworten
Alt 24.05.2005, 09:10  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

dann poste doch mal den relevanten Teil deines Codes!
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline   Mit Zitat antworten
Alt 24.05.2005, 09:29  
Gast
 
Beiträge: n/a
Standard

fehlt da nicht ne Klammer am Ende?
  Mit Zitat antworten
Alt 24.05.2005, 10:44  
Gast
 
Beiträge: n/a
Standard

Also, hier ist die komplette Abfrage:

Code:
SELECT belehrungen.*, tagungslokale.*, kreise.* 
							FROM belehrungen 
							LEFT JOIN tagungslokale 
								ON belehrungen.tagungslokal_id = tagungslokale.tagungslokal_id 
							LEFT JOIN kreise 
								ON belehrungen.kreis_nr = kreise.nr 
							WHERE DATE_FORMAT( datum, "%Y%m" ) 
							    BETWEEN 
							        DATE_FORMAT( NOW(), "%Y%m" ) 
							    AND 
							        PERIOD_ADD	( 
							            DATE_FORMAT( NOW(), "%Y%m" ), 
							            MONTH( NOW() ) % 2 
										        ) 
							ORDER BY belehrungen.datum, belehrungen.zeit ASC
  Mit Zitat antworten
Alt 24.05.2005, 10:49  
Gast
 
Beiträge: n/a
Standard

folgende Variante ist etwas kürzer:
Code:
SELECT
    datum
FROM
    tabelle
WHERE
   (datum >= CURDATE())
   AND
   (DATE_FORMAT(datum, '%Y%m') <= DATE_FORMAT(NOW() + INTERVAL (MONTH(NOW()) % 2) MONTH, '%Y%m'))
... und läuft (nach kurzen Test) auch korrekt.
Beachte:
In einer MYSQL-Query keine " -Zeichen verwenden!

Du musst das jetzt nur noch auf deine Abfrage umsetzen!

mfG ~dilemma~
  Mit Zitat antworten
Antwort


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
Ordner auslesen und während des auslesen sortieren Dooki PHP Tipps 2008 6 14.05.2008 17:50
Termine nach Ablauf automatisch aus der DB löschen oder ausblenden Teela PHP Tipps 2008 4 24.03.2008 12:29
Vom Browser verschickte Daten auslesen und anzeigen? andy32 PHP Tipps 2008 3 22.08.2007 18:33
[Erledigt] Datenbank auslesen mit register_globals off PHP Tipps 2007 14 03.01.2007 17:12
[Erledigt] gelöst: Tabelle auslesen -&amp;amp;amp;amp;gt; Gleiche Einträge nur 1 Mal Datenbanken 3 31.03.2006 01:44
Textdatei auslesen, aber ohne Komentare HSFighter PHP Tipps 2006 31 23.02.2006 10:07
Cookies auslesen HSFighter PHP Tipps 2007 2 19.11.2005 14:56
[Erledigt] bestimmte ID's auslesen als array PHP Tipps 2007 2 31.10.2005 20:23
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
[Erledigt] Daten aus einer Datenbank auslesen Datenbanken 2 04.09.2005 19:13
Daten aus Pw-Geschütztem bereich auslesen PHP-Fortgeschrittene 2 26.08.2005 15:27
[Erledigt] nächste Zeile einer Db auslesen? PHP Tipps 2005-2 7 01.08.2005 00:11
alle Verzeichnisse sortiert auslesen PHP Tipps 2005-2 7 17.07.2005 10:20
auslesen und nochmals auslesen?! $$$ ThiKool $$$ PHP Tipps 2005 23 10.03.2005 19:43
[Erledigt] Auslesen von Text incl. &quot; aus Textfeld PHP Tipps 2007 4 04.01.2005 13:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php kalender termine aus datenbank auslesen, curdate auslesen, curdate(), script für begrenzte terminanzeige, between month(curdate()), daten mit curdate auslesen, termine des aktuellen monats aus datenbank lesen, you have an error in your sql syntax near \'(date_format(now, datum between curdate(), aktuelle termine aus datenbank auslesen, select kleiner als curdate(), where date_format 2, mysql nur termine eines bestimmten intervall auslesen, termine aus einer datenbank auslesen, where datum between curdate() and curdate() 7

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:47 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.