Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Eventkalendar“

Smax

Aktives Mitglied

Hallo,

ich habe ein Problem und zwar will ich einen Eventkalendar basteln der ein Datum einen Titel eine Beschreibung und Preis des Events ausgeben soll. Dazu habe ich in in MySQL schon eine tabelle events mit 5 Spalten angelegt.
1.Spalte ID mit Typ int, 2.Spalte date mit typ int, 3.Spalte title mit Typ varchar, 4.Spalte description mit Typ text und 5.Spalte price mit Typ varchar.
Die Ausgabe soll dann nur erfolgen wenn das Event nicht schon abgelaufen ist.
Hab dann das Datum z.b. 1.1.2009 in timestamp umgeformt.

Meine php-Abfrage lautet so:
Code:
$timestamp = time();
		
		$abfrage = "SELECT * FROM events WHERE date > $timestamp";
		$ergebnis = mysql_query($abfrage);
		
		while($row = mysql_fetch_object($ergebnis))
			{
			echo "$row->id <br>";
			echo "$row->date <br>";
			echo "$row->title <br>";
			echo "$row->description <br>";
			echo "$row->price <br><br><br>";
			}

Soweit funktioniert es schon mal dass nur die events augegeben werden die nicht abgelaufen sind aber wie bekomme ich das Datum umformatiert also z.b. Dienstag, 01.01.2009 ???

Wer kann helfen?
Kenn mich in php leider noch nicht gut aus...also hab erst damit angefangen


Danke
 

Smax

Aktives Mitglied

AW: Eventkalendar

Hallo,

ok die Funktion habe ich gefunden aber wie mach ich das weil ich gebe die einzelnen Datumswerte ja über die while-Schleife aus... mein Problem ist dass ich nciht verstehe wo ich das einbauen muss um also von dem integer bzw. timestamp z.b. das Format Dienstag, 12.05.2009 zu bekommen?

Muss ich die Werte da erst nochmal zwischenspeichern?
 
P

purzel

Guest

AW: Eventkalendar

Die Frage ist erstmal in welchen Format hast du das in deiner DB gespeichert? Unix-Timestamp?

du kannst im SQL-Querie angeben das er dir das in deinem gewünschten Format ausgibst du wandelst es mittels der date()-Funktion um.
 

Smax

Aktives Mitglied

AW: Eventkalendar

Hm ja das ist die Frage das feld date in der db welches format soll ich dem geben und muss ich dann jedes datum dass ich eintragen will erst convertieren?
 
P

purzel

Guest

AW: Eventkalendar

Also ich speicher ein Datum im Unix-Timestamp in der Datenbank. ( -> )

Du kannst dann das Datum aus der Datenbank via SQL-Abfrage direkt in dein gewünschtes Format ausgeben lassen oder danach via date()-Funktion umkonvertieren.

SQL-Abfrage aus deinem Beispiel mit Datum:
PHP:
$abfrage = "SELECT *,DATE_FORMAT(news_zeit,'%l, %d.%m.%Y') as zeit FROM events WHERE date > ".$timestamp." ";
(Dabei ist dann die Ausgabe $row->zeit dein gewünschtes Format und $row->date Unix-Timestamp)

date()-Funktion
PHP:
echo date("l, d.m.Y",$row->date);
Entsprechende date()-Funktion kannst dir dir auf den genannten Link selbst noch näher anschauen. Sowie DATE_FORMAT in der SQL-Abfrage (Hinweis: für MySQL 5.1).
 

Smax

Aktives Mitglied

AW: Eventkalendar

Hallo,

di abfrage verstehe ich nicht ganz, was ist news_zeit und as zeit?
Bzw. was heißt das mit den punkten am ende?
 

sokie

Mod | Web

AW: Eventkalendar

Hallo smax,

zunächst brauchst du die Namen der Wochentage in Deutsch, die kann die funktion nicht selbst generieren.
die legst du zunächst in ein array:
Code:
$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
über die date() funktion kann man mit dem parameter "w" den Tag der woche als zahl ausgeben (Sonntag ist 0, montag 1, usw.
diesen Wert nimmt man für die Ausgabe als index für das Array $tage.

Code:
echo $tage[date("w",$timestamp)]
gibt den Wochentag derin timstampübergebenen Zeit aus.

die datumsausgabe im format DD.MM.YYYY erzeugt die funktion date mit den entsprechenden Parametern :
Code:
echo $tage[date("w",$timestamp)].", ".date("d.m.Y",$timestamp);
-ps wobei sich hier $timestamp auf den in $row->date gespeicherten wert bezieht
 
Zuletzt bearbeitet:

Smax

Aktives Mitglied

AW: Eventkalendar

Hallo,

also jetzt komm ich durcheinander:
Momentan sieht mein Code so aus:
Code:
		$timestamp = time();
		$tage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
		
		
		
		
	//	$abfrage = "SELECT * FROM events WHERE date > $timestamp";
	//	$abfrage = "SELECT * FROM events WHERE date >= CAST(NOW() as DATE)";
		$ergebnis = mysql_query($abfrage);
		
		while($row = mysql_fetch_object($ergebnis))
			{
			echo "$row->id <br>";
			echo "$row->date <br>";
			echo "$row->title <br>";
			echo "$row->description <br>";
			echo "$row->price <br><br><br>";
			}
				
		mysql_free_result($ergebnis);
		?>

Dem feld date in der db hab ich das format timestamp zugewiesen is das korrekt?
Ich glaube lediglich die Abfrage stimmt nicht...?
 
P

purzel

Guest

AW: Eventkalendar

Hallo,

di abfrage verstehe ich nicht ganz, was ist news_zeit und as zeit?
Bzw. was heißt das mit den punkten am ende?

Äh ups das war ein kleiner Fehler. Das sollte sollte die Spalte sein. also bei dir "date". :rolleyes:

Nachtrag:

Timestamp ist Format: 0000-00-00 00:00:00
mach es als init(11). Dann hole es normal aus der Datenbank wie du zuerst schriebst. und wandelst dein Unix-Timestamp um wie der Kollege schrieb, das dein "Wochentag" in Deutsch ist.


Also:

PHP:
$timestamp = time();
$tage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
        
$abfrage = "SELECT * FROM events WHERE date > $timestamp";
$ergebnis = mysql_query($abfrage);
        
while($row = mysql_fetch_object($ergebnis))
{
    echo "$row->id <br>";
    echo $tage[date("w",$row->date)].", ".date("d.m.Y",$row->date)."<br>";
    echo "$row->title <br>";
    echo "$row->description <br>";
    echo "$row->price <br><br><br>";
}
                
mysql_free_result($ergebnis);
 
Zuletzt bearbeitet von einem Moderator:

Smax

Aktives Mitglied

AW: Eventkalendar

So jetzt denk ich klappt es:

Code:
		$timestamp = time();
		$tage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
		
		$abfrage = "SELECT * FROM events WHERE date >= $timestamp";
		$ergebnis = mysql_query($abfrage);
		
		while($row = mysql_fetch_object($ergebnis))
		{
			echo "$row->id <br>";
			echo $tage[date("w",$timestamp)].", ".date("d.m.Y",$row->date)."<br>";
			echo "$row->title <br>";
			echo "$row->description <br>";
			echo "$row->price <br><br><br>";
		}

Eine Frage noch, hab in der db ein Event mit heutigen Datum eingetragen nur das wird nicht ausgegeben...Warum?
Danke purzel für deine Hilfe!
 
P

purzel

Guest

AW: Eventkalendar

$timestamp in deiner SQL-Abfrage = JETZT. Deine Abfrage lautet ja Hole alle Daten aus der Tabelle events die grösser sind als $timestamp.

Also wenn du events in deiner Datenbank abspeicherst sollten die alle in der Zukunft ja liegen. Wie du das machst, hilft dir .

Beispiel du hast ein Event am 19.08.2008 um 20:00 Uhr:

PHP:
$deinevent = mktime(20, 0, 0, 8, 19, 2008);
$deinevent = der Unix-Timestamp von deinem Event. Näheres auf der genannten Seite. :)

Alles Ok soweit und gecheckt mit dem Datum/Zeit-Funktionen mit PHP? :rolleyes:
 

Smax

Aktives Mitglied

AW: Eventkalendar

@purzel:

aber ich hab doch in der Abfrage date >= $timestamp geht das denn nicht?
 
Zuletzt bearbeitet:
P

purzel

Guest

AW: Eventkalendar

du hast ein Event in der Datenbank 17.8.2008 12:00 Uhr die ist aber schon längst vorbei daher wird die nicht mehr dann erscheinen

>= heißt ja grösser oder ist gleich.

Wenn du aber bei deiner Abfrage alle Ergebnisse haben willst vom heutigen Tag gesamten Tag dann muss $timestamp anders sein, sprich auf 17.08.2008 00:00 Uhr. Das kannst du mittels mktime() realisieren:

PHP:
$timestamp = mktime(0,0,0,date("m"),date("d"),date("Y"));
 
Zuletzt bearbeitet von einem Moderator:

sokie

Mod | Web

AW: Eventkalendar

Code:
echo $tage[date("w",[U]$row->date)[/U]].", ".date("d.m.Y",$row->date)."<br>";
so müsste diese ausgabe aussehen
 

Smax

Aktives Mitglied

AW: Eventkalendar

@purzel:

Ja ok das hab ich jetzt verstanden, Danke echt super jetzt klappt es nämlich :)
Mit der mktime-funktion hab ich also gesagt der Ausgangszeitpunkt ist z.b. heute 17.08.2008 00:00 oder? und daher sind alle Events dieses Tage auch noch gelistet?

@sokie:
Du hattest recht musste geändert werden damit die Wochentage richtig angezeigt wurden... oder das meinstest du ja?


Bin immer wieder begeistert von dem support hier! Danke
 

Smax

Aktives Mitglied

AW: Eventkalendar

Noch eine Frage und zwar wenn ich jetzt eine Seite mache bei der der User ein Event eintrgaen kann in welcher Form muss er dann das Datum eintragen? Bzw. wie würdet ihr das machen?

Ah und noch eine: momentan geb ich ja alles per Echo aus kann ich denn die Daten auch anders z.b. in einer Tabelle oder so ausgeben lassen und wie kann ich dann diese formatieren also z.b. die schriftart, größe und hintergrundfarbe?

danke
 

sokie

Mod | Web

AW: Eventkalendar

Noch eine Frage und zwar wenn ich jetzt eine Seite mache bei der der User ein Event eintrgaen kann in welcher Form muss er dann das Datum eintragen? Bzw. wie würdet ihr das machen?



danke

die User des Kalenders werden ihre Dten per Formular eingeben müssen.
Den Event-Zeitpunkt wird man wohl am einfachsten aufgliedern
tag - monat - Jahr
Stunde und Minute
das heisst 5 Eingabefelder für die Zeit, in php zusammensetzen, timestamp erzugen und in die DB schreiben.

Ah und noch eine: momentan geb ich ja alles per Echo aus kann ich denn die Daten auch anders z.b. in einer Tabelle oder so ausgeben lassen und wie kann ich dann diese formatieren also z.b. die schriftart, größe und hintergrundfarbe?[/qoute]

in der Ausgabedatei kannst du die Ausgabe zB in einen <P> tag setzen:
Code:
...
html-code...
...
<p><? echo $meineAusgabe ?>
...
oder direkt mit den tags versehen
Code:
echo "<p>".$tage[date("w",$row->date)].", ".date("d.m.Y",$row->date)."</p>";
 

sokie

Mod | Web

AW: Eventkalendar

danke

die User des Kalenders werden ihre Dten per Formular eingeben müssen.
Den Event-Zeitpunkt wird man wohl am einfachsten aufgliedern
tag - monat - Jahr
Stunde und Minute
das heisst 5 Eingabefelder für die Zeit, in php zusammensetzen, timestamp erzugen und in die DB schreiben.

Ah und noch eine: momentan geb ich ja alles per Echo aus kann ich denn die Daten auch anders z.b. in einer Tabelle oder so ausgeben lassen und wie kann ich dann diese formatieren also z.b. die schriftart, größe und hintergrundfarbe?[/qoute]

in der Ausgabedatei kannst du die Ausgabe zB in einen <P> tag setzen:
Code:
...
html-code...
...
<p><? echo $meineAusgabe ?></p>
...
oder direkt mit den tags versehen
Code:
echo "<p>".$tage[date("w",$row->date)].", ".date("d.m.Y",$row->date)."</p>";
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.188
Beiträge
2.582.071
Mitglieder
67.257
Neuestes Mitglied
Can Ergin
Oben