php.de

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

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 3 Stimmen, 3,67 durchschnittlich.
Alt 17.08.2008, 23:46  
Erfahrener Benutzer
 
Benutzerbild von zwerg
 
Registriert seit: 12.08.2005
Beiträge: 437
zwerg
Standard [Erledigt] Array sortieren nach 2 Kriterien

Hallo,
ich arbeite gerade an einem Forum und möchte bei der Ausgabe der Themen nach dem Datum des letzten Beitrags sortieren. Die Themen sind als Objekte in einem Array gespeichert, auch mit dem Datum des letzten Beitrags.
Die Sortierung nach einem Kriterium klappt auch ohne Probleme:
PHP-Code:
function cmp($a$b)
{
    return 
strcmp($b->LastPostCreateDateTime$a->LastPostCreateDateTime);
}

usort($result"cmp"); 
Allerdings möchte ich jetzt die als Wichtig makierten Beiträge ($topic->IsImportant = 1) auch ganz oben haben.

Ich suche also eine Funktion oder einen Ansatz wie ich nach den beiden Kriterien $topic->LastPostCreateDateTime und $topic->IsImportant sortieren kann.

Viele dank für Tipps =)

Gruß,
Jan
zwerg ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.08.2008, 08:06  
Neuer Benutzer
 
Benutzerbild von AmunRa
 
Registriert seit: 23.12.2007
Beiträge: 10
AmunRa befindet sich auf einem aufstrebenden Ast
Standard

Also beim Array bin ich mir nicht sicher aber versuchs doch über MySQL.
infos24 mysql>mysql count, distinct, group by, having,min,max,sum,avg
AmunRa ist offline  
Alt 18.08.2008, 08:18  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Etwa so:
PHP-Code:
function cmp($a$b) { 
    
$ret strcmp($b->LastPostCreateDateTime$a->LastPostCreateDateTime);
    if (
$ret == 0){
        
$ret $a->IsImportant $b->IsImportant;
    }
    return 
$ret;

__________________
Gruss
L
lazydog ist offline  
Alt 18.08.2008, 10:49  
Erfahrener Benutzer
 
Benutzerbild von zwerg
 
Registriert seit: 12.08.2005
Beiträge: 437
zwerg
Standard

Hallo AmunRa,

über MySQL habe ich es auch schon probiert, allerdings wird hier erst nach dem letzten Beitrag und dann nach dem eigentlichen Erstellungsdatum eines Themas sortiert. Sieht so aus:
PHP-Code:
SELECT Topic.Id FROM Topic LEFT JOIN Post ON Topic.Id Post.TopicId WHERE Topic.BoardId = @BoardId ORDER BY Topic.IsImportant DESCPost.CreateDateTime DESCTopic.CreateDateTime DESC 
Ich möchte aber nach dem letzten Beitrag sortieren, heißt wenn auf ein Thema noch keine Antwort erfolgt ist, ist der letzte Beitrag des Themas das eigentliche Erstellungsdatum. Oder übersehe ich etwas?

Hallo lazydog,
deine Funktion sortiert leider nur nach $topic->LastPostCreateDateTime, bzw. sortiert nur nach $topic->IsImportant wenn $a->LastPostCreateDateTime == $b->LastPostCreateDateTime ist. Ich werde die Funktion gleich nochmal auseinander nehmen, auf jedenfall danke für den Tipp.

Gruß,
Jan

Geändert von zwerg (18.08.2008 um 11:41 Uhr). Grund: Rechtschreibfehler...
zwerg ist offline  
Alt 18.08.2008, 23:19  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

PHP: array_multisort - Manual
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline  
Alt 19.08.2008, 10:12  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von zwerg Beitrag anzeigen
über MySQL habe ich es auch schon probiert, allerdings wird hier erst nach dem letzten Beitrag und dann nach dem eigentlichen Erstellungsdatum eines Themas sortiert.
Wenn du das so angibst schon. Ich bin aber sicher, dass die von dir gewünschte Sortierung mit SQL möglich ist.

Zitat:
Zitat von zwerg Beitrag anzeigen
deine Funktion sortiert leider nur nach $topic->LastPostCreateDateTime, bzw. sortiert nur nach $topic->IsImportant wenn $a->LastPostCreateDateTime == $b->LastPostCreateDateTime ist. Ich werde die Funktion gleich nochmal auseinander nehmen, auf jedenfall danke für den Tipp.
Ja, so habe ich auch deine Anforderung verstanden. Wenn das nicht so ist, musst du deine Frage genauer formulieren
__________________
Gruss
L
lazydog ist offline  
Alt 19.08.2008, 15:43  
Erfahrener Benutzer
 
Benutzerbild von zwerg
 
Registriert seit: 12.08.2005
Beiträge: 437
zwerg
Standard

Hallo lazydog,
nicht angegriffen fühlen

Zitat:
Wenn du das so angibst schon. Ich bin aber sicher, dass die von dir gewünschte Sortierung mit SQL möglich ist.
Ich möchte nicht nach dem Erstellungsdatum, sondern sofort nach dem letzten Beitrag sortieren. Da der "letzte Beitrag" aber nicht in MySQL gespeichert ist, kann ich unmöglich danach sortieren.

Gruß,
Jan

P.S.: Ich hab das ganze jetzt so gelöst, dass erst die Wichtigen Themen aufgelistet werden, hat den Vorteil dass sie unhabhängig von der aktuellen Seite trotzdem vorhanden sind. lazydog hat meine Frage aber im Prinzip beantwortet, deshalb makiere ich den Thread als Erledigt.
zwerg ist offline  
 


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
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
Array nach bestimmter Spalte sortieren GELight PHP Tipps 2006 4 19.08.2006 23:42
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
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
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
2 Array in Abhänigkeit sortieren? PHP Tipps 2005 4 10.02.2005 20:31
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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array sortieren nach spalte, sql sortieren nach 2 kriterien, php mysql array sortieren, php array nach 2 kriterien sortieren, php array nach mehreren kriterien sortieren, php array sortieren, php array nach spalte sortieren, php array nach mehreren spalten sortieren, mysql array sortieren, php array nach kriterium sortieren, php array sort, http://www.php.de/php-tipps-2008/46777-erledigt-array-sortieren-nach-2-kriterien.html, sql nach 2 kriterien sortieren, sql sortieren nach mehreren kriterien, kriterien des vorsortieren der post, php array datenbank sortieren nach spalte, php array sortieren nach mehreren spalten, sortierung mit 2 kriterien, php array sortieren mehrere kriterien, mysql php array sortieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:52 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