php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.04.2009, 01:54  
Benutzer
 
Registriert seit: 03.04.2009
Beiträge: 66
ostems befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] nach datum (array) sortieren

Hallo Leute...
ich schlage mich gerade mit dem problem sortieren von datum-angaben herrum.

Kurz mal den Code:

PHP-Code:
$sql "SELECT tag1 
FROM stamm  
WHERE team='$nametoteam' 
or teama='$nametoteam' 
or teamb='$nametoteamc"
;
$result mysql_query($sql);
$row mysql_fetch_array($result);
$spieltag_x$row['tag1'];

// $spieltag_x enhält z.B.: 01.03.2009,01.02.2009,01.01.2009,01.04.2009, 

   
$da explode(","$spieltag_x);
   
$wert = array();
   for (
$i 1$i <= 50$i++) {
   
$wert[$i] = $da[$i];

        list(
$a,$b,$c) = explode("."$wert[$i]);
        
$daten_a ="$c$b$a";
               
            if (
$daten_a <> "" and $daten_a <> ".."){
                
$daten_a = array($daten_a);
                
sort($daten_a);

                     foreach(
$daten_a as $key => $val){
                     echo 
"wert[" $key "] " $val "<br>";
                     }
            }
   } 
habe es auch schon mit dem umwandel versucht:
date("d.m.Y", mktime(0, 0, 0, $b, $a, $c));
und noch so einiges was nicht funktioniert...

es wird einfach nicht nach datum sortiert...
oben war mein letzter versuch....
wie sortiere ich diese verdammten daten?
kann mir bitte jemand auf die sprünge helfen?
ostems ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.04.2009, 05:16  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Zunächst mal kurz zu dem code an sich. Normalisier doch die Datenbank, dann tust du dich schon mal viel leichter. Nach dem mysql_query solltest du auch ein OR die() einfügen.

Die Sortierung kriegst du viel leichter mit nem timestamp hin. Da könntest du direkt sort verwenden.

So ists vielleicht bissl umständlich, aber müßt gehen.
nach wert= array(); das einfügen und testen

PHP-Code:
$sorted = array();
foreach(
$wert as $value) {
  
$value explode("."$value);
  
$sorted[]= $value[2].".".$value[1].".".$value[0];
}
$sorted sort($sorted);
echo 
"<pre>";
var_dump($sorted);
echo 
"</pre>"
dann mußt dus nur noch ins richtige Format bringen. Ungetestet, aber sollte funktionieren.

gruß
rudygotya ist gerade online  
Alt 11.04.2009, 04:41  
Benutzer
 
Registriert seit: 03.04.2009
Beiträge: 66
ostems befindet sich auf einem aufstrebenden Ast
Standard

Hallo rudygotya
danke für deine schnelle antwort...

den datenbankinhalt als timestamp anlegen ist in diesem fall garnicht möglich...
$spieltag_x= $row['tag1'];
// $spieltag_x enhält z.B.: 01.03.2009,01.02.2009,01.01.2009,01.04.2009,
ostems ist offline  
Alt 11.04.2009, 05:44  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Warum stehen in tag1 mehrere Daten drin? (Wenn das schon sein muss, sollte das Feld auch tage heißen).
Außerdem muss das nicht sein
Zitat:
Zitat von rudygotya
Zunächst mal kurz zu dem code an sich. Normalisier doch die Datenbank, dann tust du dich schon mal viel leichter.
siehe http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
David ist offline  
Alt 11.04.2009, 06:35  
Benutzer
 
Registriert seit: 03.04.2009
Beiträge: 66
ostems befindet sich auf einem aufstrebenden Ast
Standard

Hi David... Frühaufsteher oder noch garnicht geschlafen?

zum Thema:

Zitat:
Zitat von David Beitrag anzeigen
Warum stehen in tag1 mehrere Daten drin? (Wenn das schon sein muss, sollte das Feld auch tage heißen).
das programm bekommen z.B. Billardcenter, Poolhallen, Snookerhallen usw...
diese nehmen vereine auf.
wir haben z.B. 5 vereine.

alle habe eine unterschiedliche anzahl von spieltagen.
ich wollte jetzt keine 50 oder mehr spalten anlegen, sondern es auf eine beschränken.

das ein datum (wegen spielverlegung) nachgetragen werden muss ist mir zu spät aufgefallen.
ich hatte zuerst auch 20 spalten... aber die habe ich wieder gelöscht weil
ich mit einer spalte unbegrenzt eintragen kann. zumindest ausreichend
für die meisten sportarten in diesem bereich.

ändern der datenbank bedeutet recht viel arbeit für mich,
weil ich dann auch alle abfragen suchen und ändern muss.

die bezeichnung tag1 ist sozusagen ein überbleibsel von tag1 bis tag20.

hatt diese sache leider nicht so gut durchdacht.

Geändert von ostems (11.04.2009 um 06:38 Uhr).
ostems ist offline  
Alt 11.04.2009, 06:45  
Benutzer
 
Registriert seit: 03.04.2009
Beiträge: 66
ostems befindet sich auf einem aufstrebenden Ast
Standard

hab hier irgendwo beim suchen ein script gefunden das aus einem solchen array
das nächste beziehungsweise das aktuelle datum filtert...

könnte das dann in die ausgabeseite einpflegen so das ich mir die sortierung evtl. auch sparen kann.

hoffe ich finde es auch wieder...

aber jetzt erst mal ins bett. der tach war lang genug.

allen ein schönes osterfest...
ostems ist offline  
Alt 12.04.2009, 16:06  
Benutzer
 
Registriert seit: 03.04.2009
Beiträge: 66
ostems befindet sich auf einem aufstrebenden Ast
Standard

leider bin ich immer noch nicht weiter...
hat noch jemand einen ansatz?
ostems ist offline  
Alt 12.04.2009, 17:02  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Falls es noch die gleiche db Struktur ist wie oben: Hast du das Datum denn mal ins richtige Format gebracht? Oder mit dem code gar nichts angefangen? Der sortiert dir doch die Termine.

Gruß
rudygotya ist gerade online  
Alt 12.04.2009, 17:04  
Benutzer
 
Registriert seit: 03.04.2009
Beiträge: 66
ostems befindet sich auf einem aufstrebenden Ast
Standard

denn müsste ich das datum nach der abfrage ins format bringen...
das hat mich aber bisher auch noch nicht weiter gebracht...

ich hab deinen code zwar versucht einzubinden..
jedoch ohne erfolg.
ostems ist offline  
Alt 12.04.2009, 17:16  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Einfach den array nochmal durchlaufen
z.b. so:
PHP-Code:
$sorted = array();
foreach(
$wert as $value) {
  
$value explode("."$value);
  
$sorted[]= $value[2].".".$value[1].".".$value[0];
}
$sorted sort($sorted);
foreach (
$sorted as $value) {
     
$valueexplode(".",$value);
     echo 
$value[0].".".$value[1].".".$value[2]."<br />";


Geändert von rudygotya (12.04.2009 um 18:12 Uhr).
rudygotya ist gerade online  
 


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array umwandeln von zwei zu mehrdimensional erselbst PHP Tipps 2009 6 02.04.2009 23:30
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
assoziatives array sortieren LP PHP Tipps 2006 8 09.09.2006 07:47
Mehrdimensionales Array sortieren Unbekanntes_Pferd PHP Tipps 2006 6 23.05.2006 20:42
array richtig sortieren, dann ausgeben Heart PHP Tipps 2006 5 28.04.2006 20:23
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Array verkehrt sortieren (key) // letzter Arrayeintrag PHP Tipps 2005-2 5 20.09.2005 15:55
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array sortieren PHP Tipps 2005 7 15.05.2005 02:14
Array mit Gruppen: Wie Sortieren PHP Tipps 2005 2 29.01.2005 15:15
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
mehrdimensionales Array sortieren Simbo PHP Tipps 2004 30 29.07.2004 17:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array nach datum sortieren, array nach datum sortieren php, php array datum sortieren, php array sortieren datum, php array sortieren nach datum, php datum sortieren, array nach datum sortieren, php array sortieren, http://www.php.de/php-einsteiger/53975-erledigt-nach-datum-array-sortieren.html, array datum sortieren php, php array sort datum, php sort array date, array datum sortieren, php sort array by date, array sortieren datum, php array sort date, php array mit datum sortieren, php datum array sortieren, datum array sortieren, php sortieren nach datum

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum