SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.12.2014, 15:59:49
EmtekA EmtekA ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
Geburtstsliste Jahresübergreifend

Hallo Leute!

Ich möchte eine Liste anzeigen, auf der Personen angezeigt werden, die in den kommenden Tagen haben UND in den letzten 5 Tagen Geburtstag hatten. Meine Recherche hat mich zu einem Codeschnippsel geführt, der auch prima die nächsten Geburtstage (Jahresüberfreifend) anzeigt. Aber wie kann ich da einbauen, dass auch die letzten 5 Tage berücksichtig werden?

Code:
$abfrage = "SELECT ID
, telefon
, name
, vorname
, gebdatum
, DAYOFMONTH(gebdatum) AS tag
, MONTH(gebdatum) AS monat
, DATEDIFF(gebdatum + INTERVAL YEAR(CURRENT_DATE) - YEAR(gebdatum) + CASE WHEN DATE_FORMAT(CURRENT_DATE, '%m%d') > DATE_FORMAT(gebdatum, '%m%d') THEN 1 ELSE 0 END YEAR, 
CURRENT_DATE) AS  tage_bis_zum_geburtstag
FROM datum
ORDER
BY tage_bis_zum_geburtstag ASC
LIMIT 15
";
Danke für die Aufmerksamkeit! ;-)
Markus
Mit Zitat antworten
  #2  
Alt 05.12.2014, 16:26:25
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Geburtstsliste Jahresübergreifend

Zitat:
Zitat von EmtekA Beitrag anzeigen
Hallo Leute!

Ich möchte eine Liste anzeigen, auf der Personen angezeigt werden, die in den kommenden Tagen haben UND in den letzten 5 Tagen Geburtstag hatten.
Scha einfach, ob sich das Alter geändert hat. Ich erzeuge mal on-the-fly eine Liste mit Datumsangaben:

Code:
test=*# select *, date_part('year', age(datum)) as alter, age(datum) from (select ('2000-11-25'::date + s * '1day'::interval)::date as datum from generate_Series(1,20) s) liste ;   datum    | alter |           age
------------+-------+--------------------------
 2000-11-26 |    14 | 14 years 9 days
 2000-11-27 |    14 | 14 years 8 days
 2000-11-28 |    14 | 14 years 7 days
 2000-11-29 |    14 | 14 years 6 days
 2000-11-30 |    14 | 14 years 5 days
 2000-12-01 |    14 | 14 years 4 days
 2000-12-02 |    14 | 14 years 3 days
 2000-12-03 |    14 | 14 years 2 days
 2000-12-04 |    14 | 14 years 1 day
 2000-12-05 |    14 | 14 years
 2000-12-06 |    13 | 13 years 11 mons 30 days
 2000-12-07 |    13 | 13 years 11 mons 29 days
 2000-12-08 |    13 | 13 years 11 mons 28 days
 2000-12-09 |    13 | 13 years 11 mons 27 days
 2000-12-10 |    13 | 13 years 11 mons 26 days
 2000-12-11 |    13 | 13 years 11 mons 25 days
 2000-12-12 |    13 | 13 years 11 mons 24 days
 2000-12-13 |    13 | 13 years 11 mons 23 days
 2000-12-14 |    13 | 13 years 11 mons 22 days
 2000-12-15 |    13 | 13 years 11 mons 21 days
(20 rows)
Diese Tabelle nehme ich dann wieder und berechne wer um heute herum +/- 6 Tage Geburtstag hatte:

Code:
test=*# select *, date_part('year', age(datum)) from (select ('2000-11-25'::date + s * '1day'::interval)::date as datum from generate_Series(1,20) s) liste where date_part('year', age(datum-6)) != date_part('year', age(datum)) or date_part('year', age(datum+6)) != date_part('year', age(datum));
   datum    | date_part
------------+-----------
 2000-11-30 |        14
 2000-12-01 |        14
 2000-12-02 |        14
 2000-12-03 |        14
 2000-12-04 |        14
 2000-12-05 |        14
 2000-12-06 |        13
 2000-12-07 |        13
 2000-12-08 |        13
 2000-12-09 |        13
 2000-12-10 |        13
 2000-12-11 |        13
(12 rows)
Mit Zitat antworten
  #3  
Alt 05.12.2014, 16:43:31
EmtekA EmtekA ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
AW: Geburtstsliste Jahresübergreifend

Vielen Dank, werde mal probieren, ich ich das nachstricken kann - auch wenn der Code für mich schwer nachvollziehbar ist :-)
Mit Zitat antworten
  #4  
Alt 06.12.2014, 12:25:04
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Geburtstsliste Jahresübergreifend

Zitat:
Zitat von EmtekA Beitrag anzeigen
Vielen Dank, werde mal probieren, ich ich das nachstricken kann - auch wenn der Code für mich schwer nachvollziehbar ist :-)
Ich seh grad, da ist ein Copy&Paste-Fehler im Bereich "date as datumfrom generate_Series", zwischen datum und from fehlt ein Leerzeichen.
Mit Zitat antworten
  #5  
Alt 06.12.2014, 15:04:11
EmtekA EmtekA ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
AW: Geburtstsliste Jahresübergreifend

Zitat:
Zitat von pguser Beitrag anzeigen
Ich seh grad, da ist ein Copy&Paste-Fehler im Bereich "date as datumfrom generate_Series", zwischen datum und from fehlt ein Leerzeichen.
Das ist mir gar nicht aufgefallen, ich muss erst einmal Grundlagen schaffen um das gepostete zu kapieren *g*
Trotzdem danke!
Mit Zitat antworten
  #6  
Alt 06.12.2014, 19:04:30
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Geburtstsliste Jahresübergreifend

Hi

DATA : `bDayList`
Code:
"name","bddate"
"Heinz","2014-12-01"
"Gustaf","2014-12-02"
"Tina","2014-12-03"
"Bea","2014-12-05"
"Tobi","2014-12-06"
"Peter","2014-12-07"
"Florian","2014-12-08"
"Timo","2014-12-09"
"Alex","2014-12-10"
"Jolene","2014-12-11"
"Petra","2014-12-12"
"Susi","2014-12-13"
Query
Code:
SELECT *, datediff(`bddate`,now()) as daydiff FROM `bDayList` where datediff(`bddate`,now())>-5 and datediff(`bddate`,now())<5 order by daydiff
Result
Code:
"name","bddate","daydiff"
"Gustaf","2014-12-02","-4"
"Tina","2014-12-03","-3"
"Bea","2014-12-05","-1"
"Tobi","2014-12-06","0"
"Peter","2014-12-07","1"
"Florian","2014-12-08","2"
"Timo","2014-12-09","3"
"Alex","2014-12-10","4"
MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #7  
Alt 06.12.2014, 23:05:49
EmtekA EmtekA ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
AW: Geburtstsliste Jahresübergreifend

Zitat:
Zitat von Ckaos Beitrag anzeigen
Hi
DATA : `bDayList`
Code:
...
...
MfG

CKaos


Herzlichen Dank!!
Also: ich habe das jetzt mal so eingebaut:
Code:
$abfrage = "SELECT *, datediff(`gebdatum`,now()) as daydiff FROM `datum` where datediff(`gebdatum`,now())>-15 and datediff(`gebdatum`,now())<15 order by daydiff";
(datum die Tabelle, gebdatum die Geburtsdaten)
Leider bekomme ich aber keine Ergebnisse ausgeworfen - allerdings auch keine Fehlermeldung.
Noch etwas: Ich bin absoluter Anfänger, was mysql angeht, aber so wie ich das erkenne, ist so keine jahresübergreifende Abfrage möglich, oder?
Mit Zitat antworten
  #8  
Alt 08.12.2014, 10:19:33
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Geburtstsliste Jahresübergreifend

Hi,

Zitat:
aber so wie ich das erkenne, ist so keine jahresübergreifende Abfrage möglich, oder?
Die Abfrage interessiert keine Jahre, sie misst den Tagesunterschied zwischen zwei
Daten.

Womit testest du die Abfrage?
phpmyadmin, auf der console oder per PHP oder ... ?
Hat deine erste gepostete Abfrage funktioniert?

Kürze die Abfrage, also lass das where weg, was kommt dann?

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #9  
Alt 08.12.2014, 10:30:18
EmtekA EmtekA ist offline
Anfänger
 
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
AW: Geburtstsliste Jahresübergreifend

Danke für die Antwort!
Ich teste das mit eine selbstgestricktem Script. Ohne Where bekomme ich Ergebnisse angezeigt. (Auf die Idee hätte ich auch selber kommen können...)

Da mir aber alle Geburtstage angezeigt werden, scheint etwas mit der were-Einschränkung Probleme zu machen.
Mit Zitat antworten
  #10  
Alt 08.12.2014, 13:58:52
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Geburtstsliste Jahresübergreifend

Hi,

dann zeig dein Ergebnis inklusive daydiff doch mal.

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:00:29 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt