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

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung 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 > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.07.2006, 01:42:22
groe groe ist offline
Anfänger
 
Registriert seit: Nov 2004
Beiträge: 22
[MySQL] Tabelle sortieren

Hi,

ich würde gerne eine Tabelle nach einem Feld sortieren. Dieses Feld enthält ein Datum im Format TTMMYYYY, also heute z.B. 24072006. Nun würde ich gerne die mysql-Anfrage nach dem Datum sortieren, von neu nach alt.

Mein Versuch:
PHP-Code:
$wars_r mysql_query("SELECT * FROM table ORDER BY SUBSTR(datum, 4, 4), SUBSTR(datum, 2, 2), SUBSTR(datum, 0, 2)"); 
Aber anscheinend kann man beim Sortieren keine Funktionen verwenden, oder?


Bitte helft mir.
LG
groe
Mit Zitat antworten
  #2  
Alt 24.07.2006, 08:32:13
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: [MySQL] Tabelle sortieren

Zunächst einmal würde ich an deiner Stelle die Tabellenstruktur ändern und den Typ der Spalte auf DATE ändern.
Wenn du jetzt trotz allem trotzdem bei deiner Variante bleiben möchtest, solltest du bedenken, dass MySQL bei SUBSTR() mit 1 anfängt zu zählen statt wie PHP mit 0. Einfacher wird es übrigens, wenn du die Funktion STR_TO_DATE() verwendest.

Geändert von xabbuh (24.07.2006 um 08:32:27 Uhr)
Mit Zitat antworten
  #3  
Alt 27.07.2006, 17:06:19
Benutzerbild von pRoPh3t
pRoPh3t pRoPh3t ist offline
Anfänger
 
Registriert seit: Jul 2006
Ort: Bergneustadt - NRW
Alter: 37
Beiträge: 26
AW: [MySQL] Tabelle sortieren

hallo,
also es gibt verschiedene möglichkeiten dein problem zu lösen.

die erste wäre die funktion array_multisort mit der du die aus der datenbank ausgelesenen werte sortieren könntest, dies ist allerdings etwas komplizierter, da du die zuordung der anderen felder zum passenden datum wiederhersetllen musst.

der einfachste weg wäre der order by befehl schon beim auslesen der datenbank.
dafür eigenet sich am besten ein timestemp, wenn du einen neuen datensatz in der datenbank anlegst und das datum einfügen willst, einfach die php funktion time() benutzen.

hier mal ein beispiel zum geordneten auslesen per order by nach dem feld datum.
Code:
$query = mysql_query("SELECT `$news_head`, `$news_content`, `$news_date`, `$user_id` FROM `$table_news` ORDER BY `$news_date` DESC");
hierbei werden die daten anhand des datums ausgelesen, von alt nach neu.
mit der angabe ASC statt DESC machst du es umgekehrt.
Mit Zitat antworten
  #4  
Alt 27.07.2006, 20:33:26
groe groe ist offline
Anfänger
 
Registriert seit: Nov 2004
Beiträge: 22
AW: [MySQL] Tabelle sortieren

Das Problem bei deiner Lösung, pRoPh3t, wäre dann allerdings dass ja das gespeicherte Datum beim Eintragen von Hand per POST übermittelt wird und dann in der DB gespeichert - also kein time() ;)

Es gibt auch eine Funktion in php die ermöglicht das ermitteln des UNIX-Timestamp zu einem anderen Zeitpunkt als jetzt. Hat aber, als ich die früher mal verwendet habe nur Probleme gemacht ~.~

Habe das ganze jetzt gelöst. Sicherlich nicht grade die Schönste Lösung, aber was solls.

PHP-Code:
$wars_r mysql_query("SELECT * FROM table ORDER BY RIGHT(datum, 4) DESC, SUBSTRING(datum, 3, 2) DESC, LEFT(datum, 2) DESC"); 

Danke für eure Hilfe :)
Mit Zitat antworten
  #5  
Alt 27.07.2006, 22:20:08
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: [MySQL] Tabelle sortieren

Warum möchtest du den Spaltentyp nicht sinnvollerweise anpassen? Und wenn das schon partout nicht so sein soll, warum verwendest du dann nicht wenigstens STR_TO_DATE() beim Sortieren?
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
Tabelle sortieren nach Punkte HandyGER PHP Grundlagen 0 22.02.2006 19:36:20
Tabelle aus Textdatei erzeugen, erweitern und sortieren Stefi PHP Grundlagen 1 02.10.2005 14:57:01
Tabelle nach Datum sortieren (keine DB) Max_04 PHP Grundlagen 9 07.07.2005 21:53:37
Tabelle per Klick sortieren Max_04 PHP Grundlagen 7 17.06.2005 05:20:50
SQL-Result Tabelle sortieren StefanGe PHP Grundlagen 1 10.11.2003 01:17:35


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:45:12 Uhr.


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


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