aktivsten themen der letzten 4 wochen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

nabend

"der" hat da nix verloren,
nur vergessen zu löschen

und das mit dem switch hab ich wiedereinmal verpeilt (tolles wort)

aber ich wusste gar nicht, das man datenbankabfragen so speziell machen kann!

aber was mir zum glück noch fehlt ist der topic_title

ich habs ja schon auf ein paar wegen versucht,
leider nicht in der gleichen sprache die die datenbank spricht...
"SQL Error "

vielleicht könntest du :roll:

kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Moin,

probier es mal hiermit:

Code: Alles auswählen

SELECT count( p.post_id ) AS post_count, p.topic_id, t.topic_title
        FROM `phpbb_posts` p, phpbb_topics t 
        WHERE `post_time` > unix_timestamp( ) -2419200
        AND p.topic_id = t.topic_id
        GROUP BY topic_id 
        ORDER BY post_count DESC 
        LIMIT 10
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

guten morgen frühaufsteher

und danke für die hilfe

aber sagt, was hat es mit dem t. bzw p. auf sich ?

kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hi,

wenn ich mehrere Tabellen miteinander verknüpfen will, so muss ich die Feld Namen eindeutig benennen.

Bei

Code: Alles auswählen

FROM `phpbb_posts` p, phpbb_topics t
gebe ich den Feldern eine ALIAS Bezeichnung mit ( oder auch Kurzschreibweise ).

Sonst würde die Abfrage so aussehen:

Code: Alles auswählen

SELECT count( p.post_id ) AS post_count, phpbb_posts.topic_id, phpbb_topics.topic_title 
        FROM `phpbb_posts`, phpbb_topics 
        WHERE `post_time` > unix_timestamp( ) -2419200 
        AND phpbb_posts.topic_id = phpbb_topics.topic_id 
        GROUP BY topic_id 
        ORDER BY post_count DESC 
        LIMIT 10
;-)
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

und den könnte ich jetzt noch um die anzahl der antworten ergänzen:

Code: Alles auswählen

SELECT count( p.post_id ) AS post_count, phpbb_posts.topic_id, phpbb_topics.topic_title, phpbb_topics.topic_reply,
(ist bestimmt nicht richtig bezeichnet!)

kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

?

Die Anzahl der Antworten ist doch post_count - 1 ;-)

Code: Alles auswählen

SELECT count( phpbb_posts.post_id ) AS post_count, phpbb_posts.topic_id, phpbb_topics.topic_title, phpbb_topics.topic_replies 
        FROM `phpbb_posts`, phpbb_topics 
        WHERE `post_time` > unix_timestamp( ) -2419200 
        AND phpbb_posts.topic_id = phpbb_topics.topic_id 
        GROUP BY topic_id 
        ORDER BY post_count DESC 
        LIMIT 10
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Dr.Death hat geschrieben:Die Anzahl der Antworten ist doch post_count - 1 ;-)
Nicht (unbedingt) wenn ich ein Limit in der Zeit setze.....

Wenn Du nur die Antworten zählen möchtest -->

Code: Alles auswählen

SELECT count( p.post_id ) AS post_count, p.topic_id, t.topic_title
FROM phpbb_posts p, phpbb_topics t
WHERE post_time > unix_timestamp( ) -2419200
AND p.topic_id = t.topic_id
AND p.post_id <> t.topic_first_post_id
GROUP BY topic_id
ORDER BY post_count DESC
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Wie wärs mit phpbb_topics.topic_replies anstatt count(post_id)?
KB:knigge
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

Pyramide hat geschrieben:Wie wärs mit phpbb_topics.topic_replies anstatt count(post_id)?
ist dabei denn der 4 wochen faktor berücksichtigt ??

kolja
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Nö, damit wird eigentlich nur das Feld topic_replies ausgelesen..

Was Miriam hier ganz am Schluss gepostet hat, müsste schon so passen.
+ LIMIT 0,10 als Beispiel, um beim Zählerstand 0 eine Fehlermeldung zu vermeiden.
Was meiner Meinung nach noch fehlt, ist das Abklappern der FORUMS_TABLE

von wegen auth_view

Sonst werden ggf. auch private Themen und Team-Interna etc.
gelistet, was nicht für alle Augen gut sein soll :/ easy
Zuletzt geändert von easygo am 06.03.2007 16:44, insgesamt 1-mal geändert.
Antworten

Zurück zu „Coding & Technik“