Archiv verlassen und diese Seite im Standarddesign anzeigen : Kalenderwoche
Guten Tag
Ich habe mir eine Terminübersicht erstellt (mysql-db, php5).
Die Termine sind im Format (Y-m-d) abgelegt.
Nun möchte ich einen formularbasierten Filter setzen der auf Kalenderwoche beruht.
Meine Frage: Kann ich in der Abfrage das Termindatum so auslesen um die Kalenderwoche daraus zu extrahieren um diese über meine Formularfilter ansprechen zu können.
Gebt mir bitte mal einen kleinen "schubs" ich denke dann komme ich selbst weiter.
Danke im Vorfeld
mfg
Andre
Original geschrieben von bratze
Die Termine sind im Format (Y-m-d) abgelegt.
Welcher Spaltentyp?
Nutze einen der von deiner DB für Datumsinhalte bereitgestellten Datumstypen.
der Spaltentyp in der db ist "Date" diese werden auch richtig gelesen und geschrieben zB. 2006-03-20 aber ich weiß leider nicht wie ich daraus die Kalenderwoche lese
Dann schau im Manual bei den Datums- und Zeitfunktionen nach.
das habe ich schon und ich weiß auch das
<?php date("W");
?>
die Kalenderwoche liefert aber eben leider bezogen auf das jetzige Datum
oder muß ich die Datumswerte über
<?php
explode()
?>
neu andordnen um dann über die "mktime" Funktion ein datumsformat zu erstellen aus dem ich dann die Kalenderwoche auslesen kann??
WEEK (http://dev.mysql.com/doc/refman/4.0/de/date-and-time-functions.html) ?
Original geschrieben von bratze
neu andordnen um dann über die "mktime" Funktion ein datumsformat zu erstellen aus dem ich dann die Kalenderwoche auslesen kann?? z.b. ... mache einen timestamp aus einem x-beliebigen datum und benutze den 2. parameter von date()
das mit dem timestamp verstehe ich, ich dachte nur es gibt vieleicht eine einfachere methode da ich ja so erst alle datumswerte (sind jetzt rund 800 datensätze) entweder manuell umwandeln muß oder sie live beim auslesen der DB jedesmal umwandeln muß
Original geschrieben von bratze
das mit dem timestep verstehe ich, ich dachte nur es gibt vieleicht eine einfachere methode da ich ja so erst alle datumswerte (sind jetzt rund 800 datensätze) entweder manuell umwandeln muß oder sie live beim auslesen der DB jedesmal umwandeln muß probiers mal mit dem tipp von piep83 ... ich hatte nicht gesehen, dass du die daten aus der db holst.
hmm das mit dem mysql > select WEEK (*****) verstehe ich jetzt leider nicht ....vieleicht sitze ich heute schon zulange vor diesem gerät
kann ich meine DB direckt mit diesen Parametern abfragen ???
RTFM? ist doch sogar verlinkt, du mußt also nur draufklicken.
jahlives 20-03-2006, 17:26 $query = "SELECT daten from tabelle where woche = WEEK($suche)";
Müsste so funzen. Dabei wäre $suche die Nummer der Woche, die der User angezeigt haben will. woche wäre dein Datum in der DB.
Gruss
tobi
p.s. das Manual ist eigentlich immer ein Ausflug wert ;)
falsch verstanden die Kalenderwochen sind nicht gespeichert nur das Datum , ich will ja aus dem datum die "KW" herauslesen.
Glider2k4 20-03-2006, 19:17 WEEK (http://dev.mysql.com/doc/refman/4.0/de/date-and-time-functions.html)
mal gelesen ?
dort steht :
"WEEK(datum), WEEK(datum,erste)
Mit einem einzelnen Argument gibt diese Funktion die Woche für datum im Bereich 0 bis 53 zurück (ja, es kann Anfänge der Woche 53 geben), für Orte, in denen Sonntag der erste Wochentag ist. In der Form mit zwei Argumenten gestattet WEEK() es, festzulegen, ob die Woche am Sonntag oder am Montag beginnt. Die Woche beginnt am Sonntag, wenn das zweite Argument 0 ist, und am Montag, wenn das zweite Argument 1 ist:
mysql> select WEEK('1998-02-20');
-> 7
mysql> select WEEK('1998-02-20',0);
-> 7
mysql> select WEEK('1998-02-20',1);
-> 8
mysql> select WEEK('1998-12-31',1);
-> 53
"
wer lesen kann ist klar im vorteil ;)
ja die geschichte mit dem"WEEK" habe ich genau gelesen nur wie functioniert das im PHP-code, wo die Datumswerte erst aus der dbgelesen werden sollen
mit der manuellen eingabe war das kein Problem
wie kann ich denn in diesem fall in der abfrage die genaue spalte ansprechen in der das datum steht
hmm,
irgendwie verstehe ich nicht wirklich, was du möchtest - darum beziehe ich mich mal auf deinen ausgangspost.
angenommen, du willst nur daten der xten woche:
SELECT ... WHERE WEEK(datumsspalte) = x
beim zweiten parameter des WEEK mußt du nochmal im manual schauen, was du da genau angeben willst.
falls es dir um die rückgabe der wochennummer mittels query geht, vergib einen alias, um per php draufzuzugreifen.
falls es dir um etwas anderes geht, beschreibs einfach nochmal so, daß ich es auch kapiere.
jahlives 20-03-2006, 19:53 @topicstarter
Und wenn du es so machst...
$query = "SELECT daten from tabelle where WEEK(woche) = '$suche'";
Gruss
tobi
Original geschrieben von jahlives
@topicstarter
Und wenn du es so machst...
$query = "SELECT daten from tabelle where WEEK(woche) = '$suche'";
Gruss
tobi
die Kalenderwoche steht nicht in der DB nur das datum in der Spalte "VON" der Tabelle "TERMINE"
ich möchte beim Abfragen des "VON-Wertes" daraud die "KW" ermitteln um diese dann über einen Formularfilter anzusprechen
<?php
require_once('bindung.php');
$termin = sprintf("select * from TERMINE Where ??????");
$result = mysql_query($termin, $bd);
?>
Könntest du jetzt vielleicht endlich mal die Beispielquery mit deinen Daten ausprobieren ...?
WEEK() ist doch genau das, was du haben willst!
Glider2k4 20-03-2006, 20:46 ein bischen eigen iniziative wäre bei sowas durchaus von vorteil......:teach:
$query = "SELECT daten from tabelle where WEEK(woche) = '$suche'";
wass kommt in die Klammer Bei "Week" sorry ich verstehe nicht kommt dorthin die spalte des datum ??
ich probiere hier schon diue ganze zeit also denke ich das ich genug initiative zeige ...ich versteh es im moment halt nicht ist denn so schwer mir einfach zu sagen was in diese klammer WEEK(????) kommt damit ich es verstehe
jahlives 20-03-2006, 21:16 In die Klammer bei WEEK() kommt das Feld rein, dass das Datum deines Datensatzes enthält. Oder willst du etwa die WEEK() auf den Benutzernamen anwenden oder wat ?
Gruss
tobi
ich habe es probiert mit dieserr WEEK-anweisung selbst in PHPMYADMIN kommt nur "NULL" als ergebnis raus wenn ich statt des datums nur den spaltenname meines datums eingebe
Select WEEK('von')
wo liegt denn mein denkfehler
Damit hast du WEEK auf das Literal 'von' angewandt - ich dachte, du wolltest es auf eine Spalte anwenden ...?
die Spalte des Datums heißt "von" das war auch meine frage gestern
zb:
Spalte "von" = 2006-03-21
so un geanu aus diesem wert soll die kw berechnet werden
ich habe es geschaft zumindest im SQL-Aggi von PhpMyAdmin
hier mal die abfrage
$ql='Select WEEK(`von`) From `termine` where `t_id` = "20";
ja die woche habe ich jetzt aber leider werden bei dieser abfrage die termindaten nicht ausgegeben kann ich in der selben abfrage vieleicht über eine JOIN -anweisung die anderen inhalte mit ausgeben oder denke ich grad zu kompliziert
OK die letzte frage hat sich erledigt brauch ja die inhalte in der abfrage nur mit "komma" ergänzen ....smile "das blinde huhn
|