kennt mysql datumformat dd.mm.yyyy zum order by?
hi@all!
vor 1001 jahren, habe ich in einem programm datumseinträge in eine spalte gemacht, mit folgendem format dd.mm.yyyy (heute würde ichs so nicht mehr tun, unixzeit oder yyyymmdd ist viel besser für order by, aber was hilfts?).
da ich dieses programm aber nicht uimschreiben kann (der aufwand dafür wäre gemessen am ergebnis ein irrsinn), frage ich mich, ob mysql nicht dieses datumformat (dd.mm.yyyy) nicht doch verwerten kann und z.b.: desc oder asc order by machen kann?
irgendwas habe ich da mit einer funktion str_to_date() gelesen, aber php-handbuch kennt diese funktion nicht
wenn es eine möglichkeit gibt dd.mm.yyyy so richtig in der query zu ordnen wäre ich für hints dankbar
vor 1001 jahren, habe ich in einem programm datumseinträge in eine spalte gemacht, mit folgendem format dd.mm.yyyy (heute würde ichs so nicht mehr tun, unixzeit oder yyyymmdd ist viel besser für order by, aber was hilfts?).
da ich dieses programm aber nicht uimschreiben kann (der aufwand dafür wäre gemessen am ergebnis ein irrsinn), frage ich mich, ob mysql nicht dieses datumformat (dd.mm.yyyy) nicht doch verwerten kann und z.b.: desc oder asc order by machen kann?

irgendwas habe ich da mit einer funktion str_to_date() gelesen, aber php-handbuch kennt diese funktion nicht

wenn es eine möglichkeit gibt dd.mm.yyyy so richtig in der query zu ordnen wäre ich für hints dankbar
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
www.realtype.org
Das ist ja auch keine PHP-Funktion sondern eine MySQL-Funktion.
Siehe http://dev.mysql.com/doc/refman/5.1/de/d…-functions.html
Das sollte Dir helfen.
Gruss
Marty
Siehe http://dev.mysql.com/doc/refman/5.1/de/d…-functions.html
Das sollte Dir helfen.
Gruss
Marty
thx marty
wäre es zu unverschämt dich zu bitten die folgende query so zu modifizieren, dass das str_to_date() korr. drinnen ist MATT hat mich in inside-php.de schon auf diese mysql-quelle hingewiesen, aber das mysql-handbuch ist mir zu kryptisch (engl. & keine php-queries), dass ich nicht in ein verwendetes pr. mit tests eingreifen will, nur weil ich im mom. keinen anwendungsdurchbilick habe

wäre es zu unverschämt dich zu bitten die folgende query so zu modifizieren, dass das str_to_date() korr. drinnen ist MATT hat mich in inside-php.de schon auf diese mysql-quelle hingewiesen, aber das mysql-handbuch ist mir zu kryptisch (engl. & keine php-queries), dass ich nicht in ein verwendetes pr. mit tests eingreifen will, nur weil ich im mom. keinen anwendungsdurchbilick habe

|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 |
<?
$query = mysql_query("SELECT * FROM dvd ORDER by date /*date ist im dt. format - also dd.mm.yyyy gespeichert*/ ASC");
if (mysql_num_rows($query)) {
while($row=mysql_fetch_array($query)) {
//blabla
}
} else {
echo "Die Abfrage hat nicht funktioniert!";
} ?>
|
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
www.realtype.org
Nein, wäre es nicht... :-)
Zitat
Original von webmastersworld
wäre es zu unverschämt dich zu bitten die folgende query so zu modifizieren, dass das str_to_date() korr. drinnen ist
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 |
<?
$query = mysql_query("SELECT *, STR_TO_DATE(date, '%d.%m.%Y') as datumssort FROM dvd ORDER by datumssort ASC");
if (mysql_num_rows($query)) {
while($row=mysql_fetch_array($query)) {
//blabla
}
} else {
echo "Die Abfrage hat nicht funktioniert!";
} ?>
|
Ungetestet. Ach so: Ein Datenbankfeld mit dem geschützten Namen "date" zu benennen ist unklug.
Marty
@mod: bitte doppelpost nicht sanktionieren, will nur marty erreichen, hab ein probl. mit obigem code 
@marty:
ich habe jetzt alle spalten auf varchar, deinen rat beherzigt und zu testzwecken eine table gemacht (testdate), die 2 spalten heissen 'datum' & 'content'. der code schaut dazu so aus:
der parse-error dazu:
... ich finde den fehler nicht

@marty:
ich habe jetzt alle spalten auf varchar, deinen rat beherzigt und zu testzwecken eine table gemacht (testdate), die 2 spalten heissen 'datum' & 'content'. der code schaut dazu so aus:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?
include'connect.php';
$query = mysql_query("SELECT *, STR_TO_DATE(datum, '%d.%m.%Y') as sortit FROM `testdate` ORDER by sortit ASC");
/*line4*/if (mysql_num_rows($query)) {
while($row=mysql_fetch_array($query)) {
$datum=$row['datum'];
$content=$row['content'];
echo $datum.' > '.$content;
}
}
else
{
echo "Die Abfrage hat nicht funktioniert!";
} ?>
|
der parse-error dazu:
Zitat
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web31/html/testdate/index.php on line 4
Die Abfrage hat nicht funktioniert!
... ich finde den fehler nicht
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
www.realtype.org
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »webmastersworld« (28. März 2007, 23:46)
Kann man denn nach SELECT * noch was anderes, durch Komma getrennt, auslesen?
Naja, auf jeden Fall liegt es nicht am PHP-Code, sondern am MySQL, lass dir doch mal die MySQL-Fehlermeldung ausgeben.
Naja, auf jeden Fall liegt es nicht am PHP-Code, sondern am MySQL, lass dir doch mal die MySQL-Fehlermeldung ausgeben.
Auf jede Frage gibt es eine Antwort, man muss nur lange genug danach suchen.
z.B. auf www.netscripter.de :-P
mysql_error() sagt das:
Zitat
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web31/html/testdate/index.php on line 4
Die Abfrage hat nicht funktioniert! > Tell mysql-error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(datum, '%d.%m.%Y') as sortit FROM testdate ORDER by sortit ASC
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
www.realtype.org
Hallo,
ich habe kein MySQL, deshalb nur Versuche:
1. Lass mal "ORDER by sortit ASC" am Ende weg. Läuft die Abfrage dann? Wenn ja, dann kann MySQL nicht nach einem Alias sortieren.
2. Läuft es dann immer noch nicht? Welche Version von MySQL setzt Du ein? Ist das eine Version, in der es die Funktion str_to_date schon gibt?
Gruss
Marty
ich habe kein MySQL, deshalb nur Versuche:
1. Lass mal "ORDER by sortit ASC" am Ende weg. Läuft die Abfrage dann? Wenn ja, dann kann MySQL nicht nach einem Alias sortieren.
2. Läuft es dann immer noch nicht? Welche Version von MySQL setzt Du ein? Ist das eine Version, in der es die Funktion str_to_date schon gibt?
Gruss
Marty
thx marty
, bitte poste irgendwas auf diesen thread, dass ich dann wenn ich das testen kann (dzt muss ich auf meine jüngste aufpassen
und wollte mich nur melden), nicht wieder einen doppelpost produziere, thx für die mühe
derweil.
, bitte poste irgendwas auf diesen thread, dass ich dann wenn ich das testen kann (dzt muss ich auf meine jüngste aufpassen
und wollte mich nur melden), nicht wieder einen doppelpost produziere, thx für die mühe
derweil.
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
www.realtype.org
Zitat
Original von webmastersworld
thx marty![]()
, bitte poste irgendwas auf diesen thread, dass ich dann wenn ich das testen kann (dzt muss ich auf meine jüngste aufpassen
und wollte mich nur melden), nicht wieder einen doppelpost produziere, thx für die mühe
derweil.
also soweit ich weiß wurde doch auf wmw die funktion freigeschaltet, mit der man auch durch editieren des letzten posts den thread hochholt.
jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
@jperl:
edit-funktion ist ok, ABER manchmal will ja der helfende nicht immer ins board (thread) schauen, ob evtl. was editiert wurde, eine mailverst (wenn thread abboniert wurde) erhöht den info-fluß
@marty:
habe den code unter weglassung der order-query modi, der code schaut so aus:
der parserror dazu:
die mysql-version:
Client API version 3.23.49
edit-funktion ist ok, ABER manchmal will ja der helfende nicht immer ins board (thread) schauen, ob evtl. was editiert wurde, eine mailverst (wenn thread abboniert wurde) erhöht den info-fluß

@marty:
habe den code unter weglassung der order-query modi, der code schaut so aus:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?
include'connect.php';
$query = mysql_query("SELECT content, STR_TO_DATE(datum, '%d.%m.%Y') as sortit FROM testdate");
if (mysql_num_rows($query)) {
while($row=mysql_fetch_array($query)) {
$datum=$row['datum'];
$content=$row['content'];
echo $datum.' > '.$content;
}
}
else
{
echo "Die Abfrage hat nicht funktioniert! <br />> Tell me mysql-error: <br />".mysql_error();
} ?>
|
der parserror dazu:
Zitat
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web31/html/testdate/index.php on line 4
Die Abfrage hat nicht funktioniert!
> Tell me mysql-error:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(datum, '%d.%m.%Y') as sortit FROM testdate' at line 1
die mysql-version:
Client API version 3.23.49
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
www.realtype.org
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »webmastersworld« (29. März 2007, 21:02)
@mod:
jetzt hat es eine interessante wendung in der mysql - versionsfrage gegeben (daher dieser doppelpost - edit hätte nehme ich an, helfende nicht verständigt).
Mein host-admin auf die frage nach der montierten mysql-version, unter anderem schreibt folgendes:
... am Server ist mysql 4.0.18 installiert ... str_to_date ist in mysql 4 implementiert ... Client API version 3.23.49 ist nur die Versionsnummer der in php integrierten Mysql-Schnitte, sagt über die mysql Version nicht aus..
.... bitte daher neuerliche hilfe beim obigen code
jetzt hat es eine interessante wendung in der mysql - versionsfrage gegeben (daher dieser doppelpost - edit hätte nehme ich an, helfende nicht verständigt).
Mein host-admin auf die frage nach der montierten mysql-version, unter anderem schreibt folgendes:
... am Server ist mysql 4.0.18 installiert ... str_to_date ist in mysql 4 implementiert ... Client API version 3.23.49 ist nur die Versionsnummer der in php integrierten Mysql-Schnitte, sagt über die mysql Version nicht aus..
.... bitte daher neuerliche hilfe beim obigen code
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
www.realtype.org
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »webmastersworld« (30. März 2007, 12:23)
Probierst Du eigentlich auch irgendwas selber oder setzt Du immer nur die Fehlermeldungen hier rein und wartest drauf, dass jemand anderes sich jetzt die Mühe macht, die Fehler zu suchen?
Hast Du mal daran gedacht, mal eine ganz simple Abfrage daraus zu machen, wie z.B. "SELECT STR_TO_DATE(datum, '%d.%m.%Y') FROM testdate" und mal zu testen, ob das vielleicht geht?
EDIT: Oder alternativ einfach die oben mehrfach geposteten Links nur gelesen?
Da steht wörtlich "STR_TO_DATE() is available as of MySQL 4.1.1."
Marty
Hast Du mal daran gedacht, mal eine ganz simple Abfrage daraus zu machen, wie z.B. "SELECT STR_TO_DATE(datum, '%d.%m.%Y') FROM testdate" und mal zu testen, ob das vielleicht geht?
EDIT: Oder alternativ einfach die oben mehrfach geposteten Links nur gelesen?
Da steht wörtlich "STR_TO_DATE() is available as of MySQL 4.1.1."
Marty
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MartyMcFly« (30. März 2007, 12:52)
ja der admin schrieb mir gerade, dass im kleingedruckten zu mysql irgendwas stand, dass erst ab 4.1.1 die funktion dabei ist, er hat sie jetzt montiert und dann werde ich sehen, obs geht 
tests kann ich erst jetzt machen, bis vor 5 min. waren die vorh. versionen einfach zu alt und mussten buggen, sry
EDIT 13:32:
Alles OK, thx marty für code, jetzt klappts, wo die richtige version mysql auch montiert ist

tests kann ich erst jetzt machen, bis vor 5 min. waren die vorh. versionen einfach zu alt und mussten buggen, sry

EDIT 13:32:
Alles OK, thx marty für code, jetzt klappts, wo die richtige version mysql auch montiert ist
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
www.realtype.org
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »webmastersworld« (30. März 2007, 13:33)


