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

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign 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 > MySQL/MySQLi

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

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.01.2006, 10:39:04
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
Datensätze zeitliche Eingrenzung

... wie gehe ich am besten vor um eine Datenbankabfrage umzusetzen, die es ermöglicht Datensätze einer bestimmten Zeitspanne Tag.Monat.Jahr herauszufiltern.
Jeder Datensatz hat zumindest ein Datumsfeld, welches ich mit Date_Format in das deutsche Datumsformat bringe.
Da sich die Abfrage direkt an die DB richtet und dort das yyyy-mm-dd Datum vorliegt muss sich meine Abfrage wohl auch in diesem Format sein.
Im Handbuch von MYSQL konnte ich nur bedingt Infos finden.

Verwende ich beim SELECT ein LIMIT $start, $ende so kann ich darin 2 Variablen nutzen, doch die Zeitliche Spanne muss bezogen auf Start-TAG-MONAT-JAHR bis Ende-TAG-MONAT-JAHR möglich sein und das wären doch schon 6 Variable.

Wo ist mein Denkfehler?

Ach ja, das Datumsfeld liegt als date vor.
cu,
Franzx

Geändert von Franzx (10.01.2006 um 10:40:41 Uhr)
Mit Zitat antworten
  #2  
Alt 10.01.2006, 11:32:11
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Datensätze zeitliche Eingrenzung

Schau dir dazu am besten mal die MySQL-Datumsfunktionen DATE_ADD() bzw. DATE_SUB() an.
Mit Zitat antworten
  #3  
Alt 10.01.2006, 11:34:25
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.680
AW: Datensätze zeitliche Eingrenzung

Hat in diesem Fall nix mit LIMIT zu tun. LIMIT hat nicht mit der Auswahl, mehr mit der Anzahl der auszuwählenden/anzuzeigenden Datensätze zu tun.

Versuchs hiermit:
PHP-Code:
SELECT FROM file WHERE von <= "yyyy-mm-dd" AND bis >= "yyyy-mm-dd" 
__________________
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
  #4  
Alt 10.01.2006, 14:44:15
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

Vielen Dank für Eure schnellen Antworten!

Zitat:
Zitat von vt1816
Versuchs hiermit:
PHP-Code:
SELECT FROM file WHERE von <= "yyyy-mm-dd" AND bis >= "yyyy-mm-dd" 
Hallo vt1816,

ja, das kann ich verstehen und leuchtet mir ein.
Nochmal vielen Dank.

cu,
Franzx
Mit Zitat antworten
  #5  
Alt 10.01.2006, 15:34:07
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

Habe es wohl doch noch nicht verstanden. Folgend meine SELECT:

PHP-Code:
$result mysql_query("SELECT wert FROM tbl WHERE DATE_FORMAT(wert, '%d.%m.%Y') <= '".$_REQUEST['von_wert']."' AND DATE_FORMAT(wert, '%d.%m.%Y') >= '".$_REQUEST['bis_wert']."' ") or die(mysql_error()); 
Es gibt zwar keinen SQL-Fehler aber auch kein Ergebnis. Tatsächlich sind da aber laut Zähler 155 Datensätze zutreffend.

cu,
Franzx
Mit Zitat antworten
  #6  
Alt 10.01.2006, 15:58:55
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.680
AW: Datensätze zeitliche Eingrenzung

Lass Dir mal die Query mit ECHO vorher ausgeben.
Wie übergibst Du die Daten (GET / POST)? Arbeite dementsprechend mit $_GET bzw. $_POST. Haben die Parameter das richtige Format (yyyy-mm-dd / dd-mm-yyyy / dd.mm.yyyy / etc.)?
__________________
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
  #7  
Alt 10.01.2006, 19:49:53
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Datensätze zeitliche Eingrenzung

Benutze nicht die mit DATE_FORMAT() formatierten Datumsangaben für den Vergleich sondern das Format, in dem die Daten in der Datenbank stehen.
Mit Zitat antworten
  #8  
Alt 11.01.2006, 10:10:13
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

Zitat:
Zitat von xabbuh
Benutze nicht die mit DATE_FORMAT() formatierten Datumsangaben für den Vergleich sondern das Format, in dem die Daten in der Datenbank stehen.
Vieln Dank, ja es funktioniert ohne Date_Format().
Das war ein Punkt und der Teufel liegt im Detail, denn die
PHP-Code:
<=  >= 
mussten getauscht werden. Eine Zeitspanne von >= bis <= .

Allerdings muss die Eingabe der Zeitspanne, in das Formular, jetzt im yyyy-mm-dd erfolgen. Gibt es dafür auch noch eine Lösung, um ein deutsches Format eingeben zu können und dies aber als Übergabewert gleich das DB-Format erhält?

Ich seh mal in der PHP-DOKU nach.

cu,
Franzx
Mit Zitat antworten
  #9  
Alt 11.01.2006, 10:57:00
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: Datensätze zeitliche Eingrenzung

Zitat:
Zitat von Franzx
Allerdings muss die Eingabe der Zeitspanne, in das Formular, jetzt im yyyy-mm-dd erfolgen. Gibt es dafür auch noch eine Lösung, um ein deutsches Format eingeben zu können und dies aber als Übergabewert gleich das DB-Format erhält?
Ja klar. Da Du die Daten eh prüfen mußt (jeden Mist sollst Du Dir tunlichst nicht aufschwatzen lassen), kannst Du bei der Gelegenheit gleich den ISO Datumstring bilden.

PHP-Code:
$d explode('.'trim($_POST['datum]'));
if (
$d[2] < 100)
  
$d[2] += 2000;
if (
checkdate($d[1], $d[0], $d[2]))
  
$datum_iso sprintf('%04d-%02d-%02d'$d[2], $d[1], $d[0]);
else
  print 
'Dieses Datum gibts nicht!'

Geändert von meikel (†) (11.01.2006 um 10:57:13 Uhr)
Mit Zitat antworten
  #10  
Alt 11.01.2006, 11:52:19
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

Zitat:
Zitat von meikel
PHP-Code:
$d explode('.'trim($_POST['datum]'));
if (
$d[2] < 100)
  
$d[2] += 2000;
if (
checkdate($d[1], $d[0], $d[2]))
  
$datum_iso sprintf('%04d-%02d-%02d'$d[2], $d[1], $d[0]);
else
  print 
'Dieses Datum gibts nicht!'
Hat ein bisschen gedauert bis ich es verstanden hatte, aber dieser Code prüft das Datumsformat auf ein gültiges deutsches Format. Dabei ist auch eine 2stellige Jahreszahl möglich und sofern diese unter 100 ist, ist es vor dem Jahr 2000.
Ich bin leider noch nicht soweit, da ich erst noch das "Changing" brauche - Datumsformat wird deutsch ins Formular eingegeben und im DB-Format übermittelt - für die SELECT.
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
Anzahl der Datensätze von heute Pixelschubser PHP für Fortgeschrittene und Experten 2 02.06.2005 18:08:44
Datensätze mit leeren Feldern löschen Pixelschubser MySQL/MySQLi 1 30.05.2005 14:02:49
Datensätze bearbeiten edgar.basler PHP Grundlagen 15 10.06.2004 01:00:19
Anzahl Datensätze pro Tabelle? theresa MySQL/MySQLi 4 27.04.2004 20:31:31
Leere Datensätze im Array löschen A.Bauer PHP für Fortgeschrittene und Experten 8 29.09.2002 22:21:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:54:38 Uhr.


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


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