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

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken 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
  #11  
Alt 11.01.2006, 14:40:47
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Datensätze zeitliche Eingrenzung

Zitat:
Zitat von Franzx
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.
Das ist doch mit drin.

Wenn checkdate nicht meckert:
$datum_iso = sprintf('%04d-%02d-%02d', $d[2], $d[1], $d[0]);

erzeugt einen String nach dem Muster: YYYY-MM-DD
Mit Zitat antworten
  #12  
Alt 11.01.2006, 15:00:29
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!'
Ich habe nur folgendes in einer Zeile geändert:
PHP-Code:
explode('.'trim($_POST['feldname_der_datum_enthält'])); 
danach getestet indem ich $_POST ausgeben habe.

Ergebnis: Das deutsche Datum wurde als solches ausgegeben und beim DB-Format gabs die Fehlermeldung. Soweit wohl richtig. Doch wenn die $_POST ein deutsches Datum vorhält kann ich es nicht mit dem in der DB vergleichen, oder verstehe ich da was nicht?

An welcher Stelle wird denn das Datum umformatiert?
Mit Zitat antworten
  #13  
Alt 11.01.2006, 20:43:17
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Datensätze zeitliche Eingrenzung

echo $datum_iso;
Mit Zitat antworten
  #14  
Alt 12.01.2006, 07:55:55
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

moin, moin!
Erst einmal vielen Dank für die Geduld.

Ich versteh es nicht, die Abläufe??
Ich habe ein Formular in dem ein deutsches Datum eingegeben werden soll - mit dem Datumsformat aus der DB, yyyy-mm-dd, funktioniert dieses Formular und die DB_Abfrage.
Per $_POST['feld.deutsches.datumsformat'] wird das Feld übergeben an SELECT um $row['feld-DB-datumsformat'] zu vergleichen ob es <, = oder > ist. Dies geht natürlich nicht, da die Formate nicht übereinstimmen.

Der Ausgangspunkt ist klar, nun nehme ich folgenden Code:
PHP-Code:
 $d explode('.'trim($_POST['feld.deutsches.datumsformat']));
if (
$d[2] < 100)
  
$d[2] += 2000;
if (
checkdate($d[1], $d[0], $d[2]))
  
$feld.deutsches.datumsformat sprintf('%04d-%02d-%02d'$d[2], $d[1], $d[0]); 
Es passiert nichts, mal abgesehen davon, dass das Datum geprüft wird.
PHP-Code:
$_POST['feld.deutsches.datumsformat'
hat sich nicht geändert und der Vergleich kann natürlich nicht funktionieren.

Was übersehe ich?
Mit Zitat antworten
  #15  
Alt 12.01.2006, 09:13:38
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Datensätze zeitliche Eingrenzung

Zitat:
Zitat von Franzx
Es passiert nichts, mal abgesehen davon, dass das Datum geprüft wird.
Was übersehe ich?
1. das $_POST['feld.deutsches.datumsformat'] geht ja noch, weil ein String ein String ist.

2. das $feld.deutsches.datumsformat ist ein falscher Variablenbezeichner. Sowas ginge mit einigen Warnungen noch als Argument durch aber nicht als Ziel einer Zuweisung.

Hier ein funktionierendes Onlinebeispiel (Quelltext wird angezeigt):
http://test.php-help.info/date2iso/index.php
Mit Zitat antworten
  #16  
Alt 12.01.2006, 11:38:23
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

Ja, vielen Dank. Das ändern des Datumformats funktioniert nun.

Allerdings wirds nun seltsam.
Mit dem yyyy-mm-dd format habe ich folgendes
PHP-Code:
SELECT ... From .. WHERE tbl.datum_feld >= '".$_REQUEST['von_datum']."' AND WHERE tbl.datum_feld <= '".$_REQUEST['bis_datum']."' 
verwendet. Funktionierte problemlos .

Nachdem ich die Datumsformatierung verwende
PHP-Code:
$d explode('.'trim($_REQUEST['von_datum']));
    if (
$d[2] < 100)
        
$d[2] += 2000;
    if (@
checkdate($d[1], $d[0], $d[2]))
    {
        
$von_datum sprintf('%04d-%02d-%02d'$d[2], $d[1], $d[0]);
    }
$d2 explode('.'trim($_REQUEST['bis_datum']));
    if (
$d2[2] < 100$d2[2] += 2000;
    if (@
checkdate($d2[1], $d2[0], $d2[2]))
    {
    
$bis_datum sprintf('%04d-%02d-%02d'$d2[2], $d2[1], $d2[0]);
    } 
kann ich zwar die Var: $von_datum, $bis_datum richtig ausgeben, mit dem yyyy-mm-dd Format, doch auch wenn ich die SELECT ändere
PHP-Code:
SELECT ... From .. WHERE tbl.datum_feld >= $von_datum AND WHERE tbl.datum_feld <= $bis_datum 
funktioniert die Abfrage nicht. Verwende ich
PHP-Code:
SELECT ... From .. WHERE tbl.datum_feld >= $von_datum 
läuft das Script wieder. Also kann ich keine Zeitspanne abfragen.
Die Variablen haben beide einen yyyy.mm.dd Inhalt, ein Vergleich sollte also machbar sein.
Setzte ich die SQL-Abfrage falsch ein? Aber dann hätte es mit dem unformatiertem Datumsformat auch nicht laufen dürfen.
Rätsel!
Mit Zitat antworten
  #17  
Alt 12.01.2006, 13:00:01
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Datensätze zeitliche Eingrenzung

Zitat:
Zitat von Franzx
Mit dem yyyy-mm-dd format habe ich folgendes
Zitat:
SELECT ... From .. WHERE tbl.datum_feld >= '".$_REQUEST['von_datum']."'
AND WHERE tbl.datum_feld <= '".$_REQUEST['bis_datum']."'
verwendet. Funktionierte problemlos.
Wirklich? Ich hätte schwören können, daß sich MySQL über das doppelte WHERE aufregen würde.

Habe das Beispiel geändert und zwei Funktionen gebildet.
http://test.php-help.info/date2iso/index.php
Mit Zitat antworten
  #18  
Alt 12.01.2006, 13:29:49
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

Zitat:
Zitat von meikel
Wirklich? Ich hätte schwören können, daß sich MySQL über das doppelte WHERE aufregen würde.
Oh ja, sorry, war ein DRAG & DROP Fehler :-).
Werde mich gleich mal an die neuen Funktionen machen.

cu,
Franzx
Mit Zitat antworten
  #19  
Alt 12.01.2006, 14:13:58
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

... es macht mich schön langsam kirre. Muss mal mit dieser Datumsgeschichte aussetzen, ein bischen Abstand gewinnen um neue Gedanken aufnehmen zu können.
Selbst mit dem fertigen Script von meikel hackt es noch.

cu,
Franzx
Mit Zitat antworten
  #20  
Alt 13.01.2006, 09:07:59
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: Datensätze zeitliche Eingrenzung

PHP-Code:
SELECT spalte FROM tabelle WHERE datum1 >= '%s' AND datum2 <= %
PHP-Code:
<input type="text" name="datum1" value="%s"
datum1 ist doch identisch mit '%s' und auch datum2
Das kann doch nicht zum Erfolg führen???
Außerdem wird doch hier die Abfrage umgedreht, oder? Ich versteh es nicht.

Schade, aber vielen Dank, mit diesem Aufbau kann ich nichts anfangen. Es mag innerhalb dieses Formulars alles laufen, doch bei mir sind das Formular und die Ergebnisseite zwei unterschiedliche Dateien und die SQL-Abfragen sind noch wieder in einer eigenen Datei. Ich muss die Werte übergeben und auch noch auf weitere Seiten mitnehmen können. Bislang habe ich die Seiten so aufgebaut dass selbst externe Aufrufe über $_Request möglich sind.

Mal sehen ob ich in Java-Script die Datumseingabe entsprechend drehen kann, direkt bei der Eingabe und in ein hidden-Feld schreibe zur Übergabe an die SELECT.

cu,
Franzx
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

Ä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 17:08:44
Datensätze mit leeren Feldern löschen Pixelschubser MySQLi/PDO/(MySQL) 1 30.05.2005 13:02:49
Datensätze bearbeiten edgar.basler PHP Grundlagen 15 10.06.2004 00:00:19
Anzahl Datensätze pro Tabelle? theresa MySQLi/PDO/(MySQL) 4 27.04.2004 19:31:31
Leere Datensätze im Array löschen A.Bauer PHP für Fortgeschrittene und Experten 8 29.09.2002 21:21:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:06:33 Uhr.


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


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