Neuigkeiten:

still alive...

Hauptmenü

Newthreadlist auf best. User beschränken

Begonnen von nico, 22. August 2006, 11:57:11

Vorheriges Thema - Nächstes Thema

nico

Die newthreadlist.php des Forums habe ich so abgeändert, dass nur die Postings eines bestimmten Users angezeigt werden. Dies ergibt eine unübersichtliche Liste aller Postings dieses Users.
Wie muss ich die Query abändern, damit die Liste der Postings nach Board- und Kategoriename gegliedert ist?
 


//############ Threads anzeigen ##########################
  $sqlbefehl =  \"Select t.id,t.titel
                 From $tab_thread t
                 Left Join $tab_board b on b.id=t.boardid
                 Where b.boardtyp like \'Guest%\'
                   And t.status  \'moved\'
                   And t.userid = 65
                 Order By t.id Desc\";
//                 Limit 10\";
  $getthread  = mysql_query($sqlbefehl, $serverid);
     echo mysql_error($serverid);
     while ( $thread = mysql_fetch_array($getthread)) {
       echo \"- \".formatstring($thread[titel]).\"\";
     }
//################ Ende Threads ########################

 
 - Editiert von Nico am 24.08.2006, 12:04 -
Nico

nico

Ich habe jetzt Einiges versucht, bekomme das Problem aber nicht richtig in den Griff /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
Wie gesagt: Was ich will, ist die Board- und Kategorie-Namen auslesen und darunter jeweils die Threads eines bestimmten Users. Die dazu benötigten Tabellen werden ja bereits angesprochen und ver\"join\"t. Was noch fehlt, ist das Auslesen von Board- und Kategorie-Namen und sicher müßte auch die \"order by\" Klausel abgeändert werden.
Liege ich damit richtig?
Nico

nico

Kein Wunder, dass ich den Dreh nicht rausfinde, wenn sogar unsere MySQL-Experten nicht weiterhelfen können ...  /uploads/emoticons/icon_e_wink.gif.c059000ae48ff64afa53be0962c021f2.gif\" alt=\":wink:\" />
*weitergrübel*  /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
Nico

mahe

Nach Kategorie wird schwer, die liest du hier ja garnicht mit aus :L
Ansonsten gugg mal bei ORDER BY /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


nico

@mahe
Danke!
Ansonsten gugg mal bei ORDER BY[/quote]
Ob ein ORDER BY genügt? Ich muss doch auch den Boardnamen ausgeben. Doch da hakt\'s (?)
Nach Kategorie wird schwer, die liest du hier ja garnicht mit aus [/quote]
Hab\' ich\'s mir doch gedacht, denn der Kat.-Name ist in keiner der beiden Tabellen, die ich in \"meiner\" Query anspreche enthalten. In welcher Tabelle ist der Kat.-Name enthalten und wie setze ich dazu einen JOIN?
Nico

Powie


Original von Nico Kein Wunder, dass ich den Dreh nicht rausfinde, wenn sogar unsere MySQL-Experten nicht weiterhelfen können ...  /uploads/emoticons/icon_e_wink.gif.c059000ae48ff64afa53be0962c021f2.gif\" alt=\":wink:\" />
*weitergrübel*  /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
[/quote]
dann sollten die sich mal besser nicht \"Experten\" nennen  (!)
Den Boardname hast du schon -> b.name
Nun noch ein simpler Join:   Left Join $tab_cat c on c.id = b.catid
und im Select noch c.name mit angezogen, dann hast du auch den Kategorie Name dabei,
Ordern: Order By c.name,b.name, t.id DESC

nico

Herzlichen Dank, Thomas  /uploads/emoticons/icon_e_biggrin.gif.1a84f5257b36e14b36d04985314f877f.gif\" alt=\":-D\" />
Den Expertentitel hatte ich doch verliehen /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" /> Sicher steht er dir zu  :H:
Nico

Powie

wenns funktioniert  /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />

nico

Es funktioniert, allerdings werden Board- und Kategoriename \"noch\" nicht mit ausgegeben.
Nico

Powie

Select c.name as catname, b.name as boardname, ....
dann hast du das dann korrekt in dem Array!

nico

Meine Query sieht nun folgendermaßen aus. Sie ordnet die ausgegbene Liste nach Board und Kategorie, allerdings erfolgt immer noch keine Ausgabe des Board- und Kategorie-Namens über den jeweils dazugehörigen Thread-Titeln. Was bleibt da noch zu tun?
 

//############ Threads anzeigen ########################## 
  $sqlbefehl =  \"Select b.name as LAND,c.name as REGION, t.id, t.titel
                 From $tab_thread t
                 Left Join $tab_board b on b.id=t.boardid
                 Left Join $tab_cat c on c.id = b.catid
                 Where b.boardtyp like \'Guest%\'
                   And t.status  \'moved\'
                   And t.userid = 65  
                Order By b.name, c.name, t.id Desc\";
//                 Limit 10\";
  $getthread  = mysql_query($sqlbefehl, $serverid);
     echo mysql_error($serverid);
     while ( $thread = mysql_fetch_array($getthread)) {
       echo \"- \".formatstring($thread[titel]).\"\";
     }
Nico

nico

Was bleibt da noch zu tun?[/quote]
Nichts. Ich habe die Lösung nach langer Suche (bin halt eben kein MySQL-Spezialist) gefunden.
Nico

all your base are belong to us