phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 02.10.2003, 10:48   #1
TP-Member
 
Benutzerbild von DonJure
 
Registriert seit: Sep 2003
Ort: NRW - Moers
DonJure macht alles soweit korrekt

daten nach datum und uhrzeit sortieren


hallo... ich bins noch mal...

also..ich habe ein kleines forum gebastelt.
ich möchte meine themen nach datum und uhrzeit sortiert haben,
also so das der akktuellste zuerst erscheint...

in meiner datenbank habe ich das datum und zeit mit date() erfasst und in der tabelle gespeichert. Die tabelle hat den wert char.... 01.10.2003 18:47:50 (ich glaub das ist zum bearbeiten falsch)

könnt ihr mir weiterhelfen...
__________________
I wasted all my pretty years on you!
DonJure ist offline   Mit Zitat antworten


Alt 02.10.2003, 11:10   #2
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
hi!

also ich persönlich würde den zeitpunkt des postings mit einem timestamp erfassen und auch so in die db schreiben.

bei der ausgabe dann mittels folgender function in klartext ausgeben:

PHP-Code:
function unix2date($unixzeit,$format,$clock)
// Wandelt einen UNIX-Timestamp in ein normales Datum um
// und schickt einen String zurueck ...
// 11.09.2002 18:03 Uhr
{

    if(
$format=="long"$months = array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
    if(
$format=="short"$months = array("Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez");
    if(
$format=="digit"$months = array("01.","02.","03.","04.","05.","06.","07.","08.","09.","10.","11.","12.");

    list(
$mday,$month,$year) = split("( )",date("d n Y",$unixzeit));
    
$month -= 1;

    if(
$clock=="uhr")
    {
        
$uhrzeit=date("H:i",$unixzeit);
        return 
$this_day="$mday. $months[$month] $year - $uhrzeit";
    }
    else
    {
        return 
$this_day="$mday. $months[$month] $year";
    }

diese und noch mehr functions sind hier zu finden
prefix ist offline   Mit Zitat antworten
Alt 02.10.2003, 11:29   #3
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Warum so kompliziert?

MySQL beherscht die Datumsfunktionen (meiner Meinung nach sogar besser als PHP)... warum also Funktionen selberbauen, wenn man all das direkt in der Datenbank erledigen kann.

Um Daten und Uhrzeiten in MySQL zu speichern bietet MySQL extra vordefinierte Feldtypen: DATETIME, DATE, TIME

Speicher das Datum eines Postings einfach in einem Datetime feld ab. Beim Insert brauchst du noch nichtmal das Datum manuell übergeben, sondern kannst einfach die NOW()-Funktion von MySQL nutzen.
Nach Feldern vom Typ DATETIME kannst du ohne Probleme via ORDER BY sortieren.
Willst du nun das Datum formatiert ausgeben, braucht man ebenfalls keine PHP-Funktion, da man MySQL "sagen" kann, wie man das Datum haben möchte. Dazu schau mal hier vorbei: http://www.mysql.com/doc/en/Date_and...s.html#IDX1333

Auch einen Unixtimestamp kann man direkt aus dem Feld abfragen: http://www.mysql.com/doc/en/Date_and...s.html#IDX1346

Gruss
Jan

PS: Falls du jetzt Probleme hast, dein Varchar-Feld mit Produktiv-Daten in ein datetime-feld umzuwandeln, sag bescheid. Auf keinen Fall mit Produktivdaten testen, da die Felder mit hoher Sicherheit zerstört werden.
Stuck Mojo ist offline   Mit Zitat antworten
Alt 02.10.2003, 11:43   #4
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
na da schau her, da tun sich ja neue wissens-welten für mich auf

thx jan - toller tipp!
prefix ist offline   Mit Zitat antworten
Alt 02.10.2003, 11:45   #5
TP-Member
 
Benutzerbild von DonJure
 
Registriert seit: Sep 2003
Ort: NRW - Moers
DonJure macht alles soweit korrekt
k ich werde das nachdem ich noch ein par bäume gefällt habe ausprobieren...

also ich mache 2 datenfelder vom type time und date
beide kann ich mit now() ermitteln.
und der $sql wie sähe der aus?
ORDER BY datum -> dann habe ich nur nach datum und nicht nach uhrzeit...
oder kann man auch beides machen?

@mojo k vielen danke für dein angebot, aber das forum ist noch in der testphase also egal wegen datenverlust...
__________________
I wasted all my pretty years on you!
DonJure ist offline   Mit Zitat antworten
Alt 02.10.2003, 11:46   #6
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
wieso 2 Felder??? DATETIME ist das Feld, das du brauchst!
Stuck Mojo ist offline   Mit Zitat antworten
Alt 02.10.2003, 11:48   #7
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
also, ich hoff ich liege jetzt richtig, aber das müsste dann beispielsweise so aussehen:

PHP-Code:
$sql mysql_query("SELECT DATE_FORMAT('datumsfeld','%d %M %Y') FROM tabelle ORDER BY datumsfeld DESC"); 
oder?? ich denke, so sollte das funktionieren...
prefix ist offline   Mit Zitat antworten
Alt 02.10.2003, 11:51   #8
TP-Member
 
Benutzerbild von DonJure
 
Registriert seit: Sep 2003
Ort: NRW - Moers
DonJure macht alles soweit korrekt
jetzt leuchtet mir einiges ein...
__________________
I wasted all my pretty years on you!
DonJure ist offline   Mit Zitat antworten
Alt 02.10.2003, 11:53   #9
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
das würde nicht funktionieren, da du als Datum einen String übergibst und keine Feldbezeichnung. Entweder die single-quotes weg (') oder durch Ticks ersetzen (`). Mit DATE_FORMAT(...) AS juhu kannst du einen Alias benutzen, unter dem das "Feld" dann im Resultset zu finden ist.
Stuck Mojo ist offline   Mit Zitat antworten
Alt 02.10.2003, 11:56   #10
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
ok, aber folgendes müsste dann stimmen?

PHP-Code:
$sql mysql_query("SELECT DATE_FORMAT(datumsfeld,'%d %M %Y') FROM tabelle ORDER BY datumsfeld DESC"); 
prefix ist offline   Mit Zitat antworten
Alt 02.10.2003, 12:00   #11
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
jap...wobei so wäre fürs Auswerten besser, es sei denn man fragt wirklich nur dieses eine Feld ab:
PHP-Code:
$sql mysql_query("SELECT DATE_FORMAT(datumsfeld,'%d %M %Y') AS datum FROM tabelle ORDER BY datumsfeld DESC");
$r mysql_fetch_assoc($sql);
echo 
$r['datum']; 
Stuck Mojo ist offline   Mit Zitat antworten
Alt 02.10.2003, 12:03   #12
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
so, danke vielmals - hat mir echt viel gebracht

@donjure: sorry für's "dazwischen-reden" *lol*
prefix ist offline   Mit Zitat antworten
Alt 02.10.2003, 12:06   #13
TP-Member
 
Benutzerbild von DonJure
 
Registriert seit: Sep 2003
Ort: NRW - Moers
DonJure macht alles soweit korrekt
np

bin genauso interessiert an den antworten...
__________________
I wasted all my pretty years on you!
DonJure ist offline   Mit Zitat antworten
Alt 02.10.2003, 12:09   #14
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
noch eine kurze zusatzfrage hätte ich, jan

annahme: tabelle mit folgenden feldern:

- id, int, not_null, auto_incr
- vorname, varchar(50)
- nachname, varchar(50)

bisher hab ich db-ausgaben immer so gelöst:

PHP-Code:
$abfrage mysql_query("SELECT * FROM tabelle ORDER BY nachname, vorname ASC");
while (
$ausgabe mysql_fetch_object($abfrage)) {
    
$vorname $ausgabe->vorname;
    
$nachname $ausgabe->nachname;
    echo 
"$nachname $vorname <br />";

mittels array sollte da ja eine sinnvoller lösung möglich sein (vor allem, wenn man viele felder ansprechen und ausgeben muss) - oder??

würde das so funktionieren?:

PHP-Code:
$abfrage mysql_query("SELECT * FROM tabelle ORDER BY nachname, vorname ASC");
while(
$r mysql_fetch_assoc($sql)) {
    echo 
"$r['nachname'] $r['vorname']";

so, jetzt frag ich mich grad: warum probier ich das eigentlich nicht aus??

ich mach schon....

EDIT
ich seh schon (nach kurzem testen) kleinere probleme - versuch die mal zu lösen

Geändert von prefix (02.10.2003 um 12:11 Uhr).
prefix ist offline   Mit Zitat antworten
Alt 02.10.2003, 12:14   #15
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
perfekt, das geht ja echt so

PHP-Code:
$abfrage mysql_query("SELECT * FROM user ORDER BY nachname ASC");
while(
$r mysql_fetch_assoc($abfrage)) {
    echo 
$r['nachname']." ".$r['vorname']."<br />";

also jetzt erspar ich mir viel viel tippserei - thx!
prefix ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
daten nach datum und uhrzeit sortieren daten nach datum und uhrzeit sortieren
« Radiobuttons & Frame aktualisieren? | Formmailer-Script verbessern »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


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

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43