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)

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 23.02.2010, 10:05:42
Topper23 Topper23 ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 42
Beiträge: 9
Select zweier Datensätze um das heutige Datum

Hallo zusammen.

Kurze Erklärung:
In meiner Datenbank habe ich Einträge, die immer ein Startdatum (als Timestamp) und einen Text haben. Das könnten n Einträge sein.

Ich möchte nun die 2 Einträge Auswählen (SELECT über php) die das heutigen Datum (Timestamp) umklammern.
PHP-Code:
$jetzt mktime(); 
Wie geht ein solches Select? Ich möchte ja nicht between a und b haben sondern eher sowas wie around date. Hat da jmd ne Idee?

PHP-Code:
SELECT text FROM datenbank WHERE startdatum AROUND $jetzt LIMIT 0,1
So in der Art stelle ich es mir vor. Ich hoffe auf eure Hilfe.
Martin
Mit Zitat antworten
  #2  
Alt 23.02.2010, 10:14:34
Topper23 Topper23 ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 42
Beiträge: 9
AW: Select zweier Datensätze um das heutige Datum

Ich kam gerade selber auf die erfolglose Idee 2 Abfragen zu machen und diese zu verbinden aber...
PHP-Code:
$db_anfrage1 ="SELECT text FROM datenbank WHERE startdatum <= $jetzt LIMIT 0,1";
$db_anfrage2 "SELECT text FROM datenbank WHERE startdatum > $jetzt LIMIT 0,1";

$db_ergebnis1 mysql_query($db_anfrage1$serververbindung);
$db_ergebnis2 mysql_query($db_anfrage2$serververbindung); 
...leider ist $db_ergebnis2 leer... :-(
Mit Zitat antworten
  #3  
Alt 23.02.2010, 12:00:49
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Select zweier Datensätze um das heutige Datum

Hi

Zitat:
Ich möchte ja nicht between a und b haben sondern eher sowas wie around date. Hat da jmd ne Idee?
Du könntest eine range definieren mit DATE_ADD und DATE_DIFF und dann per BETWEEN
nach treffern fragen.

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
  #4  
Alt 23.02.2010, 13:32:48
Topper23 Topper23 ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 42
Beiträge: 9
AW: Select zweier Datensätze um das heutige Datum

Hallo CKaos,

leider kann ich keine Range definieren, da die Einträge in der Datenbank mal 1 Woche mal aber auch ein halbes Jahr auseinanderliegen können. Außerdem habe ich eben noch eine weitere Schwierigkeit entdeckt: Es kann ja sein, dass es keinen Eintrag gibt, der nach heute kommt. (also wo timestamp > jetzt ist).
Puuh, kniffelig.

Hoffe auf weitere Ideen.
MfG Martin
Mit Zitat antworten
  #5  
Alt 23.02.2010, 14:22:48
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Select zweier Datensätze um das heutige Datum

Hi

Zitat:
leider kann ich keine Range definieren
Warum nicht?
Zitat:
da die Einträge in der Datenbank mal 1 Woche mal aber auch ein halbes Jahr auseinanderliegen können.
Würde sich auch so lösen lassen.
Zitat:
Außerdem habe ich eben noch eine weitere Schwierigkeit entdeckt: Es kann ja sein, dass es keinen Eintrag gibt, der nach heute kommt. (also wo timestamp > jetzt ist).
Was ja bei der range keinen unterschied macht.

Ich merke mein vorgestellter Ansatz kommt nicht wie gewünscht an. ;)
Also hier mal ein Bsp. vielleicht hilft dir das diesen weiter zu denken.
PHP-Code:
function range($timestamp,$type){
  
$sql="SELECT * FROM TABELLE WHERE SPALTE BETWEEN DATE_SUB(".$timestamp.",INTERVAL 1 ".$type." AND DATE_SUB(".$timestamp.",INTERVAL 1 ".$type.")";
  
//Hier mysqlquery und verarbeitung des Ergebnisses
}

//Aufruf dann wie folgt
$ergebnis_woche=range($DATUM,"WEEK");
//Wenn kein Ergebnis dann weiter
$ergebnis_woche=range($DATUM,"MONTH");
//usw

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
  #6  
Alt 23.02.2010, 23:10:03
Topper23 Topper23 ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 42
Beiträge: 9
AW: Select zweier Datensätze um das heutige Datum

werds morgen im büro mal ausprobieren :)
Mit Zitat antworten
  #7  
Alt 24.02.2010, 08:02:18
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Select zweier Datensätze um das heutige Datum

Im Beispiel wurde 2x DATE_SUB genutzt. (Vermute mal Tipfehler) Einmal müsste meiner Meinung nach in DATE_ADD geändert werden. Das folgende AND wäre ja sonst identisch mit der Bedingung zuvor.
Mit Zitat antworten
  #8  
Alt 24.02.2010, 09:40:38
Topper23 Topper23 ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 42
Beiträge: 9
AW: Select zweier Datensätze um das heutige Datum

Guten morgen,

nachdem ich nun 1 Nacht darüber geschlafen habe, hab ich auch kapiert wohin diese funktion führen könnte. Der erste Between parameter wäre heute der zweite also meine range... (zum beispiel 2 quartele).

Leider habe ich noch ein problem in meiner abfrage. ich bekomme kein ergebnis von der DB geliefert. Hier mein query:
PHP-Code:
SELECT FROM tabelle WHERE startdatum BETWEEN DATE_ADD(CURRENT_TIMESTAMPINTERVAL 2 WEEK) AND DATE_SUB(CURRENT_TIMESTAMPINTERVAL 2 QUARTERORDER BY startdatum ASC LIMIT 06
Wo ist denn da der fehler nu?

Meinem Verständnis nach sollte er also alles zwischen "jetzt" und "den letzten 6 Monaten" anzeigen. In der DB sind die startdatum felder als timestamp gespeichert... und wenn ich mal so von hand reinschaue siehe da... da gibt es mind. 1 Eintrag der in den letzten 6 Monaten vorlag.

EDIT: Wenn ich eine händische DB-Abfrage mache mit BETWEEN damals AND jetzt dann gibt er mir die richtigen Einträge aus

Geändert von Topper23 (24.02.2010 um 09:50:52 Uhr)
Mit Zitat antworten
  #9  
Alt 24.02.2010, 10:57:02
Topper23 Topper23 ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 42
Beiträge: 9
AW: Select zweier Datensätze um das heutige Datum

waaaah, ich verzweifle bald... bin auf halbem weg:

PHP-Code:
SELECT FROM tabelle WHERE startdatum
BETWEEN 1157001006 
AND UNIX_TIMESTAMP(NOW())
ORDER BY startdatum ASC LIMIT 0
Jetzt muss ich nur den ersten timestamp dazu umdüddeln, dass der UNIX_TIMESTAMP(NOW()) minus 6 Monate genommen wird und keine statische zeit. abre wie?!?! *fastheul*
Mit Zitat antworten
  #10  
Alt 24.02.2010, 11:35:18
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Select zweier Datensätze um das heutige Datum

Hi

sei mir nicht böse aber das is wie wenn du nach 1+1 fragst ;)
Steht doch alles in den vorherigen posts.

Aber ich schreibe dir gerne die fertige Lösung zum kopieren bereit.

Code:
// BETWEEN kleines_datum(Vergangenheit) AND großes_datum(Zukunft?)
SELECT * FROM tabelle WHERE startdatum
BETWEEN UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL 6 MONTH)) AND UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL 2 WEEK))
ORDER BY startdatum ASC LIMIT 0, 6
Und das ganze schreibst du nun in eine Funktion und kannst dann
diese immer wieder mal verwenden ;)

PS: Natürlich war das ein schreibfehler arbeite ja auch mit copy&paste *gg

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

Stichworte
select, sql


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
Ausgabe wird nicht angezeigt Extremefall PHP Grundlagen 9 17.12.2009 09:49:45
INSERT und UPDATE zweier datensätze MADdaMAX MySQLi/PDO/(MySQL) 9 05.12.2007 18:38:30
Select: alle Datensätze mit max. Wert gesucht Henni MySQLi/PDO/(MySQL) 3 09.07.2007 10:59:41
Anzahl der Datensätze ab heutigem Datum PEter12 MySQLi/PDO/(MySQL) 2 19.06.2006 15:16:06
nur Datensätze mit gleichem Datum anzeigen klaus-maus MySQLi/PDO/(MySQL) 1 28.02.2005 22:48:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:01:02 Uhr.


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


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