Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Dabei seit: 10.02.2003

Beiträge: 2 037

 

1 Zum Seitenanfang

Dienstag, 27. März 2007, 20:16

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 :D
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
 

MartyMcFly

Foren Gott

Dabei seit: 04.06.2003

Beiträge: 3 137

 

2 Zum Seitenanfang

Mittwoch, 28. März 2007, 06:58

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
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

3 Zum Seitenanfang

Mittwoch, 28. März 2007, 12:39

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 ?(

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
 

MartyMcFly

Foren Gott

Dabei seit: 04.06.2003

Beiträge: 3 137

 

4 Zum Seitenanfang

Mittwoch, 28. März 2007, 13:45

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
Nein, wäre es nicht... :-)

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
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

5 Zum Seitenanfang

Mittwoch, 28. März 2007, 14:18

thx marty :D:D:D:D - das hilft viel :D
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

6 Zum Seitenanfang

Mittwoch, 28. März 2007, 23:41

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

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

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »webmastersworld« (28. März 2007, 23:46)

 

OnkelJürgen

Moderator

Dabei seit: 30.12.2002

Beiträge: 1 719

 

7 Zum Seitenanfang

Mittwoch, 28. März 2007, 23:47

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. ;)
Auf jede Frage gibt es eine Antwort, man muss nur lange genug danach suchen.


z.B. auf www.netscripter.de :-P
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

8 Zum Seitenanfang

Mittwoch, 28. März 2007, 23:52

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
 

MartyMcFly

Foren Gott

Dabei seit: 04.06.2003

Beiträge: 3 137

 

9 Zum Seitenanfang

Donnerstag, 29. März 2007, 07:24

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
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

10 Zum Seitenanfang

Donnerstag, 29. März 2007, 14:15

thx marty :D :D, 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 :D derweil.
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
 

jperl

Super Moderator

Dabei seit: 09.04.2003

Beiträge: 3 453

 

11 Zum Seitenanfang

Donnerstag, 29. März 2007, 14:37

Zitat

Original von webmastersworld
thx marty :D :D, 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 :D 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.
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

12 Zum Seitenanfang

Donnerstag, 29. März 2007, 21:02

@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ß :D

@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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »webmastersworld« (29. März 2007, 21:02)

 

jperl

Super Moderator

Dabei seit: 09.04.2003

Beiträge: 3 453

 

13 Zum Seitenanfang

Donnerstag, 29. März 2007, 21:13

naja dann solltest wohl mal deine mysql version updaten.

jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

14 Zum Seitenanfang

Donnerstag, 29. März 2007, 21:16

verstehe jperl: thx dir und marty :D:D:D
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

15 Zum Seitenanfang

Freitag, 30. März 2007, 12:22

@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 ?(
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »webmastersworld« (30. März 2007, 12:23)

 

MartyMcFly

Foren Gott

Dabei seit: 04.06.2003

Beiträge: 3 137

 

16 Zum Seitenanfang

Freitag, 30. März 2007, 12:50

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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MartyMcFly« (30. März 2007, 12:52)

 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

17 Zum Seitenanfang

Freitag, 30. März 2007, 13:16

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

EDIT 13:32:

Alles OK, thx marty für code, jetzt klappts, wo die richtige version mysql auch montiert ist
:D
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »webmastersworld« (30. März 2007, 13:33)