Seite 1 von 1

nach sortieren von postings.....

Verfasst: 05.10.2003 18:52
von Innos_Zorn
Ich habe bei mir so was ähnliches wie ein Musik-Nachschlagewerk gemacht.
Dazu war es nötig sowohl die Topics als auch die postings Alphabetisch zu sortieren.

Das sortieren der Topics war auch kein Problem das hab ich so gemacht:
http://phpbb.de/viewtopic.php?t=18703

nur über das sortieren der postings hab ich nix gefunden, dann hab ich spasseshalber das gleiche in der viewtopic.php gemacht. Das hat komischerweise auch funktioniert (hatte nicht damit gerechnet :D ).
Nur ist es jetzt schon dreimal vorgekommen das in einem anderen Forum ein posting "verrutscht" ist (das zu letzt gepostete erschien als vorletztes) obwohl die zeitabstände relativ gross waren.
zur erklährung, das hab ich gemacht (lacht aber bitte nicht :D )
//
// Go ahead and pull all data for this topic
//

$order = ( $forum_id == 10 ) ? 'pt.post_extra ASC' : 'pt.post_extra DESC, pt.post_extra DESC';

$sql = "SELECT u.* , u.quiz_points, u.user_gender, p.*, pt.post_text, pt.post_subject, pt.post_extra, pt.bbcode_uid, pt.quiz_answer, u.user_special_rank, u.user_custom_rank,m.longitude, m.latitude
FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u LEFT JOIN " . MAP_MOD_USER_TABLE . " m ON u.user_id=m.user_id, " . POSTS_TEXT_TABLE . " pt
WHERE p.topic_id = $topic_id
$limit_posts_time
AND pt.post_id = p.post_id
AND u.user_id = p.poster_id
ORDER BY $order
LIMIT $start, ".$board_config['posts_per_page'];
// ADDED , pt.quiz_answer AND , p.post_id $post_time_order BY Quiz Hack
if ( !($result = $db->sql_query($sql)) )
das pt.post_extra hab ich genommen weil ich ich den "add_field_to_post-hack" von Acid drin hab und nach dem sortieren lassen will.

Zur besseren Erklährung; so siehts dann aus:
http://jarofflies.de/topic,435.html

Hab ich da was falsch gemacht oder is das ok so?

Verfasst: 07.10.2003 12:54
von Acid
hmm.. der erste Teil von $order (bis zum Doppelpunkt) besagt ja, das im Forum mit der ID 10 aufsteigend nach 'post_extra' sortiert werden soll. Der Rest nach dem Doppelpunkt definiert das in allen anderen Foren absteigend nach 'post_extra' sortiert werden soll (und das zweimal). :wink: Sollte da nich 'post_time' stehen ?

Verfasst: 07.10.2003 19:12
von Innos_Zorn
Acid hat geschrieben:hmm.. der erste Teil von $order (bis zum Doppelpunkt) besagt ja, das im Forum mit der ID 10 aufsteigend nach 'post_extra' sortiert werden soll. Der Rest nach dem Doppelpunkt definiert das in allen anderen Foren absteigend nach 'post_extra' sortiert werden soll (und das zweimal). :wink: Sollte da nich 'post_time' stehen ?
Genau aus dem Grund frag ich :D

kannst du mal bitte posten wie die Zeile dann komplett heissen muss? Weil es muss ja dann auch noch was entfernt werden. Ich weiss halt nicht wie ich die zeichen setzen muss :-?

Danke für die Antwort :grin:

Verfasst: 07.10.2003 22:59
von Acid

Code: Alles auswählen

$order = ( $forum_id == 10 ) ? 'pt.post_extra ASC' : 'post_time '. $post_time_order;
...versuch´s ma so!?

Verfasst: 08.10.2003 07:24
von Innos_Zorn
Jetzt krieg ich folgende Fehlermeldung:

Code: Alles auswählen

Could not obtain post/user information.

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '$post_time_order LIMIT 1980, 15' at line 7

SELECT u.* , u.quiz_points, u.user_gender, p.*, pt.post_text, pt.post_subject, pt.post_extra, pt.bbcode_uid, pt.quiz_answer, u.user_special_rank, u.user_custom_rank,m.longitude, m.latitude FROM phpbb_posts p, phpbb_users u LEFT JOIN phpbb_map_mod_user m ON u.user_id=m.user_id, phpbb_posts_text pt WHERE p.topic_id = 153 AND pt.post_id = p.post_id AND u.user_id = p.poster_id ORDER BY pt.post_time $post_time_order LIMIT 1980, 15

Line : 397
File : /home/xxxxxx/web/public_html/viewtopic.php

Verfasst: 08.10.2003 11:53
von Acid
Mein Fehler..

Code: Alles auswählen

$order = ( $forum_id == 10 ) ? 'pt.post_extra ASC' : 'post_time '. $post_time_order;

Verfasst: 08.10.2003 20:20
von Innos_Zorn
OK....super, danke
so wie's aussieht funzt jetzt alles :grin: