php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.03.2011, 11:38  
Neuer Benutzer
 
Registriert seit: 09.02.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
Fuxxy befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Problem bei Tag-genauer Ausgabe von Daten aus Datenbank

Hallo Leutz.
Ich möchte auf der Startseite einer Kantinen-Webseite die Mahlzeiten von heute und ab 14 Uhr die von morgen anzeigen lassen. Da die Kantine nur von Mo-Fr geöffnet ist, soll ab Freitag 14 Uhr dann die Mahlzeit von Montag angezeigt werden.
Ich habe die Abfragen wegen der Uhrzeiten und den Wochentagen schon erstellt, allerdings bekomme ich es nicht hin, die richtigen Mahlzeiten aus der Datenbank zu der richtigen Zeit auszugeben.

Hier mal ein bissel Quell-Code zur Übersicht:
PHP-Code:
// Überprüfung der Uhrzeit und Wochentage

//$now = time();                               // Jetzt 
$now mktime(145959412011);         // erstelltes Datum zum Testen

$stunden date('H'$now) * 3600;
$minuten date('i'$now) * 60;
$sekunden date('s'$now);
$sekunde $stunden $minuten $sekunden;

if(
$sekunde >= 3600*&& $sekunde 3600*14){ // wenn Vormittag
    
if(date("N"$now) == 6){                 // prüfe, ob Samstag
        
$essen "Montag gibt es:<br>";      
    }elseif(
date("N"$now) == 7) {           // prüfe, ob Sonntag
        
$essen "Morgen gibt es:<br>";
    }else{
        
$essen "Heute gibt es:<br>";
    }
}else{                                        
// wenn Nachmittag
    
if(date("N"$now) == 5){                 // prüfe, ob Freitag
        
$essen "Montag gibt es:<br>";
    }elseif(
date("N"$now) == 6){            // prüfe, ob Samstag
        
$essen "Montag gibt es:<br>";
    }elseif(
date("N"$now) == 7) {           // prüfe, ob Sonntag
        
$essen "Morgen gibt es:<br>";
    }else{
        
$essen "Morgen gibt es:<br>";
    }
}

echo 
$essen
Zum Schreiben der Daten aus der Datenbank benutze ich ein foreach:
PHP-Code:
// Meine Idee bisher
// Gibt das Essen vom heutigen Tag aus

$select $mdl->select()            // $mdl ist die Connection zur Datenbank
        
->from($mdl, array("*"))
        ->
where("cw >= '".$Kw1."' AND cw <= '".$Kw2."'")
        ->
order("datestamp ASC");

$res $mdl->fetchAll($select);


echo 
$essen;

foreach(
$res as $key => $value){

    if(
date("d.m.Y"$value['datestamp']) == date("d.m.Y"$now)){
        echo 
"- ".$value['item']."<br>";
    }

Ich hänge da jetzt schon seit fast 2 Tagen dran und ich komme einfach nicht weiter.
Würde mich über jede hilfreiche Idee oder Tip freuen.

Danke im Voraus
Fuxxy ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.03.2011, 12:00  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.164
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Wo bestimmst du denn $Kw1 und $Kw2?

edit: Und wie sieht die Tabelle in der Datenbank aus? (Dump?)
__________________
Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)
dennis81 ist offline   Mit Zitat antworten
Alt 31.03.2011, 12:14  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Das Umrechnen der Uhrzeit in Sekunden ist m.E. überflüssig:

PHP-Code:
//$now = time();                               // Jetzt 
$now mktime(145959412011);         // erstelltes Datum zum Testen 


$stunde_jetzt date('H',$now);
$datum_speiseplan date('Y-m-d',$now);

if ( 
$stunde_jetzt 13 ) {
    
    
// Datum von morgen
    
$datum_speiseplan date('Y-m-d',strtotime("+1 day"));
    
// Ist heute Freitag?
    
if ( date('w',$now) == ) {
        
// Dann 2 Tage weiter bis Montag
        
$datum_speiseplan date('Y-m-d',strtotime("next Monday"));
    }

__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 31.03.2011, 12:20  
Neuer Benutzer
 
Registriert seit: 09.02.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
Fuxxy befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dennis81 Beitrag anzeigen
Wo bestimmst du denn $Kw1 und $Kw2?

edit: Und wie sieht die Tabelle in der Datenbank aus? (Dump?)
Klar. Hatte ich vergessen, sorry.

PHP-Code:
$Kw1 date("W"time());
$Kw2 date("W"time())+1
Tabellen-Name: plan
Spalten-Namen:

id (int) -> ID
cw (int) -> Kalenderwoche
datestamp (varchar) -> Zeitstempel
item (varchar) -> Mahlzeit
price (varchar) -> Preis

Geändert von Fuxxy (31.03.2011 um 12:38 Uhr).
Fuxxy ist offline   Mit Zitat antworten
Alt 31.03.2011, 12:28  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

und was ist das Format der Datenbank-Spalten (zumindest für den interessanten Eintrag datestamp -> Zeitstempel) ? DateTime oder Integer und du speicherst nen Unix-Timestamp drin ab ?
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 31.03.2011, 12:38  
Neuer Benutzer
 
Registriert seit: 09.02.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
Fuxxy befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von eagle275 Beitrag anzeigen
und was ist das Format der Datenbank-Spalten (zumindest für den interessanten Eintrag datestamp -> Zeitstempel) ? DateTime oder Integer und du speicherst nen Unix-Timestamp drin ab ?
Ich habs oben editiert.
Fuxxy ist offline   Mit Zitat antworten
Alt 31.03.2011, 13:02  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Datumsangaben in VARCHAR abzulegen, ist Unfug.
Schau dir die MySQL-Datumstypen im Manual an.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 31.03.2011, 15:39  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.870
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

PHP-Code:
// Überprüfung der Uhrzeit und Wochentage 

//$now = time();                               // Jetzt  
$now mktime(145959412011);         // erstelltes Datum zum Testen 

$stunden date('H'$now) * 3600
$minuten date('i'$now) * 60
$sekunden date('s'$now); 
$sekunde $stunden $minuten $sekunden

if(
$sekunde >= 3600*&& $sekunde 3600*14){ // wenn Vormittag 
    
if(date("N"$now) == 6){                 // prüfe, ob Samstag 
        
$essen "Montag gibt es:<br>";       
    }elseif(
date("N"$now) == 7) {           // prüfe, ob Sonntag 
        
$essen "Morgen gibt es:<br>"
    }else{ 
        
$essen "Heute gibt es:<br>"
    } 
}else{                                        
// wenn Nachmittag 
    
if(date("N"$now) == 5){                 // prüfe, ob Freitag 
        
$essen "Montag gibt es:<br>"
    }elseif(
date("N"$now) == 6){            // prüfe, ob Samstag 
        
$essen "Montag gibt es:<br>"
    }elseif(
date("N"$now) == 7) {           // prüfe, ob Sonntag 
        
$essen "Morgen gibt es:<br>"
    }else{ 
        
$essen "Morgen gibt es:<br>"
    } 

Hübsch. Aber warum die Finger brechen ?

PHP-Code:
$heute = new DateTime();

$freitag = new DateTime("friday this week");
$samstag = new DateTime("saturday this week");
$sonntag = new DateTime("sunday this week");

$aktuelleStunde = (integer)$heute->format("H");

if ( 
$aktuelleStunde 14 ) { // vor 14 uhr
   
if ( $heute == $samstag $essen "Montag gibt es:<br />";
   elseif ( 
$heute == $sonntag $essen "Morgen gibt es:<br />";
   else 
$essen "Heute gibt es:<br />";
}
else { 
// nach 14 uhr
   
if ( $heute == $freitag $essen "Montag gibt es:<br />";
   elseif ( 
$heute == $samstag $essen "Montag gibt es:<br />";
   elseif ( 
$heute == $sonntag $essen "Morgen gibt es:<br />";
   else 
$essen "Morgen gibt es:<br />";

Wozu also noch großartig das Datum berechnen ?

Lesestoff:
- http://de3.php.net/manual/en/class.datetime.php
- http://de3.php.net/manual/en/datetime.construct.php
- http://de3.php.net/manual/en/datetime.diff.php ( Example #2 )

Ansonsten: Wie ChrisB schon schrieb, hinterleg ein Datum auch als Datum ( Date ) in der Datenbank. Du kannst dann sogar in SQL-Statements mit >, < und >= sowie <= arbeiten ähnlich wie im beispiel #2
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   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
Daten aus PSQL Datenbank in MySQL Datenbank Soulstormer Datenbanken 5 01.03.2011 17:18
Übergabe von Daten aus Datenbank deimos18 PHP Einsteiger 3 01.03.2011 14:22
[Erledigt] alle Daten aus einem Array mit einer (Fremd-)ID in Datenbank eintragen tmaey Datenbanken 3 21.01.2011 20:46
Komplette Daten aus Datenbank in editierbarer Form ausgeben zzzboard PHP Tipps 2010 1 21.08.2010 13:29
Daten von Website abgreifen und in Datenbank einfügen loci Datenbanken 10 08.02.2010 17:11
Class Ausgabe Problem wk-moray PHP-Fortgeschrittene 6 12.02.2008 10:06
Daten in Datenbank übergeben Bebre PHP Tipps 2008 2 11.02.2008 11:41
While schleife mit Datenbank in ein Dropdown Feld (Umlaut Problem) kintaro PHP Tipps 2008 6 28.08.2007 19:11
problem mit ausgabe von daten phyton Datenbanken 3 02.07.2007 17:44
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Daten aus Datenbank sinnvoll speichern PHP Tipps 2006 15 02.02.2006 19:54
[Erledigt] Problem mit Eintragung in die Datenbank Datenbanken 12 06.01.2006 10:20
Daten übertragen von datenbank zu datenbank PHP Tipps 2005-2 6 20.06.2005 13:19
Daten aus Datenbank auslesen Datenbanken 2 01.09.2004 01:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mahlzeiten datum, aus datenbank daten auslesen nur vom heutigen datum, wochentag datum aus datenbank php, php daten vom heutigen tag anzeigen, ausgabe daten aus datenbank

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