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 Bewertung: Bewertung: 1 Stimmen, 4,00 durchschnittlich.
Alt 29.03.2011, 11:41  
Benutzer
 
Registriert seit: 25.01.2011
Beiträge: 54
PHP-Kenntnisse:
Anfänger
Eisenbahner kann nur auf Besserung hoffen
Standard [Erledigt] Datenbank abfrage nur aktuell Woche,nur vergangene woche

Ich experiemntiere schon 4 Tage ich bekomme das nicht ganz hin
wer kann mir helfen

Ich benötige eine Datenbankausgabe NUR für die aktelle Woche minus 1Woche (Vorwoche) wo die abfrage stattfindet
Der Code funktioniert nicht ganz
PHP-Code:
$DatV date("Y-m-d"time()-(date("N")+6)*(60*60*24));
    
$datV=explode("-",$DatV);
    
$DatB date("Y-m-d"time()-(7-date("N")-1)*(60*60*24));
    
$datB=explode("-",$DatB); 
Weiters benötige ich das auch für die aktuelle Woche
Danke
Eisenbahner ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.03.2011, 11:53  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
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

Warum finger brechen wenn man die noch brauch ?

PHP-Code:
$helper = new DateTime();
$now $helper->format("Y-m-d");

$helper->modify("-7 days");
$past $helper->format("Y-m-d"); 
http://de.php.net/manual/en/class.datetime.php
http://de.php.net/manual/en/datetime.modify.php
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 29.03.2011, 11:56  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.730
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Oder auch:

Code:
mysql> SELECT NOW(), DATE_SUB(NOW(), INTERVAL 1 WEEK), DATE_SUB(NOW(), INTERVAL 2 WEEK);
+---------------------+----------------------------------+----------------------------------+
| NOW()               | DATE_SUB(NOW(), INTERVAL 1 WEEK) | DATE_SUB(NOW(), INTERVAL 2 WEEK) |
+---------------------+----------------------------------+----------------------------------+
| 2011-03-29 11:55:04 | 2011-03-22 11:55:04              | 2011-03-15 11:55:04              |
+---------------------+----------------------------------+----------------------------------+
- http://dev.mysql.com/doc/refman/5.1/...ction_date-add

Edit: Wobei, … So wirklich die vergangene/aktuelle Woche liefert das nicht. Mehr die „7 Tage“.
__________________
Blog | Buch | Kaloa
mermshaus ist gerade online   Mit Zitat antworten
Alt 29.03.2011, 11:59  
Benutzer
 
Benutzerbild von m0dpad
 
Registriert seit: 20.03.2011
Beiträge: 49
PHP-Kenntnisse:
Fortgeschritten
m0dpad befindet sich auf einem aufstrebenden Ast
Standard

Sowas macht man eigentlich direkt bei der Datenbankabfrage.
http://dev.mysql.com/doc/refman/5.1/...ction_date-add

edit:// Zu langsam.

edit2:// Okay stimmt hab es falsch verstanden, man will ja damit nicht immer genau 2 ganze Wochen abfragen.
__________________
Staticfloat

Geändert von m0dpad (29.03.2011 um 12:13 Uhr).
m0dpad ist offline   Mit Zitat antworten
Alt 29.03.2011, 12:08  
Benutzer
 
Registriert seit: 25.03.2011
Beiträge: 52
PHP-Kenntnisse:
Fortgeschritten
Maxefix befindet sich auf einem aufstrebenden Ast
Standard

Hier eine Quick'n'Dirty-Lösung per PHP.

PHP-Code:
$from date('d-m-Y'mktime (000date('n'), date('j') - date('w') - 6));
$sql "SELECT * FROM table WHERE date > '$from'"
Erklärung: Über mktime() erzeug ich den Timestamp vom Montag der letzten Woche. Dazu nehm ich den aktuellen Tag (29), ziehe davon den "Wochentag" ab (Dienstag entspricht 2) und geh dann nochmal eine Woche zurück (eigentlich 7 Tage, aber da date('w') am Montag 1 zurückgibt - also immer 1 mehr als nötig - müssen nur 6 Tage abgezogen werden).

Damit MySQL was damit anfangen kann, wandel ich den Timestamp mit date() noch um.

Ob das direkt mit MySQL geht kann ich nicht mit Gewissheit sagen. Denke eher nicht, da das ja etwas Rechenarbeit ist. Vorteil von der PHP-Lösung: Die SQL-Abfrage ist eine Woche lang die selbe -> Der Query-Cache kann optimal arbeiten.

Gruß,
Max

Geändert von Maxefix (29.03.2011 um 12:12 Uhr).
Maxefix ist offline   Mit Zitat antworten
Alt 29.03.2011, 12:19  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
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

falls du den montag der letzten woche willst:

PHP-Code:
$helper = new DateTime();
$now $helper->format("Y-m-d");

$helper->modify("monday this week");
$helper->modify("-7 days");

$past $helper->format("Y-m-d"); 
Ich persönlich bevorzuge den Umgang mit DateTime, da ich im quellcode sofort sehe "wann" und nicht erst die Werte in einer Kalkulation zusammenrechnen muss. ( einfacher zu lesen - zumindest für mich persönlich )
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 29.03.2011, 12:24  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.730
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Datum des Montags dieser Woche (SQL-Version):

Code:
DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY)
- http://stackoverflow.com/questions/1...t-mondays-date

Für die Montage vorheriger Wochen dann eben noch mal ein DATE_SUB mit INTERVAL 1 WEEK drauf.
__________________
Blog | Buch | Kaloa
mermshaus ist gerade online   Mit Zitat antworten
Alt 29.03.2011, 12:25  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

date/strtotime.
PHP-Code:
$offsetToMonday date('w'); // current day of week (0=Sunday, 1=Monday,..)
$offsetToMonday--; // calculate the offset (in days) from today to the start of the week (Monday)
if ($offsetToMonday 0// on sundays the offset will become negative, so adjust it
  
$offsetToMonday 6;

// today - offsetToMonday = Start date
$startDate strtotime('-'.$offsetToMonday.' days');
// Start date + 7 (6) days = End date
$endDate strtotime('+ 6 days'$startDate);

echo 
date('d.m.Y'$startDate);
echo 
date('d.m.Y'$endDate); 
edit: date('N') hab ich grad erst bemerkt.. dann gehts noch einfacher
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

Geändert von lstegelitz (29.03.2011 um 12:28 Uhr).
lstegelitz ist offline   Mit Zitat antworten
Alt 29.03.2011, 12:46  
Benutzer
 
Registriert seit: 25.03.2011
Beiträge: 52
PHP-Kenntnisse:
Fortgeschritten
Maxefix befindet sich auf einem aufstrebenden Ast
Standard

@tr0y: OK, ist natürlich deutlich schöner zu lesen. Und schneller ist es erstaunlicherweise auch noch.

@mermshaus: MySQL kann irgendwie mehr als man immer denkt. Allerdings hebeln die Funktionen natürlich den Query-Cache aus. Sofern man nicht selbst das Ergebnis zwischenspeichert kann das problematisch werden.

Gruß,
Max
Maxefix ist offline   Mit Zitat antworten
Alt 29.03.2011, 13:03  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.730
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Zitat:
Zitat von Maxefix
Allerdings hebeln die Funktionen natürlich den Query-Cache aus.
Sehr guter Hinweis. Das Datum sollte wenn per PHP in die Query geschrieben werden.

- http://dev.mysql.com/doc/refman/5.1/...operation.html
__________________
Blog | Buch | Kaloa
mermshaus 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
Datenbank Abfrage einer Spalte MotteHH Datenbanken 9 12.01.2011 20:04
[Erledigt] Abfrage eines voher festgelegeten Objektes in einer Datenbank marckannisgut PHP Tipps 2010 21 06.11.2010 17:03
Datenbank Abfrage läuft sich tot :( dasdingo Datenbanken 9 22.02.2010 17:03
dynamische sql datenbank abfrage patrick146 JavaScript, Ajax und mehr 7 06.01.2010 16:10
if abfrage aus datenbank Dragan PHP Tipps 2008 12 17.06.2008 07:19
[Erledigt] Datenbank abfrage Potterfans PHP Tipps 2008 4 12.06.2008 22:37
OOP - Datenbank Abfrage ... 7Style PHP Tipps 2008 5 13.02.2008 13:28
Abfrage einer Datenbank PHP Tipps 2005 18 15.05.2005 13:15
[Erledigt] MYSQL Abfrage (mit Optimierter Datenbank) -> PhP Datenbanken 2 02.03.2005 18:50
Datenbank nach Woche abfragen! Boennchen Datenbanken 13 15.02.2005 10:37
Abfrage von SQL Datenbank geht nicht PHP Tipps 2004-2 3 15.11.2004 21:29
Datenbank Abfrage mit Unterseiten pro Eintrag PHP Tipps 2004 6 14.10.2004 16:05
[Erledigt] Login - User datenbank abfrage Datenbanken 7 18.09.2004 20:17
Datenbank abfrage als Link ausgeben! stefan-miti PHP Tipps 2004 2 06.09.2004 23:12
Hilfe bzgl. Datenbank abfrage PHP Tipps 2004 5 24.06.2004 18:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql aktuelle woche, sql abfrage woche, php sql letzte woche abfragen, datenbankabfrage datum, php aktuelle woche abfragen, mysql aktuelle kalenderwoche, mysql datum eine woche, mysql abfrage der letzten 52 wochen, mysql daten aktuelle woche, php datenbankabfrage nach datum, aktuelle woche mysql, aktuelle woche php, php aktuelle woche, query abfrage letzte woche, mysql letyte 2 wochen, wochenzahl mysql, diese woche abfrage code, sql datum nach woche abfragen, sql abfrage nach aktueller woche, mysql montag in der aktuellen woche

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