PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   kompliziertes Sortieren (http://www.selfphp.de/forum/showthread.php?t=9937)

nivram 06.03.2005 22:06:56

kompliziertes Sortieren
 
Nabend zusammen,
ich baue mir gerade ein "kleines" Forum. Meine Tabelle foren sieht wie folgt aus:

vollständige Textfelder
id|subid|bezeichnung|beschreibung|beiträge|threads|status|position
1 0 Allgemeines 0 0 1 3
2 1 Ankündigungen Wichtige Ankündigungen rund ums Forum 0 0 1 1
3 1 Feedback Positives und Negatives rund um bauwagen-leblich.d... 0 0 1 2
4 0 Wochenende 0 0 1 2
5 4 Events & Partys Termine und Diskussionen über Events & Partys am W... 0 0 1 1


Wie lautet die SQL-Abfrage damit die Daten erst nach Oberkategorien (also danach wo subid = 0) und dann nach den Unterkategorien (also wo subid = irgendeine id) sortiert werden. Ausserdem soll die Angabe position am Ende der Tabelle berücksichtigt werden.

PHP-Code:

SELECT FROM bw_forum_foren ORDER BY idposition 

Das wirds wohl nicht sein!
Oder muss man dazu evt sogar 2 Abfragen machen?

Grüße,
nivRam

|Coding 06.03.2005 22:25:49

AW: kompliziertes Sortieren
 
das query müsste so aussehen:

"SELECT * FROM bw_forum_foren ORDER BY subid, id"

was meinst du mit: "...Ausserdem soll die Angabe position am Ende der Tabelle berücksichtigt werden."

in wie fernt berücksichtigen?

nivram 06.03.2005 22:30:23

AW: kompliziertes Sortieren
 
Die Position am Ende der Tabelle (wie du im oberen Beitrag siehst) gibt an, in welcher Reihenfolge dir Foren ausgegeben werden sollen!

Man muss das ganze irgendwie als mehrdemensional sehen.

Jedes Forum hat eine Position.
Die hauptforen, also wo subid = 0 ist, haben jeweils eine Position.
Die Unterforen, also wo subid = id vom Hauptforum, haben auch jeweils eine Position.

Das heisst zuerst soll nach den Hauptforen sortiert werden, dann die Unterforen.. je nach Position die ich angebe!

Ich hoffe man versteht was ich meine..

Gruß,
nivRam

P.S.: Bin total müde und weiss nich wirklich ob das alles so schlüssig ist.. ^^

|Coding 06.03.2005 22:37:57

AW: kompliziertes Sortieren
 
wenn ich nicht irre, müsste die query syntax dann so ausschauen:

"SELECT * FROM bw_forum_foren ORDER BY subid, id, position"

nivram 06.03.2005 22:40:38

AW: kompliziertes Sortieren
 
Mhmm.. habe schon alle Kombinationen ausprobiert..
Wenn ich die Abfrage so wie du es geschrieben hast gestalte bekomme ich ein Hauptforum als erstes obwohl ein anderes Hauptforum eine kleinere Position hat und deswegen normal oben sein muss..


Gruß,
nivRam

|Coding 06.03.2005 23:15:17

AW: kompliziertes Sortieren
 
vielleicht erreichst du was mit "...ORDER BY ... DESC" (absteigend sortiert) bzw. "...ORDER BY ... ASC" (aufsteigend sortiert).

xabbuh 07.03.2005 08:46:39

AW: kompliziertes Sortieren
 
Vielleicht hilft dir das hier auch weiter: http://aktuell.de.selfhtml.org/artik...orum/index.htm

nivram 07.03.2005 12:37:13

AW: kompliziertes Sortieren
 
Okay, es funktioniert soweit..
Nur wie bekomme ich unterschiedliche Formatierungen darein?

Das is der Code:

PHP-Code:

function zeichneBaum($eintrag)
 {
  global $forumarray, $kindarray;  // Die hilfreichen Arrays importieren

  // Erstmal ein <li> aufmachen:
  ?><table width="640" cellspacing="0" cellpadding="0"><?php
   
// Jetzt können wir eine Zeile mit den Infos zu dem durch
   // $eintrag bezeichneten Eintrag ausgeben
   
?>
    <tr><td><b><?php echo htmlentities$forumarray[$eintrag]->bezeichnung );?></b></td></tr>
   <?php
   
// Eventuell sind noch Kinder mit auszugeben:
   
if(is_array($kindarray[$eintrag])) {       // Wenn das ein Array sein sollte, ...
    
?><?php                               // ... dann mach ein <ul> auf, ...
     
foreach($kindarray[$eintrag] as $kind) {
        print 
"<tr><td>";// ... gehe alle Kinder durch ...
      
zeichneBaum($kind);                  
      print 
"</td></tr>"// ... und rufe für jedes Kind zeichneBaum() auf, ...
     
}
    
?><?php                              // ... und mach das <ul> wieder zu.
   
}

   
// Fertig
  
?></table>
  
  <?php
 
}

Wenn ich dieses <b>...</b> reinmache werden ja alle Titel fett... Das sollen nämlich nur die Hauptkategorien!

Gruß,
nivRam

P.S.: In der Schule hab ich mir überlegt ob es vielleicht einfacher ist die Positionen in der Form 1.0, 1.1, 2.0, 2.1, 2.2 anzugeben. Damit könnte ich es problemlos sortieren und mit unterschiedlichen Formatierungen ausgeben..
Weiss jemand zufällig wie es das WBB macht?
Oder dieses Board hier?!?

xabbuh 07.03.2005 13:04:46

AW: kompliziertes Sortieren
 
Baue einfach eine Abfrage rein, ob subid 0 ist und passe die Ausgabe entsprechend an.

nivram 07.03.2005 13:08:50

AW: kompliziertes Sortieren
 
Boah, man bin ich doof...

Kommt davon wenn man Mittags um 12 Uhr schon Alkohol zu sich nimmt ^^


Gruß,
nivRam

P.S.: I'll be back! ^^


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:18:31 Uhr.

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