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 ::

Webseiten professionell erstellen

Webseiten professionell erstellen 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)

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 24.12.2009, 11:41:38
bernhard3105 bernhard3105 ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 66
Datumsvergleich innerhalb 7 Tagen

Hallo SQL-Master.

Ich bin mir einigermaßen sicher, dass ihr Profis eine schöne, saubere Lösung für mein kleines SQL-Problem habt, sonst würde ich mir da sicher was zusammen murksen:

In meiner Tabelle gibt es ein
Feld 'vondatum',
Typ Variant,
Daten = Datums im UNIX-Zeitstempel.

Meine Abfrage soll mir auf alle Fälle den nach aktuellem Tagesdatum nächsten Datensatz liefern
oder
die nächsten BEIDEN Datensätze falls das Datum von Satz1 zu Satz2 nicht mehr als 7 Tg auseinanderliegt.

Ich hoffe, ich habe mich klar genug ausgedrückt.

Klar geht das einfach mit '...order by vondatum limit 2', aber dann weiß ich noch nicht, ob beide Sätze nur maximal 7 Tage auseinanderliegen.

Vielleicht habt ihr ja was Schönes für mich.
Ansonsten wünsche ich Euch auf jeden Fall schon
Frohe Weihnachten
und einen Guten Rutsch.

Bernhard aus Schwerte
Mit Zitat antworten
  #2  
Alt 29.12.2009, 09:24:02
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Datumsvergleich innerhalb 7 Tagen

Hi

was ist Variant?
Zitat:
In meiner Tabelle gibt es ein
Feld 'vondatum',
Typ Variant,
naja gehe davon aus das die Spalte zu
Zitat:
Daten = Datums im UNIX-Zeitstempel.
richtig formatiert ist.

Code:
select * from tabelle where daten>=UNIX_TIMESTAMP(CURDATE()) and daten<=UNIX_TIMESTAMP(date_add(CURDATE(),INTERVAL 7 DAY)) limit 2
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
  #3  
Alt 30.12.2009, 09:20:41
bernhard3105 bernhard3105 ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 66
AW: Datumsvergleich innerhalb 7 Tagen

Danke für die Antwort. Ich hau da manchmal Visual Basic, SQL und php durcheinander.
Ich speichere den UNIX-Timestamp bisher in ein varchar-Feld der SQL-Datenbank.
Ist das gut so oder gibt es da sinnvollere Datentypen für die Spalte, die dann bessere Auswertungen des Datums ermöglichen ??
Mit Zitat antworten
  #4  
Alt 02.01.2010, 04:10:20
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Datumsvergleich innerhalb 7 Tagen

Zitat:
Zitat von bernhard3105 Beitrag anzeigen
Ich speichere den UNIX-Timestamp bisher in ein varchar-Feld der SQL-Datenbank.
Ist das gut so oder gibt es da sinnvollere Datentypen für die Spalte, die dann bessere Auswertungen des Datums ermöglichen ??
Ja. Datums- und Zeittypen
Mit Zitat antworten
  #5  
Alt 02.01.2010, 10:53:19
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Datumsvergleich innerhalb 7 Tagen

Zitat:
Zitat von bernhard3105 Beitrag anzeigen
Ich speichere den UNIX-Timestamp bisher in ein varchar-Feld der SQL-Datenbank.
Ist das gut so oder gibt es da sinnvollere Datentypen
abgesehen von urvaters hinweis wäre INT (integer) zu nennen, wenn man nicht zuviel logik auf das dbms auslagern möchte. der speicherbedarf dieses datentyps ist darüber hinaus sehr klein.

cx
Mit Zitat antworten
  #6  
Alt 02.01.2010, 12:34:21
bernhard3105 bernhard3105 ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 66
AW: Datumsvergleich innerhalb 7 Tagen

Ich danke euch für eure Hilfe.
Bisher hatte ich mein Datum in einem DATE-Feld gespeichert. Der Einfachheit halber bin ich jetzt im Zuge einer Neuprogrammierung vom DATE-Feld zum VARCHAR-Feld und Datumswerte im UNIX-Zeitstempelformat gewechselt. Mußte aber nun feststellen, dass mir da eine ganze Menge SQL-Datumsauswertungen schlecht oder garnicht möglich waren und bin jetzt wieder beim Date-Feld gelandet. Na ja, so ist das halt, wenn man als Halbwissender an solche Sachen rangeht. Aber dafür gibts ja auch dieses wirklich tolle Forum mit vielen erstklassigen und hilfsbereiten Experten. Vielen Dank nochmal und einen Guten Start ins neue Jahr.
Bernhard aus Schwerte
Mit Zitat antworten
  #7  
Alt 02.01.2010, 12:38:49
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Datumsvergleich innerhalb 7 Tagen

Zitat:
Zitat von bernhard3105 Beitrag anzeigen
[...]
Mußte aber nun feststellen, dass mir da eine ganze Menge SQL-Datumsauswertungen schlecht oder garnicht möglich waren
Welche waren Dir denn da nicht möglich?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8  
Alt 03.01.2010, 12:34:40
bernhard3105 bernhard3105 ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 66
AW: Datumsvergleich innerhalb 7 Tagen

Na ja, da ist immer noch das Problem, welches ich im Eingang geschildert habe. Der Vorschlag von Ckaos funktioniert so nicht oder ich kriegs nicht hin. Und dann wäre ja noch die Sache mit Datums vor 1970. Die gehen ja sowieso nicht im Unix-Timestamp. Also ist auf jeden Fall das Date-Format sinnvoll.
Zu meinem oben geschilderten Problem:
Benötige also eine Abfrage die mir den vom aktuellen Datum den nächsten Datensatz liefert.
PHP-Code:
$sql "SELECT * FROM msc_infos WHERE vdatum >= CURDATE() ORDER BY vdatum LIMIT 1;" 
Kein Problem also (vdatum ist ein Datum einer zukünftigen Sportveranstaltung im Date-Format).

Falls von diesem gelieferten vdatum aus gesehen in den weiteren 7 Tagen noch weitere Veranstaltungen anstehen (max 2) möchte ich diese noch dazu geliefert bekommen.
Im mysql_fetch_object sollten sich also zwischen 0 und 3 Datensätze befinden.

Zur Zeit lese ich die nächsten drei Datensätze in ein array und vergleiche diese dann über php-code. Vielleicht gibt es ja eine feine sql-Lösung. Wäre schön und ich hab wieder was gelernt.
Bis dann
Bernhard
Mit Zitat antworten
  #9  
Alt 03.01.2010, 16:28:03
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Datumsvergleich innerhalb 7 Tagen

HI


Zitat:
Zitat von bernhard3105 Beitrag anzeigen
Na ja, da ist immer noch das Problem, welches ich im Eingang geschildert habe. Der Vorschlag von Ckaos funktioniert so nicht oder ich kriegs nicht hin.
Dann schreib ich ihn das du nur noch Copy & Paste machen musst und erkläre dir dazu den gedankengang.

Code:
$sql = "SELECT * FROM msc_infos WHERE vdatum >= CURDATE() and vdatum <= date_add(CURDATE(),INTERVAL 7 DAY) ORDER BY vdatum LIMIT 3;"
>= CURDATE() -> is ja klar alles was jetzt oder gößer jetzt ist.
<= date_add(CURDATE(),INTERVAL 7 DAY) -> alles was kleiner oder gleich jetzt plus 7 tagen ist

date_add = etwas zu einem Datum addieren
interval x = Intervallwert
DAY = Tage
siehe MYSQL

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
  #10  
Alt 03.01.2010, 19:13:53
bernhard3105 bernhard3105 ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 66
AW: Datumsvergleich innerhalb 7 Tagen

Vielen Dank, das du mir nochmal helfen möchtest, dein Vorschlag funktioniert zwar, aber nicht so wie ich es brauche.

Denn so wie ich deinen sql-string verstehe addierst du im date_add 7 Tage zum aktuellen Datum hinzu. Ich erhalte also nur Datensätze, wenn diese sich innerhalb von sieben Tagen befinden.

Ich schreibe mein Anliegen mal so auf:

- auf jeden Fall den datumsnächsten Datensatz, egal was für ein vdatum
- Datensatz2 nur, wenn vdatum1 zu vdatum2 < 7 Tage
- Datensatz3 nur, wenn vdatum1 zu vdatum3 < 7 Tage*

*meinetwegen kann hier auch vdatum2 mit vdatum3 verglichen werden, das wäre egal


Der Sinn dahinter ist der: auf unserer Webseite gibt es ein klar begrenztes Feld für Werbung unserer nächsten großen Sportveranstaltung auch wenn diese noch Monate in der Zukunft liegt. Allerdings haben wir an einem Wochenende sogar zwei oder drei große Veranstaltungen. Daher sollen mindestens ein und maximal drei Werbebanner angezeigt werden können, wenn diese Veranstaltungen innerhalb von 7 Tagen liegen.
Wenn die Veranstaltungen länger als 7 Tage auseinander liegen reicht die Anzeige von einer, der nächsten Veranstaltung, da die Werbezeitspanne für die übernächsten Veranstaltungen ausreichend bleiben.

Irgendwie habe ich die Befürchtung, dass das mit sql nicht geht, bin mal gespannt.
Für eure Bemühungen bedanke ich mich schon mal sehr.
Viele Grüße
Bernhard
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Alle Tabellen innerhalb DB auslesen Midgard87 MySQLi/PDO/(MySQL) 1 31.03.2009 17:24:51
datumsvergleich Willow HTML, CSS und JavaScript Help! 3 12.07.2005 00:31:34
Variablen innerhalb eines Objekts in einer Session speichern luca PHP für Fortgeschrittene und Experten 6 09.09.2004 16:57:00
sendmail über popen innerhalb einer schleife mannydi PHP für Fortgeschrittene und Experten 0 06.06.2003 21:50:29
abstand in tagen? Willy PHP Grundlagen 31 18.02.2003 00:06:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:11:20 Uhr.


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


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